エミュレーション型レトロゲーム/パソコン互換機

f:id:juangotoh:20171007191913p:plain
www.gizmodo.jp
 任天堂クラシックミニ シリーズみたいに、懐かしいコモドール64をミニサイズで再現したもの。やはりゲームソフトをあらかじめ内蔵して、基本的にはそれを遊ぶようにできている模様(名前に因んでか、64種類のゲームが内蔵されている)。

 このTHE C64 MINI のハードウェア構成は今のところ公開されていないが、おそらく任天堂クラシックと同様、ARMアーキテクチャのSoCでLinuxカーネルを走らせ、その上でコモドール64エミュレーターを動かす形式だろう。

 以前ディスカウントショップやオークションで流れていた中国製ファミコン互換機は、CPUとPPUを1チップ化して小型化してはいても、基本ファミコンの回路を互換性を持つ形で再現していた。2006年に発売された1チップMSXの場合、FPGAMSX互換ハードウェアを組んでいた。この時代にもパソコン上でファミコンMSXを実用的な速度でエミュレートすることは可能だったが、パソコンとなると高価で大きく、余計な機能が多い。また、組み込み向けのSoCの価格性能比もまだこなれておらず、中国で大量に製造されたらしきファミコン用チップや、FPGAでの再現のほうがお得だったのだろう。

 2012年に登場した、Raspberry Piが、エミュレーションの時代を開いたのではないだろうか。数千円程度で、小さな基板上に十分な速度とメモリを持つCPU、USB、HDMIを持ち、そのままデスクトップLinuxが動作する。Raspberry Piレトロゲーム機にするRetroPieというプロダクトも登場している。
retropie.org.uk

 2014年には、Retron5が登場。5種類のゲーム機のカートリッジを刺して遊べるマルチゲームマシンだが、これはカートリッジを刺すと、ROMデータを内蔵ストレージにコピーして、それを遊ぶという形になっている。カートリッジを刺してすぐさま遊べる昔のゲーム機とはちょっと趣が違うのだ。その後出たレトロフリークも同様である。

 これらのマルチゲーム機はソフトウェアエミュレーションで動いているため、カートリッジのROMをそのままエミュレートされたゲーム機のメモリにマッピングできない。工夫次第ではできるだろうが、リアルタイムでカートリッジ上のROMにアクセスする場合エミュレーターのヒープ上のRAMに比べてとてつもなく遅くなるだろう。そもそもゲームカートリッジは80年代の遅いCPU、遅いバスで動くように設計されている。また、パソコン用に書かれたエミュレーターはROMを直に読むようにできていない。普通はROMを吸い出したファイルシステム上のROMファイルをメモリに読み込んでから実行される。要するに、この種のマルチゲーム機は、ROM吸出し機+ゲームエミュレーターという構成になっていると思われる。

 そこで、任天堂クラシックシリーズが取った方法は、筐体をカートリッジが入らないミニサイズにして、ゲームは製造時にあらかじめ基板上のメモリにファイルとして格納しておくという方やり方だ。この方法ならカートリッジスロットに何十本もの線を接続する必要もなくなり、より製造工程も単純化でき、コストも下げられる。 THE C64 MINIも任天堂のやり方を真似たのだろう。

 さて、MSXも今の時代なら同じ方法で1チップMSXより安価に製造できるだろうが、やはりカートリッジによるハードウェアの拡張なども多かったことを考えると、任天堂方式でカートリッジ機能を殺したり、Retron5方式のROM吸い出しで済ませるのはよろしくない。カートリッジがエミュレーター上でしっかりZ80にバスを通してつながってるような形のエミュレーターを作成できればいいのだけど、どうだろうか。