きっかけは当ブログへ送られたコメントでした
コメント失礼いたします。 とてもわかりやすい記事で参考にさせていただいています! VCの赤で挑戦しているのですが、何度やっても9の壁抜けのところで(なかよしバッヂ入れ替え完了後)テレポートをするとフリーズしてしまいます・・・。 壁抜けのアイテムは「ライバル」です。 画像の位置から「ライバル」を使用して2マス程度左に進むとドンとぶつかりますが、下には始めからドンとぶつかって進むことができないので、ありすさんの位置とは異なるようです。 原因心当たりございましたらお教えいただけると幸いです。(原文ママ)
テレポートでフリーズってなんですか......?
などと、原因がわからず悩んでいると有識者のフォロワー様からリプライが
場所を間違ってる説が濃厚な気がします。
自分も当初なかよしバッヂサルベージする座標を間違っていてそらをとぶをした瞬間フリーズしました。(^^;)
1マス上の座標にもダミーのなかよしバッヂが実はあるんです。
本来の座標ならなかよしバッヂの下にじてんしゃがあったはずですよ。(^^)
間違った座標でのサルベージを検証してみました。やっぱりテレポートした瞬間にフリーズしました。この後無事にデータが吹き飛びました…(´;ω;`)
と、なんと動画付きで検証結果を送ってくれたのです!
ありがとうございます、ありすはこうした方からの助力で生き永らえております
そこから判明したことは
どうぐの39番目の種類を入れ替えた状態でテレポートするとバグマップへ飛んだりそのまま画面が変わらずフリーズしたりといった現象でした
・・・で、なんでフリーズするんですか?
結局そこがわからずじまいだったので仕方なくありすも検証することに(最初からやりなさい)
まず、テレポートの座標先は0xD2DDに管理されています
座標先は最後に休んだポケモンセンターがある場所のマップIDとなっており
タマムシシティで休んでいれば《06》が記録されています
もし一度も使用していなければ《00》のままでありこの場合はマップID00のマサラへとワープすることになります
そこでありすは39番目のどうぐの種類を適当に入れ替えてみたり色々試してみたのですが、テレポートの座標先は変わらないままでありながらフリーズしました
なぜ・・・。ところで39番目のどうぐの種類はアドレスで言うと0xD2EEです
NPCやオブジェクトのテキストメッセージが管理されている0xD2EB(37番目のどうぐの個数)の直後となっています
テキストメッセージがあるプログラムということは制御系のプログラムをまとめている場所の可能性があります
また、検証していた同じ頃に別のフォロワー様から報告を頂きました
ところで39番目の道具(タマムシだとなかよしバッヂ3個)のデータっていったい何?ここを雷の石と交換したら石英のバッジチェックにワープしたんだけど
とりあえず赤後期と緑後期だと76 21でセキエイグレーバッジチェックゲートに飛んでくれます
なんですってー!?
物は試しと早速入れ替えてみたのですが何も起こらず。あれれぇ?と思ったら
なぜか特定の座標でないと作動しない様子
こ↑こ↓らしいです
この座標に立って、39番目のどうぐをかみなりのいしに入れ替えてメニューを閉じると
テレポートしてきました
しかも律儀にマップを切り替えた際の暗転アニメーションまで入りました
どこでもドアでも使ったんでしょうか?
ですが新しい発見はあれどそもそもの原理が分からず玄師なんですよね
前提として39番目のどうぐが一体なんのアドレスかが分かっていません
当然ながらなぜテレポートに関する謎挙動が起きるかも分かりません
しかしながら唯一分かったことがありました
それは39番目のどうぐの種類と38番目のどうぐの個数が連番になっており
MAPによってその2つの数値は変動するという事実です
かくしてありすは要所要所のMAPへと出向いてその数値を独自に調査してきました
NPCの民家やゲートといった場所は未調査ですが
シナリオ上行く必要のある場所は網羅しています
メモ帳に書いたままの文ですが以下の通りになります
PC=ポケモンセンター、FS=フレンドリィショップの略称です
MAP 0xD2ED(38個数) 0xD2EE(39種類)
マサラ 5B 4E
主人公の家1F 7E 41
主人公の家2F B0 40
ライバル家 7D 6E
研究所 4C 45
1番道路 03 44
トキワ E9 50
トキワPC DA 45
トキワFS 0A 56
トキワジム E0 40
22番道路 A0 53
2番道路 4F 52
トキワの森ゲート F9 70
トキワの森 34 59
ニビ D4 56
ニビPC 20 4C
ニビFS 43 49
ニビ博物館1F F7 40
2F 31 45
ニビジム 83 46
3番道路 86 52
4番道路 F7 55
おつきみやまPC 87 64
おつきみやま1F CC 70
おつきみやま地下通路 B3 67
おつきみやま2F B9 75
ハナダ 55 5B
ハナダPC 10 4D
ハナダFS 96 52
ハナダジム 14 4E
バッジおじさん F5 4A
ミラクルサイクル ED 5B
24番道路 93 5B
25番道路 52 5F
マサキの家 6E 75
ななしのどうくつ1F F8 49
ななしのどうくつ2F 1D 6B
ななしのどうくつ3F 02 6C
5番道路 E1 56
育て屋さん 55 72
ちかつうろハナダ側入口 99 71
ちかつうろ A5 74
ちかつうろクチバ側入口 DF 71
6番道路 80 50
クチバ 19 63
クチバPC 28 55
クチバFC D4 55
クチバジム B1 56
だいすきクラブ 4F 6B
11番道路 CA 59
ディグダの穴クチバ側入口8C 72
ディグダの穴 ED 74
ディグダの穴ニビ側入口 3B 6A
ひでんマシン05ゲート 30 70
サントアンヌ号港 27 65
サントアンヌ号1階 C8 5C
2階 7C 5E
デッキ 1A 63
船長室 33 67
9番道路 05 57
10番道路 0F 57
10番道路PC 46 66
無人発電所 94 6F
イワヤマ1F 2C 49
イワヤマB1F FE 6C
シオン 0B 41
シオンPC 4F 53
シオンFC F7 53
姓名判断 55 62
フジ B1 5E
ポケモンタワー 2C 44
2F 91 45
3F F2 48
4F CB 4A
5F 7E 4C
6F 22 4F
7F 4B 52
8番道路 EE 52
地下通路シオン側入口 2F 6F
地下通路 C9 74
地下通路タマムシ側入口 36 72
7番道路 56 41
タマムシ 76 67
タマムシPC 9D 4F
タマムシデパート1F 63 56
2F ED 6F
3F 16 43
4F F5 45
5F 00 5F
屋上 25 47
エレベーター 44 4B
タマムシジム 4B 50
タマムシマンション1F D8 4B
2F E1 4C
3F 43 4D
4F 44 4F
イーブイの部屋 0C 67
景品交換 23 60
スロットコーナー DD 56
アジトB1F CA 52
B2F 00 56
B3F 46 5A
B4F 1E 5D
旅館 A1 63
16番道路 47 66
ひでんマシン02の家 02 73
17番道路 51 63
18番道路 B9 69
12番道路 F7 5D
13番道路 92 5A
すごいつりざおの家 CB 75
14番道路 02 5F
15番道路 E9 61
セキチク 64 6B
セキチクPC 80 50
セキチクFS B0 67
セキチクジム 5D 58
園長の家 45 51
いいつりざおの家 D8 70
サファリゾーン南 F4 66
サファリゾーン東 C1 62
サファリゾーン北 47 64
サファリゾーン西 29 7C
トレジャーハウス 30 7E
19番水道 B2 67
20番水道 88 4F
21番水道 64 6B
グレン CC 42
グレンPC 55 6D
グレンFS 2D 6E
グレンジム 20 60
研究所 2B 68
エラーイ博士 BF 6B
ポケモン屋敷1F 9D 46
2F 58 71
3F 34 74
B1F A0 76
ふたごじま1F C9 4D
B1F 18 7B
B2F 54 73
B3F 90 74
B4F 9C 76
ヤマブキ 00 4C
ヤマブキPC DF 6E
ヤマブキFS 39 6D
ヤマブキジム 5C 64
格闘道場 71 5F
ヤマブキゲート北 24 6B
西 A6 6D
東 6D 6E
南 E3 6C
シルフ1F CF 6D
2F DC 6F
3F C1 73
4F BF 71
5F 9E 74
6F D0 78
7F CF 68
8F 58 77
9F D4 73
10F 4F 76
11F 79 76
シルフエレベーター 16 62
グレーバッジ検問所 19 74
23番道路 3A 59
チャンピオンロード1F 04 77
2F 95 4F
3F 06 64
セキエイ 35 49
セキエイPC 76 70
カンナ 78 75
シバ C8 77
キクコ F0 79
ワタル 48 78
ライバル 82 6F
殿堂入りの部屋 C7 7B
タマムシ没地下通路 99 72
タマムシの没地下通路というのはバグ技でのみ入れる未使用MAPのことです
また、ここの調査をしている最中に新たな報告が入りまして
39番目の道具を27(リゾチウム)にするとなんかマップがおかしくなるな
03(スーパーボール)は主人公が一歩ずつ歩くようになりますね 処理落ちなのかNPCもゆっくり歩くようになります
13(いいキズぐすり)は主人公の姿が表示されたまま壁抜け状態になりました
といった現象が発見されたので試してみました
03にすると処理が非常に重くなりメニューを開く/ポケモンのステータスを見るといった行動が読み込み時間が長くなったり
13にすると主人公の向きが保存されたまま姿も表示されたままで壁抜けモードに突入しました(しかも解除できないので不便)
27は試してませんがMAPの表示がおかしくなるようです
この記事をUPしてからほどなくして超重要な情報が入りました
超基本的な挙動を見落としてたんですが、マップ中にいる限り(フレームごとに?)そのアドレスに jp する。マサラなら jp 4E5B とか、タマムシなら jp 6776。
マップによって挙動が変わることがあるのはマップによって読み込まれてるバンクが違うからっぽい。
別マップで 76 67 をいれてもフリーズするのは、別バンクが読み込まれてて不正な命令になるから。
うまく 57 D2 とか 64 DE とかにできれば手持ちの名前とかボックスの名前とかを実行し始めるはず。
・・・え?
いや、え、マジですか?もしかして凄く大事なアドレスなのではここって......
つまり、38番目の個数を100個にして
39番目のどうぐを『(文字送り)円れにザぅボビへ[変化1](文字送り)ボビにオ゙ア?円あヌ』(後期緑での名称です、他Verだと変化します。確実に入手するなら手持ち3番目のどうぐを変換する任意コード実行がおすすめです)にすれば
ボックスの手持ち1番目からのニックネームをプログラムとして読み取るということです
え、まさかの任意コード実行方法が開発されてしまいました
あと別バンクがどうこうとか言うのは、詳しくはこちらの記事を見てください
ROMバンクを切り替えるaレジスタのソースコードを打ち込めば解決すると思います
うーん、もしかしてここってイベント処理アドレスのようなものじゃないんだろうか......
などと言っていましたが、とうとう解決してしまいました
上のほうで報告をくださっていたフォロワー様がそのことについて素晴らしい記事をお書きになさっているため、そちらのリンクでご確認ください
https://rollingonthefloor.blog.fc2.com/blog-entry-152.html
ご協力、本当にありがとうございました!
イベント処理アドレスとは推測していましたが、まさかマップごとに読み込まれている座標の処理判定だったとは......!
そりゃ毎フレームごとにアクセスしてるわけですよ
今回はここまでになります