リュックの中は謎だらけ-解決編‐
リュックの中は謎だらけを書き,Twitterであーでもないこーでもないとギャースカ騒いでいたら,れんださんからカンペキな情報をいただいてしまったのであった。
情報をまとめると,
・38番目の道具の個数(D2ED)と39番目の道具の種類(D2EE)でひとセット
・マップ中にいる限り(フレームごとに?)そのアドレスに jp する。マップによって挙動が変わることがあるのは,マップによって読み込まれてるバンクが違うからっぽい。
・チャンピオンロードの石載せ判定はここでチェックされている
・トレーナーの視界はこの処理でチェックしてる
・ポケモンタワー2Fのライバルに見つかる処理もここ
・ポケモンタワー5Fの結界の処理もここ
・23番道路のバッジチェックもここ
・サイクリングロードの自転車もってないときの押し返し処理もここ
・出口が二つある場合の行先処理もここ
となります。これが全てで,ここから下は補足説明です。
・38番目の道具の個数(D2ED)と39番目の道具の種類(D2EE)でひとセット
・マップ中にいる限り(フレームごとに?)そのアドレスに jp する。マップによって挙動が変わることがあるのは,マップによって読み込まれてるバンクが違うからっぽい。
この時のジャンプ先は逆順に読まれます。さんざん話題に出してきたタマムシだと38番目の個数が118(76),39番目の種類がなかよしバッジ(67)なので6776hに飛びます。道具を入れ替えたり,個数を減らしたりするとその都度飛び先が変わります。
(なお,マップごとの値はありすさんという方がメモリ39の暴走にてまとめられています。興味のある人はぜひ。)

ちなみにチートでD2ED‐D2EEをDE64(パソコン内NN一文字目のアドレス)に固定して任意コードを実行させてみたところ,問題なく動きました。マップを切り替えると効果がなくなる,マップの中にいる限り延々と実行され続けるので実用性にはやや欠けますが,やろうと思えばバグアイテムなしで実行できることが分かったのはデカいです。
・トレーナーの視界はこの処理でチェックしてる
38番目,39番目を無効化すると,自分から話しかけない限りトレーナーにバトルを挑まれることはなくなります。目を合わせないように歩いているのでしょうか。
これにかぎらず,バッジチェックや結界,サファリ受付など,特定の座標に立つと発動する系のイベントは全滅します。

・出口が二つある場合の行先処理もここ
出口が複数あり,しかもそれぞれ行き先のマップが違うグレーバッジゲートの場合,Y座標により,その行先が振り分けられています。
画像引用元: https://twitter.com/waki_renda/status/1277626324857712640
この処理を行うのがD2ED,EEなので,ここをチートなどで無理やり固定すると

入 口 に 戻 さ れ ま す 。
座標による切り替えは行われていないらしいが,ディグダの穴や地下通路から外に出るときも,最初に入った方のマップに戻ってしまいます。入った時のマップから書き換えられてないと言った方が正確かも。
以上,自分では調べられなかったことのオンパレードでした。実力のある方は違う…!
というか,タマムシで39番目の道具を「かみなりのいし」にするとグレーバッジゲートにワープするのはたまたまそういう挙動をするアドレスに飛んでいただけだったのか…!
« リュックの中は謎だらけ|
ROTFの覚え書き
|
バッジチェックスルー法 »