Wonderland Seeker

スマホの子はTOPを見てね

どこかしらドアを解明してみた

どうも、バグポケ投稿者のありす*です。

なんでも、2021/10/25にガナヒビ様の動画においてこちらの記事が参考にされたようで、久しぶりに自分で読み返したところ気になっていた箇所が残っていたので追記・編集をしてみました。(2021/10/27)

では、【どこかしらドア】についての解説をしましょう。

ググれば、ポケモンの裏技サイトが出てくるしバグをよくしているトレーナーなら使ったこともあるかと思うくらいにはメジャーなバグ技のひとつです。

このなかよしバッヂ導入チャートでも使っていますね。

このドアを使った方は歩数を変えながらどこにワープできるのか試した方もいることでしょう。

しかし、なぜワープできるのか?という原理を知っている方は少ないのでないかと思います。

というわけで、

1日そのものフルに使ってまで原理を解明してきました

や、原理自体は知ってたんですけど実際にメモリ見るのと仮説が正しいのか確認してたら、思いのほか時間かかっちゃったんですよ……bgbでDebuggerから見るくらいしか方法なくて

 

まず
ライバル宅のドアがなんでワープ装置になるの?
ってなりますよね。

ライバル家のドアの移動先はD335にアドレスしている
ということを頭に入れてください。

では普通のポケモンでの話をします。

「どく」状態ってありますよね。

そうです、ストーリーだとビードルドガースから貰いやすい状態異常のことですね

ポジるという言葉が浮かんだ兄貴は走ってどうぞ。

フィールド上だと4歩ごとに1ダメージと視覚ダメージをくらいます。

この処理、実は手持ちのポケモンだけではないんですね。

次に処理するポケモンが終端コードFFになるまで毒の処理がつづきます

プログラミング用語でいえば番兵(Sentinel)データで書かれていました。

フィールドで「どく」状態ならばメソッドが呼び出されています。

この処理に付け入る隙が生じた、というのが原因なのです。

 

というのも、この処理は本来であれば手持ちポケモンの最後には、

⇒やめる、つまり終端コードFFがあること前提だから問題がないわけです。

 

手持ちポケモンの最後に終端コード……。

 

そうです。

手持ちのポケモン自体に終端コードFFhがいると
次に処理するポケモンも終端コードFFhにならないので
終端コードFFhを見つけるまで一生処理を続けてしまいます

 

するとどうなるか?

ゲームを開始した直後、具体的には最速で行えるタイミングなら
メモリが綺麗なので(ほとんどのメモリが00ばかり)
ステータス、ずかんを超えて手持ちどうぐ終了のセンチネルまで処理を続けるのです


ちなみにステータスの近くにIDのメモリがあるのでここにFFhが含まれる数字があればこのFFを終端コードとして読み取って処理はそこで止まります。
当然ですが、ステータス自体にFFhがあってもダメです。

具体的には
経験値を管理している3byteの数字・努力値を管理している合計10byteの数字・攻撃、防御の個体値をセットで管理している1byteの数字・素早さ・特殊の個体値セットを管理している1byte
以上のメモリになります。

そのためどこかしらドアをする際はID厳選が必要になる訳ですが
256の倍数-1のIDなんて引くほうが確率低いのでそこまで気になりません。
もちろん、個体値についても中々引き当てませんね。2Vなんてそう出ませんよ。

さらに細かく条件を付けくわえると

~どこかしらドアが失敗する条件~
・IDにFFhが入っている(00255、00511、00767……65023、65279、65280~65536等)
・取得経験値にFFhが入っている(99、199、9900等)
・攻撃・防御、もしくは素早さ・特殊がV個体
努力値にFFhが入っている
・0xD335(手持ち12番目のポケモンのぼうぎょ実数値上位Bit)のミラー領域である0xF335(手持ち199番目のポケモンの現在HP下位Bit)が反映されないハード

つまり0xD125~0xD12BまでのメモリにFFhが入ってないデータであることですね。

で、処理を続けていくと手持ちのどうぐまでもが、手持ちのポケモンとして処理されてしまうのです。
この場合、ポケモンでないデータがコピーされポケモンのステータスとして描写されるのですが、

