絵描衛門と Nestopia

コメント欄の方以外にもお困りの人がいらっしゃいましたのでちょっと調べました。問題として Nestopia で nes ヘッダ(2.0相当)で RAM 容量を明示しても SKROM になってしまうとのこと。

nestopia のソースツリーには NstDatabase.xml というファイルがありまして、絵描衛門の CRCSHA-1 が登録されているものの RAM の容量が 8KB と誤って記述されています。これがどうも内部 database で、実行ファイルにはこれが単体では含まれていないのでコンパイルのようなことをしているみたいです。

プログラムソース自体はみていませんが、内部 database が有効になると ROM イメージに対する設定の優先度は内部 database ->nesヘッダとなるようです。解決方法としては内部 database の使用をやめることと、外部 database に切り換えることです。

外部 database はここではお馴染みの NesCartDB で配布されている xml ファイルが使えます。使えますが、絵描衛門の dump 情報はないので xml に勝手に情報を追記することで実現できます。

一応 Nestopia ではこれで直せますが、RAM 32KB の SXROM 対応をしている他のエミュレータに SXROM として読ませられるかは怪しいところです。unif で SXROM とするのが割ときれいにも思うんですが unif って普及して... ないですよね...

カートリッジ内の RAM 容量の問題というのは古い nes ヘッダに設定項目がないことや、分解しないとよくわからないこと、ゲームをある程度進めないと問題がわからないことなど3つあるんですよね。