古い土地

暗い穴

時オカ日記②(コキリの森 LightNode SRM編)

 

 前回は基本的なグリッチを履修した。

 

<前|

wagaizumo.hatenablog.com

 

 今回は「無を取得」=SRM(Stale Reference Manipulation)ACE(Arbitrary Code Execution:任意コード実行)を実践してみたいと思う。

 

 発見(2019年10月)以来とんでもないスピードで発展したSRM。ここ1年の間にも着実にアップデートが進められた。

 2022年2月現在では「Any %」の節で紹介するLightNode SRM(2021年3月発見。以下LNSRMとも記す)のセットアップを1つ覚えるだけで

  • クレジットワープ(Any%)
  • ガノン城崩壊後ワープ(Defeat Ganon)
  • 死亡後タイトル画面でセーブし大人リンク+タイトルファイル読み込み(No WW)
  • 子供リンクでタイトルファイル読み込み
  • デバッグメニュー呼び出し
  • アーウィン呼び出し

が可能になっている。初心者がコキリの森でのSRMを習得するまで5-10時間かかるだろうが*1、その価値はありそうだ。

 これでも以前よりは簡易化しているし使用可能なハードも多い。SRMに挑戦するなら割と今がおすすめ。speedrun.comのメインカテゴリでいうと「Any%」「Defeat Ganon - SRM」「No Wrong Warp - SRM」の3つは走れるようになる。

 

 「All Dungeons - SRM」や「100% - SRM」で使われる迷いの森における各種SRMはまた別稿で扱う予定。

|次>

wagaizumo.hatenablog.com

 

 

 

始める前に

 

[バージョン・ハードの話]

Version Differences - ZeldaSpeedRuns

