『スーパーマリオワールド』最速クリア記録の更新止まらず。「コントローラー4本挿し」発明以来怒涛の更新を経てベストタイムは45秒
『スーパーマリオワールド』の0 exit(一度もゴールしない)をめぐる最速記録の更新が止まらない。これまで約1年ベストタイムの更新が滞っていたが、1月後半に「4本挿し」が発明されて以来SethBling氏、furious氏、Area51氏が凌ぎを削り最速の男を目指して新記録を連発している。そして本日2月8日にSethBling氏が45秒920というタイムを叩き出した。1年前の記録と比較すると、約30秒短縮されたことになる。
今回の『スーパーマリオワールド』のスピードラン(RTA)は実機で遊ぶことが条件となる。プレイヤーは改造なしのROMを使用し、最速クリアを競う。とはいえ0 exitという不穏なルール名からもわかるとおり、この競技に関してはクッパを倒すことがベストな道筋ではない。エンディングを引っ張りだすことが最短となる。そこで必須となるのが「クレジットワープ」だ。
「クレジットワープ」とは、スプライトスロットの仕組みを利用して、コマンドを入力することでメモリの値を操作し特定のコードを呼び出すというもの。ヨッシーと赤甲羅、コインとそのほかのオブジェクトを利用して強引にエンディングを呼び出す。そしてクレジットワープでただでさえ短時間でクリアできたものが、SethBling氏によるコントローラー4本挿しという発明(スーパーマルチタップ使用)によりさらなる時間の短縮が可能となったのだ(関連記事)。
SethBling氏の45秒クリア映像は一見理解不能であるが、氏はredditにて一連の流れのポイントを説明している。その仕組みをかいつまんで解説しよう。
① まずプレイの最後で、ヨッシーはコインを取ろうとして舌を伸ばす。マリオはヨッシーが食べきる前にコインを取ってしまうが、ゲーム内部(メモリ)ではまだヨッシーがコイン食べる処理を行っている。この時に、マリオが移動することで画面が右側へ移動し、ブルが画面に現れるが、内部的にはヨッシーの舌が読み込んでいる情報(メモリ)とブルの登場地点が重なってしまうことになり、ヨッシーはブルを捕まえたと思ってしまう。
② そしてブルには、ヨッシーに食べられると(キノコやフラワーのような)強化アイテムとみなされるフラグが設定されている。これは、そもそも普通はブルを食べることができないので問題にはならない。だが、ブルを食べることができてしまった場合は、該当する処理コードが設定されていないため、その時点でメモリに書かれているコードを実行することになる。具体的には、そのメモリにはスプライトグラフィックの位置とプロパティが格納されている。さらにここで、特定のグラフィックを画面の特定位置に登場させる(マリオがモノを持ちながら方向転換をして、さらに甲羅を蹴って白い煙を発生させる)ことで、内部のCPUに、コントローラーから入力されている特定のコードを実行させることができる。
③ ゲームには、2個のハブを使って計4個のコントローラーが接続されている。そのうちの3つは、洗濯バサミのようなものでボタンが固定されていて、ゲーム内に格納されているコードを実行するよう指示が出ている。これによって、ゲームモードがエンディングに切り替わり、モードが切り替わった以外はゲームが通常通りに実行される。
つまり、普通ではありえないマリオの行動のせいで、内部的には、ヨッシーが画面右端に登場した瞬間のブルを「食べて」しまう。そしてブルを「食べた」際のゲームの挙動が設定されていないため、ゲームはどのような画像処理を行えばいいかわからない。その結果、コントローラーから入力されたコードを実行しようとする。操作に使用していない3つのコントローラーから、「ゲームをエンディングに飛ばせ」という指示が出されている。こうした仕組みによりエンディングに飛び立つことができるわけだ。約1年間トップを守った1分13秒という記録の映像と比較しても、いかに無駄がなくプレイされているかよくわかるだろう。
FURiOUSのSuper Mario World – 0 Exit (Credits Warp) – 1:13.32をwww.twitch.tvから視聴する
新境地を開拓し、かつ記録を更新し続けるSethBling氏とは何者なのだろうか。氏はゲームプレイヤーであると同時にプログラマーとして知られている人物だ。『マインクラフト』ではゲーム内に『スプラトゥーン』といった他作品をモチーフにしたゲーム内ミニゲームModを数多リリース。さらにはゲーム内でビデオ通話できるModを導入したり、ゲーム内にAtari 2600エミュレーターを導入したりととにかく天才的かつ型破りな発明を生み出してきた。
マリオシリーズにおいては、『スーパーマリオワールド』にてニューラルネットワーク学習でステージをクリアするAI「MarI/O」、TensorFlowを使い『マリオカート』の全自動運転を実現した「MariFlow」なども発明済み。そうしたプログラムの知見を持つSethBling氏だからこそ、今回のコントローラー4本挿しというアイディアは生まれたのだろう。常に予想外のものを生み出し続ける、プレイヤーとしてもプログラマーとしても類まれなる才覚の抱えるSethBling氏。さらなる記録の更新、ひいてはさらなる発明についても期待を寄せたいところだ。