BrainでBochs
Brain用のx86エミュレーターには QEMU がありますが、QEMU では Windows 系の OS が軒並み動きません[1]。
そこで、代替案として、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]
- 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) に置くと安定します[2]。
- 同梱の「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:のアクセスランプが消えるのを待ってアクセスしましょう。