連絡先 Hikwareホーム
Hikware.Tech
自分用の覚え書きをそのまま公開。参考程度にどうぞ。

久々のPC-9801起動とエミュレータ

公開日 2019/07/01
最終更新 2019/07/09
  • 10年ぶりくらいに PC-9801 を起動させたので、この際だからと可能な限りバックアップを取った覚え書き。
  • さらにそれをエミュレータで動作させるまでの覚え書き。

うちの PC-9801 について

  • EPSON PC-486HG (HG2) (PC-9801互換機)
  • 1993年発売。2000年頃入手
  • CPU: i486DX2 50MHz
  • MEMORY: 3.6MB (640KB + 3MB 標準搭載)
  • HDD: 外付SCSI 540MB (TAXAN IP-540E)
  • MIDIインターフェースボード: Roland MPU-PC98II
  • LANボード: MACNICA NE2098TP
  • サウンドボード: NEC PC-9801-86
  • 拡張ボード: I-O DATA RSA-98II/S (RS-232C) + SC-98SB (SCSI)
  • 外付5インチFDD: Computer Research CRC-FD5
  • OS: MS-DOS 5.0, MS-DOS 3.3D(古いゲーム用)

 親がかなり昔からパソコンを使っていたもので、コンピュータに初めて触れたのが幼稚園の頃の NEC PC-8801mkII。その後 PC-8801FH、EPSON PC-386VR と、ずっとPC-88/98系のパソコンとの付き合い。
 1998年に最初のAT互換機を組むまではずっと PC-386VR がメイン機だったが、その後も物書きなどは PC-386VR でやる事が多かった。

 この PC-486HG は2000年頃にたぶん友人から譲り受けたと思うのだが経緯を思い出せない。ほぼ使わなくなってからもずっと起動可能な状態で置かれていたが、2010年に今の家に引っ越してからはずっと押し入れの中。

 写真のモニター、三菱 RD17GII はPC-98にはオーバースペック過ぎだが、この写真を撮る際に24kHz対応の見栄えのいいモニターがこれしかなかったってだけで、昔はもっと相応なのを使ってた。

ドキドキの電源投入

 バックアップ電池が切れて時計が初期値に戻ってた以外、何の問題もなく完全動作。バックアップ電池は充電式なので、しばらく電源を入れておけば充電される。
 ちなみに、MS-DOS での日付設定は DATE、時間設定は TIME。完全に忘れてた。

 PC-98には水平24kHz対応モニターが必要。念のため残してた当時のCRTモニターなら問題なく使えるが、他の液晶モニターでも使えないか試したところ、非対応なはずの三菱 RDT1712V でなぜか映った(ただし640x400 が 4:3で表示されるので少し縦長)。これでやっとCRTモニターを処分できる!

 調べてみたら、今もPC-98が現役の工場とかもあるせいか、I/Oデータが今も24kHz対応の液晶モニターを脈々と作ってるぽい。専用のモニターって訳でもなく、今時のモニターにオマケで対応してくれてる感じなので、お値段も普通。

バックアップを取ろう

HDDのバックアップ

 基本的には LHA などで適当な単位で圧縮してメインPCに持っていくだけ。LHA で現在のディレクトリ以下をまとめて圧縮するコマンドは以下。

> lha a -rxa {圧縮ファイル名.lzh} *.* 