199番目のポケモンのHPアドレスがD335とリンクしています

そしてそのポケモンは毒状態になっているので4歩ごとに1ダメージ受けます。
ここで頭に入れるよう言ったアドレス、覚えていますか?

 

そう、D335が出てきました。

 

このD335とは
なんと、ライバル家のドアの移動先アドレスのことです。

 

さらに199番目の現在HPが移動先のマップ番号に対応しているのです。
これこそが、ライバルの家から自在にワープできる仕組みだったのです。

さて、マップ番号なんて解析している方ですら覚えていないので表を置いておきましょう。

 

※10進数/16進数/マップ

フリーズ地点はマップ自体用意されていません

バグ空間はアニメーションの挙動があることからマップに描写される動くオブジェ制御用の場所……かもしれません

赤文字は没マップです、3つはBGM違いですが4Eは没テキスト付き

 

00 00 マサラタウン  
01 01 トキワシティ
02 02 ニビシティ
03 03 ハナダシティ
04 04 シオンタウン
05 05 クチバシティ
06 06 タマムシシティ
07 07 セキチクシティ
08 08 グレンタウン
09 09 セキエイこうげん
10 0A ヤマブキシティ
11 0B フリーズ
12 0C 1ばんどうろ
13 0D 2ばんどうろ
14 0E 3ばんどうろ
15 0F 4ばんどうろ
16 10 5ばんどうろ
17 11 6ばんどうろ
18 12 7ばんどうろ
19 13 8ばんどうろ
20 14 9ばんどうろ
21 15 10ばんどうろ
22 16 11ばんどうろ
23 17 12ばんどうろ
24 18 13ばんどうろ
25 19 14ばんどうろ
26 1A 15ばんどうろ
27 1B 16ばんどうろ
28 1C 17ばんどうろ
29 1D 18ばんどうろ
30 1E 19ばんすいどう
31 1F 20ばんすいどう
32 20 21ばんすいどう
33 21 22ばんどうろ
34 22 23ばんどうろ
35 23 24ばんどうろ
36 24 25ばんどうろ
37 25 マサラ自宅1階
38 26 マサラ自宅2階
39 27 マサラライバル宅
40 28 オーキド研究所
41 29 トキワPC
42 2A トキワFS
43 2B トキワ南民家
44 2C トキワ北民家
45 2D トキワジム
46 2E ディグダの穴ニビ側
47 2F トキワの森北ゲート
48 30 2ばんどうろ民家
49 31 2ばんどうろゲート
50 32 トキワの森南ゲート
51 33 トキワの森
52 34 ニビ博物館1階
53 35 ニビ博物館2階
54 36 ニビジム
55 37 ニビ北民家
56 38 ニビFS
57 39 ニビ南民家
58 3A ニビPC
59 3B おつきみやま1階
60 3C おつきみやまB1階
61 3D おつきみやまB2階
62 3E ハナダ泥棒された家
63 3F ハナダ中央民家         
64 40 ハナダポケセン  
65 41 ハナダジム
66 42 ハナダミラクルサイクル
67 43 ハナダFS
68 44 おつきみやまPC
69 45 洞窟BGMのハナダ泥棒された家
70 46 ヤマブキ北ゲート
71 47 ちかつうろ(タテ)北入り口
72 48 そだてやさん
73 49 ヤマブキ南ゲート
74 4A ちかつうろ(タテ)南入り口
75 4B クチバBGMの地下通路南入り口
76 4C ヤマブキ西ゲート
77 4D ちかつうろ(よこ)西ゲート
78 4E タマムシBGMの完全没部屋
79 4F ヤマブキ東ゲート
80 50 ちかつうろ(よこ)東入り口
81 51 イワヤマトンネルPC
82 52 イワヤマトンネルB1階
83 53 むじんはつでんしょ
84 54 11ばんどうろゲート1階
85 55 ディグダの穴クチバ側
86 56 11ばんどうろゲート2階
87 57 12ばんどうろゲートシオン側1階
88 58 みさきのこや(マサキ)
89 59 クチバPC
90 5A クチバだいすきクラブ
91 5B クチバFS
92 5C クチバジム
93 5D クチバ南民家
94 5E サント・アンヌ号船外
95 5F サント・アンヌ号1階
96 60 サント・アンヌ号2階
97 61 サント・アンヌ号1階
98 62 サント・アンヌ号B1階
99 63 サント・アンヌ号デッキ
100 64 サント・アンヌ号キッチン
101 65 サント・アンヌ号船長室
102 66 サント・アンヌ号1階客室
103 67 サント・アンヌ号2階客室
104 68 サント・アンヌ号B1階客室
105 69 フリーズ
106 6A フリーズ
107 6B フリーズ
108 6C チャンピオンロード1階
109 6D フリーズ
110 6E フリーズ
111 6F フリーズ
112 70 フリーズ
113 71 ポケモンリーグワタルの間
114 72 フリーズ
115 73 フリーズ
116 74 フリーズ
117 75 フリーズ
118 76 殿堂入りの部屋
119 77 ちかつうろ(タテ)
120 78 ポケモンリーグチャンピオンの間
121 79 ちかつうろ(よこ)
122 7A タマムシデパート1階
123 7B タマムシデパート2階
124 7C タマムシデパート3階
125 7D タマムシデパート4階
126 7E タマムシデパート屋上
127 7F タマムシデパートエレベータ   
128 80 タマムシマンション1階  
129 81 タマムシマンション2階
130 82 タマムシマンション3階
131 83 タマムシマンション屋上
132 84 タマムシマンション屋上部屋
133 85 タマムシPC
134 86 タマムシジム
135 87 タマムシゲームコーナー
136 88 タマムシデパート5階
137 89 タマムシゲームコーナー交換所
138 8A タマムシ食堂
139 8B タマムシ南民家
140 8C タマムシ旅館
141 8D シオンPC
142 8E シオンポケモンタワー1階
143 8F シオンポケモンタワー2階
144 90 シオンポケモンタワー3階
145 91 シオンポケモンタワー4階
146 92 シオンポケモンタワー5階
147 93 シオンポケモンタワー6階
148 94 シオンポケモンタワー7階
149 95 シオンフジろうじん宅
150 96 シオンFS
151 97 シオン南民家
152 98 セキチクFS
153 99 セキチク南民家
154 9A セキチクPC
155 9B セキチクえんちょう宅
156 9C セキチクサファリ入り口
157 9D セキチクジム
158 9E セキチクサファリいいんかい
159 9F ふたごじまB1階
160 A0 ふたごじまB2階
161 A1 ふたごじまB3階
162 A2 ふたごじまB4階
163 A3 クチバつりオヤジ宅
164 A4 セキチクつりオヤジ宅
165 A5 ポケモンやしき1階
166 A6 グレンジム
167 A7 グレン研究所入り口
168 A8 グレン研究所応接室
169 A9 グレン研究所研究室
170 AA グレン研究所実験室
171 AB グレンPC
172 AC グレンFS
173 AD グレンBGMの没グレンFS
174 AE セキエイ高原PC
175 AF ヤマブキものまね娘宅1階
176 B0 ヤマブキものまね娘宅2階
177 B1 ヤマブキ格闘道場
178 B2 ヤマブキジム
179 B3 ヤマブキ北西民家
180 B4 ヤマブキFS
181 B5 シルフカンパニー1階
182 B6 ヤマブキPC
183 B7 ヤマブキエスパー親父宅
184 B8 セキチク南ゲート1階
185 B9 セキチク南ゲート1階
186 BA サイクリングロード北ゲート1階
187 BB サイクリングロード北ゲート2階
188 BC サイクリングロード民家
189 BD 12ばんどうろつりオヤジ宅
190 BE サイクリングロード南ゲート1階
191 BF サイクリングロード南ゲート2階 
192 C0 ふたごじま1階
193 C1 グレーバッジチェックゲート
194 C2 チャンピオンロード2階
195 C3 12ばんどうろゲートシオン側2階
196 C4 クチバ中央民家
197 C5 ディグダの穴内部
198 C6 チャンピオンロード3階
199 C7 ロケット団アジトB1階
200 C8 ロケット団アジトB2階
201 C9 ロケット団アジトB3階
202 CA ロケット団アジトB4階
203 CB ロケット団アジトエレベータ
204 CC

 

