MS-DOS

2014年12月17日 (水)

Oracle VM VirtualBox で MS-DOS6.20v を実行しゲームを

12月17日 晴れ

VMware Player が音の問題で DOS のゲームには向かないと言うことが判明し、
VirtualBox についてもこれを確認することにした。
DOS のゲームには VirtualPC2007 は割と良好であることは確認済み。
Dosbox も良好であるが、使い方が、ちょっと・・・まあ D-Fend を使えばまあまあだが。

VirtualBox では今まで、windows 系や、ubunta を入れてテスト用に使ってきたが、DOS 系は使ってなかった。
先日、PC DOS4.00 を試しに入れて、消した事だけだ。

まず、VirtualBoxを起動し、新規から、OSタイプは Other
バージョンは DOS で。
メモリは起動するゲームしだいだが、16MB もあれば十分。
HDD は可変なので適当に。256MB もあればよいか。
Create を押して作成する。

設定から、ストレージ->フロッピーコントローラを追加、MS-DOS6.20v のインストールディスク1を割り当てる。
Vboxmsdos62v007

オーディオは SoundBlaster 16 であることを確認する。

ゲスト起動。HDDを確保して、フォーマットが行われる。
そのままの設定で、組み込み開始。
順次FDDを交換する。
FDDのマウントを解除して、再起動。

画面は黒く何もでない・・・
リセットすると、EMM386 のエラーメッセージが出るが、それが消えて、真っ黒に。
これは JDISP の不具合なので、起動FDDから始めて、config.sys を修正する。

EMM386.EXE の行に NOEMS を追加
JDISP.SYS の行に /HS=LC を追加
MSIME はとりあえず、コメント化。
Vboxmsdos62v037

autoexec.bat の SMARTDRV の行もコメント化。

リセットすると、エラー無く DOS/V モードで HDD から起動した。

今回ゲーム起動について検討するので、US モードの起動ファイルを使うことにする。

ホストの CPU 使用率が高いので、これを下げるために
MS-DOS 付属の POWER.EXE を組み込む。
(DOS/V モードだと EMM386 のエラーが出て止まるが、
US モードで、EMM386 を使わなければ大丈夫)

filer をコピーして、CD とマウスのドライバを入れる。
できるだけ HMA に組み込む。
Vboxmsdos62v043_2
Vboxmsdos62v045_3
Vboxmsdos62v047_2
US モードなので、EMM386 を使わなくてもフリーエリアが 561360bite あるのでまあまあ広い。
CPU 使用率もアイドル時はほぼ0%。


次にゲームに関して確認した。

*****************   Apache longbow   ******************

インストールCDをマウントして、US モードでインストール。
"CD":
install

インストーラが起動する。
インストール後、Apache longbow を起動。
設定画面になる。
Vboxmsdos62v061

サウンドカードを soundblaster 16 に
Address 220
Interrupt 5
DMA 1
Sound は Speech Music ともに選択
Effects は Full で
Controls は キーボードで

この設定だけで(Autoexec.bat で blaster の設定をしなくても)音楽、効果音、音声は鳴って、キーボードでゲームはできる。
Vboxmsdos62v063

Controls の Cyclic を Joystick にしても、ジョイスティックは反応しない。
DOS からは USB 機器自体を認識しないようなので、USBジョイスティックはだめのようだ。
キーボードを使うゲームならOKのようだが、フライトものは厳しいことがわかった。

結局、昔のフライトものゲームをするなら、DosBox か VirtualPC と言うことのようだ。


***************** Need for Speed *****************

ジョイスティックを使わないゲームとして、昔遊んだ、Need for Speed というレースゲームを試した。
インストールバッチを起動しても動かないので、フォルダを作って全ファイルをコピーする。
Autoexec.bat に
SET BLASTER=A220 I5 D1
を追加し、(無いと音が出ない)
nfssb.bat の方で起動すると、音楽、効果音ともに鳴ってゲーム可能。
Vboxmsdos62v069

ただコントロールをキーボードにすると Fキーで右回り ;キーで左回りになるので、
カーブでしょっちゅう逆に曲がってフェンスに当たる。
マウスに設定もできるが、反応がシビアでこれも操作が難しい。
昔、IBM aptiva の付録CD内にあったし、有名なゲームだが、この操作性の悪さのせいか、やりこんだ記憶は無い。
一応動くことは確認した。


****************** EpicPinball  ******************

以前 VirtualPC2007 でも試した、EpicPinball というピンボールを試してみた。

これも、フォルダを作って全ファイルをコピーする。
まず、setup.exe を実行。サウンドの設定にはいる。
SOUND BLASTER 16 は一覧に無いので、
SOUND BLASTER PRO を選択。
IRQ は 5
DMA は 1
PORT は 220H に設定。
EXIT,SAVE で終了。
(Autoexec.bat で blaster の設定をしなくてもOK)
PINBALL.EXE を起動する。
Vboxmsdos62v072