// lha a でファイル追加モード
// -r : サブディレクトリも対象
// -x : ディレクトリ名付きで圧縮
// -a : 隠し属性などのファイルも対象
// MS-DOS では全ファイルの指定は * ではなく *.* なので注意。

 問題は、PC-98側にはFDDしかファイルを持ち出す手段がないし、メインPCにはFDDの端子すらないので、メインPCにファイルを持っていく手段がない事だが、本機は当時としては珍しくLANボード装着で、DOS上でも ftp が使える状態だったのでアッサリ解決。むしろ メインPC側に ftp サーバーを立てる方が手こずった

 もし ftp も使えなかったとしたら、メインPCにUSB接続のFDDでも買うか(買ったところでHDD全コピーは無茶だけど)、もしくはPC-98の SCSI HDD をメインPCに直結するという手(後述)もあるが、これも手間だしそこそこ危険。

 他の注意点としては、コマンドラインの ftp を使う際にはバイナリモード (bin) にするのを忘れないように。デフォルトだとテキストモードなので、文字コード変換されてファイルが壊れる。

 バックアップファイルをメインPC上に持っていったら必ず試しに解凍して、総ファイルサイズの確認程度は行うべき。MS-DOSで総ファイル数やサイズを確認する手段としては以下。

> dir /a /s

// これで現在のディレクトリ以下の総ファイルサイズが分かる。
// ファイル総数も表示されるが、これにはディレクトリや ./ ../ なども
// 含まれてるのでアテにならない。

> chkdsk

// を使うと現在のドライブの正確なファイル総数とファイルサイズが分かるが、
// ファイルサイズは実際のサイズではなくディスク上の占有サイズ なので、
// これまたアテにならない。

フロッピーのバックアップ

 フロッピーはPC-98上で使える DCP というディスクコピーツールで簡単にイメージ化できるので、あとはそれをメインPCに転送するだけ!
 ‥‥と、思ってたのだけど、実際やってみると、DCPだと以下の問題がある。

  • MS-DOS フォーマットのフロッピー専用。Disk BASIC で使っていた物は不可
  • 読み込みエラー時の諦めが早く、エラーの時点でコピーをやめてしまう
  • ハード的に1.44MBのフロッピーが読める機種でも、1.44MBのコピーは不可。

 フロッピーのコピーなんて中身に関わらずセクタ単位で複写するだけと思ってたので、Disk BASIC のもダメとは思ってなかった。DCP でコピーできない場合は他のツールを使うしかないが、今更 PC-98 用のツールを探すのも一苦労なので、後述の PC-98 エミュレータ、T98-NEXT 用のイメージ作成ツール、NFDMAKE を使う事に。

 NFDMAKE なら DCP では非対応のフロッピーもイメージ化できるし、どんなにエラーだらけでも根気強く可能な限りイメージ化してくれるが、DCP に比べると時間がかかり、エラーリトライが多発すると1枚で30分とかかかる事も。
 あと、DCP にはフロッピーに書き戻せるというメリットもあるので、DCP でコピーできる物は DCP、ダメなら NFDMAKE と使い分ける事にした。

 DCP、NFDMAKE ともディスクイメージは独自形式だが、Windows側で VFIC というツールを使えば扱いやすい形式にコンバートできる(後述)。

 ちなみに逆のアプローチとして、AT互換機でFDDが読めるのであれば、Windows上でイメージ化する手もある。僕は試してないけどリンクだけ。

エミュレータでバックアップしたデータを動かす

