バイナリエディタは、任意コード実行を活用し、ゲーム内のメモリを自由に読み書きできるツールです。本記事ではポケットモンスター ファイアレッド・リーフグリーンにバイナリエディタを導入する方法について紹介します。
バイナリエディタ導入手順
環境
ポケットモンスター ファイアレッド・リーフグリーンの日本語版のみに対応しています。日本語版以外のバージョンには対応していません。GBA版とSwitch版の両方に対応しています。
バージョンの違い
GBA版のポケットモンスター ファイアレッド・リーフグリーンはそれぞれにv1.0とv1.1が存在します。カートリッジの基板に刻まれている数字によってどのバージョンであるかを判定することができます。
- 末尾の数字が20であればv1.0。
- 末尾の数字が30であればv1.1。
準備
- はたきおとすを覚えたポケモン
- ゲーム内交換で入手できるカモネギ(じんすけ)はレベル21ではたきおとすを覚えます
- リサイクルを覚えたポケモン
- ゲーム内交換で入手できるバリヤード(バリヤン)はレベル33でリサイクルを覚えます
- 消費アイテム(例:きのみ)
- HP50%以下で発動するオレンのみが最適です
- オレンのみは25ばんどうろで入手することができます
- HP50%以下で発動するオレンのみが最適です
- メール
- タマムシデパートで50円で購入することができます
- 7個以上用意してください
手順1: 材料ポケモン用意
リーフグリーンのゲーム内交換で入手できるニドラン♂(ニドくん)の経験値を466、488、493のいずれかに調整したものを使うのが、材料ポケモンの最も簡単な入手方法です。以下に当てはまる場合はデテロニーさんの解説動画またはfinalさんの記事をご参照ください。
- ファイアレッドを使用している
- ニドくんをすでに持っていて経験値を466、488、493にするのが困難
- ニドくんがすでに進化している
なお、ゲーム内交換で入手したニドくんは性格値が0x4C970B9E、トレーナーIDが63184であるため、経験値を別の値に調整することで材料ポケモンとして使用することができます。
手順2: メールバグ
以下の3匹のポケモンを手持ちに用意し、先頭2匹を以下の1と2のポケモンにしてください。
- 消費アイテムをもたせた任意のポケモン
- はたきおとすを覚えたポケモン
- メールをもたせたリサイクルを覚えたポケモン(メッセージは何でも可)
ダブルバトルを開始します。開始する前にセーブをすることをおすすめします。ダブルバトルでは以下の手順を実行してください。
- ポケモンに持たせた消費アイテムを発動させる。
- アイテムを消費したら、そのポケモンをメールをもたせたリサイクルを覚えたポケモンに入れ替える。
- メールをもたせたリサイクルを覚えたポケモンにはたきおとすを使用し、メールをはたきおとす。
- リサイクルを使用し、消費アイテムを拾う。
- 戦闘を終了させる。
手持ちを確認して、リサイクルを覚えたポケモンがメールをもっていなければメールバグに成功です。リサイクルを覚えたポケモンにメールをもたせなおしてください。
手順3: バグポケモン入手
手順1で入手した材料ポケモンをボックス3の1番目に入れ、手持ちを6匹にしてください。
6匹全員にメールをもたせます(メッセージは何でも可)。6匹目にメールを渡そうとすると、???が入力されたメール画面が表示されます。
リーフグリーンを使用していて、材料ポケモンがニドくんである場合は、メールの3番目と5番目を以下のものにしてください。表中の_____は?????となっている言葉をけしてください。
| 経験値 | 3番目 | 5番目 |
|---|---|---|
| 466 | ポケモンゲット | _____ |
| 488 | レッド | _____ |
| 493 | レベル | _____ |
ファイアレッドを使用していたり別の材料ポケモンを使用している場合はデテロニーさんが作成したFRLG任意コード実行用バグポケモン作製用計算機、もしくはfinalさんのSpecies Word FinderとChecksum Adjustment Calculatorをお使いください。
手順4: 任意コード実行用のバグポケモン入手
手持ちを1匹にし、ボックス12〜14を空けてください。ボックス1〜5の名前を以下のようにします。
GBA版
ボックス1: [リび…oく ゼn]
ボックス2: [ …tま 1tほ]
ボックス3: [ぁm あい]
ボックス4: [アクぢいいN]
ボックス5: [O] Switch版
ボックス1: [リび…oく ゼn]
ボックス2: [ …tま 1tほ]
ボックス3: [ぁm あい]
ボックス4: [アエぢいいN]
ボックス5: [O] 「ボックスをせいりする」で任意のポケモンをつかみ、手順3のバグポケモンの上に移動し入れ替えることで手持ちの2匹目に新しいバグポケモンが生成されます。
ファイアレッド
リーフグリーン
手順5: 転送用のリングマを作る
ボックス1の16番目を空け、ボックス1〜14の名前を以下のようにします。
ボックス1: [ォめンばつい『は]
ボックス2: [アこぅほょ l]
ボックス3: [せもっめコづグね]
ボックス4: [アCTへGけl]
ボックス5: [うぽべはゆリあゃ]
ボックス6: [をさV9をうW]
ボックス7: [CTぃGCTるG]
ボックス8: [アざTざGこl]
ボックス9: [ l99キっうぅ]
ボックス10: [アアアオエあぅ]
ボックス11: [WsっるあW]
ボックス12: [ア み Czs]
ボックス13: [zs ぺる ]
ボックス14: [が] 任意の通常ポケモンをつかみます。手順4で生成したバグポケモンと入れ換えて元の配置に戻すと、ボックス1の16番目にリングマが生成されます。
ボックス12〜14は以後も空け、リングマと手順6で生成する3匹の位置・名前・持ち物は変更しないでください。
手順6: 簡易版バイナリエディタを用意する
ボックス1〜4の名前を以下のようにし、3組の転送が終わるまで変更しないでください。
ボックス1: [ァらぜいっむは3]
ボックス2: [アoひぴざ l]
ボックス3: [めリあゃ みぼづ]
ボックス4: [アボねつはポば] ボックス5〜14を1組目から順に設定し、1組入力するたびに手順5と同じ交換操作を行ってください。
1組目: ボックス1の17番目へ転送
ボックス5: [あF♂あlどゥ ]
ボックス6: [ ぇ」お よゅ]
ボックス7: [ぴ9/ゃァばチl]
ボックス8: [ゃぶぅう!ス l]
ボックス9: [yぶOねきもぁぴ]
ボックス10: [ァばカlうぎ む]
ボックス11: [あミろぴゥゃゥゃ]
ボックス12: [あむァばぴlゾざ]
ボックス13: [ むァばぶl ら]
ボックス14: [おkなぶ リ] 交換操作を行い、ボックス1の17番目にヒトカゲが生成されたら2組目へ進みます。
2組目: ボックス1の18番目へ転送
ボックス5: [いいlィィう ]
ボックス6: [ぞぐ き ゥづゅ]
ボックス7: [V9ぶほくぢぃW]
ボックス8: [えめあげべく l]
ボックス9: [アMよYあれせe]
ボックス10: [と2ベシィぐあれ](片仮名ベ)
ボックス11: [うh7スぞね7オ]
ボックス12: [LsミねIけうろ](大文字I)
ボックス13: [fXか Fsに ]
ボックス14: [いぶあギあぅ] 交換操作を行い、ボックス1の18番目にフシギダネが生成されたら3組目へ進みます。
3組目: ボックス1の19番目へ転送
ボックス5: [ういlあ ぃあ ]
ボックス6: [えグおしWすぴB]
ボックス7: [ゃ9♀ゃあむァば]
ボックス8: [せl んこVかl]
ボックス9: [〇〇Xsusゥァ]
ボックス10: [ミゾCsァゥフふ]
ボックス11: [ァばうlぇBFC]
ボックス12: [ みいめあがDば]
ボックス13: [みび**そく##]
ボックス14: [ くギふいい] 〇〇・**・## は使用中のバージョンに応じて下表の文字に置き換えてください。
| バージョン | 〇〇 | ** | ## |
|---|---|---|---|
| GBA版ファイアレッドv1.0 | jえ | づン | ドゲ |
| GBA版ファイアレッドv1.1 | せお | ガン | あゲ |
| Switch版ファイアレッド | ズゴ | o♀ | 4K |
| GBA版リーフグリーンv1.0 | よお | ひン | ドゲ |
| GBA版リーフグリーンv1.1 | カお | ソン | あゲ |
| Switch版リーフグリーン | bゴ | A♀ | 4K |
交換操作を行い、ボックス1の19番目にパッチールが生成されれば完了です。
手順7: 簡易版バイナリエディタを起動する
ボックス1〜14の名前を以下のようにします。
ボックス1: [ァらぜいは3oひ]
ボックス2: [アぴざねぼ l]
ボックス3: [にべにぶあぃくタ]
ボックス4: [アポばアアアアア]
ボックス5: [そべぶネしぼゾぢ]
ボックス6: [てWしぱねリいり]
ボックス7: [そWレぉレぉねリ]
ボックス8: [ りこWィげこタ]
ボックス9: [えべくネくぼィね]
ボックス10: [えぅけネきぼグね]
ボックス11: [くびミび〇〇 う]
ボックス12: [**おく7@ う]
ボックス13: [## う%ベうい](片仮名ベ)
ボックス14: [ブし おお ] 〇〇・**・@・##・% は使用中のバージョンに応じて下表の文字に置き換えてください。
| バージョン | 〇〇 | ** | @ | ## | % |
|---|---|---|---|---|---|
| GBA版v1.0 | ぴっ | ユセ | せ | ぃぅ | … |
| GBA版v1.1 | ?ぽ | アセ | せ | ゾぃ | … |
| Switch版 | ざぢ | ュバ | そ | lめ | ? |
手順5と同じ交換操作を行い、パソコンのメニューをすべて閉じると簡易版バイナリエディタが起動します。
簡易版バイナリエディタ
左の4桁が入力位置、右の2桁がその中身です。
B: 入力位置−01
A: 入力位置+01
↑: 中身−01
↓: 中身+01
←: 中身−10
→: 中身+10
START: 終了
SELECT: 入力位置0000からのコードを実行(プログラムを入力し終えるまで押さないように注意)
手順8: バイナリエディタ導入
簡易版バイナリエディタを使用してバイナリエディタのプログラムを入力していきます。入力を終えたらセレクトボタンを押すことでバイナリエディタを起動することができます。バイナリエディタを起動する前に一旦スタートボタンを押して簡易版バイナリエディタを終了させてセーブすることをおすすめします。
| 入力位置 | 中身 |
|---|---|
| 0000 | F8 |
| 0001 | B5 |
| 0002 | 4B |
| 0003 | A0 |
| 0004 | 4D |
| 0005 | 4C |
| 0006 | 00 |
| 0007 | F0 |
| 0008 | 1E |
| 0009 | F8 |
| 000A | FF |
| 000B | 28 |
| 000C | 2D |
| 000D | D0 |
| 000E | 50 |
| 000F | 4D |
| 0010 | 28 |
| 0011 | 72 |
| 0012 | 11 |
| 0013 | 21 |
| 0014 | 4A |
| 0015 | 4C |
| 0016 | 00 |
| 0017 | F0 |
| 0018 | 16 |
| 0019 | F8 |
| 001A | 45 |
| 001B | A0 |
| 001C | 52 |
| 001D | A2 |
| 001E | 04 |
| 001F | 23 |
| 0020 | 00 |
| 0021 | F0 |
| 0022 | 09 |
| 0023 | F8 |
| 0024 | 08 |
| 0025 | 30 |
| 0026 | 0C |
| 0027 | 23 |
| 0028 | 00 |
| 0029 | F0 |
| 002A | 05 |
| 002B | F8 |
| 002C | 02 |
| 002D | 20 |
| 002E | 00 |
| 002F | 06 |
| 0030 | 68 |
| 0031 | 71 |
| 0032 | 28 |
| 0033 | 60 |
| 0034 | 44 |
| 0035 | E0 |
| 0036 | 00 |
| 0037 | 21 |
| 0038 | 07 |
| 0039 | B5 |
| 003A | 28 |
| 003B | 7A |
| 003C | 00 |
| 003D | 22 |
| 003E | 41 |
| 003F | 4C |
| 0040 | 00 |
| 0041 | F0 |
| 0042 | 01 |
| 0043 | F8 |
| 0044 | 07 |
| 0045 | BD |
| 0046 | 20 |
| 0047 | 47 |
| 0048 | 05 |
| 0049 | DF |
| 004A | 3F |
| 004B | 4C |
| 004C | FF |
| 004D | F7 |
| 004E | FB |
| 004F | FF |
| 0050 | 3E |
| 0051 | 4B |
| 0052 | 1B |
| 0053 | 88 |
| 0054 | 19 |
| 0055 | 07 |
| 0056 | 09 |
| 0057 | D5 |
| 0058 | 28 |
| 0059 | 7A |
| 005A | 41 |
| 005B | 4C |
| 005C | FF |
| 005D | F7 |
| 005E | F3 |
| 005F | FF |
| 0060 | 00 |
| 0061 | 20 |
| 0062 | 40 |
| 0063 | 4C |
| 0064 | FF |
| 0065 | F7 |
| 0066 | EF |
| 0067 | FF |
| 0068 | 00 |
| 0069 | 20 |
| 006A | F8 |
| 006B | BD |
| 006C | 6F |
| 006D | 79 |
| 006E | E8 |
| 006F | 79 |
| 0070 | 39 |
| 0071 | 1F |
| 0072 | 01 |
| 0073 | D0 |
| 0074 | 28 |
| 0075 | 68 |
| 0076 | 79 |
| 0077 | 1C |
| 0078 | 04 |
| 0079 | 2B |
| 007A | 07 |
| 007B | D8 |
| 007C | 00 |
| 007D | 2B |
| 007E | 1C |
| 007F | D0 |
| 0080 | E9 |
| 0081 | 79 |
| 0082 | 28 |
| 0083 | 68 |
| 0084 | 01 |
| 0085 | 70 |
| 0086 | 99 |
| 0087 | 08 |
| 0088 | 40 |
| 0089 | 18 |
| 008A | 18 |
| 008B | E0 |
| 008C | 20 |
| 008D | 2B |
| 008E | 08 |
| 008F | D8 |
| 0090 | 02 |
| 0091 | D0 |
| 0092 | 38 |
| 0093 | 1F |
| 0094 | 03 |
| 0095 | D0 |
| 0096 | 01 |
| 0097 | E0 |
| 0098 | 78 |
| 0099 | 1E |
| 009A | 00 |
| 009B | D5 |
| 009C | 05 |
| 009D | 30 |
| 009E | 68 |
| 009F | 71 |
| 00A0 | 10 |
| 00A1 | E0 |
| 00A2 | C9 |
| 00A3 | 00 |
| 00A4 | 01 |
| 00A5 | 22 |
| 00A6 | CA |
| 00A7 | 41 |
| 00A8 | 19 |
| 00A9 | 0A |
| 00AA | 02 |
| 00AB | D0 |
| 00AC | 12 |
| 00AD | 01 |
| 00AE | 02 |
| 00AF | 29 |
| 00B0 | 01 |
| 00B1 | D0 |
| 00B2 | 40 |
| 00B3 | 2B |
| 00B4 | 00 |
| 00B5 | D1 |
| 00B6 | 52 |
| 00B7 | 42 |
| 00B8 | 80 |
| 00B9 | 18 |
| 00BA | 04 |
| 00BB | 2F |
| 00BC | 01 |
| 00BD | D0 |
| 00BE | 28 |
| 00BF | 60 |
| 00C0 | 00 |
| 00C1 | 78 |
| 00C2 | E8 |
| 00C3 | 71 |
| 00C4 | 24 |
| 00C5 | 49 |
| 00C6 | 8C |
| 00C7 | 1C |
| 00C8 | 24 |
| 00C9 | 4B |
| 00CA | 22 |
| 00CB | 48 |
| 00CC | 86 |
| 00CD | 1C |
| 00CE | 15 |
| 00CF | 22 |
| 00D0 | 01 |
| 00D1 | 80 |
| 00D2 | 04 |
| 00D3 | 83 |
| 00D4 | 43 |
| 00D5 | 82 |
| 00D6 | 40 |
| 00D7 | 30 |
| 00D8 | 01 |
| 00D9 | 3A |
| 00DA | F9 |
| 00DB | D1 |
| 00DC | 14 |
| 00DD | 27 |
| 00DE | 2B |
| 00DF | 68 |
| 00E0 | D8 |
| 00E1 | 1B |
| 00E2 | 0B |
| 00E3 | 30 |
| 00E4 | 6B |
| 00E5 | 79 |
| 00E6 | 03 |
| 00E7 | 21 |
| 00E8 | 4B |
| 00E9 | 40 |
| 00EA | 0B |
| 00EB | 2F |
| 00EC | 00 |
| 00ED | D0 |
| 00EE | 06 |
| 00EF | 23 |
| 00F0 | 1C |
| 00F1 | 24 |
| 00F2 | 00 |
| 00F3 | F0 |
| 00F4 | 0D |
| 00F5 | F8 |
| 00F6 | 02 |
| 00F7 | 36 |
| 00F8 | 00 |
| 00F9 | 78 |
| 00FA | 0B |
| 00FB | 2F |
| 00FC | 00 |
| 00FD | D1 |
| 00FE | E8 |
| 00FF | 79 |
| 0100 | 07 |
| 0101 | 3B |
| 0102 | 04 |
| 0103 | 24 |
| 0104 | 00 |
| 0105 | F0 |
| 0106 | 04 |
| 0107 | F8 |
| 0108 | 2A |
| 0109 | 36 |
| 010A | 01 |
| 010B | 3F |
| 010C | E7 |
| 010D | D1 |
| 010E | 9B |
| 010F | E7 |
| 0110 | 01 |
| 0111 | 00 |
| 0112 | E1 |
| 0113 | 40 |
| 0114 | 09 |
| 0115 | 07 |
| 0116 | 09 |
| 0117 | 0F |
| 0118 | E2 |
| 0119 | 08 |
| 011A | 9A |
| 011B | 42 |
| 011C | 00 |
| 011D | D1 |
| 011E | 11 |
| 011F | 31 |
| 0120 | 0E |
| 0121 | 4A |
| 0122 | 51 |
| 0123 | 18 |
| 0124 | 01 |
| 0125 | 31 |
| 0126 | 31 |
| 0127 | 80 |
| 0128 | 02 |
| 0129 | 36 |
| 012A | 04 |
| 012B | 3C |
| 012C | F0 |
| 012D | D5 |
| 012E | 70 |
| 012F | 47 |
| 0130 | 00 |
| 0131 | 02 |
| 0132 | 03 |
| 0133 | 11 |
| 0134 | 03 |
| 0135 | 0F |
| 0136 | 8F |
| 0137 | 00 |
| 0138 | 00 |
| 0139 | 04 |
| 013A | 05 |
| 013B | 00 |
| 013C | GBA版v1.0:05 GBA版v1.1:71 Switch版:6D |
| 013D | GBA版v1.0:50 GBA版v1.1:4F Switch版:4F |
| 013E | 00 |
| 013F | 08 |
| 0140 | GBA版v1.0:29 GBA版v1.1:95 Switch版:91 |
| 0141 | GBA版v1.0:44 GBA版v1.1:43 Switch版:43 |
| 0142 | 00 |
| 0143 | 08 |
| 0144 | FR GBA版v1.0:25 FR GBA版v1.1:75 FR Switch版:19 LG GBA版v1.0:FD LG GBA版v1.1:4D LG Switch版:F1 |
| 0145 | FR GBA版v1.0:ED FR GBA版v1.1:EC FR Switch版:29 LG GBA版v1.0:EC LG GBA版v1.1:EC LG Switch版:28 |
| 0146 | GBA版:12 Switch版:13 |
| 0147 | 08 |
| 0148 | GBA版v1.0:E9 GBA版v1.1:E5 Switch版:E1 |
| 0149 | 05 |
| 014A | 00 |
| 014B | 08 |
| 014C | GBA版v1.0:60 GBA版v1.1:C0 Switch版:10 |
| 014D | GBA版v1.0:31 GBA版v1.1:30 Switch版:23 |
| 014E | 00 |
| 014F | 03 |
| 0150 | GBA版:B0 Switch版:AC |
| 0151 | 9B |
| 0152 | 03 |
| 0153 | 02 |
| 0154 | 22 |
| 0155 | F8 |
| 0156 | 00 |
| 0157 | 06 |
| 0158 | 17 |
| 0159 | E2 |
| 015A | 00 |
| 015B | 00 |
| 015C | 9F |
| 015D | F0 |
| 015E | 00 |
| 015F | 00 |
| 0160 | GBA版v1.0:09 GBA版v1.1:75 Switch版:71 |
| 0161 | GBA版v1.0:3E GBA版v1.1:3D Switch版:3D |
| 0162 | 00 |
| 0163 | 08 |
| 0164 | GBA版v1.0:BD GBA版v1.1:B9 Switch版:B5 |
| 0165 | 20 |
| 0166 | 00 |
| 0167 | 08 |
| 0168 | A1 |
| 0169 | A2 |
| 016A | A3 |
| 016B | A4 |
| 016C | A5 |
| 016D | A6 |
| 016E | A7 |
| 016F | A8 |
| 0170 | A9 |
| 0171 | AA |
| 0172 | BB |
| 0173 | BC |
| 0174 | BD |
| 0175 | BE |
| 0176 | BF |
| 0177 | C0 |
| 0178 | FF |
| 0179 | 00 |
| 017A | 00 |
| 017B | 00 |
| 017C | 00 |
| 017D | 00 |
| 017E | 00 |
| 017F | 00 |
バイナリエディタ
これ以降、簡易版バイナリエディタを起動してからセレクトボタンを押すたびに、バイナリエディタを起動することができます。
左の8桁がメモリのアドレス、右の2桁がその中身です。赤く表示された2桁を左右で選び、上下・L・Rで変更します。
←: 選択箇所を左へ移動
→: 選択箇所を右へ移動
↑: 選択した2桁−01
↓: 選択した2桁+01
L: 選択した2桁−10
R: 選択した2桁+10
A: 表示中の中身を現在のアドレスへ書き込む
B: 表示中の中身を現在のアドレスへ書き込む
SELECT: 中身を書き込んでアドレス+01
START: 終了してゲームへ戻る
完成版を直接起動する場合
ボックス10・14の両方を以下の名前に変更します。
ボックス10: [ ぅけネきぼグね]
ボックス14: [ブし ベし ](片仮名ベ) 手順5と同じ交換操作を行ってパソコンを閉じると、完成版が直接起動します。
応用:完成版でボックス名を書き換える
完成版から3バイトを書き換えて、直接起動用の名前に変更する方法です。
以下のアドレスの中身を4バイト読み、逆順に並べてボックスデータの始点を求めます。
| バージョン | 4バイトを読み始める位置 |
|---|---|
| GBA版 v1.0 | 03005050 |
| GBA版 v1.1 | 03004FB0 |
| Switch版 | 03004240 |
例えばB0 92 02 02と表示されていれば、始点は020292B0です。始点に下表の値を16進数で足し、書き換え位置を求めます。
| 書き換える部分 | 始点に足す値 | 変更前 | 変更後 |
|---|---|---|---|
| ボックス10の1文字目 | 00008395 | 04 | 00 |
| ボックス14の5文字目 | 000083BD | 05 | 99 |
| ボックス14の6文字目 | 000083BE | 05 | 0C |
始点が020292B0の場合は次の位置です。
| 書き換える部分 | 計算 | 書き換え位置 |
|---|---|---|
| ボックス10の1文字目 | 020292B0 + 00008395 | 02031645 |
| ボックス14の5文字目 | 020292B0 + 000083BD | 0203166D |
| ボックス14の6文字目 | 020292B0 + 000083BE | 0203166E |
始点はパソコンの出入りや再起動で変わるため、毎回読み直してください。 計算した3か所がすべて「変更前」と一致することを確かめ、「変更後」の値をAまたはBで1か所ずつ書き込みます。一致しなければ変更しないでください。
手順5と同じ交換操作を行ってパソコンを閉じると、完成版が直接起動します。
参考文献
任意コード実行の手順に関しては、手順1で紹介した文献に加えて以下を参考にしています。
バイナリエディタに関しては以下を参考にしています。