OoT Platform Differences - Science - Google スプレッドシート

 

 SRMのセットアップは強くバージョンとハードに依存する。今手に入れやすい時オカのROMはWii U VC*2/Switch NSOだろうが、LNSRMはちょうどこれらのハードで可能。あまり出回っていないがRTAを本格的に走るなら(操作感という意味でも)Wii VCが望ましい。

 N64後期版でも出来ると書いたSRMは出来るはず(クラッシュしたら申し訳ない。実機はLNSRMによる任意メモリ書き出し(Arbitrary Ram Write)に対して少し不自由なところがある)

 

 追記(2022/2/21)Switch NSOはヒープメモリだけ何故か他のNTSC 1.2と仕様が異なり、そのためSRMに関しても環境が変わるSRMが絡まない文脈ではNTSC 1.2扱いしてよいが今回に限ってはしない方が良さそうだ。

 幸いにもLightNode SRMはSwitch専用セットアップが開発されている。ただし任意メモリ書き出しに関する制限/ヒープメモリの仕様からいくつかのファイルネームは使うことができない。

 任意メモリ書き出しの自由度を低い方から並べると

  • N64:4の倍数でないメモリアドレス、および"0x80"以外から始まるメモリアドレスを参照するとクラッシュ
  • Switch:"0x80"以外から始まるメモリアドレスを参照するとクラッシュ
  • Wii VC/Wii U VC:"0x80"以外から始まるメモリアドレスも使える場合がある。2つのハードで使える範囲が違い優劣はつけられない(Wii 限定のSRMWii U 限定のSRMが存在)

 誤りを含んでいるかもしれないが大体の目安にしてほしい。

 

 現在ではNTSC 1.2(日本語のN64後期版/Wii/Wii U)を中心としてSRMは研究開発されている。時オカの場合グリッチハンターとスピードランのコミュニティが殆ど同じであること、Wii VCが基礎動作の点でRTA最速であること、any%以外のSRMカテゴリではACEが禁止されていてN64実機を使うモチベが低いこと、技術の進展によりACEを使う場合でも実機よりWii U(/Switch)が有利になってきたこと、などが原因。

 

 N64初期版/中期版SRM黎明期に比すと顧みられていない。理論的に可能でもセットアップが公開されていないことがしばしばあり、SRMでは遊びづらいかもしれない。

 GCはその独特のエミュ仕様(Just-In-Time Compiler)やメモリアドレス配置からRTA最速ハードになることもある(一時期のany%や現在のDefeat Ganon)。GC版限定のSRMGC版だけできないSRMは結構存在し、全体的にはSRMで遊びづらそう。

 なおGC版は更に2つへ分かれる。風タクの予約特典として裏が収録された『時のオカリナGC』(MQ:Master Quest)とクラブニンテンドーの景品として頒布された『ゼルダコレクション』(CE:Collector's Edition)。ふつうMQの方が使われる。

 

 

まとめ

  • N64:ACEができる。現在では初期版/中期版より後期版の方がSRMで遊びやすい。不正なアドレスポインタに対して脆弱であり、LNSRMによる任意メモリ書き出しでは他機種=エミュレーターよりクラッシュしやすい。
  • GC:ACEが一部できない(※)。独特なエミュ仕様とバグによりこの機種でのみ可能なSRMと不可能なSRMがある。
  • Wii:ACEが一部できない(※)。Wii本体の仕様・バグによりこの機種でのみ可能なSRMがある。基礎動作の点で最速。
  • Wii U:ACEができる。クイックセーブが備わり練習しやすい一方、入力遅延がありポーズバッファも実質不可能。LNSRMをやる限りではあまり問題にならない。一部SRMWii Uでのみ可能、
  • Switch:ACEができる。クイックセーブが備わり練習しやすい一方、入力遅延がありポーズバッファも実質不可能。LNSRMはセットアップが変わるが可能。独特の仕様によりこの機種のみ不可能なSRMが今のところ多い(Switch限定のSRMもそのうち見つかるか?)

 

※:「ACEができない」のはある種のエミュ不備である。完全なエミュならACEまで再現できるはずなので。

 ただここで言う「ACE」がどこからどこまでを指すのか筆者はよく判っていない。N64後期版/Wii U/Switchで可能なのに(バージョンが同じはずの)Wii VCでクラッシュするACEはいくつも存在する。しかし「total contorl ACE」かつ「全てのドアをアーウィンに変える」というヤバげな命令を実行するアーウィン呼び出しはWii VCでも可能なのだ。

 

 

[理論の話:reference]

 

 今回は実践が目的なので基本的に理論は説明しない。興味のある方は次を参考のこと。

【翻訳記事】時のオカリナにおける任意コード実行について - しままのものづくり

【RTA解説】Wii「スマブラX」収録 5分体験版「時のオカリナ」any% を可能にしたグリッチ part1/2:SRMとWrong Warpの基礎 - 古い土地

 

 理論を別の側面から追うものとして時のオカリナany%を中心にSRM/ACEの歴史をつづった次の資料がある。上で「独特のエミュ仕様」とか「本体のバグ」とかと述べたもの、あるいはLightNode SRM自体についても触れている。

【時のオカリナ・ムジュラの仮面】SRM/ACE 以降の ゼルダ RTA 史 part 1/2:(2019年10月)~2020年2月 - 古い土地

【時のオカリナ・ムジュラの仮面】SRM/ACE以降の ゼルダ RTA 史 part 2/2:2020年3月 ~ 2021年 - 古い土地

 

 

 

 

 

Any%

 

 コキリの森からのクレジットワープについては次の動画がそれぞれ参考になる。

 

N64初期版「87Nジほブeぞ」

OoT Any% ACE Tutorial - YouTube

※:現在ではN64後期版でLNSRMを使った方が10秒近く速くなる。下で紹介する「ラをニヌラか3モ」

Ocarina of Time | Any% | 7:25 [N64 WR] - YouTube

 

 

GC版「■■ラ.0F」(■の部分は任意)

Ocarina of Time Any% Tutorial (GameCube Movie Night ACE) (Outdated) - YouTube

 このルートはGC版特有の仕様・実装不備を利用しているため他機種では不可能。

※:GC版も以下のようにLNSRMを使った方が数秒早くなる。「シ ラにYつラリ」。ただしゼルコレ限定?

Fast CE/MQ-MQ LightNode angle setup 0xb168. hold right edition - YouTube

Ocarina of Time Any% Speedrun in 7:07.666 - YouTube

 

 

Wii VC「ラんぐUVくBヲ」

Ocarina of Time any% Speedrun guide (Wii VC lightnode route) - YouTube

 Wii VCのルートは「VくBヲ」を利用するあたり(のみ)ハード由来のバグを利用していて他機種では不可能。

 

 

N64後期版/Wii VC/Wii U VC/Switch NSO「ラをニヌラか3モ」

Ocarina of Time - Credits Warp (ramwrite method) for N64/Wii/Wii U - YouTube

 ファイルネーム以外Wii VC any%と全く同様のLNSRMを行えばよい。デクの樹内でスタッフロールが流れ始める粋な演出。

※1:屋内でポーズ画面を開かないこと。特にいつものノリで店内で開かないこと。

※2:N64後期版およびWii U VCならN64初期版ルートのヴァリアントを使っても良い

Alt setup for OoT any% ACE 0x0804 (backup, and 1.1 and 1.2) - YouTube

 

 

 一般にコキリの森におけるSRMは次のような流れで行われる。

 

①ファイルネーム入力

②55ルピーを集めつつ剣・盾・デクの実回収

③ロードゾーン跨ぎ/Return A

④移動

⑤WWT(Walking While Talking)

⑥カメラロックSRM

⑦角度調整

 

[原理] 

 Return Aでカメラ角度を固定。WWTは本来カメラ位置を固定するがReturn A中に起こすことで相殺し奇妙な状態になる。石を斬りつけるとReturn Aが解除されWWTが発動、カメラが看板側に飛ばされる。これにより石をアンロードしつつ掴むこと(無を取得)ができる。

 SRMはヒープ調整・角度調整を完璧にこなし無の角度の値を特定のアドレス(に位置するアクターの情報)に流し込むことで本来ありえない命令を実行する。Filename LightNode SRMの場合、ファイルネームを「X Y」とすれば最終的に「アドレスYに値Xを書き込みアドレスXに値Yを書き込む」(実際は±4±8する)。これがやけに強く、LNSRMという共通規格の中ファイルネームを変えるだけで様々な効果を引き出せるようになった

LightNode SRM Information - Google ドキュメント

 ちなみに今回利用するLightNodeとはミドの妖精(のアクター)が持っている構造体である。「かけがえのない友達」ミドの妖精説。

 

 以下では主にWii VC any%のチュートリアル動画に従い、NTSC 1.2(N64後期版/Wii/Wii U)におけるFilename LightNode SRMを例示しよう。

 

※:Switch版でのセットアップは相違点だけ「補足:Filename LNSRMの別セットアップ~」に収めた。ヒープメモリ以外はNTSC 1.2と同じアドレス配置だから、NTSC 1.2と同じファイルネームで同じ効果を得られる。

 

 

①ファイルネーム入力

 

 Wii VC Any%では「ラんぐUVくBヲ」(803743BF C011AC86)と入力する。

 

 初心者は名前だけ入力した初期ファイル(保存用)とそのコピー(練習用)の2つを用意するとよい。通すときは練習用ファイルを消してまた保存用ファイルからコピーすればいちいち名前を入力しなくて済む。

※:タイトルファイルを使うRTAを走る場合(No WWの現行ルート等)ファイルが否応なく「LINK」で上書きされるためこの方法を強く推奨

 

 

②55ルピーを集める

 

 今回はヒープ調整のためコキリの森内の復活しないルピー(permanent rupee:柵内バック宙でとれる1+1+5ルピー、看板を縦斬り/突きする5ルピー、橋の上の5ルピー、ミドの家裏の5ルピー)を全て集める。いくつかスル―するセットアップもある(「ラ97ぉ」によるタイトルファイル読み込みなど)

 

 GC版のチュートリアル動画から以下で自分用にテキスト化したが、動画を観た方が速いと思う。どこで何ルピー取得するはずか覚えておくこと。

 

[セットアップ]

家を出たら前を向いてバック宙バック走→右横跳び2回(2 ルピー)→少しバック走してバック宙で坂の上→穴(crawlspace)に照準を合わせてバック走

穴を出たら前を向き注目→バック走 or バック宙→右横跳び2回→バック走→左横跳び1回(9ルピー)→右横跳び5回→バック走→宝箱を開ける

宝箱に注目しバック走→ポーズを開きコキリの剣を装備→右横跳び9回→草を切りつつ5ルピー回収→左横跳び2回→バック走→穴へ(14+αルピー)

穴から出たら正面に注目→バック宙→左横跳び→バック宙(21+αルピー)→草を切って最低2ルピー回収(23ルピー)→看板に縦斬りor突き(28ルピー)→バック宙2回で下へ(28ルピー)

Bridge Clipで橋の上の5ルピー→ミドの家の後ろの5ルピー→草の中の2ルピー(40ルピー)→飛び石の5+5ルピー→店内の5ルピー(55ルピー)

 

※1:ルピーの過不足

 世界記録狙いなら草から7ルピーを出す。その場合飛び石の隠しルピー(店-ふたごの家ライン)をカット。

 逆に草から2ルピー出なかった場合、ミドの家にある5+5+1ルピーから補充する。家を出入りすると藪内の1ルピーが復活することも使える。うまく計算して店内で55ルピー以上にすること。

 

※2:Bridge Clip

 橋に向かってジャンプ斬りするやつ(Bridge clip)は1F技なので頑張ろう。最高点でジャンプ切を出すとか。3回失敗して通常ルートと同程度。

 次のようなセットアップもある。画面が(だいたい)いつも同じになるので1Fのタイミングをとるのに集中できる。橋の上で確実に横跳びできるのも利点。

せーら姫 on Twitter: "橋上ルピーメモ #NINTENDO64 #NintendoSwitchOnline #NintendoSwitch… "

 

※3:セーブ

 セーフティセーブ/練習用にセーブするなら盾とデクの実を買って装備した時点でするとよい。以下の工程でミスった場合、取り返しがつかない(WWT後カメラがどっかに吹っ飛ぶ等)ならソフトリセット後に店を出入り、取り返しがつくならそのまま店を出入りしてやりなおす。

 

 

 

③ロードゾーン跨ぎ~Return A

 

 ヒープ調整の一環として店を出た直後に隠しルピーのある足場を踏む(これによりルピー取得失敗フラグを立てる)こと。セットアップによっては逆に踏んではいけない場合もある。踏む場合は次のようにする。

 店から出る→スティックを右上に倒しつつローリング→左上に倒して注目→右横跳び

 

 

 ロードゾーン跨ぎが複雑なSRMもあるが、今回は単に「ミドの方を見ながらデクババ側をロードする」だけでよい。この動作はReturn Aの[セットアップ1]に含まれている。

 Return Aはカメラ角度を固定するグリッチ。ダメージをガードできる状態で同時にZ+R+C上を押すと発動。

OoT: "Return" A - YouTube

 

 

[セットアップ1]

f:id:wagaizumo:20220205011956j:plain

Wii VC any% チュートリアル動画 0:30より引用)

 

