ファミコン : してログ

YouTube のほうで「FC版ゼビウス 1万点グロブダーを倒したい」という企画をやってみた結果、破壊には成功しました。詳しくはチャレンジ動画のほうを見ていただくとして、少し考察してみたいと思います。なお、プログラムを解析した訳では無く、あくまで推測レベルの話になります。

アルゴリズムの考察

見た目から分かるアルゴリズムは、下記のような割と単純なものだと思います。この場合、ブラスターの投下地点と着弾時間、グロブダー移動速度の関係で、破壊可能かどうかが決まるはずです。

  1. 停止状態
  2. ブラスター投下中の赤い照準に重なっていれば、高速で下方向に移動開始(等速)
  3. 3キャラ(AC版は2キャラ半)分移動したら、初期状態に戻る

AC版との比較では、グロブダーの移動距離が半キャラ長くなっており、着弾のタイミングはほぼ同じに見えます。照準と自機の距離が違いますが、投下開始を合わせて比較すると同じタイミングで着弾するのが分かります。

移動距離はAC版より長い3キャラ分
移動距離はAC版より長い3キャラ分
着弾時間はAC版とほぼ同じ

論理的には破壊不可能?

このようなアルゴリズムではランダム要素も無く、反応する最下端を狙ってブラスターを落として間に合わないのであれば、破壊することはできないと思われます。そもそもロジック的に「破壊不可能なプログラムがされているのでは無いか」というのが私の見解です。

それにも拘わらず、1万点グロブダーが破壊できてしまうのは、恐らく何らかのバグが関係しているのでは無いかと言う訳です。

AC版の破壊シーンから考察

破壊成功シーンをスローで再生してみると、グロブダーの発進が2~3フレーム遅れているように見えます。いっぽうで失敗シーンでは直ちに発進していて、この数フレームの違いが破壊の成否に繋がっていると思われます。

この数フレームの遅れはどこから来るでしょうか? 非常に疑わしいのはキャラクタの座標が何らかの理由で、微妙にブレているのでは無いかという点です。反応するかギリギリのところにブラスターを落とした場合、グロブダーとの位置関係がフレーム間で1ドット程度ブレていると説明が付きます。

そして最も疑わしいのは、処理する CPU の違いです。スクロールによる位置の計算を担当する CPU と、当たり判定をする CPU が異なる場合、グロブダーと照準のスクロール計算が終わってから当たり判定が行われるパターンと、片方のスクロール計算が終わっていないときに行われるパターンがあると思います。その結果、重なっていると判定されたり、重なっていないと判定されたりするブレが生じるのでは無いでしょうか。

数フレーム遅れて発進している

1万点グロブダーはバグから生まれた?

ギドスパリオのオレンジフィルム(爆発時に赤く四角いパターンが混じるバグ)は「バグと分かっていたが面白いので残した」ということですが、1万点グロブダーもこれに似た状況で生まれたのでは無いでしょうか。

つまり、本来は破壊不可能な高速回避のアルゴリズムだが、バグ(あるいは仕様)により稀に破壊可能なプログラムが偶然できたとします。そうとは知らずに「破壊がかなり難しいから1万点にしよう」という判断をして、今の状態になったというものです。

FC版が正攻法で破壊できない理由

ファミコン版の1万点グロブダーはアーケードと同じ方法では破壊できません。これは、アーケードで存在したバグ(あるいは仕様)がファミコン版には無いためでは無いでしょうか。

敵のアルゴリズムがアーケードを再現しているとすれば、1万点グロブダーのアルゴリズムは破壊不可能なものになって当然です。ファミコン版はシングル CPU で処理されているため、座標計算と判定のタイミングが完全に同期してブレないのだと考えています。

FC版の破壊シーンから考察

チャレンジ動画で破壊に成功してから、レトロフリークのクイックセーブを使って確認したところ、やはり相討ちが鍵のようです。ただし、クイックセーブを使っても何十回~百回繰り返してようやく成功するという、かなりシビアなタイミングでした。

照準ロック位置はグロブダーが反応しない限界(これより2ドットほど上でも反応しません)よりも離れているので、この位置を狙っても反応すらしないはずです。

本来この位置関係では反応しない

恐らく相討ちになって爆発パターンの再生が終わった後、僅かの時間だけ座標計算が停止してしまうのでは無いでしょうか。動画をよく見てみると、爆発パターンが終わった瞬間に照準が消え、数フレーム後に爆発しています。この仮定が正しければ、下記のような推論が成り立ちます。

  1. 自機の爆発パターンが再生し終わると同時に照準が消える(この時点で自機関係のスクロール座標計算が停止)
  2. 自機の存在は消え、ブラスターの存在は内部的に残ったままになる
  3. リスタートに移る前の数フレームの間、グロブダーはスクロール座標計算により下方向に移動する
  4. 照準は消滅しスクロール座標計算が停止しているが、グロブダーはスクロールにより照準位置に入ってくる
  5. ブラスターの着弾までに残った数フレームが処理される
  6. 更新されなくなった照準位置とグロブダーの位置で当たり判定が行われる
  7. この結果、当たったと判定され、グロブダーは破壊される

FC版の失敗シーンから仮説の強化

この仮説を思い至ったのは、チャレンジ動画の中で気になっていた現象があったためです。こちらも発生頻度が20時間中2回と、かなり低いため探し出すのに苦労しました。

成功パターンと同じように相討ちになっていますが、こちらは成功時よりも早いタイミングで自機が爆発しています。このためグロブダーが高速発進し、再スタートで画面が切り替わった後にブラスターが着弾しています。再スタートで自機の存在が復活したことで、照準とブラスターが表示され、残りのフレームが処理されたと考えられます。