エミュレータ選び

 せっかく全データのバックアップを取ったならエミュレータで動かしてみたくなるのが人情というもの。Windows 上で動く PC-98 エミュレータは昔から多々あるが、T98-NEXTNeko Project II は 64bit の Windows にも対応してる模様。公式サイトはどちらもそっけないので、下2つのリンクが分かりやすくてオススメ。

 使ってみた感想としては、T98-NEXT の方がキビキビ動くし機能も充実してそうだけど、たまに動作しないソフトがあるので結局両方とも使う事に。HDD の再現などは基本的に T98-NEXT で行い、Neko Project II はフロッピー起動専用で。
 Neko Project II でだけ動いた物としては以下。どちらとも僕にとっては致命的。

  • EPSON 版の日本語 Disk BASIC のディスク。NEC 版なら動くのかは不明。
  • MOBILE DELIVERY (※将来ゲーム屋になると人生決めた2大ゲームの1つ。もう一つは ガンスターヒーローズ

T98-NEXT で環境が整うまでにやったこと

  1. T98-NEXT 本体 (今回は Next20100525.zip) ダウンロード

  2. 実機用ツール (今回は ntool007.lzh) ダウンロード

  3. T98-NEXT をとりあえず起動して、なんとなく使い方を把握する。メモリなどの設定はできるだけ実機に合わせておく。

  4. 実機上で DCP で作ったフロッピーイメージ *.dcp はそのままでは使えないし、NFDMAKE で作った *.nfd も T98-NEXT でしか使えないので、下記 VFIC を使って両エミュレータが対応する形式にコンバートしておく。
    単純なべたイメージならよかろうと思ったら、Disk BASIC のイメージはべたに変換できないようで、D88 形式ならどんなイメージからでも変換できるし、両エミュレータ対応 なので、それがいいぽい。

  5. フロッピーでひとしきり遊んだら次はHDD。T98-NEXT 上で空のHDDイメージ (*.nhd) を作成。指定したサイズそのものの巨大ファイルが作られるので、過不足ないサイズをよく考えて決める。後でサイズ変更はたぶん不可。

  6. MS-DOS のフロッピーイメージで T98-NEXT を起動し、FORMAT.EXE でHDDイメージに実機と同じようにパーティションを作ってフォーマット、システム転送。

  7. HDD イメージ編集ソフト、DiskExplorer をダウンロード。*.nhd を開き、バックアップを取った全ファイルを全部流し込む。ただし 元からあるシステムファイルは上書きしない事

  8. 以上で実機とほぼ同じ環境。大抵のものは問題なく動く。実機にしかない拡張ボードのデバイスドライバなどは当然エラーになるので、CONFIG.SYS と AUTOEXEC.BAT を適宜修正。

  9. 実機用ツール一式を実機に転送し、ROMMAKE.EXE で実機からROMを吸い出す。吸い出した *.ROM ファイルは T98-NEXT と同じフォルダに置き、T98-NEXT の Rom の設定も適宜チェック。
    実機ROMはなくても動作するが、実機があるなら吸い出した方がより完璧。 EPSON機特有の丸っこいフォントになって感激。

本当は実機のHDDイメージをそのまま吸い出したかった

 上記手順で実機とほぼ同じ環境が再現できたが、元々は 実機のHDDを丸ごと吸い出し、そのままそれを *.nhd にして楽をする つもりだった。詳しくは下記参考サイト。
 HDD を丸ごと吸い出せれば、パーティションや起動情報も含めてバックアップできるので再現が楽な一方、元のHDDの全サイズそのものの無駄に大きなファイルになるし、HDD内のファイルを Windows 上で見るのが一手間面倒という短所も。

 はるか昔に使っていた PCI の SCSI ボード、Adaptec AHA-2930CU が残っていたので使えるが、64bit版のドライバは存在しないので、もう半ばムキになって古いPCに WindowsXp を今更インストールまでしたものの、いざ getdrive.exe を実行してみたところ、セクタエラーなのか他の問題なのか、540MB 中の 10MB ほど吸い出した所で唐突に終了。
 WindowsNT版もDOS版も何度やっても同サイズで終わるし、このツールではエラーの詳細も分からないので、これ以上の直接吸い出しは諦めましたとさ。

 いろいろ調べてたら、他にもほぼ同じことができると思われる DRVCPY.EXE というソフトもあるぽいけど、そちらは検索しても EXE はみつけられず。ご本人のページが残っているのにこのソフトのページは消されてるので、理由があって公開をやめたのかな。

 ちなみに、丸ごと吸い出すのとは別に、Windows から PC-98 のHDD上のファイルに無理矢理アクセスする方法もあるようだけど、HDDの一部書き換えが必要なので万一使用不能なったらヤだし、結局試さずじまい。PC-98とのファイルの転送手段が一切ないのなら最後の手段として使えるので、一応覚えておこう。