PC98エミュレータ計画


(2000年2月1日)

 ここにVirtual98 0.28という、Windows上で動かせるPC-98エミュレータがある。PC-9801の386マシン相当のエミュレータだという。動かすにはPC-9801の386マシンが必要(BIOSなどを持ってくる必要がある)が、うちには98DA2がある。286相当のエミュレータが多い中、こいつは386のエミュレーションをしてくれる。
 また、ここにはDiskExplorer1.41+という、Virtual98で作ったHDDイメージの操作ができるツールがある。(実行ファイル名はeditdisk.exe)

 他のエミュレータと比べるとVirtual98とeditdiskさえ用意すれば使えるので、手を出しやすい。ただし、比較的重い(らしい)。

やるべきことは、
  1. MKBIOS.EXEをPC-98上で実行してBIOS.ROM、SOUND.ROM、ITF.ROMを作る。更にMKFONT.EXEも実行してFONT.ROMを作る。
  2. MKFDD.EXEを98上で実行して、PC-98の起動ディスク(DOSで、せめてFORMAT.EXEが入っているもの)のイメージを作る。例えばMKFDD A: DOS5.FDD。
  3. できた5ファイルをWindowsマシンに持ってくる。私はPC-98との間にLANがあるので楽だ。というか、LANかMOかがなかったらやっていなかっただろう。
  4. Virtual98.exeをWindows上で実行する。ピポッて音と共にメモリカウントして起動するはず。メニューバーでOptionのBOOT from HDDのチェックを外して、FDD1メニューで2.で取ったイメージファイルを指定すると、DOSが立ち上がる(はず)。
  5. FileメニューのNew Disk->HDDでディスクを作る。例えばDOS5.HDD。
  6. メニューのHDDでそのファイルを指定し、DOSイメージのFDDで立ち上げて、FORMATを実行。固定ディスク、初期化、領域確保し、立ち上げなおしてフォーマット+システム転送する。
  7. ここでOptionのBOOT from HDDのチェックを入れてFile->Resetをすると、今度はHDDで立ち上がる(はず)。

 ここで、PC-98のHDDにあったシステムをVirtual98上に持ってくる方法を考える。ラッキーなことにここにeditdiskという、HDDファイルとWindowsの間でファイルをやり取りできるツールがある。
  1. 何らかの方法でPC-98上のファイルをWindows上に持ってくる。私はLANを使って1G程の全データを持ってきた。
  2. Virtual98を終わらせて、editdiskを立ち上げてDOS5.HDDを指定して、一覧の中からVirtual98ハードディスクを選ぶ。
  3. 出てきたエクスプローラ風画面の中に入れたいファイルやディレクトリをWindowsのエクスプローラからドラッグ&ドロップする。
  4. で、Virtual98を立ち上げると、全データが移っている(はず)。
  5. 昔のゲームを懐かしんで堪能するなり、一つ一つ動くか確かめるなり、ご自由に。

 注意点(あるいは私のはまりパターン)を書いておく。

これによって私のWindowsディスクは3G程侵食されてしまった。


 100本くらいあったゲーム(含む386マシン用)のうちのほとんどは動いているので、エミュレーション度はかなり高い。動かせなかったのは5本ほど。理由ははっきりしない。空軍大戦略が動かないのはちとショック。リアルタイムもの(例えばエースコンバット3)なんかは結構きつい。し、386を要求するゲームもちょっと重い。起動後1分くらい待たせるようなものもある(がとりあえず動く)。

 Virtual98.iniにIPS(Instruction per second)という項目があるが、これを増やすとPC-98のCPUが速くなる。が、I/O系(グラフィックとか音とか)にパワーが回らなくなるので、飛び飛びに表示されたり音がめちゃくちゃになったり、妙に重くなったりする。特に386のモードで動くもの。うちではCeleron300A(600にしている)で、1000000でいいぐらい。98DA2位で動いている気がする。つまりちょびっと遅い。EMM386を入れるとちとつらい。1500000にすると、それなりに軽くなるのだが、一部のゲームではめちゃくちゃ重くなっていた。1000000の時にシステムモニタで見ると、CPU使用率が普段は50-60%だが、サウンドが入ると100%になってしまうこともあった。エミュレーションの負荷が偏るせいだと思う。

 PC-98エミュレータのページとしてはここがある。

 ちなみに0.28で明らかに動かなかったのは、闇の稜線、黒の断章、交換日記2、タブー、煩悩予備校2、エアーコンバット3、F19、空軍大戦略。