ミドを抜けたあと模様を目印に壁へ密着&注目。角度を合わせる

→右横跳び&サイドロール

→左を向く

→右横跳び*4

→右を向いてReturn A

 

 正しく行えばデクババの攻撃を待つまでもなくReturn Aができる。2秒ほど短縮。

 最後右を向くときは盾を使わないこと(使うとガードして後退するかもしれない)

 

[セットアップ2]

デクババ傍の壁に密着し注目

→右を向く(ESSターンかスティックを一瞬ある程度傾ける)

→Return A

 

 こちらはデクババの攻撃を待つ必要がある。デクババがぐわぐわ言い始めてから2秒でReturn Aチャンス。

※1:同時押しの調子が悪かったらポーズバッファを使う手もある(その場合はZ, Rの先行入力を意識しポーズが消えかかったときに押す)。いずれにせよ敵の攻撃とのタイミングを計る。

※2:グダるとReturn A前にナヴィが出てくる。その場合テキストを消化すること

 

 

 

④Return A後の移動

 

 ここから剣を拾った小穴(crawlspace)まで移動する。水に落ちる/崖に上る/柵から降りる等でReturn Aは解除されてしまうから、スティックを少しずつ倒すなど慎重にやるかセットアップで動きを固定化すること。

 更に今回のセットアップではヒープ調整も行う。

 Return A中の操作は「固定されたカメラ角度に従う」(逆視点と呼ばれるグリッチと同様)。右を向いて奥側へ左横跳びしたい場合は上へスティックを倒す。直観的。

 

[移動の例]

壁に密着し右を向いた状態でバック走→バック宙で水を飛び越える(※1)→左横跳び二回で店前に(※2)→バック走→バック宙2回で飛び石を越える(※3)

女の子のあたりで方向を変え手前にバック走→バック宙で柵を越える→左横跳び→バック走→穴へ

 

※1:Return Aの設定角度が正しいと右足だけ足場についた状態。ギリギリ

※2:隠しルピーがある飛び石をかならず踏む。ヒープ調整

f:id:wagaizumo:20220205012223j:plainWii VC any% チュートリアル動画の0:46より引用)

※3:飛び石の5ルピーは必ず回収する。バック宙時に取れなかったら浅瀬から横跳びで取れないか試行する。これもヒープ調整。

 

 一般にバック走中のバック宙は少し反応が遅れる。そのせいで滑り落ちかねないのでよくよく練習すること。飛び石一回目が本当に滑る(看板に視界を邪魔される)

 

 

 

⑤WWT

 

 Walking While Talking(WWT)は古くから知られているカメラ位置・角度を固定するグリッチ。この状態のままリンクを動かすと例えば森抜けができる。

Walking While Talking - ZeldaSpeedRuns

The Legend of Zelda: Ocarina of Time - Walking while talking / Exit Kokiri Forest without a Sword! - YouTube

 今回Return A中に行うため、その効果が(石を斬りつけるまで)表面化しない。

 

穴に入る

→スティック下で戻る

→すぐ右下へローリング、そのままA連打して看板に話しかける

→デクの実を使用し動けるように

→Z注目

→テキストをC上で消化する

→柵に近づく

→ポーズしてからバック宙(スティック右下ないし下)で柵を越える

 

※1:WWTの影響でポーズしないとバック宙が出せずソフトロックするので注意。リセット案件

