Site cover image

🐾 flag3

ポケットモンスター ピカチュウ バイナリエディタ サファリゾーン脱出バグ

The English version is here:

📄Arrow icon of a page linkRAM Writer in Pokémon Yellow Safari Zone Escape Glitch (JP)

バイナリエディタは、初代ポケモンにおける任意コード実行の究極の到達点とも言えるツールです。このエディタを使用すると、ゲーム内のあらゆるメモリの読み書きが可能になります。さらに、プログラムを記述し、実行させることもできます。これにより、テトリスやオセロなどのゲームを遊ぶことも可能になる、非常に強力なツールです。

バイナリエディタ導入手順

環境

ポケットモンスター ピカチュウの日本語版のみに対応しています。ポケットモンスター 赤・緑・青や日本語版以外のバージョンには対応していません。既存のセーブデータに対応しているためさいしょからはじめることなく導入することができます。さいしょからはじめる方法やポケットモンスター 赤・緑・青でバイナリエディタを導入する方法については以下の記事をご覧ください。

📄Arrow icon of a page linkポケットモンスター ピカチュウ バイナリエディタ

📄Arrow icon of a page linkポケットモンスター ピカチュウ バイナリエディタ レポートバグなし

📄Arrow icon of a page linkポケットモンスター 赤・緑・青 バイナリエディタ

バージョンの違い

ポケットモンスター ピカチュウにはv1.0、v1.1、v1.2、v1.3が存在します。カートリッジの表面のパッケージシール右下に刻まれている刻印によってどのバージョンであるかを判定することができます。

  • 刻印が数字のみまたは数字+Aであればv1.0。
  • 刻印が数字+Bであればv1.1。
  • 刻印が数字+Cであればv1.2。
  • 刻印が数字+Dであればv1.3。

なお3DSのVCはv1.3となります。今回の手順においてv1.1、v1.2、v1.3による違いはありません。

準備

  1. どうぐの9番目をどくけし×91、10番目をどくけし×96にしてください。
    • どくけし×99を2つ購入してからどうぐを捨てることで調整すると良いです。
  2. 手持ちのポケモン
    • いあいぎりを覚えたポケモン(要ブルーバッジ)。
    • そらをとぶまたはテレポートを覚えたポケモン(そらをとぶの場合は要オレンジバッジ)。
    • なみのりを覚えたポケモン(要ピンクバッジ)。
任意
  • 歩数稼ぎをするためにじてんしゃを持っておくと良いです。
  • エンカウントを回避するためスプレーを持っておくと良いです。
  • テレポートで代用可能ではありますがそらをとぶが使えると良いです。またそらをとぶでグレンタウンに移動することができると手順1の5番目における移動が楽になります。

手順1: サファリゾーン脱出バグ

  1. サファリゾーンに入る。
  2. 一度受付に戻って「もう おわりに する?」と聞かれるので「いいえ」を選択する。
  3. セーブとリセットを行う。
  4. 受付に戻って下に移動し続けて下の出口から出る。サファリゲームをやるか聞かれるが「いいえ」を選択する。
  5. 20ばんすいどうに移動する。
  6. 移動し続けることで20ばんすいどうでアナウンスを発生させる。
  7. サファリゾーンの受付に移動する。受付の下の出口から出る。バグったマップに移動します。

手順2: バグったマップの移動

  1. 下に1歩進み、左に7歩進む。
  2. 上ボタンを押して上を向くようにする。
  3. スタートメニューを開いて閉じる。
  4. もう一度スタートメニューを開くと水タイルが出現するのでなみのりを使う。
  5. 上に6歩進み、左に1歩進む。
  6. スタートメニューを開いて閉じる。
  7. 右ボタンを押して右を向くようにする。
  8. もう一度スタートメニューを開くと目の前にいあいぎりの木が出現する。

手順3: 個数0のどうぐの入手

手順2で出現したいあいぎりの木は10番目のどうぐの個数に対応します。いあいぎりをすることでどくけしの個数を96から110に変更することができます。