ブラスターの処理が残っている証拠

結びに

1万点グロブダーの破壊はゼビウスにおいて、上達した後も挑戦したくなる重要なギミックであり、ファミコン版でも破壊可能な存在として入れて欲しかったと思います。当時の攻略本には「このグロブダーはなんと1万点、余裕があれば挑戦してみよう」みたいに紹介されているのですが、とんでも無かったですね。

実は、子供の頃に破壊できた記憶があったため、このチャレンジ企画もこんなに大変だと思っていませんでした。今思うと、その記憶が正しかったのか疑問です。恐らくは、ファミコン版以外のゼビウスの記憶か、単にアーケードより簡単なのだからそうに違いない、と思い込んでいたのだろうと思います。

ジャンクのPS用ジョイスティックをFC互換機用に改造してみたのでご紹介。FC互換機のコントローラは操作し難かったり、耐久性に問題があるものばかりで、シューティングだと辛い。今回はかなり遠いハードオフまで出かけて見つけた、HORI Fighting Stick PS(300円)を使ってみました。

ネオファミ用コントローラの基板
ネオファミ用コントローラの基板
リード線をハンダ付け
リード線をハンダ付け
ジョイスティックに実装
ジョイスティックに実装
完成したコントローラ
完成したコントローラ

中央の連射スイッチ、セレクト、スタートボタンのパネルは死んでいます。ネオファミの連射ボタンを□△に、セレクトとスタートはR1とR2に配線しました。余ったL1とL2はBとAを複数配線して、操作しやすいボタン配置を選べるようにしています。逆にSLOW(スタート自動連打のトグルボタン)は使わないので配線しませんでした。

特に難しいところは無かったのですが、ポイントとなる部分は次の通り。互換機の基板をどう固定するか悩みましたが、両面テープとゴムマットで貼り付けました。元のボタンの部分は直接基板に実装されていましたので、基板の取り外しに苦労しました(ハンダ吸い取り線を使用しました)。この部分はタダの足で芯線をカラゲルことができないので、多めにハンダメッキして横から当てて溶かしてくっ付ける戦法を取りました。あと、連射用のグランドは別になっているので注意が必要です。もうちょっと細いリード線を使えば楽だったかもしれません。

HORI Fighting Stick PS

ネオファミ用コントローラ

ハンダ吸い取り線

また赤い半透明のずんぐりとしたコントローラを買ってきたのですが、今度は斜めが入らない。4方向はちゃんと入るし、右上も入るのですが、そのほかの斜めはまっただくだめ。こういう互換機のコントローラってまともなのあるんでしょうか。無いんでしょうね。中国製に期待するのがそもそも間違いですよね。

改造用のジョイスティックも探しましたが、必要なボタンが欠けていたり、そもそも3ボタンしか無かったり。コントローラでこんなに苦労すると思わなかったなぁ。

諦めてニューファミコンのセット買おうかと思ったのですが、こちらもこちらで専用形状のコネクタなんですよね。なんでスーファミと共通しないの? バカなの? ゲーム業界が衰退するの分かる気がするわ~。

ファミコン互換機は、先月購入したネオファミしか持っていませんが、昨日コントローラが壊れました。症状は方向ボタンが上に入らない、分解してみると方向キーの裏にねじ止めされている十字の羽のようなプラスチックパーツが折れていました。これでは接着剤で着けてもすぐダメになるだろうし、修理の手立てがありません。仕方ないので、別なのをハードオフで調達しようと探してみることに…。

同じ機種のものは無かったのですが、他のFC互換機のもの2つほど試してみました。白色でプレステタイプの形状、中央に「16bit」と書いてあるもの、これはキー配列が違うらしく動きませんでした。紺色でプレステタイプの形状、「Game Cassette COMPUTER ZERO」と書いてあるもの、こちらは一応動くものの十字キーの上が入りにくい感じ。分解してみると、十字ボタンの裏側にやはり十字のプラスチックパーツがあり、その一部が欠けていました。こちらは、製造時のパーツ切断時に欠けたような感じなので不良品だったのでしょう。

ユーザーレビューを見てみましたが、ネオファミ以外の互換機のコントローラは総じてダメなようです。やはり上が入りにくい、などというレビューも散見され、バリなど工作精度が悪いためじゃないかと思いました。ネオファミのは使い易かった(最初だったので気にしていなかったが)けど、耐久性に問題がありそうです。残るは適当なジョイスティックを調達して、分解した基板とコネクターを再利用する形で2個1する、という手でしょうか。

動作NGということでジャンク品コーナーに324円で置いてありました。アダプタと1コンのセットで見た目が綺麗でしたので購入してみました。

ネオファミ(NEO FAMI)
ネオファミ(NEO FAMI)

同じくジャンク品で購入したカセットを試したところ、キャラ化けはするものの起動できるものがいくつかありました。サンハヤトの接点復活王で端子を掃除してみると、持ってるカセットすべて起動したので、結局は壊れてはいなかった「あたり」ということでした。昨日からニューファミコンに入札しようかとウォッチに入れていましたが、これでいらなくなりました。

ネオファミ NEO FAMI

ネオファミ コントローラー

サンハヤト ニューポリコールキング PJR-S120 120ml

ファミコンなんて持ってないのに、懐かしさにでついついレジに持って行ってしまいました。裏には栃木県のファミコンショップ・ヒーローの3ヵ月保証シール、マジックで「さんご」と書いてある。珊瑚ちゃん(女の子?)でいいのか変わった名前ですね。

ワルキューレの冒険は、子供のころ買った数少ないソフトの1本でした。内容はさすがに忘れてしまったけど、メインテーマの音楽だったら未だに口ずさめます。アーケードのアクションゲームになったほうが好きですけどね。