Image: 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に設定しておきます。

Image: Hardware - Qemu Manager

DrivesからBoot Optionsを開き、Floppy DriveをBoot Orderの一番上に追加します。

Image: Hardware - Qemu Manager

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エディターを使った方がいいでしょう。

Image: EDLIN

Windowsをインストールする

通常は設定を変える必要はありませんが、スワップファイルは「なし」にしておくとディスクイメージのサイズを節約できます。私はUS配列のキーボードを使用しているので「IBM PS/2 101キーボード」に設定しています。

Image: Windowsセットアップ

Windowsインストール完了

Image: プログラムマネージャ - Windows 3.1

ディスプレイドライバーをインストールする

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が起動しませんでした。

Image: ビデオの初期化に失敗

Windowsのファイルマネージャーからドライバーディスケット内のINSTALL.EXEを実行するとセットアップが起動します。

Image: プログラムのロード - CL-GD5436/46 ドライバとユーティリティ(IBM Windows 3.1 日本語版)

IBM版Win3.1用のドライバーをインストールしたらWindowsが起動するようになったものの、アイコンが正常に表示されません。最新のQEMUではWindowsすら起動しませんでした。

Image: Windows 3.1

調べていくと、どうも最近の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

Image: Pia Carrot2 - Windows 3.1

これで画面がちゃんと表示されるようになりました。1677万色表示に設定すると画面表示がゴミになってバグりましたが、その点は実用上の支障が出るケースはほとんどないと思います。

ベンチマーク(Wintach 1.2)を走らせてみました。描画処理がめちゃくちゃ速い。比較→ DOSBox vs VPC vs 実機でWin3.1の実効性能を比較
Image: WinTach v1.2 - QEMM 0.9.0

サウンドドライバーを入れる

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再生 ×  

※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!