以下の操作を繰り返してください。

  1. 目の前の木に対していあいぎりをすることで10番目のどうぐの個数を110にする。
  2. 9番目のどうぐでセレクトをしてから10番目のどうぐでセレクトをする。
  3. 10番目のどうぐの個数が99になるので3個捨てて96個にする。

2番目の操作でどくけし×0になるまで繰り返しをしてください。どくけし×0を入手したら任意の場所にテレポートまたはそらをとぶでポケモンセンターに移動してください。

Image in a image block

手順4: どうぐ欄の操作

  • 手持ちのどうぐの1, 2番目を捨てることができるアイテム、3番目をどくけし×0にしてそれ以外のどうぐを全て預けてください。
  • 3番目のどくけしを1個捨ててどくけし×255にしてください。
  • 1番目と2番目のどうぐを捨ててください。1~3番目のどうぐがどくけし×255になります。
  • 1番目のどくけしを253捨ててください。
  • 1番目のどくけしと2番目のどくけしを2回入れ替えてください。

この操作をすることでどうぐの所持数が255になり、やめるよりも下にカーソルを移動することができるようになります。

手順5: 簡易版バイナリエディタ導入

せっていを開き以下のようにします。そうすることでどうぐの26番目がかいがらバッヂになります。

はなしのはやさ:ふつう

せんとうアニメ:じっくりみる

しあいのルール:かちぬきタイプ

サウンド:イヤホン2

そだてやさんに「ゅゆてょん」のポケモンを預けたままにし、ボックスに預けたポケモンの種族とニックネームを以下のものにしてからかいがらバッヂを使用することで簡易版バイナリエディタを起動することができます。ボックスに預けているポケモンの数を23匹以上にはしないでください。

番号 種族 ニックネーム
1 ポッポorコラッタ がんぜルョ
2 ポッポorコラッタ よヂづよく
3 ポッポorコラッタ づひせひる
4 ポッポorコラッタ なゅダだグ
5 ポッポorコラッタ ぼヂてソん
6 ポッポorコラッタ ダだギムツ
7 ポッポorコラッタ てソんダム
8 ポッポorコラッタ キづごヅー
9 ポッポorコラッタ ぱへにんぴ
10 ポッポorコラッタ へにんボぷ
11 ポッポorコラッタ v1.0: へにんへそ
v1.1~v1.3: へにんへた
12 ポッポorコラッタ ううゾダグ
13 ポッポorコラッタ ダめいんど
14 ポッポorコラッタ ダれチんダ
15 ポッポorコラッタ めしんざダ
16 ポッポorコラッタ れじよダリ
17 ポッポorコラッタ だいなひだ
18 メノクラゲ へみんちレ
19 ウツボット ぼダメギて
20 (任意) よザれんん
21 (任意) よメボデの
22 (任意) だア

簡易版バイナリエディタ

これ以降、かいがらバッヂを使うたびに簡易版バイナリエディタを起動することができます。

Image in a image block

左側のD5E9が書き換えようとしているメモリのアドレスで、右の00がその中身です。

🎮
簡易版バイナリエディタ操作方法

B: アドレス-01

A: アドレス+01

↑: 中身-01

↓: 中身+01

←: 中身-10

→: 中身+10

START: 終了

SELECT: D62Cからのコードを実行(プログラム入力するまで押さないように注意)

手順6: バイナリエディタ導入

簡易版バイナリエディタを使用してバイナリエディタのプログラムを入力していきます。入力を終えたらセレクトボタンを押すことでバイナリエディタを起動することができます。バイナリエディタを起動する前に一旦スタートボタンを押して簡易版バイナリエディタを終了させてセーブすることをおすすめします。

