The English version is here:
📄RAM Writer in Pokémon Yellow Safari Zone Escape Glitch (JP)
バイナリエディタは、初代ポケモンにおける任意コード実行の究極の到達点とも言えるツールです。このエディタを使用すると、ゲーム内のあらゆるメモリの読み書きが可能になります。さらに、プログラムを記述し、実行させることもできます。これにより、テトリスやオセロなどのゲームを遊ぶことも可能になる、非常に強力なツールです。
バイナリエディタ導入手順
環境
ポケットモンスター ピカチュウの日本語版のみに対応しています。ポケットモンスター 赤・緑・青や日本語版以外のバージョンには対応していません。既存のセーブデータに対応しているためさいしょからはじめることなく導入することができます。さいしょからはじめる方法やポケットモンスター 赤・緑・青でバイナリエディタを導入する方法については以下の記事をご覧ください。
📄ポケットモンスター ピカチュウ バイナリエディタ レポートバグなし
バージョンの違い
ポケットモンスター ピカチュウには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による違いはありません。
準備
- どうぐの9番目をどくけし×91、10番目をどくけし×96にしてください。
- どくけし×99を2つ購入してからどうぐを捨てることで調整すると良いです。
- 手持ちのポケモン
- いあいぎりを覚えたポケモン(要ブルーバッジ)。
- そらをとぶまたはテレポートを覚えたポケモン(そらをとぶの場合は要オレンジバッジ)。
- なみのりを覚えたポケモン(要ピンクバッジ)。
任意
- 歩数稼ぎをするためにじてんしゃを持っておくと良いです。
- エンカウントを回避するためスプレーを持っておくと良いです。
- テレポートで代用可能ではありますがそらをとぶが使えると良いです。またそらをとぶでグレンタウンに移動することができると手順1の5番目における移動が楽になります。
手順1: サファリゾーン脱出バグ
- サファリゾーンに入る。
- 一度受付に戻って「もう おわりに する?」と聞かれるので「いいえ」を選択する。
- セーブとリセットを行う。
- 受付に戻って下に移動し続けて下の出口から出る。サファリゲームをやるか聞かれるが「いいえ」を選択する。
- 20ばんすいどうに移動する。
- 移動し続けることで20ばんすいどうでアナウンスを発生させる。
- サファリゾーンの受付に移動する。受付の下の出口から出る。バグったマップに移動します。
手順2: バグったマップの移動
- 下に1歩進み、左に7歩進む。
- 上ボタンを押して上を向くようにする。
- スタートメニューを開いて閉じる。
- もう一度スタートメニューを開くと水タイルが出現するのでなみのりを使う。
- 上に6歩進み、左に1歩進む。
- スタートメニューを開いて閉じる。
- 右ボタンを押して右を向くようにする。
- もう一度スタートメニューを開くと目の前にいあいぎりの木が出現する。
手順3: 個数0のどうぐの入手
手順2で出現したいあいぎりの木は10番目のどうぐの個数に対応します。いあいぎりをすることでどくけしの個数を96から110に変更することができます。
以下の操作を繰り返してください。
- 目の前の木に対していあいぎりをすることで10番目のどうぐの個数を110にする。
- 9番目のどうぐでセレクトをしてから10番目のどうぐでセレクトをする。
- 10番目のどうぐの個数が99になるので3個捨てて96個にする。
2番目の操作でどくけし×0になるまで繰り返しをしてください。どくけし×0を入手したら任意の場所にテレポートまたはそらをとぶでポケモンセンターに移動してください。
手順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 | (任意) | だア |
簡易版バイナリエディタ
これ以降、かいがらバッヂを使うたびに簡易版バイナリエディタを起動することができます。
左側の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 |
バイナリエディタ
これ以降は簡易版バイナリエディタを起動してからセレクトボタンを押すたびに、バイナリエディタを起動することができます。
↑: アドレス-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 使い方
バイナリエディタを導入した後は以下の記事で使い方を確認することができます。
📄ポケットモンスター 赤・緑・青・ピカチュウ バイナリエディタ 使い方
注意
v1.0の場合はボックスに預けているポケモンの5匹目のおやの名前を「がんてじよ」にしてはやぶさバッヂを使うようにしてください。特にボックスを切り換えるとボックスに預けているポケモンが変化してしまうことに注意してください。上記の手順ではやぶさバッヂからバイナリエディタを直接起動することができるようになっていればボックスに預けているポケモンの5匹目のおやの名前は「がんてじよ」になっています。
v1.1~v1.3(VC)の場合はパソコンに預けているどうぐの9番目から11番目を変更しないようにしてください。上記の手順ではやぶさバッヂからバイナリエディタを直接起動することができるようになっていればパソコンに預けているどうぐの9番目から11番目は以下のようになっています。
10番目のどうぐ:モンスターボール×9
11番目のどうぐ:わざマシン33
バージョンに依らずアドレスD5E9~D661はバイナリエディタで編集しないようにしてください。
技術的補足
サファリゾーン脱出バグ
サファリゾーン脱出バグはサファリゾーンの外にいる状態でサファリゾーンの残り歩数が0歩になり受付に呼び出されるバグのことです。サファリゾーンに入ることでサファリゾーンにいるフラグが立ち、残り歩数500歩が設定されます。これらのフラグを残したままサファリゾーンの外に出ることでサファリゾーンの外で受付に呼び出されることができます。
手順1の2.-4.の操作でサファリゾーンを適切に終了せずに退出できる理由は、サファリゾーン受付のスクリプトがリセットされるためです。
いあいぎりをすることでどうぐの個数増加の仕組み
2×2マスの4マスを1ブロックとしてブロックごとに以下のIDが割り当てられています。手順3で木にいあいぎりをすることでアドレスD2B5の中身が60から6Eに変化します。アドレスD2B5は10番目のどうぐの個数を格納しており、中身の変化によって数が96から110へ変化します。
かいがらバッヂの効果
かいがらバッヂを使うとアドレス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


