Wonderland Seeker

スマホの子はTOPを見てね

【初代ポケモン】メモリ39-ミク-の暴走

f:id:Alice_Wreath:20211024205946p:plain

きっかけは当ブログへ送られたコメントでした

コメント失礼いたします。 とてもわかりやすい記事で参考にさせていただいています! VCの赤で挑戦しているのですが、何度やっても9の壁抜けのところで(なかよしバッヂ入れ替え完了後)テレポートをするとフリーズしてしまいます・・・。 壁抜けのアイテムは「ライバル」です。 画像の位置から「ライバル」を使用して2マス程度左に進むとドンとぶつかりますが、下には始めからドンとぶつかって進むことができないので、ありすさんの位置とは異なるようです。 原因心当たりございましたらお教えいただけると幸いです。原文ママ

 

テレポートでフリーズってなんですか......?

などと、原因がわからず悩んでいると有識者のフォロワー様からリプライが

場所を間違ってる説が濃厚な気がします。
自分も当初なかよしバッヂサルベージする座標を間違っていてそらをとぶをした瞬間フリーズしました。(^^;)
1マス上の座標にもダミーのなかよしバッヂが実はあるんです。
本来の座標ならなかよしバッヂの下にじてんしゃがあったはずですよ。(^^)

間違った座標でのサルベージを検証してみました。やっぱりテレポートした瞬間にフリーズしました。この後無事にデータが吹き飛びました…(´;ω;`)

と、なんと動画付きで検証結果を送ってくれたのです!

ありがとうございます、ありすはこうした方からの助力で生き永らえております

そこから判明したことは

どうぐの39番目の種類を入れ替えた状態でテレポートするとバグマップへ飛んだりそのまま画面が変わらずフリーズしたりといった現象でした

・・・で、なんでフリーズするんですか?

結局そこがわからずじまいだったので仕方なくありすも検証することに(最初からやりなさい)

まず、テレポートの座標先は0xD2DDに管理されています

座標先は最後に休んだポケモンセンターがある場所のマップIDとなっており

タマムシシティで休んでいれば《06》が記録されています

もし一度も使用していなければ《00》のままでありこの場合はマップID00のマサラへとワープすることになります

そこでありすは39番目のどうぐの種類を適当に入れ替えてみたり色々試してみたのですが、テレポートの座標先は変わらないままでありながらフリーズしました

なぜ・・・。ところで39番目のどうぐの種類はアドレスで言うと0xD2EEです

NPCやオブジェクトのテキストメッセージが管理されている0xD2EB(37番目のどうぐの個数)の直後となっています

テキストメッセージがあるプログラムということは制御系のプログラムをまとめている場所の可能性があります

また、検証していた同じ頃に別のフォロワー様から報告を頂きました

ところで39番目の道具(タマムシだとなかよしバッヂ3個)のデータっていったい何?ここを雷の石と交換したら石英のバッジチェックにワープしたんだけど

とりあえず赤後期と緑後期だと76 21でセキエイグレーバッジチェックゲートに飛んでくれます

なんですってー!?

物は試しと早速入れ替えてみたのですが何も起こらず。あれれぇ?と思ったら

なぜか特定の座標でないと作動しない様子

f:id:Alice_Wreath:20200628114631p:plain

こ↑こ↓らしいです

この座標に立って、39番目のどうぐをかみなりのいしに入れ替えてメニューを閉じると

f:id:Alice_Wreath:20200628114743p:plain

テレポートしてきました

しかも律儀にマップを切り替えた際の暗転アニメーションまで入りました

どこでもドアでも使ったんでしょうか?

ですが新しい発見はあれどそもそもの原理が分からず玄師なんですよね

前提として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

 

ご協力、本当にありがとうございました!

イベント処理アドレスとは推測していましたが、まさかマップごとに読み込まれている座標の処理判定だったとは......!

そりゃ毎フレームごとにアクセスしてるわけですよ

 

今回はここまでになります

EXIT