アドレス 中身
D5E9 CD
D5EA v1.0: 3F
v1.1~v1.3(VC): 40
D5EB 38
D5EC F0
D5ED B3
D5EE 01
D5EF 01
D5F0 00
D5F1 07
D5F2 38
D5F3 18
D5F4 0B
D5F5 0B
D5F6 07
D5F7 38
D5F8 13
D5F9 0E
D5FA F0
D5FB 07
D5FC 38
D5FD 0E
D5FE 01
D5FF 10
D600 00
D601 07
D602 38
D603 08
D604 07
D605 38
D606 03
D607 07
D608 D0
D609 E9
D60A E1
D60B C9
D60C 79
D60D CB
D60E 43
D60F 20
D610 06
D611 CB
D612 4B
D613 20
D614 05
D615 09
D616 C9
D617 86
D618 77
D619 C9
D61A 84
D61B 67
D61C C9
D61D F5
D61E CB
D61F 37
D620 CD
D621 24
D622 D6
D623 F1
D624 E6
D625 0F
D626 C6
D627 F6
D628 F6
D629 60
D62A 22
D62B C9
D62C 21
D62D 00
D62E D0
D62F CD
D630 E9
D631 D5
D632 E5
D633 11
D634 F8
D635 FF
D636 19
D637 E5
D638 D1
D639 21
D63A AB
D63B C3
D63C 01
D63D 0C
D63E 00
D63F 36
D640 7C
D641 23
D642 7A
D643 CD
D644 1D
D645 D6
D646 7B
D647 CD
D648 1D
D649 D6
D64A 36
D64B 7F
D64C 23
D64D 1A
D64E CD
D64F 1D
D650 D6
D651 13
D652 36
D653 7C
D654 09
D655 7C
D656 FE
D657 C5
D658 20
D659 E5
D65A 3E
D65B ED
D65C EA
D65D 4B
D65E C4
D65F E1
D660 18
D661 CD

バイナリエディタ

これ以降は簡易版バイナリエディタを起動してからセレクトボタンを押すたびに、バイナリエディタを起動することができます。

Image in a image block
🎮
バイナリエディタ操作方法

↑: アドレス-01

↓: アドレス+01

←: アドレス-10

→: アドレス+10

B+↑: アドレス-100

B+↓: アドレス+100

B+←: アドレス-1000

B+→: アドレス+1000

A+↑: 中身-01

A+↓: 中身+01

A+←: 中身-10

A+→: 中身+10

START: 終了

SELECT: 現在のアドレスからのコードを実行(注意して使用してください)

バイナリエディタでD2A2の中身を65に書き換えることでどうぐ欄の1番目をはやぶさバッヂにすることができます。更にかいがらバッヂでバイナリエディタを起動してバイナリエディタを使って以下のように書き換えを行うと、はやぶさバッヂを使うことでバイナリエディタを直接起動することができるようになります。はやぶさバッヂでバイナリエディタを起動することができるようになればかいがらバッヂは不要となります。

v1.0

アドレス 中身
DDCA C3
DDCB 2C
DDCC D6

v1.1~v1.3(VC)

アドレス 中身
D4CA 0E
D4CB 62
D4CC 04
D4CD 09
D4CE E9
D4CF 63

またバイナリエディタを直接起動するには関係ありませんが、アドレスD4B9からD4C9までを以下のようにしてパソコンのどうぐ欄を変更しておくと良いです。ただし1番目から11番目のどうぐは引き出さないようにしてください。

0B C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01

手順7: 通常の状態に戻す

バイナリエディタの導入で手持ちのどうぐ欄に副作用が発生しています。

アドレスD2A1~D2A4の中身を以下のようにすることでどうぐをはやぶさバッヂのみにすることができます。

01 65 01 FF

使い方

バイナリエディタを導入した後は以下の記事で使い方を確認することができます。

📄Arrow icon of a page linkポケットモンスター 赤・緑・青・ピカチュウ バイナリエディタ 使い方

注意

v1.0の場合はボックスに預けているポケモンの5匹目のおやの名前を「がんてじよ」にしてはやぶさバッヂを使うようにしてください。特にボックスを切り換えるとボックスに預けているポケモンが変化してしまうことに注意してください。上記の手順ではやぶさバッヂからバイナリエディタを直接起動することができるようになっていればボックスに預けているポケモンの5匹目のおやの名前は「がんてじよ」になっています。

v1.1~v1.3(VC)の場合はパソコンに預けているどうぐの9番目から11番目を変更しないようにしてください。上記の手順ではやぶさバッヂからバイナリエディタを直接起動することができるようになっていればパソコンに預けているどうぐの9番目から11番目は以下のようになっています。

🔍
9番目のどうぐ:ねむけざまし×98

10番目のどうぐ:モンスターボール×9

