元祖ドラクの移植版

MSX2版「DRAK」

2000年5月20日 作成


内容

PC-6001版「DRAK」(1988年11月7日作成)をMSX2に移植したプログラムです。BASICプログラムとマシン語プログラムのデータを別ファイルに分け,BASICプログラム実行時にマシン語プログラムをロードするように作ったため,タイトル画面までの待ち時間が短くなっています。機種による文字フォントがちがうのと,キーボード・ジョイスティックの両対応にした点以外はまったく同じゲームです。ただしPC-6001版で自機の発射した弾が地面に近い位置にいる敵を通り抜けるというバグはMSX2版では修正されています。



プログラムについて

PC-6001のSCREEN 4によるタイトル画面を再現するために,MSX2ではSCREEN 5を採用しました。マシン語部分は,前回キャラクターの表示のためにグラフィック画面に直接データを書き込んでいたのを今回はよりスムーズなキャラクターの移動を考え,スプライトを使用することに変更しました。それ以外はほぼPC-6001版と同じルーチンを使用しています。Disk-Basicが使用できるようにワークエリアの番地をPC-6001版のDFE6H〜DFFFHからMSX2版ではD9E6H〜D9FFH番地へ移動しています。

なお,このプログラムはSCREEN 5を採用しましたが,BASICプログラムの50行の「SCREEN 5,2,2」を「SCREEN 2,2,0」に変更し,60行と70行の「'」を取るとSCREEN 2として動作するので旧MSXパソコンでもゲームはできます。しかしSCREEN 2の場合は,ゲームの後半でナンバー機などのキャラクターが横に5つ以上ならんだときに,スプライトの性質上一部のキャラクターが表示されなくなるという現象が起きるので,あまりおすすめできません。



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

2000年5月15日 プログラムの作成を開始。「DRAK(ベーマガ1989年1月号P.156〜157)」をコピーし,ルーチンの解析を行う。
2000年5月16日 方眼紙にマシン語のデータを書き込んでMSX2用のプログラムを作成。それをパソコン(実機)に入力&デバッグ。
2000年5月17日 デバッグが完了し,マシン語開始番地の整理を行う。
2000年5月18日 PC-6001版のプログラムを参考にBASIC部分の入力を開始。エラーがないことを確認。
2000年5月19日 プログラムの最終確認を行う。MSXエミュレータ(RuMSX)上で画像ファイルを取り込む。説明文などを作成。
2000年5月20日 ホームページを更新。



苦労した点

PC-6001による基本的なルーチンがあるため,MSX2への移植にはたいして苦労はしませんでしたが,あえて書くと自機の弾とナンバー機との衝突判定にもっとも苦労しました。このゲームのキャラクターどうしはX座標とY座標がともに一致しないと衝突したことにならないように作ってあります。衝突判定を「自機の弾の移動ルーチン」のみに入れると,ナンバー機に弾が当たった直後に衝突判定のない「ナンバー機」の位置が動いてしまうと,衝突したことにならず「自機の弾」が「ナンバー機」を通り抜けるという現象が起きてしまいます。そこで「自機の弾の移動ルーチン」と「ナンバー機の移動ルーチン」の両方に衝突判定のサブルーチンを付けているのですが,同じサブルーチンを使用することにより発生するバグの修正に苦労したのでした。



最後に

このゲームのドラクはまさに「元祖」ドラクです。原始的なゲームですが,プレイすると意外に面白いゲームです。敵に弾を当てるのが難しいですが,地面にはね返って斜め上方へと移動するドラクの動きに合わせて自機を動かし攻撃すると,一気に3,4発ほどダメージを与えることができるため,面クリアへの近道となります。もちろん高得点を取るため,ナンバー機だけをねらい続けるというやりかたもあります。このゲームは面数に比例して難しくなるのでわかりやすいと思います。 今後「DRAK」のニューバージョンの作成も検討しています。



画面写真

≪写真1≫
タイトル画面
「PUSH SPACE」となっていますが
ジョイスティックにも対応しています
≪写真2≫
3面
ドラクを集中攻撃!
≪写真3≫
7面
最終面の7面はこの通り。難しい・・・



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