私は今、古い学校のコンソール(Atari、Colecovision ...)のエミュレーターのプロジェクトを開始するという夢を持っていますが、開始する前に、いくつかのことを知る必要があります。
- そのエミュレーターを作成するのに最も簡単なコンソールはどれですか?
- それを構築するためのいくつかの良いリソースをどこで見つけることができますか?
- エミュレーターを構築するのに最適な言語はどれですか?
ありがとう。
私は今、古い学校のコンソール(Atari、Colecovision ...)のエミュレーターのプロジェクトを開始するという夢を持っていますが、開始する前に、いくつかのことを知る必要があります。
ありがとう。
まず第一に、インターネットはこのトピックをカバーするリソースでいっぱいです。私がエミュレーターを開発しているときに始めた最も基本的なリソースの 1 つを紹介できます: http://fms.komkon.org/EMUL8/HOWTO.html
多くのハードウェアをより包括的にしたい場合 (そしてそうするでしょう) は、これをチェックしてください: http://www.zopar.net/
エミュレーターの作成は非常に複雑な作業です。プログラムが実行されているハードウェアを完全に再作成する必要があります。そうしないと機能しません。ゲームボーイのような単純なハードウェアから始めることをお勧めします ( Z80 CPU を変更したもので、実装が単純で最も面白いものの 1 つです。このトピックについては www.z80.info をお勧めします)。あまりにも多くのことを気にする必要があるためです。
もちろん、最高の言語は単純な C または C++ です。それは、ハードウェアにより固執し、非常に効率的であるという理由だけで、実際の仮想マシンとまったく同じように動作する仮想マシンを作成する必要があることに注意してください。
エミュレーターを作成するのに最も簡単なコンソールはどれですか?
Chip-8 が良い出発点であることがわかりました。グラフィックスのオン/オフ、1 つの固定サウンド、40 未満のオペコードで比較的シンプルです。
Cowgod の Chip-8 Technical Referenceは素晴らしいリソースであることがわかりました。
それを構築するための良いリソースはどこにありますか?
ターゲット システムを選択し、それに関する技術情報を調査する必要があります。Gameboy ( Jack が言及)などの一般的なシステムを選択すると、これははるかに簡単になります。
エミュレータを構築するのに最適な言語はどれですか?
C/C++ は、ハードウェアに近く、最高のパフォーマンスを得ることができるため、優れています。以前に Assembly で書かれたエミュレーターはありましたが、私はお勧めしません (特に始めたばかりの場合)。
とはいえ、許容できるフレームレートを備えた JavaScript で記述されたエミュレーターが存在します。
最も快適な言語を選択しますが、理論的には金属に近い言語の方がパフォーマンスが向上することを覚えておいてください。
私も役立つかもしれないいくつかのブログ投稿を書きました:
2番目の質問については、MAMEWikiをご覧ください。