アジトBGMのバグ空間

205 CD
206 CE
207 CF シルフカンパニー2階
208 D0 シルフカンパニー3階
209 D1 シルフカンパニー4階
210 D2 シルフカンパニー5階
211 D3 シルフカンパニー6階
212 D4 シルフカンパニー7階
213 D5 シルフカンパニー8階
214 D6 ポケモンやしき2階
215 D7 ポケモンやしき3階
216 D8 ポケモンやしきB1階
217 D9 サファリゾーン東
218 DA サファリゾーン北
219 DB サファリゾーン西
220 DC サファリゾーン南
221 DD サファリ南休憩所
222 DE サファリトレジャーハウス
223 DF サファリ西休憩所
224 E0 サファリ東休憩所
225 E1 サファリ北休憩所
226 E2 ハナダななしの洞窟2階
227 E3 ハナダななしの洞窟B1階
228 E4 ハナダななしの洞窟1階
229 E5 シオン姓名判断氏
230 E6 ハナダバッジおじさん
231 E7 フリーズ
232 E8 イワヤマトンネルB2階
233 E9 シルフカンパニー9階
234 EA シルフカンパニー10階
235 EB シルフカンパニー11階
236 EC シルフカンパニーエレベータ
237 ED フリーズ
238 EE フリーズ
239 EF 通信交換ルーム
240 F0 通信対戦ルーム
241 F1 フリーズ
242 F2 フリーズ
243 F3 フリーズ
244 F4 フリーズ
245 F5 ポケモンリーグカンナの間
246 F6 ポケモンリーグシバの間
247 F7 ポケモンリーグキクコの間
248 F8 バグ空間
249 F9 バグ空間
250 FA バグ空間
251 FB フリーズ
252 FC バグ空間
253 FD バグ空間
254 FE フリーズ
255 FF フリーズ          

 