※2:デクの実使用後にテキスト送りをAでしてはいけない。看板が壊れているので店の出入りからやり直し。

 

(バック宙中に)Zを外す

→左横跳び(Zを外したまま左Aでよい)*nで石に近づく

→左サイドロール(Aのみ)

 

※1:左サイドロールはカメラ角度によっては前方へのローリングに見える。

※2:バック宙で柵を越える前も越えた後もちょっと柵に近づいた方が安全かもしれない。越える前は柵にひっかかるのを防ぐため。越えた後は崖や樹の根にひっかかるのを防ぐため。わずかでも段差から降りたらReturn Aが解除されカメラが吹っ飛び、大抵リセットするしかない

 

 

⑥カメラロックSRM

特定位置(石の左側)に立って右+Bで横斬り、A連打で無を取得

 

※1:横斬り(斜め斬り?)を出すのが凄い大事。Bを押した後もしばらくスティック右に倒していた方がよい。石を斬りつけることに失敗してAでジャンプ斬りが出たら大体の場合おしまい。とはいえ右の石を斬りつけても左の石を斬りつけてもよいので横斬りさえ出せば以前のセットアップより余裕がある印象。

※2:WWT後バック宙した時のリンクの角度(≒バック宙したときどれぐらい壁から離れていたか)に依存してカメラロックSRM時のカメラ角度、床の模様の見え方が変わる。このため画像で「ここら辺に立つと良い」というのが示しにくい。練習時特に困る部分。

 どうやってもよいが初心者はWWTからバック宙するまでを固定化し、カメラ角度・床の模様も固定化すること。壁にこすりつけるようにやった方が最初は分かりやすいかもしれない。

※3:

f:id:wagaizumo:20220205012805j:plainWii VC any% チュートリアル動画の1:32より引用)

 今回は「YES!!」と言われた右の石(circle6 rock)を掴むが、これ以外のセットアップだとほぼ必ず「NO!!」の石(circle5 rock)をとる。

 

 位置調整にはリンクの右足付近が視覚的ヒントになる。石に密着しつつ、上の画像で青い丸に囲まれた模様と右足との距離を測る。

f:id:wagaizumo:20220205012831j:plain

世界記録から引用。一切止まっていない。

[WR] Ocarina of Time Any% Speedrun in 6:49.150 - YouTube

 

 

 

 ここからビートを頼りにデクの樹方面まで持っていく。

 

譜面

 

 BGMより速めにカウントする傾向のある自分にあわせて少し改変している。イメージトレーニングを重ね最初は譜面をじっと見ながらやると良い。

Any% Walking While Talking Movement (Front of Shop) - YouTube

 

右2拍、右下1拍、画面端に到達まで右

→右9拍

→右上2拍(ほど、ジャンプ後すぐ)上2拍

→右上3拍(ほど、ジャンプ後すぐ)右2拍

→右上12拍

→左上7拍

 

※1:掴む石が一個左(通常のカメラロックSRM)なら初動は「右2拍、右下2拍」となる。今回それをすると無が石に変わってしまうかもしれない(看板側に近づきすぎて本来のものがロードされる)

※2:初動は要するに「基本右、途中で右下を1拍(ないし2拍)混ぜる」ということ

※3:安定択として店の後ろを通る方法もあるが、具体的な譜面が見つからなかった。

←見つけた。とにかく成功させたいならこちらの譜面に従うとよい。水没の危険性が低い。

https://www.youtube.com/watch?v=mSj_PQBrPgc&ab_channel=Colty

 

 

[トラブルシューティング:blind section]

 

Q:カメラが吹っ飛んだ

A:水没してるので諦めてリセットすること。

 

Q:2回のジャンプ(Aボタンのアイコンが縮むことから判断できる)が成功していてなお着かない

A:おそらく最後の曲り角でひっかかっている。右上に2,3拍入れてから左上をしばらく入力すればいけるかもしれない。諦めてしまわずに

(とはいえここでガチャガチャやることが原因でヒープが崩れるのか、カメラが戻ったとき無を持っていなかったりロードゾーンを跨いだとき無を手放してしまうことがある)

 

 

 

 

⑦角度調整

 0xaca0が目標*3。Z注目は使えない。

 

[簡単なセットアップ]  

angle setup for VC light node SRM - YouTube

 壁沿いを手前に動いてロードゾーンを跨ぎ、リンクを軽く上下に動かしながらカメラとリンクを0x8000(真正面)に合わせる。デクババ側に行きすぎると無を手放してしまうので注意。

f:id:wagaizumo:20220205013145j:plain

チュートリアル動画より。この角度)

 

→左を向いてカメラが完全に止まるまで待つ。9秒ほど。リンクの角度が0xc000になる

→後ろに3F以上歩く(カメラが少しガクッとする)

→前を向く

→右ESSターン2F

→無を置いて(Rでシールドドロップ)ロードゾーンを跨げばok

 

※1:ESSターンに失敗した場合、何も操作していないとカメラがリンクの向いた方へ追従する仕様を利用すれば無を持ったまま再チャレンジできる

※2:緊張して手が震えるときなどはESSターンにポーズバッファを使ってもよい。このときESSポジションを入力した次のフレームはまだリンクは動かないので注意。そこで焦って倒し過ぎると失敗する。Wii U/Switchはポーズバッファがまともにできないので諦めてESSターンを習得してください。

 

 もっと早いセットアップもあるらしいが、「対角線の入力を得るためコントローラー抜け」とか「y=43の入力を得るために~」とかなんかよくわからなかったのでここでは紹介しない。詳しくはWii VC any%のチュートリアル動画を参考のこと。

 

 

[トラブルシューティング:角度調整後]

 

Q:ものしり兄弟の家に行く

A:惜しい。全てを正しくやっても30%の確率でそこに行ってしまう

 

Q:デクババがロードされる

A:ヒープ調整が間違っている

 

Q:デクババがロードされない/クラッシュする/その他

