PC-6001からの移植第2弾

MSX2版「DOUBLE DICE」

2000年5月26日 作成


内容

PC-6001版「DOUBLE DICE」(1991年11月11日作成)をMSX2に移植したプログラムです。MSX2版「DRAK」と同様にBASICプログラム実行時にマシン語プログラムをロードするように作りました。今回はキーボード・ジョイスティックの両対応にしています。ただし,機種による文字フォントのちがいのためPC-6001のSCREEN 3特有の横長文字はMSX2では再現できませんでした。



プログラムについて

PC-6001のSCREEN 3のゲーム画面を再現するために,MSX2ではSCREEN 5を採用しました。マシン語部分は,グラフィックの表示と乱数の発生以外はほぼPC-6001版と同じルーチンを使用しています。Disk-Basicが使用できるようにワークエリアの番地をPC-6001版のDD32H〜DFFFHからMSX2版ではD692H〜DA88H番地へ移動しています。

なお,このプログラムはSCREEN 5のページ0,1のみを使用しているので,VRAM64KのMSX2でも動作します。SCREEN 5に未対応の旧MSXパソコン(MSX1)では動作しないので注意してください。



プログラム作成から完成までの流れ

2000年5月23日 プログラムの作成を開始。「DOUBLE DICE(ベーマガ1992年3月号P.125〜126)」をコピーし,ルーチンの解析を行う。
2000年5月24日 最初にグラフィックの表示サブルーチンの作成から始め,動作確認後PC-6001版のデータをMSX2用に変換しながら入力。
2000年5月25日 デバッグが完了し,マシン語開始番地の整理を行う。その後BASIC部分の入力を開始。
2000年5月26日 プログラムの最終確認を行う。MSXエミュレータ(RuMSX)上で画像ファイルを取り込む。説明文などを作成し,ホームページを更新。



苦労した点

「DRAK」のMSX2への移植と同様の手順で進めていきましたが,「DRAK」に比べて移植自体は楽でした。なぜかというと,このゲームで動かすキャラクターが「自分」「自分の弾」「サイコロ」の3種類しかないことや,プログラムのルーチンそのものが現在の内容に近くなっていることが挙げられます。グラフィックの表示は「UFO321」のルーチン(SUB-ROMの0191H番地をインタースロットコールすることでグラフィックをドット単位で複写することができるルーチン。詳細は「MSX2テクニカルハンドブック(アスキー出版局)」を参照)を使用しました。また,このゲームでは1〜6の目のサイコロが6列にランダムに降ってくるため,1〜6の乱数を発生させるためのルーチンが必要になります。PC-6001版では割り込みプログラムにより乱数を発生させるようにしましたが,MSX2では,割り込みを使わない方法に変更しています。今回使用したグラフィック表示や乱数発生ルーチンについてはのちに機会があったら説明する予定です。



最後に

このゲームは「プーヤン」+「落ちものゲーム」といったところです。ゲームのこつは,降ってくるサイコロをすべて同じ目の数に合わせることです。ちなみに私の場合は「6」に合わせるようにしています。前半の面は余裕があると思いますが,面が進むにつれ降ってくるサイコロの量が増えるのでなかなか同じ目の数にならないことが多くなります。サイコロが高く積み上がってしまう前にできるだけ多くのサイコロを消しておくのがいいと思います。

また,60行のN=6を小さくするとゲームのスピードが速くなり,大きくすると遅くなります。N=20程度にすると全面クリアも簡単だと思います。

そういえば,このゲームのタイトル名の「DOUBLE DICE」はなぜ「ダブル」なのでしょうか?
「DOUBLE DRAGON」の影響を受けてネーミングしたのではないかと言われたことがありますがそうではありません。実はこのゲームはもともと同じ目のサイコロを2個積むと消えるように作っていたので「2個のサイコロ」から「DOUBLE DICE」とつけました。途中から3個で消えるように変更したのですが,「DOUBLE DICE」の名前はゲームの雰囲気としてそのまま残したのでした。



画面写真

≪写真1≫
タイトル画面
「HIT SPACE」となっていますが
ジョイスティックにも対応しています
≪写真2≫
4面
同じ目の数に合わせるべし
≪写真3≫
22面
最終面の22面は
サイコロが多くて大変!



概要その3へ
概要その3へ戻る
シルゴンハーゲンのホームページ・MSX編へ
MSX編 トップへ戻る
シルゴンハーゲンのホームページ・メインへ
ホームページ トップへ戻る