K3の住民

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

【ムジュラ】ムジュラの仮面(3D)版Bottle Adventure(BA)について。

皆さん、久々です。雪圀です。
今回はムジュラの仮面(3D)版Bottle Adventure(以降BA)について今更ながら解説
していこうと思います。


ムジュラの仮面(3D)でのBAは時のオカリナ(3D)のBAとは違い特殊です。
というか、やり方が全然違います。

先ず、利用するのはBあきビンバグでは無く、Cアイテムあきビンバグを使います。
Cアイテムを判断する為の値(以降アイテムコードと呼ぶ)は領域に格納されており、
その割り当てられた領域に格納されている値を変えることで、格納されている
Cアイテムも対応した値のアイテムに変化するようになっています
例えば日本N64版のあきビン(アイテムコード12)が格納された領域の値を1Bに書き
換えることにより、「あきビン」から「ムシ入りあきビン」に変化するようになって
います。
ここで、温泉水入りビンに書き換えた場合について解説します。
この温泉水入りビンだけは書き換えたとき、ある仕様の為にアイテムコードを格納
する領域とは別の領域にある値を格納します
温泉水入りビンは1分経つと水入りビンに変化します。この仕様により、ゲーム内
でセットされたタイマの経過時間を取得する必要があり、それを取得する為に、
ゲーム起動時にタイマをセットする必要があります
よって、アイテムコードを格納する領域とは別に用意された領域は、「温泉水タイマ
用領域」であると言うことが出来、その中に格納される値はゲーム起動時にセット
されたゲーム内タイマの値がセットされています。その値から+1分となったときに、
温泉水入りビンから水入りビンになります
ただし、これはビン系アイテムの為に用意された、特別な領域です。つまり、ビン系
アイテム以外だと、それとは全く別の領域にゲーム内タイマの値が格納されることに
なります(領域にも値(メモリアドレス)が振られているので、単純にその領域の
メモリアドレスからいくらか増分していっているのだろうと考えられる)。
これらの解説を、図で表すとこのような感じです。

f:id:ryoryoau24:20170720215939p:plain
※因みに、領域の名前は正確な領域のメモリアドレスが分からないので勝手に名前を
 付けている。

以上が、「ムジュラの仮面(3D)版BA」の原理です。ここで、このBAについて、
注意しなければならないことがあります。
もう既に気づいている方はおられるかもしれませんが、日本N64版、海外N64版、
日本GC版、海外GC版、3D版でアイテムコード、値を格納する領域の場所が異なり
ます。要するに、海外N64版と日本N64版で全く同じことをしても、全く違う結果に
なるということです
そういうわけで、どのアイテムを温泉水入りビンにするとどのような効果が得られる
か、それはちゃんと調べる必要があります。

このBAはN64版、GC版だとあまり使えない領域しか無いので、そこまで使えない技と
なっていました。
しかし、3D版では、ゲーム内時間を書き換えることが出来る為、大いに猛威を振るう
ことになります
何故か。それはゲーム内時間を負の数値にすることが出来るからです。つまり、残り
時間を-20時間にしたり出来ます。
これがWrong Warpにもつながる大きいメモリ操作系バグ、その名も「ギブドBA」と
呼ばれるものです
3Dの「ギブドの面」の領域に温泉水入りビンのアイテムコードを格納した場合、
ゲーム内タイマの値を格納する領域はゲーム内時間用領域となります。
ゲーム内時間は何故かunsigned型では無い為、格納する値を大きい値にし、オーバー
フローを起こすと負の数値になってしまいます
実はこのとき、ゲーム内で1日経過すると、「新しい日の朝」となり、例えばタルミナ
平原でこれを迎えると、エンディング用のシーンにワープします。
つまり、各シーンで「新しい日の朝」を迎えると、そのシーンとは全く別のシーンに
飛ぶ、ということが言えます。
これがムジュラ3D版「Wrong Warp」です。これにより、郵便局からゴートの
部屋にワープ出来たり、春の山里からグヨーグの部屋にワープ出来たりします。結構
ルート短縮になるんだな、これが。
因みに僕は一時期「月の中」へWrong Warpする方法を探していましたが、無かった
です。残念です。


というわけで、次回はムジュラ3D版「Wrong Warp」を詳しく解説していきたい
と思います。

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