DISPELL
VFONT
AVTconv
VFIC
(2000年2月5日)

 どうしても動かなかったソフトがあるので、別のエミュレータを試すことにする。動作確認リストを見てみると、どうやらANEX86も互換性が高いようである。ここの中で必要なモジュールは、
anex86dx.zip
である。BIOSもFONTも実機から取ってくる必要はないが、FDDのイメージは必要。FDDのイメージは、単なるべたイメージなので作るのは簡単だ。私はここにあった...というソフトをPC-98上で動かしてDOS5.0を採取した。(ちなみに私はDOS5.0とWindows95の起動ディスクしか持っていない。)
どうやら世の中の人はPC-98を持っていてBIOSやイメージを取ることができても、Windowsマシンに持ってくることで難儀することが多いもよう。だからANEX86でもBIOSやFONTは不要にして、FDDイメージを取るのはWindows上で可能にしているもよう。ちょっと納得。
で、ANEX86.EXEを動かす。FDDファイルを指定してStartボタンを押すのだが、ちょっとウインドウが出てすぐに閉じてしまう。どうやらNECチェックにかかっているもよう。探すとここにDISPELLというチェック外しツールがあり、イメージファイルに対して直接外せるもよう。さっそく実行してみると、無事にDOSが起動できるようになった。で新たにHDDイメージを作って(80Mバイトまでしかできない)、フォーマットしてHDDから起動できるようにし、editdiskを使ってゲーム(Virtual98で動かなかったもののみ)をHDDに放り込む。
そして動かしてみると、Virtual98ではだめだった
闇の稜線も黒の断章も交換日記2もタブーもエアーコンバット3もF19も空軍大戦略もちゃんと動いてくれたのだった。すばらしいぞ!ANEX86 2.1.1.106。というか、ちゃんと機械をエミュレーションしているはずのVirtual86でなんでだめなのかがちょっと不思議。ただ、はANEX86でも動かなかった。というか、本当に実機で動いたのか?って感じ。起動すると即座に不正な割り込み50Hで終わる。
ANEX86はVirtual98と比べると、軽い。音と画面の同期を取っていない。残念なことにHDDイメージが(付属のものでは)80Mバイトまでしか作れない(2台付けることは可能)。上位ゲームを入れるだけで80Mバイトでは足りなかった。また、いろいろなオプションモジュールも出回っている。集めて回るのがしんどいので試していないが。
せめてHDDが大きくできればもうちょっと試せたのだが...さすがに多くのHDDイメージを作る気にはならなかった。
というか、user定義でトラック数を増やせばよかったのか?
また、ディスクイメージはこのツールで変換できる(変換できるものの制限があると、ドキュメントには出ている)。

(2000年2月6日)

 ANEX86でHDDを大きく作って動かす。Virtual98で試したゲーム類を放り込んでおく。困ったことにDOS5.0では大きな容量のHDDが使えないため、500MB程にする(大きく過ぎるとアロケーション数が30000程に減らされてしまう)。一応2ドライブ作る。次々に起動を試してみると、
雌猫秘書室、私、悪夢、688、ロンメル、ハープーン、戦略空軍、バランスオブパワー、千恵美、ノバ、しゃぶり姫、など(他にもあり)がだめだった。ただ、動くものはVirtual98に比べるとずっと速い。 はだめだった。

坂井瑞穂