水曜日, 11月 18, 2009

DOSBoxで1830


「1830」の発作が起きて・・・
 かなり過去のログを探してもらうと、きっと出てくると思うのですが、私は年に1回くらい「1830」というゲームを無性にやりたくなるという発作を起こします。
 「1830」は鉄道を題材にしたボードゲームで、もう20年くらい前にアバロンヒルというアメリカのゲーム会社が発売したものです。このゲーム、「鉄道を題材にした」と書きましたが、正確に言うと「鉄道ゲーム」というよりは、鉄道会社をターゲットにした「株式投資ゲーム」という方が正しい。偶然の要素は最初の順番と人間の行動だけで、ひたすら先読みと数字の計算と駆け引きを繰り返して、どうやって相手を出し抜くかというゲームで、実際に人間同士でやると丸1日かかってしまって、へとへとに疲れるという大変ハードなゲームです。
 ところが90年代になるとアバロンヒルは「1830」のPC版を出しました。これは楽で、面倒な計算をコンピュータが一気に終わらせることができるので、ゲームが極端に早くなり、1ゲームがたったの1時間足らずで終わってしまいます。また、人が集まる必要もなくって、足りないプレイヤーはコンピュータが担当してくれるので気軽にパズルゲームみたいな感覚で、こんなハードなゲームができちゃうんです。コンピュータってすごいですよね。
 ですが、このPC版には大きな問題がある。DOSでしか動かない。コンベンショナルメモリを大量に使うので、WindowsのDOS窓なんかじゃ動かない。さらに音を出そうとするとサウンドブラスターという当時主流だったサウンドカードと互換性のある音源が必要になる。そんなPCは10年以上前に店頭から消え去っている。

 こんなときに便利なのは仮想PCソフトなんですが、VMWareとかVirtual PCっていうのは基本的に32bitOSを動かすために設計されているので、あんまりDOSを動かすのは得意じゃない。しかもサウンドブラスターなんか積んでない。こういうのが比較的得意なエミュレータでQEMUというのがあるのですが、QEMUも基本的には32ビットをメインターゲットにしているので、当時のPCがハードでやってたのことをソフトだけで再現するのはあまり得意じゃないようです。サウンドブラスタ互換のハードをエミュレーションしているし、VGA上のアニメーションなんかもちゃんとエミュレーションしているのだけど、とんでもなく遅い。最近になってようやく最新のハードならなんとかサウンドはなるようになってきたけど、アニメーションはやっぱりかなり遅い。

 もうちょっとストレスなく「1830」を動かしてくれるエミュレータはないものかとネットを探してみました。要するに欲しいのはDOSでゲームを動かすことをメインのターゲットにしているエミュレータソフトなわけです。そしたらなんと、「DOSBox」というまさにDOSのゲームを動かすためのソフトをみつけましたよ。GPLでオープンソースとして公開しているようで、Windows版、Mac OS X版、各種Linux版など多くのOS用バイナリーが用意してあります。これはいけそうです。で、さっそくダウンロードして試してみました。

DOSBoxで「1830」を実行
 DOSBoxというのは、単なるPCエミュレータではなくって、DOSのゲームを動かすことに特化したソフトのようです。普通はPCのエミュレータを使うときには、仮想HDDファイルを作って、これをフォーマットし、そこにCD-ROMドライブからOSをインストールするという手順をとるのですが、DOSBoxでは仮想HDDファイルとかOSのインストールは不要。DOSBoxにはDOSやゲームを起動するための環境が最初から全部入ってる。DOSBoxでDOSゲームを起動するのはこんな手順。
 1)どっかのフォルダーに起動したいゲームのファイルをまとめて放り込んでおく。たとえば"c:\dosbox\1830"に「1830」のゲームのファイルをそのまま放り込んでおく。
 2)DOSBoxを起動して、以下のコマンドを入力
  mount c c:\dosbox\1830 <enter>
 これで"c:\dosbox\1830"がCドライブにアサインされる。
 そしたら、Cドライブに移動してEXEファイルを実行するだけ。
  c:<enter>
  1830.exe <enter>
 これだけでゲームが起動してしまう。
 しかもこの手順が以下のコマンドラインで一気にできちゃう。
  <DOSBoxのフルパス> <実行したいDOSゲームのEXEのフルパス>
 DOSBoxの引数にEXEファイルのフルパスを渡すと、そのEXEのフォルダーをCドライブとしてマウントしてDOSBox上で実行するようです。

 DOSBoxにはちゃんとサウンドもサウンドブラスター互換機能が搭載されているので、ゲームについているセットアッププログラムで設定しておけばちゃんと音が鳴る。

 ゲームがはじまったら、alt+enterを押せば、全画面に切り替わる。
