13

スーパー マリオ ブラザーズ -1 ワールドの不具合を youtube で見たところ、これらのゲームの背後にあるコードについて本当に疑問に思い始めました。どの言語が使用されましたか? ビデオ ゲーム コンソールの OS はどうですか? このテーマに関するリソースが掲載されている Web サイトはありますか? (私は 90 年代のビデオ ゲーマーなので、これらのゲームの背後にあるプログラミングに特に興味がありますが、必要に応じて、これを wiki にして、ビデオ ゲーム プログラミング全般に関するリソースへのリンクを含めてください)

4

5 に答える 5

11

NES 用のエミュレーターにある程度取り組んできたので (いくつかのオペコードをデコードしていますが、他のハードウェアはエミュレートされていません)、いくつかの答えを共有できるかもしれません。

  1. ほとんどのゲームでは、アセンブラが使用されました。最適化コンパイラは、CPU で使用できる場合でも、20 ~ 30 年前は現在ほど優れていませんでした。パフォーマンスを得るには、アセンブラーで記述する必要がありました (これは PC でも当てはまりました。Doom の一部は ASM にあります)。NES の CPU は 2MHz 未満で動作していたため、なおさらです。また、メモリは現在よりも高価でした。元のマリオは約 40k のメモリに格納されていました。そのうちの 16k は実際のコードで、残りはグラフィックスとサウンドのリソースでした。

  2. 32 ビット コンソールの時代まで、コンソールにオペレーティング システムやビルトイン ユーティリティを搭載することは一般的ではありませんでした (セガ CD は、16 ビット時代に実際の BIOS を搭載した数少ない CD であり、小さなプログラムが焼き付けられていました)。電源投入時に任天堂のロゴが下にスクロールするのを担当していたゲームボーイのプロセッサに)。主な理由として、サイズの制約について上記を参照してください。カートリッジを挿入すると、車内のROMチップがCPUのアドレスバスに直接接続されました。電源を入れると、CPU は固定アドレスから読み取り、プログラムが開始された実際のアドレスを取得し、その場所にジャンプして実行を開始しました。

リソースに関しては、NES Dev Wikiに NES ハードウェアに関するリソースとプログラミングのリファレンスがあります。Zophar's Domain には、かなりの数のコンソール用の技術文書とパブリック ドメインの ROM もあります (このサイトで ZD にリンクする必要があるかどうかはわかりません。Google で検索してください)。

于 2010-06-14T04:37:39.653 に答える
2

古いコンソールのほとんどには、ある種の BIOS ROM がありました。

これらのソース コードの一部はオンラインにあります。

7800 BIOS へのほとんどコメントされた逆アセンブリを読むことができます: http://atarihq.com/danb/files/7800bios.asm

Atari 5200 の BIOS ソースは、システムを初期化してスプラッシュ スクリーンを表示するだけでなく、より興味深いものです: http://atarihq.com/danb/files/5200BIOS.txt

Colecovision には 8K (!) BIOS ROM もありました。ソースはここにあります:http://xi6.com/code/coleco/coleco29.asm

Odyssey II BIOS ソースはこちら: http://atarihq.com/danb/files/o2romsrc.txt

Intellivisionには「exec」と呼ばれるOSがあり、オンラインで逆アセンブリを見つけることができませんでしたが、それに関する多くの情報を見つけました:http://www.intellivisiongames.com/bluesky/hardware/intelli_tech.html#exec and http ://www.beeslife.com/faq.htm#_Toc140592020 - スプライトを動かし、コントローラーを読み取り、平方根を計算するルーチンがありました!

于 2010-06-14T21:05:46.523 に答える
1

そのビデオのグリッチのほとんどはタイルベースのグリッチであり、レベルを構成するタイルマップの衝突検出にバグがあります。すべてのレベルは正方形のタイルで構成されています。あなたがマリオに気づいたら、彼がいるべきではないタイルの間に常にいます。

于 2010-06-14T21:13:37.053 に答える
-1

これについては調べていませんが、スーパー マリオ ブラザーズと関連する 90 年代のゲームは、カートリッジの代わりに .nes ファイルとして入手でき、オープンソース エミュレーターも入手できます。

私の知る限り、これらは通常C++で書かれています。これらの nes ファイルとエミュレーターの合法性についてはわかりませんが、インターネットで入手できます。あなたは正しい文字列で検索しています!

于 2010-06-14T04:05:17.357 に答える