CPM.EXE for Win32 と ROGUE で遊ぶ

2012年10月

概要

Win32 版 CPM.EXE は、ANSI/SOLOC(Televideo) ターミナルエミュレーション機能を内蔵していますので、画面制御を行うゲームも遊ぶことができます。ここでは例として下のページにある ROGUE で遊んでみます。

The Roguelike Archive

クイックスタート

まず、上のページから「Rogue 1.7 by David Goodenough (CP/M)」(rogue17cpm.zip)をダウンロードしてください。XP ならそのまま中身を見ることができます。中には PMARC でアーカイブされたオリジナル(rogue17.pma)と 22NICE 用にパッケージし直した ZIP ファイル(rogue17.zip)があります。どちらでも良いのですが、ここでは rogue17.zip の方を適当なディレクトリ(例えば C:\bin\cpm\rogue)に展開しましょう。

DOS の CP/M エミュレータ 22NICE で実行するためのパッケージですから、ROGUE.CPM の方が本物のプログラムで、ROGUE.COM は予め常駐しておいた 22NICE を呼び出すだけのスタブプログラムになっています。CPM.EXE は、拡張子 CPM の方を優先して実行しますから、このままの状態で実行できます。ドキュメント ROGUE.DOC によると Televideo 端末用となっていますがこれは SOLOC 端末コンパチです。コマンドプロンプトで展開したディレクトリに移動して次のように実行します。CPM.EXE は PATH の通ったディレクトリに置いておいてください。

cpm -w rogue

-w オプションが無くても動きますが、CPU 使用率が 100% に張り付いてしまって「ながらゲーム」が快適にできません。消費電力も大きくなるはずですし、省エネのため -w オプションは付けておくようにしましょう。

ダブルクリックで実行

ここまででも十分遊べますが、せっかくですから Windows のゲームと同様にアイコンダブルクリックまたはスタートメニューから実行ができるようにしてみましょう。

まず、エクスプローラで CPM.EXE 実行ファイルを右クリックし、「送る(N)」->「デスクトップ(ショートカットを作成)」で、デスクトップに「cpm.exe へのショートカット」を作成します。さらに、このショートカットの名前をクリックして「ROGUE 1.7」にでも変えておきます。

次に、このショートカットを右クリックして「プロパティ(R)」で「ROGUE 1.7のプロパティ」ダイアログを出し、「ショートカット」タブを選択して「リンク先(T):」に引数「-pw rogue」を追加し、「作業フォルダ(S):」を先に ROGUE を展開したディレクトリにします。-p オプションがないと死亡時に窓が閉じてしまって、終了メッセージが見られません。-w オプションは前述の通りです。

後は、お好みに応じて画面の色やフォント・コードページを変更するのも良いと思います。但し「画面バッファのサイズ」「ウィンドウのサイズ」は 80x25 のままにしておいてください。

「OK」を押せば完了です。これでダブルクリックで立ち上がるようになります。また、このショートカットをスタートメニューにドラッグ&ドロップすればスタートメニューから実行できるようになります。


文字色を緑にしてグリーンモニタ気分

主人公はカーソル位置の "@"

緑のブロックカーソルにしたいところだけど...

ダブルクリックで前回の続きから実行

Rogue 1.7 は S キーでファイルに状態をセーブして中断する機能があり、起動時にセーブファイルを指定することで再開できます。しかし、前項のようにダブルクリックで起動するようにした場合、セーブファイル指定ができず再開もできません。この項ではバッチファイルを使って、デフォルトの名前のセーブファイルがあった場合、続きを再開できるようにしてみます。

まず、以下のような内容のバッチファイル ROGUE.BAT を作成して、ROUGE を展開したディレクトリに置きます。

@ECHO OFF
TITLE ROUGE V1.7 for CP/M-80
IF EXIST rogue.sav (
  cpm -w rogue rogue.sav
) ELSE (
  cpm -w rogue 
)
PAUSE

次に、前項で作成したショートカットを右クリックして、「プロパティ(R)」で「ROGUE 1.7のプロパティ」ダイアログを出し、「ショートカット」タブを選択して「リンク先(T):」を上記バッチファイル ROGUE.BAT に変更します。

DOS 版 CPM.EXE についての補足

DOS 版 CPM.EXE は画面制御コードの解釈を DOS に頼っています。AT 互換機は、そのままでは画面制御コードを解釈しませんし、ANSI.SYS を使用しても ANSI 制御コードしか解釈してくれません。古い PC-9801 機なら ANSI に加えて SOLOC/Televideo 互換のカーソルアドレッシングを解釈しますので、Rogue を遊べると思います。


死んでしまった...