DOSBoxではCPUの速度が変えられるようになっていて、CPU Cyclesという数字で表している。
 Ctrl+F12を押すと速度が上がり、Ctrl+F11を押すと速度が下がる。
 また、Ctrl+F8を押すとframe dropが増えて、Ctrl+F7を押せばframe dropが減る。アニメーションなどが重いときはframe dropをあげると早く動く。
 さらにalt+F12を押せばノーウェイトモードになる。速度を上げるとサウンドが間に合わなくなってしまうので、普段はサウンドがちゃんとなる程度の速度にしておいて、一気にスピードを上げたいときだけノーウェイトで動かせばよいようです。

 全体的な感想として、QEMUに比べるとかなりサウンドが安定してなっていて、アニメーションもスムーズで負荷が少ないみたいです。また、CPUはデフォルトでかなり遅く設定されていますが、これは変更可能で、自分のPCに最適な設定を見つけてその速度に変更すればかなり快適になります。古いゲームなんかではCPUが早すぎるとゲームにならないものもあるでしょうから、こういうふうに速度を変更できる作りになっているようです。
 ノーウェイトの時のCPUの速さは16bitモードとしてはかなり早い部類だと思います。ですが、当時のPCに積んであったCPUは16bitのアプリケーションが早くなるように作られていましたが、今のCPUはそういうわけではないので、当時の486DX4とかに勝てるかというとちょっと疑問です。せいぜい同等ぐらいだと思います。「1830」の場合、終盤、コンピュータがかなり長考する場合があるのですが、このあたりは最新のPCでDOSBoxを使っても全然改善されないという感じです。(もとが並列処理してないんだから当然だが)CPUのエミュレーションには1スレッドしか使ってないみたいだから、沢山のコアを積んだCPUでも、サウンド1コアとCPU用1コアで2コア分くらいまでしか役に立たないみたいです。

さて、ここまでは共通的な感想。あとはOSごとに個別の問題があるので、それを紹介しておきます。

Mac OS X
 Macbook AirにSnow Leopardを積んだマシンで試しましたが、3種類のOSのなかでは一番安定して動きました。CPUは1.6GHz のCore2Duo メモリ2GBのマシンです。
 CPU cyclesが15000くらいまではサウンドもスムーズに鳴ってました。
 キーボードはDOSBoxではUS101と同じ配列で入力できました。
ただし、Ctrl+F1のキーボードアサイン変更とCtrl+F7・Ctrl+F8のframe dumpが機能してませんでした。Ctrl+F1は逃げ手がなくなるので痛いですねえ。たぶん、なにかOSのアサインとダブっているのでしょう。一番よく使うCtrl+F11とCtrl+F12のCPU Cycle変更とAlt+F12のノーウェイトがちゃんと機能しているので、実用的に不便は感じませんでした。Alt+Enterの全画面表示もちゃんとできてました。

Ubuntu 9.10
 Ubuntuはインストールと起動が一番簡単でした。試したマシンはMac mini、1.83GHz Intel Core、メモリは2GHzです。ちょっと旧世代のCPUですが、クロックではMacbook airに勝っているので同等程度のパフォーマンスは出ると思います。
Ubuntuではapt-getでインストールできちゃいます。だから、DOSBoxのインストールと1830の起動は以下の2コマンドだけ。
 $ sudo apt-get install dosbox <enter>
 $ dosbox <フルパス+1830.exe> <enter>

 動かしてみたら、ちょっと困った問題が発生。DOSBox上ではMac OS Xと同様にUS101キーボードのアサインで入力できるのですが、なぜかF11とF12が認識しない。Ctrl+F1でキーボードアサインを起動しても、ここでもやっぱりF11とF12はアサインできない。しかたがないので、F11とF12に割り振られているCPU Cycleの変更とノーウェイトを別のキーにアサインしなおして回避しました。
 動作パフォーマンスとしては、これは私の自作ゲームである"Tokyo Railways"でも言える話なのですが、Ubuntuってサウンド周りが弱いようで、負荷がかかるとすぐにテンポがずれます。これがDOSBoxでも同様でサウンドが安定して流れない。対策としては普段はCPU Cycleを10000以下に設定しておいて、速度をあげたいときにはノーウェイトを多用するということになりますねえ。
サウンドとF11、F12以外は問題ありませんでした。

Windows 7
 Windows 7でのDOSBoxの使用はあんまりお勧めできません。一応、動作はします。ゲームもできます。でもちょっと問題が多すぎ。