11番目のどうぐ:わざマシン33

バージョンに依らずアドレスD5E9~D661はバイナリエディタで編集しないようにしてください。

技術的補足

サファリゾーン脱出バグ

サファリゾーン脱出バグはサファリゾーンの外にいる状態でサファリゾーンの残り歩数が0歩になり受付に呼び出されるバグのことです。サファリゾーンに入ることでサファリゾーンにいるフラグが立ち、残り歩数500歩が設定されます。これらのフラグを残したままサファリゾーンの外に出ることでサファリゾーンの外で受付に呼び出されることができます。

手順1の2.-4.の操作でサファリゾーンを適切に終了せずに退出できる理由は、サファリゾーン受付のスクリプトがリセットされるためです。

いあいぎりをすることでどうぐの個数増加の仕組み

2×2マスの4マスを1ブロックとしてブロックごとに以下のIDが割り当てられています。手順3で木にいあいぎりをすることでアドレスD2B5の中身が60から6Eに変化します。アドレスD2B5は10番目のどうぐの個数を格納しており、中身の変化によって数が96から110へ変化します。

Image in a image block

かいがらバッヂの効果

かいがらバッヂを使うとアドレスD9B2へジャンプします。アドレスD9B2はボックスに預けているポケモンの数を格納しています。アドレスD9B3以降はボックスに預けているポケモンの種族を格納しています。

アドレスD9B2からD9C3までを無害な命令にし、アドレスD9C4以降を18 BEにすることで、かいがらバッヂを使用する際にアドレスD984を実行することができます。18に対応するポケモンの種族はメノクラゲ、BEに対応するポケモンはウツボットとなっています。アドレスD984以降はそだてやに預けたポケモンのニックネームを格納しています。

簡易版バイナリエディタ

説明

簡易版バイナリエディタはhlレジスタが指しているアドレスとその中身を出力するプログラムです。キーの入力でhlレジスタの指すアドレスとその中身を変化させるようにしています。

アドレスDEA4の中身はv1.0ではBF、v1.1~v1.3(VC)ではC0となります。

WRA1:D984 01 E1 D5         ld   bc,D5E1
WRA1:D987 C3 E2 DE         jp   DEE2

WRA1:D9B2 16 A5            ld   d,A5
WRA1:D9B4 A5               and  l
WRA1:D9B5 A5               and  l
WRA1:D9B6 A5               and  l
WRA1:D9B7 A5               and  l
WRA1:D9B8 A5               and  l
WRA1:D9B9 A5               and  l
WRA1:D9BA A5               and  l
WRA1:D9BB A5               and  l
WRA1:D9BC A5               and  l
WRA1:D9BD A5               and  l
WRA1:D9BE A5               and  l
WRA1:D9BF A5               and  l
WRA1:D9C0 A5               and  l
WRA1:D9C1 A5               and  l
WRA1:D9C2 A5               and  l
WRA1:D9C3 A5               and  l
WRA1:D9C4 18 BE            jr   D984

