現在、Java で NES エミュレーターを作成しています。いくつかの小さな問題を除いて、私の 6502 コアは 99% 動作します。問題は、私は NES 用に 6502 をエミュレートしているということですが、PS1、N64、または DOS のようなものに興味を持ったことはありません。前述のシステムのように、単純な 2D スプライトを画面に描画する以上のことができるコンソール/システムをエミュレートしたいと常に考えていました。
私が聞きたいのは、x86 プロセッサのようなものを 6502 と比較してエミュレートするのが難しい理由は何ですか? 私が思いつく唯一のことは、巨大な x86 命令セットであり、x86 エミュレーターは、コードの読みやすさではなく、効率性のためにもう少しプログラムする必要があるということです。DosBox のソース コードを調べたので、この質問をしています。そこにある 6502 オープン ソース エミュレータのほとんどと比較すると、DosBox の x86 コアのソースは、リモートで理解することすらできません。プロセッサがオペコードのリストを検索してそれらを体系的に実行するだけなのに、なぜ複雑さにこれほど大きな違いがあるのでしょうか?