バイナリエディタは、初代ポケモンにおける任意コード実行の究極の到達点とも言えるツールです。このエディタを使用すると、ゲーム内のあらゆるメモリの読み書きが可能になります。さらに、プログラムを記述し、実行させることもできます。これにより、テトリスやオセロなどのゲームを遊ぶことも可能になる、非常に強力なツールです。
本記事は以下の動画の解説となります。
バイナリエディタ導入手順
環境
ポケットモンスター ピカチュウの日本語版のみに対応しています。ポケットモンスター 赤・緑・青や日本語版以外のバージョンには対応していません。またさいしょからはじめることを前提としています。セーブをする際に特定のタイミングで強制リセットを行うSRAM Glitchは使わない方法となります。SRAM Glitchを使う方法やポケットモンスター 赤・緑・青でバイナリエディタを導入する方法については以下の記事をご覧ください。SRAM Glithchが可能であれば以下の記事でバイナリエディタを導入するのをおすすめします。
バージョンの違い
ポケットモンスター ピカチュウにはv1.0、v1.1、v1.2、v1.3が存在します。カートリッジの表面のパッケージシール右下に刻まれている刻印によってどのバージョンであるかを判定することができます。
- 刻印が数字のみまたは数字+Aであればv1.0。
- 刻印が数字+Bであればv1.1。
- 刻印が数字+Cであればv1.2。
- 刻印が数字+Dであればv1.3。
なお3DSのVCはv1.3となります。
以下の手順8における23、24番目のどうぐの種類によってバージョンを判定することもできます。
- 23、24番目のどうぐが「ぬ゙のづ」であればv1.1、v1.2、v1.3のいずれか。
- 23、24番目のどうぐが「ぬ゙のづ」でなければv1.0。
今回の手順においてv1.1、v1.2、v1.3による違いはありません。
手順1: さいしょからはじめる
主人公の名前を「がんョぜメ」にし、ライバルの名前を「オオオオ」にします。ニビシティに到着するまでゲームを進めてください。ただしトキワのもりの3番目のむしとりしょうねんには勝利しないようにしてください。トキワのもりの3番目のむしとりしょうねんとは画像のトレーナーのことです。
手順2: ニビシティのポケモンセンターとフレンドリィショップに寄る
後の手順であなぬけのひもを使ったときに移動先がニビシティとなるようにポケモンセンターで回復を行ってください。またポケモンセンターにあるパソコンでボックス2に切り替えてください。ボックス1は後の手順で使うためボックス1とは異なるボックスに切り替える必要があります。
フレンドリィショップではモンスターボールとあなぬけのひもを購入してください。モンスターボールは最低でも19個必要なためおかねには注意してください。上記の動画では途中でモンスターボールを1個拾い、さいしょのおこづかい(3000円)、ライバル戦での勝利(175円)、むしとりしょうねん戦での勝利(100円)、途中でキズぐすり×6を入手し売る(900円)で合計4175円を入手し、モンスターボール×18とあなぬけのヒモを購入することで4150円を使っています。必要であれば追加でトレーナーと戦闘をしておかねを入手しておくと良いです。
手順3: ポケモンを19匹捕獲する
はじめに入手する5匹は以下のニックネームをつけるようにし手持ちに加えるようにしてください。残りの14匹のニックネームは何でも良いですがボックス2に送られるようにしてください。
捕獲するポケモンは何でも良いですが、おかねがあまり使えないためモンスターボールの無駄遣いはしないように注意してください。1匹捕獲するごとにセーブすることをおすすめします。動画では捕捉率の低いトランセルとピジョンは捕獲しないようにし、捕獲率を上げるためになるべくやせいのポケモンのHPを最大値の1/3以下にしてからモンスターボールを使うようにしています。
- がやぜふづ
- よれづぼて
- づヅモめデ
- がんぜゆの
- ゲぼんだー
手順4: むしとりしょうねんに見つかりながらあなぬけのヒモを使う
トキワのもりの3番目のむしとりしょうねんが画面外にいる状態で左に一歩進むと見つかる場所に移動してください。画像のこの場所となります。ここでセーブをするのをおすすめします。
左に1歩進みながらSTARTボタンを押してメニューを開きあなぬけのヒモを使ってください。そうすることでむしとりしょうねんに見つかりますがトキワのもりから脱出してニビシティへと移動します。移動先がニビシティでない場合はリセットしてニビシティのポケモンセンターで回復をしてからやり直してください。
手順5: ボックスにポケモンを預けてセーブとリセットを行う
手持ちのポケモンを以下の順番で預けてボックス2にいるポケモンの数が19匹になるようにします。ボックス2の15匹目から19匹目のポケモンのニックネームがこの順番になっていることを確認してください。
- がやぜふづ
- よれづぼて
- づヅモめデ
- がんぜゆの
- ゲぼんだー
セーブに関してはメニューが開けなくなっているのでポケモンセンターのパソコンでボックス2に切り替えることでセーブをしてください。セーブをした後はリセットをしてください。
手順6: ニビかがくはくつぶかんへ案内をしてもらう
フレンドリィショップの右にいるNPCに話しかけてニビかがくはくぶつかんへ案内してもらってください。ニビかがくはくぶつかんに入る必要はありません。
手順7: 民家でタウンマップを見てからトキワのもりへ向かう
ポケモンセンターの左下にある民家に入って壁にあるタウンマップを見てください。タウンマップを見た後はそれ以降メニューを開かずにトキワのもりへ向かってください。トキワのもりへ入るとテキストボックスが表示されます。任意コード実行に成功していればどうぐ欄が拡張されやめるよりも下にカーソルを移動することができるようになります。
手順8: タマムシマンション屋上部屋に向かう
- ニビシティのポケモンセンターに戻り手持ちのポケモンを6匹にしてください。手順2で捕まえたポケモンを引き出せば良いです。その後ボックス1へ切り替えてください。またボックス1にポケモンが預けられていないことを確認してください。
- ポケモンセンターの左下にある民家に入ってどうぐ欄を開いてください。
- 24番目のどうぐと34番目のハイパーボールを入れ替えます。
- 23番目のどうぐと24番目のどうぐは同じ名前のどうぐで、25番目のどうぐはピーピーエイド×80になっているのでこれを目印にすると良いです。
- 24番目のどうぐと34番目のハイパーボールを入れ替えます。
- 家から出ることでタマムシシティ屋上部屋に移動することができます。
手順9: 簡易版バイナリエディタ導入
せっていを開き以下のようにします。そうすることでどうぐの26番目がはやぶさバッヂになります。
せんとうアニメ:じっくりみる
しあいのルール:かちぬきタイプ
サウンド:イヤホン2
これ以降はなしのはやさがおそいとなりますが、Bボタンを押しながらメッセージを表示することで表示速度をはやくすることができます。
無限イーブイモード導入
- イーブイを入手しニックネームを「ヅずゆデの」にしてはやぶさバッヂを使います。これによりイーブイのモンスターボールが出現します。
- イーブイを入手しニックネームを「ゴづ」にしてはやぶさバッヂを使います。これによりイーブイのモンスターボールが再度出現します。
- イーブイを入手しニックネームを「がやぜカ」にしてはやぶさバッヂを使います。これにより好きなだけイーブイを入手することができる状態になります。
簡易版バイナリエディタ導入
イーブイを入手し、以下の順番でニックネームをつけます。
- よメボデの
- よザれリん
- ぼダメギて
- へはんち
- だいなひだ
- れじよダリ
- めかんざダ
- ダれサんダ
- ダめッんど
- ううゾダグ
- へたんへ◯
- v1.0: へたんへそ
- v1.1~v1.3(VC): へたんへた
- へたんボぷ
- ぱへたんぴ
- キづごヅー
- てケんダム
- ダだギムツ
- ぼヂてケん
- ぜーダだグ
- づひせがゆ
- よヂづよく
イーブイにニックネームをつけ終わったらはやぶさバッヂを使うと簡易版バイナリエディタが起動します。
簡易版バイナリエディタ
これ以降、はやぶさバッヂを使うたびに簡易版バイナリエディタを起動することができます。
左側のD5E3が書き換えようとしているメモリのアドレスで、右の00がその中身です。
B: アドレス-01
A: アドレス+01
↑: 中身-01
↓: 中身+01
←: 中身-10
→: 中身+10
START: 終了
SELECT: D62Cからのコードを実行(プログラム入力するまで押さないように注意)
手順10: バイナリエディタ導入
簡易版バイナリエディタを使用してバイナリエディタのプログラムを入力していきます。入力を終えたらセレクトボタンを押すことでバイナリエディタを起動することができます。バイナリエディタを起動する前に一旦スタートボタンを押して簡易版バイナリエディタを終了させてセーブすることをおすすめします。
アドレス | 中身 |
---|---|
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: 現在のアドレスからのコードを実行(注意して使用してください)
バイナリエディタを使って以下のように書き換えを行うと、はやぶさバッヂを使うたびに、バイナリエディタを直接起動することができるようになります。
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 |
D4D0 | FF |
またバイナリエディタを直接起動するには関係ありませんが、アドレスD4B9からD4C9までを以下のようにしてパソコンのどうぐ欄を変更しておくと良いです。ただし1番目から11番目のどうぐは引き出さないようにしてください。
0B C9 01 CA 01 CB 01 CC 01 CD 01 CE 01 CF 01 D0 01
手順11: 通常の状態に戻す
バイナリエディタの導入で様々な副作用が発生しています。
- 現在地
- 主人公の名前
- ライバルの名前
- 手持ちのどうぐ欄
- イーブイ取得のフラグ
- ボックス
現在地
タマムシマンション屋上部屋でアドレスD330、D331、D334、D335の中身を00にしてから部屋の外に出るとマサラタウンに移動することができます。トキワシティへ移動したい場合はD331とD335の中身を01に、ニビシティに移動したい場合はD331とD335の中身を02にしてください。
主人公とライバルの名前
バイナリエディタを使ってアドレスD000~D00Dの中身を以下のように書き換えてください。
アドレス | v1.0 | v1.1~v1.3(VC) |
---|---|---|
D000 | 3E | 3E |
D001 | 01 | 01 |
D002 | 21 | 21 |
D003 | 主人公の名前: 5F ライバルの名前: B3 | 主人公の名前: 5F ライバルの名前: B3 |
D004 | 67 | 67 |
D005 | CD | CD |
D006 | 7D | 7E |
D007 | 3E | 3E |
D008 | CD | CD |
D009 | FD | 02 |
D00A | 2F | 30 |
D00B | C3 | C3 |
D00C | CD | CE |
D00D | 3D | 3D |
書き変えたらカーソルをアドレスD000に合わせてセレクトボタンを押すことで主人公またはライバルの名前を決めることができます。主人公とライバルの名前を両方とも変更させたい場合はD003を変更して再度実行するようにしてください。
手持ちのどうぐ欄とイーブイ取得のフラグ
バイナリエディタを使ってアドレスD010~D029の中身を以下のように書き換えてください。
アドレス | 中身 |
---|---|
D010 | AF |
D011 | EA |
D012 | 36 |
D013 | CC |
D014 | 21 |
D015 | 8B |
D016 | D2 |
D017 | CB |
D018 | A6 |
D019 | EA |
D01A | A1 |
D01B | D2 |
D01C | 21 |
D01D | 2D |
D01E | D5 |
D01F | CB |
D020 | AE |
D021 | EA |
D022 | 92 |
D023 | D5 |
D024 | 01 |
D025 | 00 |
D026 | 65 |
D027 | C3 |
D028 | 38 |
D029 | 3E |
書き換えたらカーソルをアドレスD010に合わせてセレクトボタンを押すことでプログラムを実行することができます。このプログラムは以下の効果があります。
- どうぐをはやぶさバッヂのみにする。
- ポケモンずかんからイーブイをつかまえたという情報を削除する。
- イーブイの入手に関係するフラグを初期化する。
ボックス
アドレスD9B2の中身を00に、アドレスD9B3の中身をFFにすることで現在のボックスに預けているポケモンを0匹にすることができます。ただしv1.0の場合はボックスに預けているポケモンを0匹にしないでそのままにしておくことを推奨します。
使用上の注意
v1.0の場合はボックスに預けているポケモンの5匹目のおやの名前を「がんてじよ」にしてはやぶさバッヂを使うようにしてください。特にボックスを切り換えるとボックスに預けているポケモンが変化してしまうことに注意してください。上記の手順ではやぶさバッヂからバイナリエディタを直接起動することができるようになっていればボックスに預けているポケモンの5匹目のおやの名前は「がんてじよ」になっています。
v1.1~v1.3(VC)の場合はパソコンに預けているどうぐの9番目から11番目を変更しないようにしてください。上記の手順ではやぶさバッヂからバイナリエディタを直接起動することができるようになっていればパソコンに預けているどうぐの9番目から11番目は以下のようになっています。
10番目のどうぐ:モンスターボール×9
11番目のどうぐ:わざマシン33
バージョンに依らずアドレスD5E9~D661はバイナリエディタで編集しないようにしてください。
技術的補足(執筆中)
以下の記事と内容が重複する部分についてはここでは省略します。
トキワのもりにおけるテキストボックス
手順7でニビシティの民家でタウンマップを見てからトキワのもりに入ることで、アドレスDED0以降をテキストコマンドとして実行させることができます。更にアドレスDED0の中身を08にすることで、アドレスDED1以降をプログラムとして実行することができます。アドレスDED0はボックスに預けているポケモンの19匹目のニックネーム1文字目を格納しているアドレスであり、内部番号08に対応する文字「ゲ」にすることで19匹目のニックネーム2文字目からプログラムを実行することができます。
テキストコマンドで実行したプログラム
説明
どうぐ欄の拡張とアドレスD4CA以降を C3 04 DE
への書き換えを行っています。どうぐ欄の26番目に配置されるはやぶさバッヂを使うためのプログラムとなります。更にどうぐ欄の拡張はイーブイの部屋へ移動するためにも利用します。
なおテキストコマンドの処理の関係でプログラムを終了する前にhlレジスタの中身が50にする必要があるためretコマンドで終了する前にhlレジスタをDED5にして中身を50にしています。
WRA1:DEB8 26 D4 ld h,D4
WRA1:DEBA 2E CC ld l,CC
WRA1:DEBC 32 ldd (hl),a
WRA1:DEBD 50 ld d,b
WRA1:DEBE D6 DA sub a,DA
WRA1:DEC0 32 ldd (hl),a
WRA1:DEC1 3E C3 ld a,C3
WRA1:DEC3 50 ld d,b
WRA1:DEC4 32 ldd (hl),a
WRA1:DEC5 11 A1 D2 ld de,D2A1
WRA1:DEC8 12 ld (de),a
WRA1:DEC9 50 ld d,b
WRA1:DECA 26 DE ld h,DE
WRA1:DECC 2E D5 ld l,D5
WRA1:DECE C9 ret
WRA1:DECF 50 ld d,b
WRA1:DED0 08 db 08
WRA1:DED1 3E DE ld a,DE
WRA1:DED3 30 E3 jr nc,DEB8
WRA1:DED5 50 ld d,b
バイナリ
26 D4 2E CC 32 50
D6 DA 32 3E C3 50
32 11 A1 D2 12 50
26 DE 2E D5 C9 50
08 3E DE 30 E3 50
手持ちのどうぐ欄とイーブイ取得のフラグに関するプログラム
説明
以下のことを実現するプログラムとなっています。
- アドレスCC36の中身を00にしどうぐ欄のスクロールを一番上にする。
- アドレスD28Bの4bit目を下げてポケモンずかんからイーブイをつかまえたという情報を削除する。
- アドレスD2A1までの中身を00にしどうぐの個数を0個にする。
- アドレスD52Dの5bit目を下げてイーブイ取得のフラグを初期化する。
- アドレスD592の中身を00にしはやぶさバッヂ2回目の効果を修正する。
- はやぶさバッヂを入手し、手持ちのどうぐ欄をはやぶさバッヂのみにする。
WRA1:D010 AF xor a
WRA1:D011 EA 36 CC ld (CC36),a
WRA1:D014 21 8B D2 ld hl,D28B
WRA1:D017 CB A6 res 4,(hl)
WRA1:D019 EA A1 D2 ld (D2A1),a
WRA1:D01C 21 2D D5 ld hl,D52D
WRA1:D01F CB AE res 5,(hl)
WRA1:D021 EA 92 D5 ld (D592),a
WRA1:D024 01 00 65 ld bc,6500
WRA1:D027 C3 38 3E jp 3E38
バイナリ
AF EA 36 CC 21 8B D2 CB A6 EA A1 D2 21 2D D5 CB
AE EA 92 D5 01 00 65 C3 38 3E