質問

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

役に立ちましたか?

解決

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

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

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

リソースに関しては、 NES 開発ウィキ には、NES ハードウェアに関するリソースとプログラミングのリファレンスが含まれています。Zophar のドメインには、かなりの数のコンソールの技術文書とパブリック ドメイン ROM もあります (このサイトで ZD にリンクすべきかどうかはわかりません。グーグルで調べてください)

他のヒント

古いコンソールのほとんどには、何らかの 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 そして http://www.beeslife.com/faq.htm#_Toc140592020 - スプライトを移動し、コントローラーを読み取り、平方根を計算するルーチンがありました。

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

70年代後半、80年代と90年代初頭における

バック、(ゲームなど)ほとんどのソフトウェアは、ASM(国会)で書かれていました。あなたが議会に慣れていない場合、それは実質的にCPUをプログラミングするためのハードウェア固有の非常に低いレベルのプログラミング言語です。このあなたが物理学、グラフィックス、さらには音のようなもののために画面を再作成し、ライブラリにすべてのピクセルを制御しなければならなかったことを意味します!リサイクルは必須だったので、あなたは非常にメモリに制限されていました。元スーパーマリオブラザーズでは、雲が茂みと同じであり、唯一異なるの色であることがわかります。スプライトの多くはリサイクルされ、ゲームの物理学は限られていました。

のゲームは、それは、コードの以下の行を必要とするので、ソフトウェアがより迅速に多くのことを書かされるのを許さC言語の上に移動し、より多くの複雑な開発者になったよう。今日では、それが迅速な開発が可能になりますが、また、ソフトウェアが速くプレイ用のハードウェアに近い十分にすることが可能になりますので、コンソールやコンピュータゲームの多くはC ++で書かれています。

私はこのことについて行われた研究をやりなさい、しかし、スーパーマリオブラザーズと90のゲームをreleated代わりに、カートリッジの.nesファイルとして利用可能であり、そこにオープンソースのエミュレータも用意されています。

私の知る限りでは、これらは一般的にC ++で書かれています。私はこれらのファミコンファイルとエミュレータの合法性について知っているが、インターネット上で利用可能な、彼らはありません。あなたが右の文字列で検索を持っている!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top