2022/11/26(土) [n年前の日記]
#1 [windows][pc] DOSBox-X上でWindows98をインストール
Windows10 x64 22H2 + DOSBox-X 2022.09.0上でWindows98 FE (First Edition) をインストールできたので手順をメモ。
以下は証拠画像。DOSBox-X 上で Windows98 が動いていて、更に、Windows98上で、Windows95時代のドローソフト、G.CREW 5 を動かしている。
自分のメインPCは、CPU が AMD Ryzen 5 5600X なので、VMware + Windows98 や VirtualBox + Windows98 が正常動作しない。DOSBox-X、PCem、86Box なら、動作は遅いけど一応 Windwos98 も動いてくれる。
以下は証拠画像。DOSBox-X 上で Windows98 が動いていて、更に、Windows98上で、Windows95時代のドローソフト、G.CREW 5 を動かしている。
自分のメインPCは、CPU が AMD Ryzen 5 5600X なので、VMware + Windows98 や VirtualBox + Windows98 が正常動作しない。DOSBox-X、PCem、86Box なら、動作は遅いけど一応 Windwos98 も動いてくれる。
◎ マウスキャプチャについて。 :
作業前に把握しておいたほうが良さそうな点をメモ。
DOSBox-X 2022.09.0 + Windows98 のウインドウ内をクリックすると、マウスカーソルの動きがキャプチャされて、ウインドウ内でしかマウスカーソルを動かせなくなる。
Windows10側にマウスカーソルを戻したい時は Ctrl + F10 キーを叩く。DOSBox-X のウインドウタイトルバーにも、「Ctrl+F10 releases mouse」と表示されている。
ちなみに、PCem の場合、Ctrl + End キーがマウスカーソルの解放になってる。
DOSBox-X 2022.09.0 + Windows98 のウインドウ内をクリックすると、マウスカーソルの動きがキャプチャされて、ウインドウ内でしかマウスカーソルを動かせなくなる。
Windows10側にマウスカーソルを戻したい時は Ctrl + F10 キーを叩く。DOSBox-X のウインドウタイトルバーにも、「Ctrl+F10 releases mouse」と表示されている。
ちなみに、PCem の場合、Ctrl + End キーがマウスカーソルの解放になってる。
◎ 設定ファイルを調整。 :
以下を参考にして、Windows98用の設定ファイル、win98.conf を作成する。
_Installing Microsoft Windows 98 in DOSBox-X
設定ファイル win98.conf を指定して、DOSBox-X を起動。
exit と打てば終了できる。
_Installing Microsoft Windows 98 in DOSBox-X
設定ファイル win98.conf を指定して、DOSBox-X を起動。
dosbox-x.exe -conf win98.conf
exit と打てば終了できる。
◎ NIC NE2000を有効にしておく。 :
DOSBox-X + Windows98 でネットワークを利用可能にするために、DOSBox-X が内蔵してる NIC (NE2000互換) の機能を使えるようにするのだけど、そのためには、Windows10 に Npcap というプログラムをインストールして、Windows10が使ってるNICの種類を調べないといけない。
_Npcap: Windows Packet Capture Library & Driver
_Windows 10でのWinPcap代替 = Npcap - 滴了庵日録
元々は WinPcap というプログラムが必要だけど、WinPcap は Windows10上で動作が不安定なので、代替として Npcap が使われている。Npcap のインストール時に、「Install Npcap in WinPcap API-compatible Mode」にチェックを入れておくことで WinPcap の代替になる。
今回は Npcap 1.71 installer (npcap-1.71.exe) を使ってインストールした。
ちなみに、Wireshark というツールをインストールする際にも、追加で Npcap をインストールできるらしいけど。
_「Wireshark」ネットワークプロトコルアナライザー - 窓の杜
先にこちらを試してみたら、Windows10 x64 22H2 がブルースクリーンになった…。Npcap だけインストールしておくことにする。
さておき。Npcap インストール後、DOSBox-X の設定ファイル (.conf) を確認。NE2000関係の設定をしておく。IRQ : 10, Address : 0300 - 031F で使うことを前提にする。
DOSBox-X を起動。ヘルプ → ネットワークインターフェースの一覧、を選択。大量にリストが表示される。このリスト表示をするために、Npcap が必要になる
この中に、NE2000 として利用できる指定があるはずだけど、この見た目では把握しづらい…。コピペもできない…。
DOSBox-X の設定ファイル (.conf) 内でログファイルを指定して、そちらにログを残してみることにする。
DOSBox-X に --debug をつけて起動することで、ログファイルに大量の情報が出力される。
log.txt の中から抜粋してみる。
この中のどれかを指定すればいいらしい。
設定ファイル (.conf) を修正。「realnic = list」となっていた部分を変更する。
realnic には、数値、もしくはNIC名を記述できる。
以下、参考ページ。
_Setting up networking in DOSBox-X
_Npcap: Windows Packet Capture Library & Driver
_Windows 10でのWinPcap代替 = Npcap - 滴了庵日録
元々は WinPcap というプログラムが必要だけど、WinPcap は Windows10上で動作が不安定なので、代替として Npcap が使われている。Npcap のインストール時に、「Install Npcap in WinPcap API-compatible Mode」にチェックを入れておくことで WinPcap の代替になる。
今回は Npcap 1.71 installer (npcap-1.71.exe) を使ってインストールした。
ちなみに、Wireshark というツールをインストールする際にも、追加で Npcap をインストールできるらしいけど。
_「Wireshark」ネットワークプロトコルアナライザー - 窓の杜
先にこちらを試してみたら、Windows10 x64 22H2 がブルースクリーンになった…。Npcap だけインストールしておくことにする。
さておき。Npcap インストール後、DOSBox-X の設定ファイル (.conf) を確認。NE2000関係の設定をしておく。IRQ : 10, Address : 0300 - 031F で使うことを前提にする。
[ne2000] ne2000 = true nicbase = 300 nicirq = 10 macaddr = AC:DE:48:88:99:AA backend = pcap [ethernet, pcap] realnic = list timeout = defaultbackend = pcap、realnic = list を指定しておく。もし、この指定で動かない場合は、backend = slirp にして試すらしい。
DOSBox-X を起動。ヘルプ → ネットワークインターフェースの一覧、を選択。大量にリストが表示される。このリスト表示をするために、Npcap が必要になる
この中に、NE2000 として利用できる指定があるはずだけど、この見た目では把握しづらい…。コピペもできない…。
DOSBox-X の設定ファイル (.conf) 内でログファイルを指定して、そちらにログを残してみることにする。
[log] logfile = D:\home\emu\prg\DOS\DOSBox-X\log.txt debuggerrun = debugger
DOSBox-X に --debug をつけて起動することで、ログファイルに大量の情報が出力される。
dosbox-x.exe -conf win98.conf --debug
log.txt の中から抜粋してみる。
Network Interface List ------------------------------------------------------------- 01 rpcap://\Device\NPF_{B2D2AF0E-CDC8-4ED1-BDB8-A7D15529672D} (Network adapter 'WAN Miniport (Network Monitor)' on local host) 02 rpcap://\Device\NPF_{88B4CB1A-33BE-446E-B94A-5DF8C71915BD} (Network adapter 'WAN Miniport (IPv6)' on local host) 03 rpcap://\Device\NPF_{FB7380C5-C893-4AEE-81D2-B5D21F9544BB} (Network adapter 'WAN Miniport (IP)' on local host) 04 rpcap://\Device\NPF_{220C3716-A969-46A3-82C3-05E21E6CA01B} (Network adapter 'VMware Virtual Ethernet Adapter for VMnet8' on local host) 05 rpcap://\Device\NPF_{785F34D2-08FB-4109-B329-902FF7871CE3} (Network adapter 'VMware Virtual Ethernet Adapter for VMnet1' on local host) 06 rpcap://\Device\NPF_{D66A8829-34D7-4868-A780-50C65A17D269} (Network adapter 'VirtualBox Host-Only Ethernet Adapter' on local host) 07 rpcap://\Device\NPF_{EF33C528-569F-48BA-9222-527CA8C007CE} (Network adapter 'Realtek Gaming GbE Family Controller' on local host) 08 rpcap://\Device\NPF_Loopback (Network adapter 'Adapter for loopback traffic capture' on local host)
この中のどれかを指定すればいいらしい。
- 少なくとも、VMware とか VirtualBox と書いてあるのは違うはず。
- 大体は、NICに使ってるチップのメーカ名から始まっているのがソレ。
設定ファイル (.conf) を修正。「realnic = list」となっていた部分を変更する。
[ne2000] ne2000 = true nicbase = 300 nicirq = 10 macaddr = AC:DE:48:88:99:AA backend = pcap [ethernet, pcap] # realnic = list realnic = "Realtek Gaming GbE Family Controller" timeout = default
realnic には、数値、もしくはNIC名を記述できる。
realnic = 7 or realnic = "Realtek Gaming GbE Family Controller"
以下、参考ページ。
_Setting up networking in DOSBox-X
◎ HDDイメージを作成。 :
Windows98をインストールするためのHDDイメージを作らないといけない。DOSBox-X に同梱されてる IMGMAKE というプログラムを使ってHDDイメージを作成する。
今回は、4GB、FAT32のHDDイメージを、Windows10側のストレージ内に D:\dos\hddwin98.img として作成した。
ちなみに、IMGAMKE と打てばヘルプが出てくる。また、IMGMAKE -examples で、使用例が表示される。
HDDイメージを、DOSBox-X 側のCドライブとしてマウント。「IMGMOUNT ドライブ名 イメージファイル名」でマウントできる。
今回は、4GB、FAT32のHDDイメージを、Windows10側のストレージ内に D:\dos\hddwin98.img として作成した。
IMGMAKE D:\dos\hddwin98.img -t hd_4gig -fat 32
ちなみに、IMGAMKE と打てばヘルプが出てくる。また、IMGMAKE -examples で、使用例が表示される。
HDDイメージを、DOSBox-X 側のCドライブとしてマウント。「IMGMOUNT ドライブ名 イメージファイル名」でマウントできる。
IMGMOUNT C D:\dos\hddwin98.img
◎ HDDにセットアップファイル群をコピー。 :
Windows98 セットアップCDのiso (W98SETUP.iso) をDドライブにマウント。
xcopy を使って、セットアップCDからCドライブ(HDDイメージ)内に WIN98ディレクトリをコピー。
ちなみに、MSBATCH.INF というファイルを作成して、中にプロダクトキーを書いて、C:\WIN98\ 以下にコピーしておけば、 インストール時のプロダクトキー入力を省略することができる。
IMGMOUNT D D:\iso\WIN98\ISO\W98SETUP.iso
xcopy を使って、セットアップCDからCドライブ(HDDイメージ)内に WIN98ディレクトリをコピー。
XCOPY D:\WIN98 C:\WIN98 /I /E
ちなみに、MSBATCH.INF というファイルを作成して、中にプロダクトキーを書いて、C:\WIN98\ 以下にコピーしておけば、 インストール時のプロダクトキー入力を省略することができる。
[setup] ProductKey="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
◎ Windows98をインストール。 :
DOSBox-X を終了して、設定ファイル win98.conf の最後に以下を追加。DOSBox-X 起動直後からCドライブにHDDイメージが割り当てられた状態にしておく。
DOSBox-X を再起動。
カレントディレクトリを C:\WIN98 にしてから setup.exe を実行して、Windows98 をインストールする。インストール先は、デフォルトでは C:\Windows になる。
ひょっとすると、途中でキーボードの種類を確定させるために「半角/全角キー」の入力を求められるかもしれない。しかし、DOSBox-X 上では半角/全角キーの入力ができない。その場合、Spaceキーを押して、一旦英語キーとして認識させて作業を進めておいて、Windows98のインストールが終わってからキーボード種類を変更する。
ある程度ファイルコピーがされて再起動がかかったら、一旦 DOSBox-X を終了。win98.conf の最後を修正。「BOOT C:」を追加することで、Cドライブから起動(ブート)するようにしている。
DOSBox-X を再起動。HDDイメージからWindows98が起動して、初期設定が続行される。
もし、NIC (NE2000) を有効にしてあれば、NICの設定をする画面が出てくる。IRQ : 10、Address : 300-31F を指定。
これで、Windows98 のインストールはできた。この後、パッチ類を当てていくのが面倒…。
[autoexec] @keyb jp106 > nul IMGMOUNT C D:\dos\hddwin98.img
DOSBox-X を再起動。
dosbox-x.exe -conf win98.conf
カレントディレクトリを C:\WIN98 にしてから setup.exe を実行して、Windows98 をインストールする。インストール先は、デフォルトでは C:\Windows になる。
C: cd \WIN98 SETUP.EXE
ひょっとすると、途中でキーボードの種類を確定させるために「半角/全角キー」の入力を求められるかもしれない。しかし、DOSBox-X 上では半角/全角キーの入力ができない。その場合、Spaceキーを押して、一旦英語キーとして認識させて作業を進めておいて、Windows98のインストールが終わってからキーボード種類を変更する。
ある程度ファイルコピーがされて再起動がかかったら、一旦 DOSBox-X を終了。win98.conf の最後を修正。「BOOT C:」を追加することで、Cドライブから起動(ブート)するようにしている。
[autoexec] @keyb jp106 > nul IMGMOUNT C D:\dos\hddwin98.img BOOT C:
DOSBox-X を再起動。HDDイメージからWindows98が起動して、初期設定が続行される。
dosbox-x.exe -conf win98.conf
もし、NIC (NE2000) を有効にしてあれば、NICの設定をする画面が出てくる。IRQ : 10、Address : 300-31F を指定。
これで、Windows98 のインストールはできた。この後、パッチ類を当てていくのが面倒…。
◎ IEの入れ方に注意。 :
Windows98 は IE4.0 が同梱されているけれど、IE5.5 SP2 や IE6 SP1 に更新することができる。しかし、手元の環境で、一旦 IE5.5 SP2 に更新してから、更に IE6 SP1 に更新したところ、エクスプローラすら正常に動作しない状態になってしまってハマった。
*1
どうやら、IE4.0 から、いきなり IE6 SP1 に更新したほうが、まだ安定して動作するようだなと…。その状態なら、一応動いてるし…。
もし、IE5.5 SP2 をインストールしてしまったら、IE6 にはアップグレードしないほうがいいのかもしれない。ググってみると、Windows98 + IE6 は不安定(だった)という話もよく見かけるし…。
どうやら、IE4.0 から、いきなり IE6 SP1 に更新したほうが、まだ安定して動作するようだなと…。その状態なら、一応動いてるし…。
もし、IE5.5 SP2 をインストールしてしまったら、IE6 にはアップグレードしないほうがいいのかもしれない。ググってみると、Windows98 + IE6 は不安定(だった)という話もよく見かけるし…。
◎ ビデオドライバをVBEMPにする。 :
DOCBox-X のビデオカード部分には S3 Trio64 が載っていることになっている。Windows98 は S3 Trio64 のビデオドライバを標準で持っているので、特に何もしなくても Windows98インストール時にビデオカードが認識されてドライバが使われる状態になる。
本来、S3 Trio64 はVRAMが2MBまでなのだけど、DOSBox-X のソレは 8MB まで使えるようにしてあって、かつ、ワイドスクリーンにも対応できるように強化してあるらしい。
ただ、Windows98の標準ドライバでは、本来の S3 Trio64 のスペックにしか対応してないので、高解像度の設定もできないし、ワイドスクリーンにもならない。そこで、VBEMP というドライバを使えば、高解像度が使えるようになるのだとか。
_VBEMP 9x Project - Universal VESA/VBE Video Display Driver
140214.zip を入手して解凍。中に入ってる 032MB というフォルダが目的のドライバ。
変更の仕方は以下。
画面の何もないところを右クリック → プロパティ。設定タブ → 詳細。アダプタタブ → 変更。
デバイスドライバの更新ウィザードが出てくるので、「次へ」。
「特定の場所にあるすべてのドライバの一覧を〜」を選んで、次へ。
ディスクの使用 → 参照。
032mbディレクトリを選んで、vbemp.inf を選択して、「OK」。
「VBE Miniport - Standard PCI Graphics Adapter (VGA)」を選んで、「OK」。
「〜選択したドライバを使用しますか?」と尋ねてくるので、「はい」。
次へ → 完了。再起動。
これで、1024 x 768以上の解像度でもフルカラーにしたり、1440 x 900 等のワイド解像度を選べたり等、本来の S3 Trio64 (VRAM 2MB)では無理な設定が使えるようになった。
ただ、VBEMP を使うと、S3 Trio64 の標準ドライバと比べて動作速度は50%ぐらいに落ちるらしい。解像度と速度のトレードオフということかなと。
本来、S3 Trio64 はVRAMが2MBまでなのだけど、DOSBox-X のソレは 8MB まで使えるようにしてあって、かつ、ワイドスクリーンにも対応できるように強化してあるらしい。
ただ、Windows98の標準ドライバでは、本来の S3 Trio64 のスペックにしか対応してないので、高解像度の設定もできないし、ワイドスクリーンにもならない。そこで、VBEMP というドライバを使えば、高解像度が使えるようになるのだとか。
_VBEMP 9x Project - Universal VESA/VBE Video Display Driver
140214.zip を入手して解凍。中に入ってる 032MB というフォルダが目的のドライバ。
変更の仕方は以下。
画面の何もないところを右クリック → プロパティ。設定タブ → 詳細。アダプタタブ → 変更。
デバイスドライバの更新ウィザードが出てくるので、「次へ」。
「特定の場所にあるすべてのドライバの一覧を〜」を選んで、次へ。
ディスクの使用 → 参照。
032mbディレクトリを選んで、vbemp.inf を選択して、「OK」。
「VBE Miniport - Standard PCI Graphics Adapter (VGA)」を選んで、「OK」。
「〜選択したドライバを使用しますか?」と尋ねてくるので、「はい」。
次へ → 完了。再起動。
これで、1024 x 768以上の解像度でもフルカラーにしたり、1440 x 900 等のワイド解像度を選べたり等、本来の S3 Trio64 (VRAM 2MB)では無理な設定が使えるようになった。
ただ、VBEMP を使うと、S3 Trio64 の標準ドライバと比べて動作速度は50%ぐらいに落ちるらしい。解像度と速度のトレードオフということかなと。
◎ 日本語キーボードに変更。 :
Windows98 が英語キーボードとして認識してしまっているので、日本語キーボードに変更する。デバイスマネージャ経由で、英語キーボードのプロパティを出して、ドライバを更新して変更する。
一応手順をキャプチャしてみた。
マイコンピュータを右クリックして「プロパティ」。デバイスマネージャを選択。キーボード → 101/102 英語キーボード、を選択して「プロパティ」をクリック。
ドライバ → ドライバの更新。デバイスドライバの更新ウィザードが表示される。次へ。
「特定の場所にあるすべてのドライバの一覧を〜」を選んで、次へ。
「すべてのハードウェアを表示」を選んで、「(標準キーボード)」→ 106 日本語 (A01) キーボード (Ctrl+英数)、を選択。次へ。
「〜このドライバを使用しますか?」に「はい」。
次へ、をクリックしていく。再起動を求められる。
デバイスマネージャで確認すると、日本語キーボードになっている。
一応手順をキャプチャしてみた。
マイコンピュータを右クリックして「プロパティ」。デバイスマネージャを選択。キーボード → 101/102 英語キーボード、を選択して「プロパティ」をクリック。
ドライバ → ドライバの更新。デバイスドライバの更新ウィザードが表示される。次へ。
「特定の場所にあるすべてのドライバの一覧を〜」を選んで、次へ。
「すべてのハードウェアを表示」を選んで、「(標準キーボード)」→ 106 日本語 (A01) キーボード (Ctrl+英数)、を選択。次へ。
「〜このドライバを使用しますか?」に「はい」。
次へ、をクリックしていく。再起動を求められる。
デバイスマネージャで確認すると、日本語キーボードになっている。
*1: 必ず MSHTML.DLL がエラーを出して、エクスプローラが不正終了、強制終了してしまう。ファイル操作が一切できない状態に陥る。
[ ツッコむ ]
#2 [nitijyou] 某所に行ってきた
某所から電話でPC相談。Excelから印刷できないとの話。電話だけでは状況が分からなかったので、現場まで電動自転車で行ってきた。16:51-17:24まで作業。詳細はGRPでメモ。
[ ツッコむ ]
以上、1 日分です。