計算機設定記録

パソコンの設定やトラブルシューティング

ゲーム FM-7 MADLOGIC

 高校2年の夏休みに作って応募した。
Oh!FM-7:マッド・ロジック(コムパック)

 友人3人と組んでやった。MZ-2000を持ってたH君は作曲、X1を持ってたS君はPSG音源が同じなのでサウンドを、VIC-1001を持っていたM君は面のデザインを。私はFM-7でプログラム。Kコンパイラを使用。

 FM-7ではメイン処理と画面処理(サブシステム)のCPUが別で、128バイトの共有RAM(先頭1バイトは調停するためのフラグだったはず)でデータをやり取りする。が、そのやり取りが面倒だったので最初にサブシステムに自前のコードを転送して実行させたいと思った。だが転送するには手順を踏まなければならない。どうしよう?
 640×200×8色(3bit)=48KBのグラフィック領域、X1やPC-8801はこれと重ねるように80×25=約2Kバイトのテキスト用VRAMをハードウエアで持っており、グラフィックの表示と重ねて画面に映していた。FM-7はテキスト用の領域2Kバイトは持っていたが、ここからコードを読んで対応する文字の形をサブシステムCPUがグラフィック領域に書き込んで表示していた。
 ここ使えんかなあと。どうせゲームでは文字は独自のフォントで表示させるし。そこでサブシステムで実行するコードはBASICのPRINT分相当で送り出す。すると画面にはランダムっぽい文字が表示されるが、テキスト用の領域には対応するコードが転送される。このあたりはゲームセンターのゲームの起動画面っぽくてよさそうに思えた。
 これでサブシステムとメインとのやり取りを独自でハンドシェイクするコードを転送したが、まだ実行できていない。ここでサブシステム標準の手順を踏んでテキスト用領域の先頭にサブCPUをジャンプさせる。これで乗っ取ることができた。
 独自のハンドシェイクといっても、メインCPUからのグラフィックデータをそのまま指定した画面上の位置に転送するだけ。ゲームキャラクターの大きさの単位は48×24ぐらいにしたかったけど単色で144バイト、共有RAM128バイトでは一回で転送できない。24×12ならフルカラー(3bit)でも108バイト、OK。実は書き込みに失敗して真っ黒な図形が描かれてしまうことがあり、締め切り前に悩んだが同じ場所に二回描くことでごまかした。ひどいですね。
 音楽はバックグラウンドとして流せるプログラムがI/O誌に公開されていたのでそれを使わせてもらった。スタート画面で音楽がゲーム開始とかぶるぐらいで対して効果的には使っていない。MMLがそのまま機械語に変換できたのが利点だったかな。
 メインのプログラムはKコンパイラで作成。このコンパイラはメインメモリ64Kバイトのうち、後半32KバイトはBASIC-ROMが載っていて、これを切り換えて同じ番地に割り当ててある裏RAMを使った。BASICの行番号とREM文(クオート)に続けてKコンパイラのソースを書き、Kコンパイラ本体をカセットテープから読み込んでコンパイル。エラーがあったらリセットし、ソースを読ませてコンパイラ読ませてまた実行。これの繰り返し。
 変数名での失敗は、効果音で「びよ〜〜ん」と鳴らしたいなあという所でBEYOOONという命名をしたのだけれど、これが後でBEYOONだったりBEYOOOONだったりと混乱の元に。紛らわしい名前、ダメ、ゼッタイ。
 スコア/ハイスコアの表示についてはBCD演算を使っている。これは2進数で計算しても表示するときには10進数に直さないといけないのが面倒なため、どうせ加算しかしないから最初っからBCDで扱えばいいんじゃない?ということで使った。
 いったん出来上がって、全員集まって今で言うレビューをやった。そうしたら画面が眩しいとの話が。少し濃い緑が背景になったのはそのためで、最初は完全に緑だったのです。こういったセンスは他者からの指摘、重要。
 この後、敵キャラクターの動きのアルゴリズムを色々変えたり、面デザインを修正したりと応募するまで小さな改良を続けた。
 さて、これは審査員奨励賞で賞金10万円を頂いたのだがこれは4人で山分け、ただし印税は私がもらうという約束にした。が、その印税は長らく不明だった。高校を卒業するまでそれはおかあさん銀行に預かられていたのである!3万円くらいじゃなかったかな。これであんたの生活が変わったらいかん、というのが当時の頭取の話。
 商用パッケージはどうなったかというと、同時期のゲーム3本と抱合せ販売ということになった。3,500円。そろそろアマチュアの作ったゲームが単品で売れる時代が終わりつつあった頃。ほんとにこれ店頭にあるんだろうか、この辺の田舎には置いてあるはずもないし、と思ってた。
 この後、一ヶ月の不摂生がたたって病院で点滴・浣腸を受けることになる。そして高校3年ではFM-7を封印し受験に専念した。卒業したらまた組んでゲームを作ろうと。受験が終わり、それぞれ長崎、福岡、佐賀、鹿児島に散っていくことになった。手紙のやりとりもしばらくやったが去る者日々に疎し。そんな中、H君は次のゲームのオープニングを作って送ってくれた。
 そしてまもなく。H君は事故で帰らぬ人となった。この曲は私にとっては彼の遺作だ。いつか、なにかの作品に使う。