K3の住民

最近はレア社のゲームについては書いていませんが、一応レア社のゲームが一番好きな人です。『雪圀』で"圀"は"国"とほぼ同義ですが、国ではありませんって当たり前か(笑)。

【時オカ】「Wrong Warp(ポインタ変え)」について

2016/10/16 更新
皆さんこんにちは。雪圀です。

今回は「Wrong Warp」、以降「ポインタ変え」と言う技について解説
いたします。



ポインタとは?
先ず僕が呼ぶ「ポインタ変え」ですが、「ポインタ」とは何だ、という
ところから始めます。
ポインタとは、簡単に言えばC、C++等で言うアドレスのことです。いや、
「ポインタ=アドレス」とは簡単に言うものではありませんがとりあえず
そういうこととして覚えておいてください。因みにこの理屈であれば、
「アドレス変え」と呼んでも良いでしょう。
この「ポインタ変え」は移動先のポインタを書き換える技で、これによって、
TAS等であったように、「デクのサマの中→崩壊中のガノン城」と言った
驚愕もののワープをすることが可能です。

マップ移動処理
次に、「というか、どのようにしてマップ移動をするのか?」これを解説
します。
先ず、時のオカリナには、1つのマップ移動に4つのポインタが存在します。
例えばハイラル平原からハイラル城下町に移動したとします。この場合に、
子供で昼の時に入った状態、夜の時に入った状態、大人で昼の時に入った状態、
夜の時に入った状態とで、4つマップ移動のポインタが存在することが見て
明らかだと思います。
して、どのようにマップ移動が起こるのか、ということですが、当たり前の
ことではありますが、演算をしてマップ移動を行います。以下、マップ移動
の公式です。

(元の場所)+(夜の時1)+(大人の時2)

元の場所は「子供で昼の時のマップ」のことです。夜の時は+1、大人の時は
+2と演算されるように処理されてます。
このようにして、マップ移動の処理が行われているのです。
勘違いしないように言っておきますが、ポインタの読み込み自体は別の処理
で、その読み込み先のポインタからこの処理がされるということを覚えて
おいてください。

ムービー再生処理
ポインタ変えによる突然の全く別の場所への移動が起こる大きな原因として、
ムービーを再生するときの処理があります。これもマップ移動処理と同じ
ように処理されます。この処理の演算が驚くような方法で、ムービー再生を
するとき、+4され、それにムービーの番号を更に足します。公式は以下の
通りです。

(元の場所)+4+(ムービー番号)

このようになります。このことから、「ムービー再生のポインタはムービー
が再生されるべき場所のポインタの先にある」ことが分かります。

読み込むポインタを変える
ポインタ変えの原因の一つと言えるものを紹介します。
それは読み込むポインタそのものを書き換えることです。例えば、
デクの樹サマの中・ボス部屋からコキリの森にワープする青い光った何か
(以降青ワープと呼ぶ)がありますよね。あれに触れてコキリの森の
ポインタを読み込み、そしてボス部屋からデクの樹サマの中に行き、
デクの樹サマの中のポインタを読み込みます(デクの樹サマの中とその
ボス部屋は別マップ扱いである)。こうすることで、移動先ポインタを書き
換えてしまうことが可能となるのです。因みにこのとき、リンクの座標は
「コキリの森」の座標となります。これを「Void Warp」と呼びますが、
同様に「ポインタ変え」と呼ぶこととします。
これを起こすには、オカリナを使い、青ワープのちょこっと先に触れます。
とは言っても、オカリナはボス部屋では使えませんので、「Ocarina Items」
と言う、特定のアイテムでオカリナのコマンドを実行してしまう技を使って、
ボス部屋でオカリナを使います。
オカリナを使ってワープをすることが可能なのか?ということですが、可能
です。とは言っても、かなりぎりぎりの判定でバック宙で青ワープの
ちょこっと先に触れるように調整し、ワープする直前に「Ocarina Items」
でオカリナコマンドを実行。これによりオカリナを使いながらワープ。
ワープ自体は一定時間経つまでしませんが、ポインタ読み込み後の演算処理
は例え読み込んだポインタが本来のポインタとは別物であっても行います。
因みにそのデクの樹サマの中のポインタの先には、崩壊中のガノン城の
ポインタがあります。

つまり・・・
以上で分かってでしょうか。この「ポインタ変え」により、TASであった
デクの樹サマの中から崩壊中のガノン城へのワープをすることが可能である
ことは、これで分かったと思います。

ボス部屋の青ワープによる読み込んだポインタの先が『コキリの森』から『デクの樹サマの中』になり、そのポインタでムービー再生の演算処理をしてしまった

これがデクの樹サマの中への移動が崩壊中のガノン城への移動になって
しまった原因です。

まとめ
ポインタ変えの「ポインタ」はアドレスのことで、読み込むポインタを特殊
な方法で書き換えることにより、その書き換えたポインタで演算処理を
させることが可能となります。
これが「ポインタ変え」で、このポインタ変えを利用すると、明らかに異常
なワープをすることが可能です。

活用法
青ワープでオカリナを使う方法は先ほど紹介しましたが(因みにN64版でしか
出来ない)、その他に死ぬ直前にワープする穴に落ちて、タイトルに戻る
(3Dのみ)、「フロルの風」でワープポインタを設置し、青ワープでワープ
する直前に「フロルの風」でワープポインタ先にワープする方法等があります。

注意点
ムービーが再生される場所はどうやらムービー再生の演算処理回数がカウント
されているらしく、それにより再生されるムービーの番号が異なります。そこに
だけ注意すれば、狙ったポインタ変えによるワープが可能となるでしょう。
また、直前にフェードインするムービーを再生した後にポインタ変えを行うと、
或いは直接ポインタ変えで初めてそこに向かうとフェードインしないまま暗い
画面になってしまいます。ですので、直前に見るムービーはフェードインから
始まらないムービーにするか、一回死んでやり直してください。

任意の「ポインタ変え」を行いたい場合
こちらのサイトを参考にすると良いです(英語)↓
http://wiki.spinout182.com/w/Ocarina_of_Time:_Entrance_Table

ムービー再生処理をした後のポインタは他のと比べて分からなくなっているので、
ポインタの数が4つより多いと思ったら5つ目以降をムービー再生処理を行った
後のポインタだろうと思えば良いと思います。


今回はこれくらいにしときます。



追記
同サイトでポインタの詳しい内容が記されているページが存在しました。↓
http://wiki.spinout182.com/w/Debug_ROM:_Exit_List_(alternate)