音楽、効果音ともに鳴ってゲームは起動するが、表示が速すぎて、ゲームできない。
また、ゲーム終了してDOS に戻る時にエラーが出て止まる。
VirtualPC2007 の MD-DOS に入れたときも同様に、速過ぎてできなかった事を思い出す。

*****************************************************

他にもいくつかピンボールやブロック崩しを試したが、できるゲームもあり、動かないゲームありであった。

一応設定すれば音は出るので、USBジョイスティックや、パッドを使わない一部のゲームなら可能という結論になった。

検証途中から、ジョイスティックの調子が悪くなっているのに気付く。
以前もわずかにあったが、三軸の捻りが、片側によってしまう傾向が悪化していた。
やはり、安めのものは耐久性に難があるようだ。

2014年11月19日 (水)

VMwarePlayer で MS-DOS を

11月19日 晴れ

VMwarePlayer で、ゲストOS として Windows10 Technical Preview版等を試しにインストールして使い勝手を見たりしているが、
(10より7の方がいい。まだ不確定だが。8はダメダメ。)
一応 DOS も動くようなので、試すことにする。

VMwarePlayer を起動し
(今回使用バージョンは 6.0.4 でホストOS は Windows7-64bit)

新規仮想マシンの作成
後で OS をインストール
その他のゲスト OS で MS-DOS バージョンで
仮想マシンの名前は MS-DOS6.20V
ディスク最大サイズは2GBのままでもOK (使わなければ消費されない)
完了をクリックして仮想マシンを作成する。

仮想マシン設定の編集を開き
デバイスにフロッピードライブを追加
物理フロッピーよりイメージの方が読み取りは早いので、今回はイメージで
インストールディスクの1枚目のイメージを指定して、完了。

Vmdos62v011

仮想マシンの再生をクリック

Vmdos62v003

セットアップが始まりハードディスクの領域確保とフォーマットがある。
再起動後キーボードや日本語入力設定を決めると、
C:\DOS に DOS のファイルがインストールされる。

Vmdos62v010

フローピー交換のメッセージが出るので、参照イメージを順次変えて進む。
インストール後、フロッピーを切断して再起動。

Vmdos62v018

しかし HIMEM is testing...done.  の次の行で止まってしまう。
フロッピーに緊急 boot 用のイメージをマウントして、再起動し、C:\ の config.sys と autoexec.bat に、いろいろ rem 付けて確認した。
元の config.sys と autoexec.bat を示す。(表示エディタは VZ )
Vmdos62v020
Vmdos62v021
(config.sys の最後の行に追加の POWER.EXE は CPU の使用率を抑えるプログラムでもともと MS-DOS6.20V に入ってたもの。)
調べると
EMM386.EXE 126046 bite 93-12-06 6:20 を読み込む行が障害になっているようだ。
検索すると VMware と 古いバージョンの EMM386.EXE はあわないらしい。
EMM386 のバージョンが 4.48 以前だとだめらしいとのこと。
上記の今回使用した EMMのバージョンは 4.49 であったが動かなかった。
もっと新しいバージョンの DOS の EMM386 か Windows95 以降の EMM386 を使えとのこと。
前に作ってあった VirtualPC 内 の Windows95b から下記の EMM386 をコピーして取り出した。
EMM386.EXE 136631 bite 96-09-05 11:11 (バージョン 4.95)
これに入れ換えると動くようになった。
MemMaker を使って、メモリを最適化。
CD ROM が使えるようにドライバをいれる。MTMCDAI.SYS
マウスが使えるようドライバを入れる。MOUSE.COM MOUSEDRV.INI
修正後の config.sys と autoexec.bat
Vmdos62v032
Vmdos62v033

Vmdos62v036
メモリを見るといろいろ全部入れてるので、HMA や UMB を使ってるのに空きメモリはさほど広くはない。

ゲームするなら msime 関連は不要なのでそれらを rem 化して起動したときはもう少し広くなる。
Vmdos62v038

US モードの config.sys と autoexec.bat も手直しすると、(CDとマウス追加)
(表示エディタは NEED )
Vmdos62v042
Vmdos62v043

日本語モードより更に空きメモリは広い。
Vmdos62v040

とりあえず、システム起動までの覚書として記す。
ゲーム起動や、ジョイスティック動作については、後日に。

追加:VMwareplayer の DOS では、全く音が出ない、USBジョイスティックが使えないことが判明。
Apache longbow をインストールしていろいろ設定変えてみたが、ダメなことを確認した。
DOS のゲームには向かないことがわかった。