A:ヒープ調整は合っていて角度調整が間違っている

 

 

 Return A自体、Return A後の移動、カメラロックSRM、blind状態での移動、角度調整。それぞれ個別に練習が必要である。Wii U/Switchならクイックセーブを利用すると練習しやすい。

 1個1個はそれほど難しくないのだが通すとなるとやはりミスが出てくる。また、通しになって初めてヒープ調整の問題に直面する(どこでミスったのか特定しにくい)。

 

 

 筆者のany%初通しがだいたいこんなもの。

f:id:wagaizumo:20220205013412j:plain

 30回ぐらい試行して9分切り。これ以前に2回の9分切りペースがものしり兄弟の家で潰されたので、ここで区切ることにした。

f:id:wagaizumo:20220205013454j:plain



 

 

 

補足:Filename LNSRMの別セットアップ/Switch用セットアップ

 

 上で紹介したセットアップが肌に合わない方のために、あるいは動画を参考にする際見かけで混乱しないために、最終的に同じ効果の別セットアップを紹介する。相違点だけ述べる。

 

 次は初期に開発されたセットアップ。

LightNode SRM heap setup for 1.2 - YouTube

 ロードゾーン跨ぎの分若干遅い。Return Aしてから穴に潜るまで水没の危険性は低そう。石をつかむ際の位置調整はシビアに感じる。

 

店を出てから飛び石を踏む。

 「ロードゾーン跨ぎ」

→ミド側へ注目しバック走。デクババをロード

→そのまま前進。回転切の構えでミド側をロード

→デクの樹側へ注目し直して前進、回転切の構えでデクババをロード

→そのまま手前に向かう。回転切の構えでミド側をロード

→ミド側へ注目し直してバック走。デクババをロード

→Return A

→回転切の構えでミド側をロード

 

 このあと横跳び連打(ないしバック走&バック宙)で穴まで。

 カメラロックSRMにおいて掴む石は上で「NO」と呼ばれていた方。blind section最初の譜面は「右2拍、右下2拍、画面端に到達まで右」となる。

 

 

 Swtich用のセットアップに関しては次を参照。

【字幕解説】ゼルダの伝説 時のオカリナ RTA 100% NSR 10:39.38 - ニコニコ動画

https://www.youtube.com/watch?v=lyq5nyM0HCM

 

店を出てから飛び石を踏まない

「ロードゾーン跨ぎ」

→ミド側へ注目し手前へ移動。回転切の構えでデクババをロード

→カメラはそのまま一往復(前進/バック走)

→Return A

 

 このあと横跳び連打(ないしバック走&バック宙)で穴まで。

 カメラロックSRMにおいて掴む石は「NO」と呼ばれていた方。予め抜刀しておいた方が斬りつけ時の位置がぶれずに安定する(横斬りでも縦斬りでも大して成功率に違いは無い?)。

 blind section最初の譜面は「右2拍、右下2拍、画面端に到達まで右」となる。

 

 

 

[ロードゾーン跨ぎ小論]

 ヒープメモリはリンクの被ダメージ、デクババを倒したこと(に付随するアクターの発生?)などまで記録する。とはいえこれらの情報が大勢を決することはない。

 リンクが回転切を構えることはヒープに記録され、これはヒープ調整にしばしば活用される。

 更にロードゾーンを跨いだ時、カメラ角度によってはミドや奥のデクババは”culled”状態になる。つまり描画と更新が止まる。これもよくヒープ調整に活用される。デクババの方を向いてロードゾーンを跨げばミドはculledされるわけである。

 culled/unculledを制御するため、ロードゾーン跨ぎはミドと奥のデクババを結ぶ直線状でよく行われる。Wii VC any%の横跳びだけで済ますのが例外的。

 

参考:コキリの森クレジットワープ最初期、iQue TAS時代のドキュメント

Ocarina of Time Credits Warp - Extended Description - Pastebin.com

 

 

 

 

No Wrong WarpSRM

 

現ルート(Wii VC)「ラをぺろラくy8」

f:id:wagaizumo:20220221154717j:plain

Zelda OoT No Wrong Warp Speedrun in 18:30 ! - YouTube

 

 死んでタイトル画面のリンク(ムービーでエポナに乗っている奴)を操作する。トワプリやスカウォのBack in Timeを思い出すグリッチ。とはいえポーズ画面以外まともに動かせないが。

 Wii VC any%とファイルネーム以外は全く同じLightNode SRMなので、any%を覚えたらこちらもやってみよう。「GSR」「No WW – No SRM」と並んでRTA初心者におすすめされるカテゴリである。Wii VCに限らずNTSC 1.2/Switchで可能。

 

 ところでファイルネーム「ラをぺろラくy8」の「ぺ」は平仮名なのか片仮名なのか。 

 そういう時おすすめなのが次のツール。ここに「80365834 8011dd08」を打ち込むと正しいファイルネームを教えてくれる*4。どうやら平仮名らしい。

https://lemon32767.github.io/ootfname

 

 ちょっと前は死ぬためにわざわざデクの樹内に入っていた。

Ocarina of Time - Fast Lightnode SRM for title file and age change - YouTube

https://www.twitch.tv/videos/1070507920

 現世界記録がやっているように、ロードゾーン跨ぎを繰り返せばすぐデクババと会える。

 

 

死んだ後は「いいえ」→「いいえ」でタイトル画面に。

ポーズを開きC左ハンマー、C右光の矢、巨人のナイフを装備。セーブ。「LINK」という名のファイルを選択。

 

※:SRM以前にセーフティセーブをしているとタイトル画面でセーブしてもタイトルファイルが残らない。セーフティセーブが要らない程度の成功率になってから挑戦すること。

 

残りはガノン城周り

→残像剣・ボムホバーで結界スキップ

→塔を登ってガノンドロフ戦(ここでマスターソードに持ち換える)

→脱出時腕に覚えがあればvoid warp

ガノン戦前はマスターソードのジャンプ斬りを出して第一形態はハンマーの盾突きで戦う

 

 

 

旧ルート(Wii VC)「ラ97ぉ」+年齢SRM

 

https://www.twitch.tv/videos/712501650

【解説動画】 ゼルダの伝説 時のオカリナ RTA "No Wrong Warp" 22:46:23 - ニコニコ動画