さて、ライバル宅のマップ番号は39です、

そこで、終端コードFFが手持ちに居る状態で84歩進むとどうなるでしょう。

答えは毒ダメージが21回発生し(A-B)*4=Cで、

それぞれAには39、Bには18、Cには84が入ります。

(この計算式を頭に入れるとワープしたい先までの歩数計算に便利です)

よって、マップ番号18の7ばんどうろが移動先の座標になるということです。

 

以上がどこかしらドアの原理になります。

ちなみにタマムシマンションの左入り口も移動先がD335ですよ。

 

また、直接関係はない事例ですがどこかしらドアを行う時点で、
大抵がおとどけもの入手後と思いますから記述しておきます。

 

終端コードFFと入れ替えたあと逃げるか負けるとフリーズするのは
終端コードFFはポケモンとしてデータ領域をコピーするとレベル0最大HP0のためです
レベル0はともかく最大HP0はゼロ除算によりフリーズします

トリガーとなるバトルでは、1番目と2番目のポケモンを入れ替えてアネ゙デパミ゙化させたあとに、《たたかう》コマンドを選べばそのまま逃亡してもフリーズを回避できます。
これは、たたかうを選んだ際に最大HPをコピーすることで更新されるためです。
ただし、実際にステータスに反映されるわけではないので、その後エンカウントしてアネ゙デパミ゙を繰り出すとフリーズしてしまうので注意。

 

どこかしらドアが機能する出口アドレスであるD335ですが

どく状態で書き換わる199番目のHPアドレスは

正確にはD335のミラーであるF335のアドレスを書き換えています

そのためどうしても行えないハードがあるため、その場合は諦めましょう

 

現在わかっている範囲での
どこかしらドアが確実に成功する実機とエミュまとめ
OK⇒GB、GBAGBASPSFC3DS、レトロフリーク、bgb
不明⇒GBC(たぶん大丈夫とは思います)
NG⇒VBA、John GBAC
3DSとJohn GBACに関しては有志からの報告からです。

OKの機種を使っているのに出来ない!という場合は、そのゲーム機がミラー領域を処理できなくなっている場合があります。
というか、ステータスかIDにFFhがないのに失敗するのはだいたいそれでしょう。

 

EXIT