WRA1:DE64 26 DE            ld   h,DE
WRA1:DE66 2E A6            ld   l,A6
WRA1:DE68 AF               xor  a
WRA1:DE69 50               ld   d,b
WRA1:DE6A D6 10            sub  a,10
WRA1:DE6C 32               ldd  (hl),a
WRA1:DE6D D6 B8            sub  a,B8
WRA1:DE6F 50               ld   d,b
WRA1:DE70 32               ldd  (hl),a
WRA1:DE71 CB BE            res  7,(hl)
WRA1:DE73 CB D9            set  3,c
WRA1:DE75 50               ld   d,b
WRA1:DE76 C5               push bc
WRA1:DE77 E1               pop  hl
WRA1:DE78 0F               rrca 
WRA1:DE79 30 07            jr   nc,DE82
WRA1:DE7B 50               ld   d,b
WRA1:DE7C 3E 10            ld   a,10
WRA1:DE7E C3 8E DE         jp   DE8E
WRA1:DE81 50               ld   d,b
WRA1:DE82 0F               rrca 
WRA1:DE83 30 06            jr   nc,DE8B
WRA1:DE85 9F               sbc  a
WRA1:DE86 91               sub  c
WRA1:DE87 50               ld   d,b
WRA1:DE88 C3 8E DE         jp   DE8E
WRA1:DE8B 0F               rrca 
WRA1:DE8C 9F               sbc  a
WRA1:DE8D 50               ld   d,b
WRA1:DE8E 86               add  (hl)
WRA1:DE8F 32               ldd  (hl),a
WRA1:DE90 2A               ldi  a,(hl)
WRA1:DE91 11 E3 50         ld   de,50E3
WRA1:DE94 44               ld   b,h
WRA1:DE95 CD C6 DE         call DEC6
WRA1:DE98 45               ld   b,l
WRA1:DE99 50               ld   d,b
WRA1:DE9A CD C6 DE         call DEC6
WRA1:DE9D 1C               inc  e
WRA1:DE9E 46               ld   b,(hl)
WRA1:DE9F 50               ld   d,b
WRA1:DEA0 CD C6 DE         call DEC6
WRA1:DEA3 CD ?? 50         call 50??
WRA1:DEA6 B3               or   e
WRA1:DEA7 B3               or   e
WRA1:DEA8 0E 0F            ld   c,0F
WRA1:DEAA 07               rlca 
WRA1:DEAB 50               ld   d,b
WRA1:DEAC 0F               rrca 
WRA1:DEAD D2 B2 DE         jp   nc,DEB2
WRA1:DEB0 34               inc  (hl)
WRA1:DEB1 50               ld   d,b
WRA1:DEB2 0F               rrca 
WRA1:DEB3 DA 90 DE         jp   c,DE90
WRA1:DEB6 0F               rrca 
WRA1:DEB7 50               ld   d,b
WRA1:DEB8 D2 BC DE         jp   nc,DEBC
WRA1:DEBB 2B               dec  hl
WRA1:DEBC 0F               rrca 
WRA1:DEBD 50               ld   d,b
WRA1:DEBE DA 2C D6         jp   c,D62C
WRA1:DEC1 0F               rrca 
WRA1:DEC2 D8               ret  c
WRA1:DEC3 50               ld   d,b
WRA1:DEC4 30 B2            jr   nc,DE78
WRA1:DEC6 C5               push bc
WRA1:DEC7 CB 30            swap b
WRA1:DEC9 50               ld   d,b
WRA1:DECA CD D0 DE         call DED0
WRA1:DECD C1               pop  bc
WRA1:DECE A7               and  a
WRA1:DECF 50               ld   d,b
WRA1:DED0 3E 0F            ld   a,0F
WRA1:DED2 A0               and  b
WRA1:DED3 06 C3            ld   b,C3
WRA1:DED5 50               ld   d,b
WRA1:DED6 D6 0A            sub  a,0A
WRA1:DED8 DA DE DE         jp   c,DEDE
WRA1:DEDB 50               ld   d,b
WRA1:DEDC D6 A0            sub  a,A0
WRA1:DEDE 1C               inc  e
WRA1:DEDF 12               ld   (de),a
WRA1:DEE0 C9               ret  
WRA1:DEE1 50               ld   d,b
WRA1:DEE2 30 80            jr   nc,DE64
WRA1:DEE4 50               ld   d,b
バイナリ
D984:
01 E1 D5 C3 E2 DE

D9B2:
16 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 18 BE

DE64:
26 DE 2E A6 AF 50
D6 10 32 D6 B8 50
32 CB BE CB D9 50
C5 E1 0F 30 07 50
3E 10 C3 8E DE 50
0F 30 06 9F 91 50
C3 8E DE 0F 9F 50
86 32 2A 11 E3 50
44 CD C6 DE 45 50
CD C6 DE 1C 46 50
CD C6 DE CD ?? 50
B3 B3 0E 0F 07 50
0F D2 B2 DE 34 50
0F DA 90 DE 0F 50
D2 BC DE 2B 0F 50
DA 2C D6 0F D8 50
30 B2 C5 CB 30 50
CD D0 DE C1 A7 50
3E 0F A0 06 C3 50
D6 0A DA DE DE 50
D6 A0 1C 12 C9 50
30 80 50

参考文献