No Wrong Warp用 解説動画 - YouTube

 「ラ97ぉ」で子供リンクのままタイトルファイルのアイテムデータを読み込む。そのあとAge Change SRM(次回の記事で扱う)を行う。NTSC 1.2で可能。

 

※:Switchでのタイトルファイル読み込みはこのセットアップだと無理。将来的にセットアップが開発される可能性はある。Age Change SRMはヒープ仕様的に将来的な可能性も無いかもしれない。

 

 

 

子供リンク+タイトルファイル by LNSRM

 

 子供リンク+タイトルファイルに関して、今ならLightNode SRMによるストラトが開発されている。ファイルネームは「ラレづモョ2ごば」(80834D7C 90024550)。

Crazy Lightnode SRM strat for Title File on Wii VC - YouTube

 LNSRM後ロードゾーンを何回か跨ぐだけでタイトルファイルが読み込める。

※1:読み込まれたらもうデクババ側へ行かないこと。行くとクラッシュしてハードリセットするしかなくなる

※2:日本語Wii VC限定技。見ているだけだと「いつものだな」という印象を与えるが、実はN64のRAMではなくROMに相当する部分を書き換える技術的に相当「crazy」なSRMである。

※3:セーフティセーブはしてもしなくてもよい。

 

 

 追記(2022/2/21):ファイルネーム「ラなホぷララ97」(801E7757 80800907)でLNSRMを行うと似たような感じになる。

https://www.youtube.com/watch?v=24-2KQR_a58&ab_channel=BigSalt

 動画では太陽の歌でハイラル平原にワープ→セーブリセットとしているが、単にセーブリセットしたりデクの樹に入場でもok。おそらくコキリの森側のロードゾーンを踏むのがまずい(未検証)。

 Wii VC/ Wii U VCで可能。4の倍数でないアドレスを使っているのでN64後期版では不可。ヒープメモリの仕様に深く依存しているのでSwitchでも不可。

 

 

[タイトルファイルについて]

 タイトルファイルの状況は次の通り

  • アイテム・歌は一通り揃ってる(ボムチュウ50個は嬉しいが初期ボム袋なのが残念)
  • メダルは揃っているが精霊石は揃っていない(が時の歌を持っているせいで時の扉を開けることができる)
  • ダンジョンのボスは倒されていない。マップ・コンパス・ボス鍵を所持し小さな鍵も8個持っている
  • 子供リンク状態だとフクロウがうろちょろしている。
  • 大人リンク状態だと時の扉が開いてない。大人時の扉抜けをしても(森のメダルを所持しているのに)シークが邪魔して子供になれない

 

 こういうわけでデバッグ用のデータなのではないかと考えられている。日本語圏ではデバッグファイルと呼ばれることが多い(筆者の過去記事でもこちらの名称を用いた)

 練習用データとして優秀であり、諸事情でデータを消してしまっても(アーウィン呼び出し等のtotal control ACEはセーブデータを3つ全て用いる)無から10分程で錬成できるのはありがたい。

 

 

 

 

Defeat Ganon – SRM

 

現ルート(GC)「ラかゲしラくVど」

 

 ふたごの家からガノン城崩壊後へワープ。

https://www.twitch.tv/videos/1086356528?tt_content=channel_name&tt_medium=embed

 Filename LightNode SRMの影響。ここに飛べるのはGC版のみで、ガノン城が折りたたまれるムービーを見ないことによりWii VCのルートから1分短縮。

 GC版のLNSRMについては次の動画がある。

https://www.youtube.com/watch?v=RDb2cZBqBQM&ab_channel=Savestate

 

 ガノンはデクの棒+残像剣で倒す。

 

 

 

旧ルート(Wii VC)「ラかブqラか0ど」

 

 デクの樹からガノン城崩壊中へワープ。

Ocarina of Time Defeat Ganon SRM Speedrun in 11:06.166 - YouTube

 

 これもLNSRM。Wii VC any%と同じセットアップ(※)で大丈夫。ファイルネームは「ラかブqラか0ど」(800FA2D5 800F004F)でありアドレスが4の倍数でないためN64では不可。Wii VC/Wii U VC/Switchで可能。

 

※:ロードゾーン跨ぎが少し問題となる。デクババを斬ってデクの棒を取得したいのだが、その際「ミド側を向いてロードゾーンを跨ぐ」のを忘れないように。

 よくわからなかったらReturn Aの[セットアップ1]のように右横跳び4回でロードゾーンを跨ぎ、右のデクババからデクの棒を取得。左のデクババでReturn A、とする。

 WWT後のソフトロック回避ポーズ時にデクの棒を装備すると無駄がない。

 

 

 

旧旧ルート(Wii VC)「ラ97ぉ」+grotto SRM

 

https://www.twitch.tv/videos/943103059?tt_content=channel_name&tt_medium=embed

 

 Wii VC/Wii U VCだと子供リンクでのタイトルファイル読み込みにLNSRMが使えるのはNo WWの項で述べた。

 grotto SRMについては次回の記事で扱う。 

 

※:Switch版ではgrotto SRMのセットアップが今の所ない。今後開発されることがあるのか不明。

 

 

 

100% NSR / アーウィン

 

 デバッグメニュー呼び出しだけならファイルネーム「ラとザォ0101」(801D968C 00010001)でLNSRMをすればよい。

OoT 1.2 - Debug Menu SRM "Tutorial" - YouTube

 Wii Uでのみ可能。Wii VCはコントローラーの仕様上デバッグメニューを操作できず(十字キー割り当ての問題)、それ以前にWii VCでこのSRMをやるとロードゾーンを跨いだときにクラッシュする。

 

 

100% NSR

 

[カテゴリの説明]

 「100% - SRM」が「アイテムを正規で(も)入手する」Source Requirementの縛りがついているのに対し、「100% NSR(No Source Requirement)」はルール無用の100%。

 SRM発見(2019年10月頃)直前に2時間50分程だった記録が、コキリの森でのSRM/ACE開発後(2020年1月頃)まず角度に依存してアイテムを一気に入手するようになり40分まで縮んだ。

 そのあとは複数ファイルでACEを行いタイピングに持ち込む手法が流行。

 最終的には(2021年8月~)一つのファイルからLNSRMでタイピングに持ち込み10分台でクリアできるようになってしまった。

 参考までに書いておくと、SRM以前の100%は(現在の「100% - No SRM」)は当時3時間50分程で現世界記録もほぼこのぐらい。「100% - SRM」の現世界記録は3時間3分。「100% - Glitchless Restricted」とかになると5時間44分もかかるので、ゲームが違うと感じる。

 

Ocarina of Time - Setting up Total Control ACE with Arbitrary Ramwrites, also a new 100% NSR route - YouTube

https://pastebin.com/qKju5TFn

【字幕解説】ゼルダの伝説 時のオカリナ RTA 100% NSR 10:39.38 - ニコニコ動画

 

 N64後期版/Wii U/Switchで可能。Switch版が最速という異常事態が発生している。

 

[payload]

ひ ふ 9 C

ひ 6 1 r

ぉ 1 ラ 6

バ へ V コ ※:「へ」はひらがな

ぉ 1 ラ き

バ り プ ソ

8 1 エ F

ほ ボ I X

 

入力が怪しい箇所は次のツールに16進数をぶちこんで確かめること。

https://lemon32767.github.io/ootfname

 

 

アーウィン呼び出し

 

Arwing ACE payload for NTSC 1.2 (N64, Wii, Wii U, Switch) - YouTube

https://pastebin.com/8Lhznv7p

 

 NTSC 1.2/Switchで可能。

 

 アーウィン呼び出しにあわせてセットアップをテキスト化しておく。

 やっていることはtotal control ACEである。ある程度長い命令を書くのにフレームごとのコントローラー入力を機械語と解釈させることもできるが、これは当然TAS-onlyになる。人間にも扱いやすいバイナリエディタとして選ばれたのはファイル選択画面における名前入力だった。日本語ROMにおいて1文字は1byteに相当する。

 以下のセットアップにおけるpayloadを差し替えることで、100% NSR/アーウィン呼び出し/虹色の犬呼び出し/フックショットを消す/その他何にでも用いることができる。

 

[ヒント]

 Rでキーボード切り替え。Zで濁点半濁点。GCコン/クラコンだとC左右はX,Yボタンにも割り振られているので連打にはそちらを用いる。

 セーフティセーブはしてもしなくてもよい。

 間違えるとクラッシュしがちなのでタイピングは慎重にやろう。

 

 

[セットアップ]

・セーブデータは3つとも空にしておく。ファイル2に「ラぅHァラ0ブキ」と入力。

・ファイル2でファイルネーム LightNode SRM。無を置いたあとロードゾーンを往復しデクババに遭遇。死亡してセーブに「はい」→ゲーム続行に「いいえ」。タイトル画面へ

 

以下タイピング

・ファイル1に「ラぇよバラとuま」(※:「よ」は大文字)と入力。ENDで確定

・ファイル3を開きC右スティックを「つ」、アナログスティックを「ち」に合わせA

(名前が07000306と表示される。以下、名前はもう当てにならない)

・C左を左端まで移動、アナログスティックで「リ」(カタカナ)を4回入力

・アナログスティックで次のpayloadを入力(視認性のため4文字ずつ改行)

ぉ 1 ラ 2

ぉ た ひ 6

ほ ぃ 1 ぇ

B ぃ イ モ

8 2 が k

0 0 0 0

3 . 0 8

0 0 0 0

・ファイル3を閉じ(B)オプションを開閉(A→B)。再びファイル3を開く

・C右で「d」、スティックで「7」、A入力

・C右で「a」、スティックで「b」、A入力

・C右で「b」、スティックで「X」、A入力

・C左2回、スティックで「い」、A入力(キーボードが消える)

・スティックを上に動かしてA、少し待つ(音を聞く 何かをコピーする操作?)

・下に動かしてA、またA

 

https://twitter.com/Iaint_nojoke/status/1488856213773492231?s=20&t=MVOdwlMNqr7x3688DPpXXg

 時の神殿やハイラル城下町にもアーウィンが居る。ドア(と”room transition”)をアーウィンに変えるようコードを書いているらしく、そのためドアが多いカカリコ村ハイラル城下町が悲惨。

 時の扉抜けをしてみたがアーウィンのせいでマスターソードがロードされていなかった。大人になれない。

 アーウィン掃討には緑/青の薬を飲んでディンの炎がおすすめ。エリア切り替えると復活するが……。

 

 ソフトリセットするとアーウィンは消える。

 

 

 元々どういう文脈でACEによるアーウィン呼び出しが達成されたのかは次の動画説明文を参照。SRM/ACE混乱期の話。

OoT Total Control Easy Method / Arwing in vanilla OoT - YouTube

 

 なぜ時オカの没データにアーウィンが含まれているのかは次のインタビューで明かされている

社長が訊く『ゼルダの伝説 時のオカリナ 3D』オリジナルスタッフ 篇 その2|ニンテンドー3DS|任天堂

 

 

 

付録1:目的別ファイルネーム

 

 SRMの文脈なのでNTSC 1.2は「N64後期版/Wii/Wii U」の総称とする

 

・クレジットワープ(Any%)

「ラんぐUVくBヲ」 Wii VC

「ラをニヌラか3モ」 NTSC 1.2/Switch

 