試したマシンは 2.67GHz intel Core i7、OSはWindows 7 64bit版、メモリ12GBで、今回の環境の中では圧倒的に最速です。
 まず、インストールすると、インストーラの最後の段階で、OSから警告を受けて、互換モードで再インストールせよとのメッセージが出てきて、それにしたがってボタンをおしたら、再インストールされて、ちゃんとインストール完了。この辺のWindows 7の互換性に対する対処はきめ細かくって、すごいですねえ。
 で、起動してキー入力してみたら、なんか変。どうも普通にキーを入力すると日本語106キーボードとして記号を入力できるみたいだけど、右シフトが効かない。左シフトを押すと、今度はUS101キーボードの配列で記号が入力される。これ、キー配列がめちゃくちゃになってるよ。これだと、ダブルコーテーションとかイコールが入力できないんで、DOSBox上の設定コマンドが入力できない。たとえばCPU Cyclesのデフォルト設定値を10000に変えようと思ったら、
 $ config -set "cpu cycles = 10000"
って打つのだけど、WindowsのDOSBoxだとこれが打てない。
 この対処はCtrl+F1でキーアサインを出して、ちゃんとキーアサインをひとつずつやり直すこと。これでちゃんとUS101と同じ配列で入力できるようになった。まあ、これは逃げる手があったので、そんなには問題にならないかな。

 もうひとつの問題はかなり困る。その問題っていうのはAlt+Enterで全画面表示にすると、色がおかしくなるっていう問題。



 なんか、こんなメッセージが出てくるので、どうもWindows Vista/7で採用されているAeroとの相性問題みたい。全画面表示をあきらめればよいのだけど、高解像度の画面を使っていると、DOSゲームの画面って小さすぎるんだよねえ。仕方がないから、解像度を落としてWindowで表示して動かしたけど、これって面倒。全画面表示がちゃんと使えるようにならないと、やりにくいなあ。

 でもそれ以外は、Windows版は快適。サウンドはかなりCPU Cyclesをあげてもなかなか乱れない。おそらく試した環境では、CPU Cyclesが40000くらいになるとノーウェイト状態となると思うんだけど、ぎりぎりまでサウンドがスムーズに流れてました。この辺はマルチスレッド処理がスムーズなWindows 7の利点なのかなあと思ってました。でもねえ、所詮16bit CPU用の命令なので、マルチスレッドの恩恵はここまで。やっぱり「1830」のコンピュータの長考は長いままです。たまたま、すごい複雑なルートになって、待ちきれずに風呂に入っちゃいました。

 というわけで、Windows版はパフォーマンスは一番いいのですが、全画面表示がだめなのと、キーアサインがめちゃくちゃなせいで、非常に使いにくく、あんまりお勧めできません。XPならまともなのかなあ。

最後に
 さて、いろいろ書いてきましたが、DOSBoxってちょっとと不具合はあるけど、DOSゲームを遊ぶって言う基準では十分な完成度です。DOSのエミュレーション環境としては、このDOSBoxはサウンドとアニメーションがちゃんとパフォーマンスを満たしていて十分に思えます。
 「1830」しか試してないので、ほかのゲームはどうなのかは知らないけど、私にとっては「1830」が動けばそれで十分なので、これで満足です。しかもいろんな環境でちゃんと動作してます。これでまた、「1830がやりたい」っていう発作に襲われても、もう大丈夫(笑)

 あ、そういえば、もうひとつだけ書くことが残ってた。「1830」にはマニュアルプロテクトがかかっていて、環境が変わると、英文の操作説明書から、ページ・行・位置と頭文字が表示されて、その位置の単語を入力させられます。通常は環境設定が変わったときに1回だけこの入力が求められて、その後は入力不要になるはずなのですが、なぜかDOSBoxで「1830」を動かすと起動する度に4回も入力を求められる。これだとめんどうでしょうがないのですが、そういえば、当時はなにか修正パッチが公式サイトで配布されてたと思い出して、ネットを探してみたら、なんと今でも公式サイトで配布してました。このリンク先の一番下のあたりです。
 これを適用したら、1回だけプロテクトの入力画面が出てきて、次からは出てこなくなりました。なんかのバグだったんですねえ。
 もう十数年たって、発売元のアバロンヒルは買収されてなくなっちゃってるのに、いまでも買収先がこうやって公式サイトを作ってて、古いソフトのパッチを配ってるんだねえ。ちょっと驚いたと同時に感謝しましたよ。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

0 件のコメント: