Various App

セレクトバグ ビジュアライザー

初代ポケモン(赤・緑・青)の「7番目バグ」がなぜレベル100を生み出すのか、 メモリレベルで視覚的に体験できます。

🌿
フィールド
くさむら の ちかく にいる...
リザードン Lv.36
1 / 9

初期状態

リザードン Lv.36 で冒険中。下のメモリマップを確認してみましょう。

技術解説

下に表示されているのは、ゲーム内でポケモン1匹分のデータがメモリ上にどう並んでいるかを表したものです。技データの直後にトレーナーIDと経験値が隙間なく並んでいます。この「隙間なく並んでいる」ことがバグの鍵になります。

入れ替えフラグ
OFF
経験値
48,207

ポケモンのメモリ構造

ポケモン1匹分のデータは全44バイトありますが、ここではバグに関係する先頭17バイトを表示しています。 各マスが1バイトのデータです。技データの直後に経験値が並んでいることに注目してください。

入れ替えフラグ:OFF入れ替え対象は選択されていません
ポケモンの基本情報
技スロット(1〜4番目)
トレーナーID(5〜6番目)
経験値(7〜9番目)
種族
HP上
HP下
レベル
状態
タイプ1
タイプ2
捕獲率
技1
技2
技3
技4
ID上
ID下
経験上
経験中
経験下
06
00
7D
24
00
0A
02
2D
35
34
11
0A
12
34
00
BC
4F
リザードン
0
125
Lv.36
正常
ほのお
ひこう
45
きりさく
かえんほうしゃ
つばさでうつ
ひっかく
18
52
0
188
79

データの読み方(複数バイトにまたがる値)

HP
HP上:0x00 = 0 × 256
HP下:0x7D = 125 × 1
合計:125
0 × 256 + 125 × 1
トレーナーID
ID上:0x12 = 18 × 256
ID下:0x34 = 52 × 1
合計:4,660
18 × 256 + 52 × 1
経験値
経験上:0x00 = 0 × 65,536
経験中:0xBC = 188 × 256
経験下:0x4F = 79 × 1
合計:48,207
0 × 65536 + 188 × 256 + 79 × 1
技データ
トレーナーID
経験値
種族
HP
レベル
タイプ

参考: pokered 逆アセンブリ (pret/pokered) / アニヲタWiki セレクトバグ(ポケモン)

教育目的のコンテンツです。実機でのバグ利用は自己責任で行ってください。