・大人リンク+タイトルファイル(No Wrong Warp

「ラをぺろラくy8」(※「ぺ」はひらがな) NTSC 1.2/Switch

 

・子供リンク+タイトルファイル

「ラレづモョ2ごば」 Wii VC

「ラなホぷララ97」 Wii VC/WIi U VC

 

・崩壊後ガノン城ワープ(Defeat Ganon)

「ラかブqラか0ど」 Wii VC/Wii U VC/Switch

 

デバッグメニュー呼び出し

「ラとザォ0101」 Wii U VC

 

・total control ACE

「ラぅHァラ0ブキ」(ファイル2) 対応バージョンはpayload毎に変化

 

・コジロー(KFC%:付録3参照)

「ラくB ラっよ0」 Wii VC/Wii U VC/(Switch? 未検証)

 

 

 

付録2:その他のSRMカテゴリとLNSRM

 

 「All Dungeons – SRM」の現世界記録(2021/09/03, by RTA64)ではLightNode SRMが使われていない。

OoT All Dungeons Speedrun in 35:28 (WR) - YouTube

 最初の子供タイトルファイル読み込みをLNSRM法に変えれば最大10秒短縮できそう。ただ海外勢がよく使っている海外Wiiに日本語VCをポートしたものでは出来ないので採用されるかは不明。ソフトリセット時に「ƒNƒ‰ƒVƒbƒNƒRƒ"ƒgƒ [ƒ‰.ª•K—v,Å,· B 」でなく「クラシックコントローラーが必要です。」というテキストが必要。

 追記(2022/2/21):MODでリージョン差を修正できるらしい。海外勢も使っていくだろう。

https://www.youtube.com/watch?v=hXDTQdjl0YY

 また迷いの森SRM部分もLNSRMで更新できるのではないかという話がちょくちょく出てきている。

 

 「100% - SRM」はLNSRM以後チャートが更新されていない。LNSRMによる任意RAM書き出し(Arbitrary Ram Write)が攻略の自由度を高め過ぎて人間の手に負えなくなっている? あるいは100%の「アイテムは正規の方法で(も)入手する」という文脈では案外活躍できない? F Bootsやグリッチエントランスのように永続的かつインパクトのあるもの(そしてファイルネームを必要としないもの)が見つかると面白いのだが。

 

 

 LNSRMのヤバそうな応用として、任意コード実行でない(つまりカテゴリRTAで使える)のに永続的に「値xをメモリアドレスyに書き込む」操作が可能らしい。実現すればAll Dungeonsでコントローラー2/3の入力によりボスの体力を一瞬で0にする、なんてこともできるかもしれない。100%は更にルートが壊れそう。

 ただし今の所なんやかんやで実装されていない。

Arbitrary Continuous Function Writes (x-to-y cannon) and Chained Light Node SRM - YouTube

https://pastebin.com/iG8Nssff

 

 

 

 

 

付録3:奇妙なLNSRM

 

 Arbitrary RAM writeは強力で、これまで述べた比較的有用なグリッチ以外にもバグバグしいことは幾らでも起こせる。その一端を紹介しよう。

 

・Early Bombchu

 NTSC 1.2/Switchで可能。「ラくC0ラ990」(8011AD00 80090900)を使うと井戸チュウ同様にボムチュウを「ゲット」できる。でもこれ装備して使えるのだろうか(筆者はまだ試してない)。

 LNSRMの検証用としてたまに用いられるファイルネーム。次はSwitchで初めてSRMが確認された際のスクショ(2021/10/28, by Big Salt)

f:id:wagaizumo:20220221154053j:plain

 

 ボムチュウ入手RTAを競技化すると、デクの棒アクアエスケープ→スタルチュラ押し出し井戸チュウの方がSRMより速そう。

 

 

・KFC%

f:id:wagaizumo:20220221154411j:plain

 時オカSpeedrun.comのミームカテゴリに「KFC%」というのがある。

「Obtain a chicken trade quest item (Chicken, Pocket Cucco or Cojiro), then use ISG and a flaming stick to perform a visual glitch to "set it on fire".」

「鶏のトレードアイテム(めざましドリ・てのりコッコ・コジロー)を入手し、残像剣と燃えたデクの棒によって”鶏に火を着ける”視覚的グリッチを実行する」

https://www.speedrun.com/ootextras#Memes

 

 次はSRM以前の解説動画

【RTA】 ゼルダの伝説時のオカリナ KFC% 7:39 字幕解説 - ニコニコ動画

 

 これも現在はLNSRMルートが最速である。不正アドレス参照の問題でN64後期版は不可。

[WR] Ocarina of Time KFC% Speedrun in 5:28.983 - YouTube

KFC in 5:52 - YouTube

 ファイルネーム「ラくB ラっよ0」(8011ACDF 803D2F00)でLNSRMを行うとデクの樹に入った時点で「C左にコジロー・C下にデクの棒・Bダイゴロン刀?」となる。Bの剣は見た目と両手持ちな点ではダイゴロン刀、攻撃範囲と威力はコキリの剣、逆手で持っているのはよくわからない。

 ロードゾーン跨ぎの途中でデクの棒を2本手に入れておく。

 デクの樹内に入りQuick Putaway(QPA:デクの棒をしまった1F後にダメージを受ける)と折れたデクの棒(ジャンプ斬り中に2回攻撃判定を出す)でGlitched Damage Valueを得る(本来折れたデクの棒を作ると手元にそれが残るのだが、QPAの後だと何も持たない状態になる)。盾突き(R+B)でその攻撃を保存すると蜘蛛の巣に着火。

 あとは残像剣デクの棒に火を着けトリを出す。

 

※:QPAに関しては次を参照。

Quick Putaway / Glitched Damage Value - ZeldaSpeedRuns

ゼルダの伝説 時のオカリナ Quick Putaway 解説動画 - ニコニコ動画

Quick Putaway Setup for Deku OOT - YouTube

 

 

・Ram Editor

 Wii Uなら(もしかしたらSwitchでも?)永続的なRam Editorを呼び出すことが出来る。LNSRM発見初期に話題になったもの。

Building a RAM Editor in Ocarina of Time - YouTube

OoT RAM Editor with 2x LightNode SRM (and 1 file) - YouTube

 

 強そうだが使い方がよく判らない。一時期の100% NSRでは活躍したらしい。

Ocarina of Time 100% NSR in 25:12 - YouTube

 

 

 

 

*1:Lunge Storage以前の時の扉抜けと同様に、ここの敷居の高さは否定できない。色々出来るようになることをモチベーションに練習してほしい

*2:もうすぐ買えなくなるらしい。奇特な方は時オカ・ムジュラ用にWii Uを確保してもいいかもしれない。十中八九漬物石になるだろうが。日本語Wii U VCが最速の有名ゲームって探せばありそうな気はする

https://news.yahoo.co.jp/articles/700601b10e28fdc9f87e3c3cc043be38ade7cb14

*3:時オカにおいて角度の情報は2byte=16進数4桁で管理されている

*4:16進数のファイルネームはチュートリアル動画や技術開発の動画を探せば乗っていると思う