- リンクを取得
- ×
- メール
- 他のアプリ
今回PC-9821を入手した主目的、フォント等のダンプ、いわゆる吸出し作業についてのメモです。
今回はPC-9821を前提として書いていますが、PC-9801にも概ね適用可能です。ただしSL9821はPC-9821を前提としているため、PC-9801からはダンプできないROMがあると思われます。
まず初めに、PC-98エミュレーターの種類についてまとめておきましょう。
開発状況については、2022年から3年以内に更新があったかどうかで判断しています。
(調べた限りを載せたのでかなり古い物も載っています)
名前 | 略称 | 開発状況 | プラットフォーム | 備考 |
Neko Project II | np2 | 停止 | Win (32bit/64bit), MacOSX | np2系のオリジナル |
Neko Project II fmgen版 | np2fmgen | アクティブ | Win (32bit) | np2の音源部違い&改良 |
Neko Project II (NP2) 改変 | np2kai | アクティブ | UNIX系, Linux (Raspberry Pi), Win (64bit) | np2piの改造版, libretroあり |
Neko Project 21/W | np21w | アクティブ | Win (32bit/64bit) | np21の改造版, 9821系のエミュ |
DOSBox-X | dosbox-x | アクティブ | Win (32bit/64bit), Linux, macOS | DOSBoxの改造版 |
SL9821 | sl9821 | アクティブ | Win (32bit/64bit), macOS | 2016年初版のフルスクラッチエミュ |
T98-NEXT | t98next | 停止 | Win (32bit) | t98の改良版(同作者) |
Anex86 | anex86 | 停止 | Win (32bit) | 正確にはEPSON PCエミュ |
PC98E | pc98e | 停止 | Win (32bit), UNIX系 | 最初期のPC-98エミュ |
Virtual98 | v98 | 停止 | Win (32bit) | |
T98 | t98 | 停止 | Win (32bit) | |
たま | np2-tama | 停止 | Win (32bit) | np2の改造版 |
xnp2 | xnp2 | 停止 | UNIX系 | np2のX Window移植 |
Neko Project IIx | np2x | 停止 | MacOSX | np2およびxnp2のOSX移植版 |
Neko Project 21 | np21 | 停止 | Win (32bit) | np2サイトの「お察しください」 |
NP2 for Raspberry Pi | np2pi | 停止 | Linux (Raspberry Pi) | np2のRasPi移植 |
このうち全てのエミュレーターで実機のBIOSやフォントが必須というわけではありませんが、特に実機と同様のフォントを表示したい場合は実機のフォントROMが必須となります。
(モノによりますが、MSゴシックを代替フォントとして読みこむものや、代替フォントデータもあったりします。代替フォントデータはDOSBox-Xのドキュメントが詳しかったりします。)
必要なデータはエミュレーターによって異なりますが、大まかには
・BIOS.ROM - BIOSプログラム
・FONT.ROM - フォントROM
・SOUND.ROM - NEC製86音源機能が搭載されている場合に存在?(内蔵/ボード)
の三種類と、場合によっては
・ITF.ROM - 初期化プログラム?BIOSの補助的役割?
を読みこめるケースが多いです。(np2系、T98-NEXT、Virtual98等)
挙げた中のアクティブなものでは、SL9821が他のエミュレーターと異なるROMを要求するようになっています。(FONT.ROMと同一でないFONT.DAT等)
一通り使いそうなエミュレーターで要求される実機ROMのタイプを調査したので、ダンププログラムはどれを使えばいいのかを検討します。
見つけた範囲で試したダンププログラムの生成物リストが以下です。
ツール名 | テスト時アーカイブ名 | BIOS.ROM | FONT.ROM | SOUND.ROM | ITF.ROM | その他 |
GETBIOS.COM | np2_getbios.zip | OK | OK (Fill=0x00) | OK | NG | 無し |
MAKEFONT.EXE | np2_makefont.zip | NG | NG | NG | NG | FONT.BMP |
ROMMAKE.EXE | ntool007.lzh | OK | OK (Fill=0xFF) | OK | NG | 無し |
MKBIOS.COM | v98tools.lzh | OK | NG | OK | OK | 無し |
MKFONT.COM | v98tools.lzh | NG | OK (Fill=0xFF) | NG | NG | 無し |
MKROMIMG.EXE | forPC-98_160803.zip | OK | NG | OK (=SNDBIOS.ROM) | OK | BANK.ROM, IDEBIOS.ROM, SCSIBIOS.ROM, FONT.DAT(≠FONT.ROM) |
RECRTM.EXE | forPC-98_160803.zip | NG | NG | NG | NG | RHYTHM.DAT |
GETITF98.EXE | itf98220.zip | OK (=BANK5+6+7+0) | NG | NG | OK (=BANK4) | BANK1.BIN, BANK2.BIN, BANK3.BIN |
実際にそれぞれでダンプして、バイナリ比較で一致したもの同士でOKを入れてあります。
このように並べてみると、結構被っているものが多いですね。
FONT.ROMにカッコ書きがあるのは、ダンプした内容が若干異なっていたが、実用上影響がなさそうな部分だったため全てOKとしました。これらの違いは、空データ部分を0x00で埋めているか、0xFFで埋めているかの違いのようです。具体的なアドレスは、
・0x43800-0x4381F
・0x44400-0x4441F
・0x45000-0x4501F
・0x45BFF-0x45C1F
の5つの範囲のみです。GETBIOS.BINで取得したFONT.ROMでは、上記範囲が0x00で、ROMMAKE.EXEおよびMKFONT.COMで取得したFONT.ROMでは、上記範囲が0xFFで埋められているというだけの差異です。
どちらかのダンプしか持っていないという人で、何かハッシュ値が合わないという場合などには情報をお役立てください。
ちなみにlibretro版np2kaiの要求ROMリストに書いてあるハッシュ値は、0xFF埋め版です。EPROMなどの未書き込み領域(=初期値)は0xFFなので、この事からも恐らく0xFF埋め版が正しいものと思われます。
FONT.ROMの問題を踏まえた上で、使うべきツールを考えると…
[最小] MAKEFONT.EXE + MKBIOS.COM + MKFONT.COM (SL9821を使わない場合)
[ベター] MAKEFONT.EXE + ROMMAKE.EXE + MKROMIMG.EXE + RECRTM.EXE (np2系などとSL9821一式)
[最大] GETBIOS.COM + MAKEFONT.EXE + MKFONT.EXE + MKROMIMG.EXE + RECRTM.EXE + GETITF98.EXE (全パターン網羅)
こういったパターンが考えられますね。
自分は検証のために上表の全てのツールを試しましたが、全部で4回ほどFDを起動し直しました。フォントのダンプを行うと容量不足で止まったり、終わっているように見えても実は不完全なケースがあったりするので、フォントのダンプを行ったらデータを取り出す作業が必須になると考えた方がよいです。
HDD上で行う場合は、まとめてやってもさすがに余裕で足りると思います。全てのツールからのダンプデータの容量を足したサイズは2.6MBytes程度でした。
2022/10/04 初版
2022/10/04 前記事へのリンクを追加
コメント
コメントを投稿