BrainでBochs
Brain用のx86エミュレーターにはQEMUがありますが、QEMUではWindows系のOSがなぜか軒並み動きません。(3xは保護違反、9xはBSOD)
そこで、代替案として、WindowsCE用のBochsが使用できます。
ダウンロード
Bochsとは?
bochsとは、オープンソースの移植性に優れたPC/AT互換機のエミュレーター。今回のものはWindowsCEに移植された、Bochs 2.3.5 for WinCEです。
実行速度
気になる実行速度ですが、CPUのエミュレーション自体はqemuより高速な気がします。ただ、ディスクのアクセス速度が遅いです。(CPUが速い分遅く感じるだけかも)
実際にWindowsをインストールしてみたところ、以下のようでした。
起動時間 | 実行速度 | Brain上でのインストール所要時間 | |
---|---|---|---|
MS-DOS6.22 | 30秒 | 英語版はqemuとあまり変わりません。日本語版はなぜか重いです。 | 30分 |
Windows 3.1 | 2分 | 少し遅いですが、普通に使えます。Brain上で遊ぶのには十分です。 | 2~3時間 |
Windows95 OSR2.1 | 5分 | 遅いです。が、慣れればそこそこ遊べるかも。RTM版はより軽いはずです。 | 不明。10時間くらい? |
Windows98 SE | 30分 | 激遅。スタートメニューの表示に20秒、マイコンピューターを開くのに5分。 | 連続60時間 |
試すならWindows3.1がオススメです。Windows95やWindows98は、PC上のBochs2.3.5でインストールするのが賢いです。
ディスクイメージを作成する
bochsフォルダの中のPCフォルダにbximage.exeがあるので、PCで実行してディスクイメージを作成します。
実行するとプロンプトが表示されます。
Please type hd or fd. [hd]
そのままEnter。
Please type flat, sparse or growing. [flat]
そのままEnter。
Enter the hard disk size in megabytes, between 1 and 129023 [10]
ディスクイメージのメガバイト数。Windows3.1なら64、Windows95なら128、Windows98は384がいいでしょう。
What should I name the image? [c.img]
フルパスで入力したほうがいいです。さもないと変なところに保存されます。
入力例: D:\win98.img
(ドライブレターはプロンプトのタイトルに書いてあります)
でEnterを押すと、作成が開始されます。終わると文字がつらつらと出ますが、そこの
ata0-master: type=disk, path="[さっきのパス]", mode=flat, cylinders=XXX, heads=16, spt=63
XXXの数字をbochsrc.txtで使うので、メモしておいてください。
bochsrc.txtの編集
bochsフォルダの中にbochsの設定ファイルであるbochsrc.txtがあります。これをルートディリクトリ(My Device直下)におくことでbochsが読んでくれます。
設定項目は基本PC用のBochs2.3.5と同じですが、ここでも軽く説明します。
megs: [MB]
仮想マシンのメモリサイズです。16MBあればたいてい何でも動きます。
boot: [floppy/disk]
ブートするドライブ。floppyを指定すればFDから、diskを指定すればHDDから起動します。
floppya: 1_44="[イメージのパス]", status=inserted
FDドライブのイメージを選択します。QEMUと違って仮想マシンの起動中にも入れ替えられます。floppyb:を指定すればBドライブも使えます。
ata0: enabled=1
ata0-master: type=disk, path="[HDDイメージのパス]", mode=flat, cylinders=[ディスクイメージ作成時の値], heads=16, spt=63
ata0-slave: type=cdrom, path="[isoイメージのパス]", status=inserted
1行目でIDEコントローラーを有効化しています。2行目、3行目はそれぞれIDEのマスターとスレーブとして、さらにそれぞれHDDとCD(DVD)を設定しています。CDを使わないなら3行目を消してください。
[ディスクイメージ作成時の値]は、「ディスクイメージ作成」の時の最後に表示された数値です。間違っていると怒られるので注意。
vga_update_interval: [数値]
画面の更新の頻度です。4000くらいがちょうどです。「多少遅くてもいいから滑らかにカーソルを動かしたい」という方は3000に、「DOSしか使わない」という方は5000くらいにするといいでしょう。
さあ、起動!
起動するんですが、そのまえにいくつかポイントがあります。
- まずceOpenerは閉じておきましょう。ceOpnerはスペースキーをフックするため、Bochs上でスペースキーが使えなくなります。タスク管理はTaskSwitcherがおすすめです。
- 辞書アプリは閉じましょう。たまにメモリが足りなくなります。
- Bochs本体はNAND3に、イメージ等はMicroSD(Storage Card)に置くと安定します。
- 同梱の「WindowMove.exe(Bochsウィンドウの移動)」と「jotkbd.exe(スクリーンキーボード)」は先に起動しておくと便利です。
- Bochs.exeに引数「-q」をかけないと起動しません。「\NAND3\Bochs\bochs.exe」となっている場合は同梱のショートカット(Start BOCHS)が機能しますが、それ以外の場合は自分で「"\~~\bochs.exe" -q」というショートカットを作るなり、DosMadoOpenで「bochs -q」と実行するなりしてください。
起動しましたか?エラーが出たらbochsrc.txtを治してあげてください。
Bochsの操作
ウィンドウの移動
Bochsは起動するとウィンドウが表示されます。ウィンドウが大きくて下部が画面からはみ出ていますが、そこにHDD/FDDのアクセス表示があります。見えるようにするために先ほど実行した「WindowMove.exe」を使います。まず、WindowMoveのウィンドウ内の左上にあるボタン(㊉みたいなの)を押し、へっこんだらBochsのウィンドウ内をタップします。そしてWindowMoveの矢印ボタンでBochsのウィンドウ位置を調整しましょう。
マウス操作・全画面表示
これまた先ほど実行した「jotkbd.exe」なるスクリーンキーボードを使います。まずjotkbdの「File」メニューから一番上の「Show Function Keys」を押してファンクションキーを表示させます。(ついでに「Show Numeric Keys」をオフにしておくといいです。)そしてBochsのウィンドウをアクティブにし、その状態でjotkbdのF5キーを押すと全画面化、F12キーを押すとマウスが有効になります。(マウスの状態はステータスバーに表示されます。また、マウスを有効化するとEnterキーが左クリックに、矢印キーがカーソル移動(タップでもできます)になるため、仮想マシン上で該当のキーを使いたい場合はもう一度F12を押してマウスを無効化してください。)
FDの入れ替え
QEMUと比べてBochsの利点は、FDを入れ替えられることです。ツールバーのFDアイコンを押すと入れ替えのためのダイアログが出ます。が、フォルダ参照の「...」ボタンを押してもファイル選択ダイアログが一瞬で消えてしまいます。仕方がないので横の入力欄にフルパスを入れてあげましょう。
また、特にDOSにおいて、FDを入れ替えてもしばらく認識しないことがあります。入れ替えたらA:のアクセスランプが消えるのを待ってアクセスしましょう。