プログラムの処理とタイミングがカギ

『スーパーマリオ』の10コインブロック、実は「16枚」のコインが出せる。ただし激ムズ

Image:Nintendo

1985年に発売された超名作ファミコンゲーム『スーパーマリオブラザーズ』には、まだまだ人々が知らない謎が残っているようだ。

このゲームには、主人公キャラのマリオがパンチをするとコインが飛び出る、通称「10コインブロック」があることは、プレイした方ならご存じだろう。その名のとおり、連続パンチをすればおおむね10枚のコインが取得でき、マリオはこれを100枚貯めることで1UP、つまり残りキャラ数を1つ増やせる。

ゲームプレイヤーのKosmic氏は、この10コインブロックから出るコインの数が、最大で16枚にもなることを解析。これについて解説する動画をこのほどYouTubeで公開した。

仕組みをしっかり理解するには、このゲームのコンピューター上の処理における「21フレームルール」を知っておきたい。このルールは、ゲームのクリア時間を競うリアルタイムアタック(RTA)競技について詳しい方ならご存じだろう。

大まかに説明すると、スーパーマリオのゲームプログラムは、21フレームを時間的な1つの単位として取り扱うように処理されている。たとえばステージクリアをした際、次のステージが始まるまでの時間は、21フレーム×6サイクルごとに区切られて遷移するのだ。

ただしクリアした瞬間は、どの時点でも1サイクルにカウントされる処理になっているため、仮にサイクルの20フレーム目でクリア判定が入れば、最初のサイクルは1フレームだけになり、残りの21×5フレームを足して106フレーム(約1.8秒)で次のステージが開始される。一方、クリア判定がサイクルの最初のフレームで発生すれば、次のステージ開始までに126フレーム(約2.1秒)の時間をプレイヤーは待たなければならない。ステージ間の遷移だけで、約0.3秒の時間差が生じるわけだ。

そして今回の題材となる10コインブロックもまた、このルールに則って動作する。Kosmic氏の説明によると、10コインブロックはマリオが最初にパンチした直後から21フレーム×11サイクル、つまり230フレーム(約3.8秒間)の間だけ、繰り返しパンチを受け付ける。そして、マリオが10コインブロックをパンチしてから再びパンチするまでにかかるフレーム数は、最短で16フレームである(間隔が短すぎてもブロックはパンチを受け付けない)。

したがって、時間内に最も多くのパンチを当てた場合を計算(230÷16)すると、最大14回のパンチが可能で、14枚のコインが取得できるということだ。これに最初のパンチで出た1枚と、空ブロックに変わってコインが出なくなる最後の1枚を足した合計16枚が、10コインブロックから得られる理論上の最大枚数ということになる。

Kosmic氏は、自身でも実際にNintendo Switch版『スーパーマリオブラザーズ 35』で16コインを出したことがある。また他にもスーパーマリオのスピードランナーとして知られるAndrewG氏が、2016年にハイスコアランを実行中に16コインを出した例があると、Kotakuは伝えている。

AndrewG氏のプレイを眺めていると、実際に10コインブロックからコンスタントに14枚程度は出しているのがわかる。我々がプレイしていた際も、枚数をしっかり意識していなかっただけで、実は10枚以上のコインが出ていたのかもしれない。理屈の上では最大16枚のコインが出せるということなので、もし手もとにスーパーマリオブラザーズをプレイする環境があれば、試してみてはいかがだろうか。

現在、スーパーマリオブラザーズは「Nintendo Switch(Switch Online)」や、「ニンテンドークラシックミニ ファミリーコンピュータ」、「ゲーム&ウオッチ スーパーマリオブラザーズ」などがあればプレイできる。

関連キーワード:

Gadget Gateの最新情報をフォロー