QEMUでIBM版Windows 3.1を動かす
QEMU 0.9.0に日本語Microsoft Windows 3.1をインストールしてみる。自分もよく懲りずにやるもんだなぁw
用意したソフトウェア
- Qemu Manager 7.0 (QEMU 0.11.1)
- QEMU 0.9.0
- IBM DOS J5.02/V DISK 1 - 3
- IBM 日本語MS-Windows V3.1 DISK 1 - 14
Qemu Managerは更新が停止して久しいのですが、面倒くさがりな私はQEMUのコマンド書式を調べるのが面倒だったので、こちらを使用しました。新しいバージョンのQEMUはグラフィックの互換性に問題があるため、結局QEMU 0.9.0を使用することになるのですが、Windowsをインストールする作業まではQemu Managerを使いました。
ファイルを展開する方法やイメージを取り込むまでの過程など細かい説明は省略しています。(投げやり)
仮想マシンの設定
メモリは12MB、ハードディスクは1GB、サウンドカードはSound Blaster 16に設定しました。ビデオカードはとりあえずStandard VGA Cardに設定しておきます。
DrivesからBoot Optionsを開き、Floppy DriveをBoot Orderの一番上に追加します。
DOSをインストールする
ディスクイメージの入れ替えはコンソールからコマンド入力によって行います。コンソールには様々なコマンドが用意されていますが、次のことを知っているだけで十分です。
- Ctrl + Alt + 1キーでゲスト画面、Ctrl + Alt + 2キーでコンソール画面に切り替える。
change fda ファイルパス
(古いQEMU)またはchange floppy0 ファイルパス
(新しいQEMU)でディスクイメージを入れ替える。info block
で現在のメディアのマウント状況を確認できる。
DOSをインストールしたら、標準設定では画面スクロールに不具合が生じるので、CONFIG.SYSを書き換えておきます。
テキストエディターで\CONFIG.SYSを開き、DEVICE=C:\DOS\$DISP.SYS
の行に/HS=LC
を加えます。EMM386.EXEは正常に動作しないのでその行を削除します。ついでにプリンタードライバーも削除します。私はEDLINコマンドでCONFIG.SYSを編集しましたが、PC DOS J6.1/V以降をお使いのかたはEエディターを使った方がいいでしょう。
Windowsをインストールする
通常は設定を変える必要はありませんが、スワップファイルは「なし」にしておくとディスクイメージのサイズを節約できます。私はUS配列のキーボードを使用しているので「IBM PS/2 101キーボード」に設定しています。
Windowsインストール完了
ディスプレイドライバーをインストールする
Cirrus Logic GD5446対応ディスプレイドライバーは次の場所からダウンロードできます。一般的に紹介されている方法としてVESA VBE対応ディスプレイドライバーを使った方法がありますが、こちらは256色までしか表示できません。
- IBM版Windows 3.1 CL-GD5436/5446用
- → IBM PC300GL Cirrus Logic 5446 ビデオ・デバイス・ドライバー Ver.1.13n (Windows 3.1) 2枚組
- SVGA汎用(VESA VBE対応) (※IBM版Windows 3.1では使用できません)
- → SVGA.EXE
- → VMware対応パッチ win31svga-060411.zip
IBM版Win3.1に上記のSVGA汎用ドライバーをインストールしたところ、「ビデオの初期化に失敗しました。Windowsセットアップをもう一度実行して下さい。(Video initialization failed. You need to run the Setup program again.)」というメッセージが表示されてWindowsが起動しませんでした。
Windowsのファイルマネージャーからドライバーディスケット内のINSTALL.EXEを実行するとセットアップが起動します。
IBM版Win3.1用のドライバーをインストールしたらWindowsが起動するようになったものの、アイコンが正常に表示されません。最新のQEMUではWindowsすら起動しませんでした。
調べていくと、どうも最近のQEMUはCL-GD5446のエミュレーション互換性が低下しているようです。QEMU 0.9.0以前で動作するという情報を見つけ、QEMU 0.9.0でWin3.1を動かすことにしました。QEMU 0.9.0を展開したら、中にあるqemu-win.batを次のように書き換えてこれを実行します。qemu.exe -L . -m 12 -hda G:\QemuManager\images\IBMW31J.qcow2 -fda D:\i\d1.img -cdrom //./e: -soundhw sb16,adlib -localtime -M isapc
これで画面がちゃんと表示されるようになりました。1677万色表示に設定すると画面表示がゴミになってバグりましたが、その点は実用上の支障が出るケースはほとんどないと思います。
ベンチマーク(Wintach 1.2)を走らせてみました。描画処理がめちゃくちゃ速い。比較→ DOSBox vs VPC vs 実機でWin3.1の実効性能を比較
サウンドドライバーを入れる
QEMUはAdLibとSound Blaster 16(PCM再生のみ)をサポートしています。コントロールパネルからSound Blaster 1.5を追加するとPCM音声が再生されるようになります。AdLib(FM音源)は一部の音色がおかしく、一方でかなり忠実に鳴る音もあり、再現度は微妙です。
ネットワークドライバーを入れる
もう完全に泥沼かつ自己満足の領域だと思うので、徹底して環境を整えたいという人は挑戦してみて下さい。私はやる気しません。
使用感
QEMU 0.9.0を前提に話を進めます。グラフィックのパフォーマンスはVirtual PCやDOSBoxに比べはるかに優れています。サウンドデバイスの対応はVirtual PCやDOSBoxに比べると劣っています。EMM386は最新のQEMUでは動作しませんが、QEMU 0.9.0では正常に動作しました。DOS/Vの日本語環境で最下行(日本語入力ステータス)の表示がおかしくなります。仮想マシンの設定や操作がコマンドベースな点はコマンドに慣れていないユーザーにはつらいでしょう。海外DOSゲームをするならDOSBox、Windowsの実用ソフトや日本語環境を利用するならVirtual PCの方がいいと思います。Virtual PCが使えない環境など、第3候補としてQEMUを選ぶ理由はあるかもしれませんが、私は積極的に使おうとは思いません。
仮想環境 評価要約
項目 | 評価 | コメント |
OSの入手性 | × | DOS/Win3.1とも入手困難。MS版Win3.1はMSDN会員で開発用途限定で利用可能 |
仮想マシン作成 | △ | コンソールでは不便なのでQemu Managerを使用 |
OS導入の難易度(VM) | × | ディスクイメージの交換操作に非常に手間が掛かる |
OS扱いの難易度(OS) | × | DOSのインストールが必要。DOSに関する知識が必要。 |
デバイスドライバ認識 | - | |
ファイル移動の手軽さ | × | フロッピーディスク経由で移動するしかない。 |
マウスの操作性 | × | ゲスト・ホスト操作切替は手動。ペンタブは操作に難あり。 |
ネットワーク(LAN) | × | DOSにネットワーク機能を組み込むこと自体が高難度。 |
2Dグラフィック | △ | QEMU最新バージョンでは標準VGAドライバしか使えない。 |
3Dグラフィック(DirectX) | - | |
サウンド(PCM)出力 | ○ | |
MIDI再生 | △ | ソフトMIDI再生のみ。FM音源(OPL)の再現度は微妙。 |
CD-DA再生 | × |