『ゼルダの伝説 時のオカリナ』にて「スターフォックス64」のアーウィンを“改造なし”で呼び出すテクが発見される。RTAでも活躍
『ゼルダの伝説 時のオカリナ』にて、アーウィンを改造なしで呼び出す方法が発見された。NINTENDO64版『ゼルダの伝説 時のオカリナ』のロム内には、任天堂の3Dシューティングゲーム『スターフォックス』シリーズの自機である戦闘機アーウィンが、データとして存在していることはファンの間では古くから知られている。これまでは、いわゆる改造コードを適用できる周辺機器を用いることで、通常は見ることのないアーウィンをゲーム内に登場させることができたが、そうした外部ツールを利用することなくアーウィンを出現させる方法が発見されたようだ。海外メディアArs Technicaなどが報じている。
アーウィンを呼び出すため外部ツールの代わりに利用されたのは、SRM(Stale Reference Manipulation)やACE(Arbitrary Code Execution)と呼ばれる手法である。SRMは簡単にいうと、リンクがたとえば岩を持ち上げてからその岩を消すことで、別のオブジェクトを出現させられるバグのこと。岩の側でリンクがオカリナを取り出すと、その岩が描画されない距離までカメラが引くことや、コキリの森からデクの樹サマの中に向かう通路にて前後のエリアのアセットが入れ替えられることなどを利用して、リンクが持ち上げたアクションをしたまま岩を消すことが可能だという。
岩が消えても、ゲーム側は依然としてリンクは何かを持ち上げていると認識し、その位置を示す座標も記録される。そこでふたたび岩のある場所に行くと、ゲームは岩を描画するために必要なコードを参照するが、これまでの手順によりその場所を示すアドレスは破損した状態にある。ここで任意のコードを適用し実行させるのがACEに当たる。
そしてそのコードの入力は、妖精のパチンコを構えた際に出現するデクの種の座標にておこなう方法もあるが、日本語版のセーブデータのファイル名を使うことでも可能であることが判明。YouTuberの MrCheeze氏は以下の解説映像にて、まず事前準備として3つのコードを実行してから、最終的にアーウィンを呼び出すコードを入力し、実際にゲームに登場させることに成功している。
アーウィンが登場するのは、映像の5分23秒あたりから。敵キャラクターのごとく、リンクめがけて激しい攻撃を仕掛けながら飛び回っており、プレイヤーは反撃して撃墜することも可能なようだ。単にアーウィンのアセットが呼び出されるだけでなく、『スターフォックス 64』でのゲームプレイがハイラルにて展開されているかのようである。
『ゼルダの伝説 時のオカリナ』のロム内に存在するアーウィンのデータは、同じくNINTENDO64向けに発売された『スターフォックス 64』のものと思われる。なぜ通常のゲームプレイで登場しないアーウィンのデータが存在するのかというと、炎の神殿で出会うボスのヴァルバジアに関係しているようだ。任天堂前社長の岩田聡氏による開発者インタビュー「社長が訊く」の中で、本作を手がけた滝澤智氏と森田和明氏が、『スターフォックス 64』で使ったアーウィンのプログラムをそのまま流用することで、ヴァルバジアのうねるような動きを短時間で実現したという裏話を明かしている。おそらく、その際に使ったデータが残っていたのだろう。今回の映像で見られたように敵として振舞っているのも、こうした背景に関係しているのかもしれない。
ちなみにACEを利用することで、任意のカットシーンを呼び出すことも可能。すなわちエンディングにワープすることができるため、『ゼルダの伝説 時のオカリナ』のスピードラン(Any%)においては、この数日で大幅な記録更新が相次いでいる。これまでは、昨年7月にTorje氏が記録した16分58秒366が最速だったが、本稿執筆時点ではLozoots氏の11分58秒716が最速記録(上の映像)。妖精のパチンコを素早く正確に構え、実に5分も短縮している。アーウィンの呼び出しに使われたテクニックは、こちらでも大きなブレイクスルーとなったようだ。