365面のパズルアクションゲーム

1日1面FANTIC

©1984, 2021 GAME ROMAN

■はじめに

 FANTICは、Oh!MZ 1985年3月号に掲載された迎霧狼慢氏作のパズルアクションゲームです。 オリジナルのMZ-2000版をMZ-1500に移植しました。

 迎霧狼慢氏の許可を得て、MZ-1500移植版のMZTイメージとソースコードを配布しています。

 Download

■キャラクタ紹介

ティッ君 このゲームの主人公。ひたすらブロックを集める元気な子。
グローブン はっきり言って悪い子。ティッ君のじゃまばかりする。
黄金ブロック ティッ君の仕事は、これを4個フィールドの中央に集めること。
青ブロック 別に意味はないが、黄金ブロックを集めるときにはどうしても必要になってくる。
オイル 地面にときどき湧いてくる。これを取ると一定時間ティッ君の頭に火がついて、グローブンに触れても大丈夫になる。
コイン 1面1個、どこかのブロックの下にある。いろいろな種類があって、さまざまな現象が起きる。

■HOW TO PLAY

 ルールはいたって簡単、制限時間内に(タイマーが赤のうち)画面上に散らばっている黄金ブロックを画面中央(白い点のあるところ)に4個集めれば1面クリア!! なんだ簡単な…… と思われる方も多いでしょう。しかし面数は365面もあるのですよ……。

 次に、ルールについて説明を。

・ティッ君の操作

 ティッ君は、カーソルキーに対応して上下左右に歩きます。スペースキーを押して、ブロックをはね飛ばすこともできます。

 ブロックの動かし方を間違えてどうしようもなくなったときは、SHIFT+BREAKを押すと強制的にアウトになり、今の面をやり直せます。

・ブロックの動かし方

 これには2種類の動かし方があります。


図1
 ひとつは、ティッ君の前にブロックしかない場合(図1)。ここでスペースキーを押すと、その方向へブロックははじかれていきます。

図2
 もうひとつは、押そうとするブロックのうしろにブロックまたは壁のある場合(図2)。ここでスペースキーを押すと、ブロックを押した勢いで、ブロックはティッ君と一緒に反対方向へはじかれていきます。この場合、ティッ君はブロックにはさまれてもアウトにはなりません。

 はね飛ばしたブロックでグローブンをつぶすと、50~500点もらえます。

・ティッ君の能力

 ティッ君は、グローブンに触れたり、グローブンの飛ばしたブロックにつぶされたり、タイマーが0になるとアウトです。

 しかし、弱いばかりではありません。地面にときどき湧き出るオイルを取ると、頭に火がついて、一定時間(タイマーが黄色の間)はグローブンに触れてもだいじょうぶ。また、ブロックの下に隠れているコインを取ると、さまざまな現象が起こる!?

・グローブンの習性

 グローブンは各面4匹いて、それぞれメチャクチャにフィールドを歩き回ります。また、ときどきブロックをはね飛ばしてくることもあります(ただし黄金ブロックをはね飛ばすことはない)。当然ながらこのブロックにつぶされるとアウトです。

 また、オイルですべって、つっこんでくることもあるので注意!!

■オプション

 タイトル画面で「OPTION」を選ぶと、開始ROUND数とゲームモードを選択できます。

ROUND TO START
開始ROUNDを 1~365 から選択できます。
GAME MODE
ゲームモードを選択できます。
ORIGINALオリジナルのMZ-2000版に準拠したモードです。
ARRANGEグローブンがおとなしくなるほか、オイルによるパワーアップ中にティッ君がグローブンに触れると倒せるようになります。
PUZZLEグローブンが出現せず、時間制限もなくなります。

■移植について

 オリジナル版はMZ-2000用のdB-I BASICで書かれていましたが、MZ-1500にはありませんので、BASICのソースリストをC言語に手作業でコンバートし、z88dkでコンパイルしました。原作の実際の速度はわかりませんので、たぶんこのくらいだろうというレベルに適当に調整しています。
 GPRINT, SOUNDなどのランタイムはアセンブラで用意しています。GPRINT命令によるソフトウェアPCGは、MZ-1500ではすべてハードウェアのPCGでまかなえるため、処理速度にはかなりの余裕があります。SOUND命令は、第一引数N, 第二引数Mについて f = 1 / (N * 13us) の矩形波をM個出力するものと思われ、分周比を適当に変換して8253で鳴らしています。

 ハードウェア依存のランタイムが一応分離されていますので、他機種への移植も簡単かもしれません。(※一部C言語部分からVRAMを直接触っているところがあります)


戻る