あついな。熱すぎるぜ。

仕様のわからないプロセッサーの解析というのは、チップを基盤から剥がし、カバーを取り除き、電子顕微鏡で撮影することから始まる。非常に手間と技術のかかる作業である。bsnesの作者は最近、その技術をもつ人間を見つけたらしい。しかし、解析にはカネがかかる。そんなわけで、作者はここ数年寄付を募っていた。その寄付によって、これまで仕様が判明していなかった、DSP-1、DSP-2、DSP-3、DSP-4、ST010、ST011、ST018、Cx4を解析できたそうだ。

それ以前にも、bsnesはSPC7110を世界ではじめてエミューレートし、またサイクル一致の SPC700、 SuperFX、スーパーゲームボーイのエミュレーションを始めて実装したエミュレーターでもある。最後のスーパーゲームボーイは重要である。なぜならば、スーパーゲームボーイスーパーファミコン上で動くので、完全なスーパーファミコンエミュレーターを目指すならば、当然スーパーゲームボーイも漏らしてはならない。

さて、最後に残ったのはST018である。これはたった一つのソフトにしか使われていない非常に珍しいプロセッサーである。ソフトの名前は、「早指し二段 森田将棋2」。将棋ソフトは処理速度を必要としたので、独自プロセッサーをカートリッジ側に搭載したのも分かる話だ。

その解析裏話も面白い。どうやら、ST018にはデバッグコマンドがあり、プログラムや内部ROMをダンプする機能があった。デバッグコマンドを実行するのは難しいが、Blarggというこれまた有名なエミュレーター作者によって、スーパーファミコンにシリアルポートをつなぎ、PC側から任意のコードを実行させることができるツールが提供された。さて、ダンプはできたのだが、一体どのような言語なのかわからない。そのバイナリを実行するHLEコードもない。幸運なことに、Cydrakなる人物がバイナリを一目見ただけで、ARMv3 CPUだと鑑定してくれたので、実装を終えることができた。

むかーし、X68k用、Mk3エミュ(Preliminary)を書いたのは色々勉強になった、いい思い出だ。