簡易ROM吸い出しツール
実機本体ROMからデータを吸い出すツールです。
ROMSAVEはスロットにあるデータをファイル化、KANSAVEは漢ROMをファイル化、PANA2M,4Mはパナソニックマッパーのデータをファイル化します。
こういうツールも、探すと見つけにくかったりするような気がして作りました。
DOS用のプログラムとなります。
ダウンロード
ROMSAVE
各スロットのデータをファイル化します。
[使い方]
ROMSAVE FILENAME SLOT PAGE [OPTION]
-
FILENAME
保存するファイル名を指定します。例:DISKROM.ROM
-
SLOT
保存するスロットを指定します。例:拡張有り=3-2、拡張無し=3
-
PAGE
保存するページを指定します。例:範囲指定=0-2、1ページのみ=2
-
[OPTION]
FDCのレジスタが出ているアドレス(付近)は読み込みをスキップします。
スキップしないと、ファイル書き出し中にFDCのレジスタに影響を与えてしまいフリーズすることがあるようです。
省略した場合、スキップ処理は行いません。
0=7FF0H~7FFFHをスキップ。TC8566用?
1=7F80H~7F87Hをスキップ。
2=7FF8H~7FFFHをスキップ。
3=7FB8H~7FBFHをスキップ。
4=7FB8H~7FBCHをスキップ。
※所持しているのがTC8566機しか無いため、1~4は完全に未検証です。
KANSAVE
漢ROMのフォントデータをファイル化します。
第2水準までファイル化するので、第1水準しか搭載しない機種では第2水準分は豆腐になっています。
[使い方]
KANSAVE FILENAME
-
FILENAME
保存するファイル名を指定します。例:KANROM.ROM
PANA2M,PANA4M
FX除く2+以上の#3-3にあるパナソニックマッパー上のデータをファイル化します。
PANA2Mが2+用で、2MBのファイルを512KB単位で出力します。出力ファイル名PANA0.ROM~PANA3.ROM。
PANA4MがturboR用で、4MBのファイルを512KB単位で出力します。出力ファイル名PANA0.ROM~PANA7.ROM。
出力ファイルが大きいので、FD4枚、あるいは8枚必要です(1枚でPCにファイルコピー後に削除して使い回すことも可能ですが、面倒です)。
ESCキーで中断ができ、オプションにより任意のファイルから作成することができます。
こちらのテストも限定的なので、上手く動作しない部分があるかもしれません。
[使い方]
PANA2M [OPTION]
PANA4M [OPTION]
-
[OPTION]
[OPTION]はファイル番号0~3、もしくは0~7を入力します。省略すると0と同等です。
入力したファイル番号からファイルを作成します。途中で終了して続きからやり直すためのオプションです。
PanaMerger
簡単なWindows用ツールです。上記プログラムで出力したファイルを1つのフォルダに入れ、そのフォルダをドロップすることで、PANA0.ROM~PANA7.ROMあるいはPANA3.ROMのファイルを結合して、PANAROM.ROMを出力します。ファイル名固定です。
使用例
まず吸い出したい実機の構成を調べます。
https://www.msx.org/wiki/Main_Pageで、MSX Hardwareの項を見ます。
その中のMSX Computersの中から、調べたいMSXのタイプを選択し、具体的な機種のページへ飛びます。
Panasonic FS-A1WXの例
機種のページで、Slot Mapの項を探します。
その中の、Main-ROM、MSX-Music、Kanji driver、Sub-ROM、Disk ROMをROMSAVEで吸い出します。
Panasonic mapperはPANA2Mで吸い出します。
漢ROMは単純に
KANSAVE KANROM.ROM
とするだけで保存できます。
Main-ROMの場合、スロット#0-0、0000H~7FFFHのページ0~1にデータがあるので、
ROMSAVE MAINROM.ROM 0-0 0-1
と、こんな感じで指定します。ページ範囲指定は昇順に並べる必要があります。
MSX-Musicの場合は、スロット#0-2、4000H-7FFFHのページ1にデータがあるので、
ROMSAVE MSXMUS.ROM 0-2 1
このような要領です。
Disk ROMの吸い出しだけ注意が必要です。
特定アドレスは読み込みをパスする指定をします。
FS-A1WXのFDCはTC8566AFなのでオプション0を指定し、
ROMSAVE DISKROM.ROM 3-2 1 0
こうすることでフリーズを回避しファイルに保存できます。
他のFDCの機種では試せないので上手くいくかは不明ですが、フリーズしないオプションを探すことになろうかと思います(どのオプションでも上手くいかない場合は、このプログラムでは無理です)。
Panasonicマッパーのように一部にRAMのデータがあったり、Disk ROMのようにスキップしたデータはハッシュ値が変わります。
openMSXなら機種構成のxmlに手を加えて、吸い出したROMデータの<sha1>を追加して認識するようにします。
Panasonic FS-A1STの例
turboRはスロットからデータを吸い出すのではなく、Panasonicマッパーに各スロットのデータも含まれるようなので、Panasonicマッパーと漢ロムを吸い出すだけで良いようです。