Site cover image

🐾 flag3

ポケットモンスター ファイアレッド・リーフグリーン バイナリエディタ

バイナリエディタは、任意コード実行を活用し、ゲーム内のメモリを自由に読み書きできるツールです。本記事ではポケットモンスター ファイアレッド・リーフグリーンにバイナリエディタを導入する方法について紹介します。

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

環境

ポケットモンスター ファイアレッド・リーフグリーンの日本語版のみに対応しています。日本語版以外のバージョンには対応していません。GBA版とSwitch版の両方に対応しています。

バージョンの違い

GBA版のポケットモンスター ファイアレッド・リーフグリーンはそれぞれにv1.0とv1.1が存在します。カートリッジの基板に刻まれている数字によってどのバージョンであるかを判定することができます。

  • 末尾の数字が20であればv1.0。
  • 末尾の数字が30であればv1.1。

準備

  • はたきおとすを覚えたポケモン
    • ゲーム内交換で入手できるカモネギ(じんすけ)はレベル21ではたきおとすを覚えます
  • リサイクルを覚えたポケモン
    • ゲーム内交換で入手できるバリヤード(バリヤン)はレベル33でリサイクルを覚えます
  • 消費アイテム(例:きのみ)
    • HP50%以下で発動するオレンのみが最適です
      • オレンのみは25ばんどうろで入手することができます
  • メール
    • タマムシデパートで50円で購入することができます
    • 7個以上用意してください

手順1: 材料ポケモン用意

リーフグリーンのゲーム内交換で入手できるニドラン♂(ニドくん)の経験値を466、488、493のいずれかに調整したものを使うのが、材料ポケモンの最も簡単な入手方法です。以下に当てはまる場合はデテロニーさんの解説動画またはfinalさんの記事をご参照ください。

  • ファイアレッドを使用している
  • ニドくんをすでに持っていて経験値を466、488、493にするのが困難
  • ニドくんがすでに進化している

なお、ゲーム内交換で入手したニドくんは性格値が0x4C970B9E、トレーナーIDが63184であるため、経験値を別の値に調整することで材料ポケモンとして使用することができます。

手順2: メールバグ

以下の3匹のポケモンを手持ちに用意し、先頭2匹を以下の1と2のポケモンにしてください。

  1. 消費アイテムをもたせた任意のポケモン
  2. はたきおとすを覚えたポケモン
  3. メールをもたせたリサイクルを覚えたポケモン(メッセージは何でも可)

ダブルバトルを開始します。開始する前にセーブをすることをおすすめします。ダブルバトルでは以下の手順を実行してください。

  1. ポケモンに持たせた消費アイテムを発動させる。
  2. アイテムを消費したら、そのポケモンをメールをもたせたリサイクルを覚えたポケモンに入れ替える。
  3. メールをもたせたリサイクルを覚えたポケモンにはたきおとすを使用し、メールをはたきおとす。
  4. リサイクルを使用し、消費アイテムを拾う。
  5. 戦闘を終了させる。

手持ちを確認して、リサイクルを覚えたポケモンがメールをもっていなければメールバグに成功です。リサイクルを覚えたポケモンにメールをもたせなおしてください。

手順3: バグポケモン入手

手順1で入手した材料ポケモンをボックス3の1番目に入れ、手持ちを6匹にしてください。

Image in a image block

6匹全員にメールをもたせます(メッセージは何でも可)。6匹目にメールを渡そうとすると、???が入力されたメール画面が表示されます。

リーフグリーンを使用していて、材料ポケモンがニドくんである場合は、メールの3番目と5番目を以下のものにしてください。表中の_____は?????となっている言葉をけしてください。

経験値 3番目 5番目
466 ポケモンゲット _____
488 レッド _____
493 レベル _____
Image in a image block
Image in a image block
Image in a image block

ファイアレッドを使用していたり別の材料ポケモンを使用している場合はデテロニーさんが作成した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匹目に新しいバグポケモンが生成されます。

ファイアレッド

Image in a image block

リーフグリーン

Image in a image block

手順5: 転送用のリングマを作る

ボックス1の16番目を空け、ボックス1〜14の名前を以下のようにします。

⚠️
見た目が似ている「へ・べ・ぺ/ヘ・ベ・ペ」と「I/l」は、片仮名の「ヘ・ベ・ペ」と大文字の「I」(アイ)にのみ注記を付けています。注記がない場合は、平仮名の「へ・べ・ぺ」または小文字の「l」(エル)を入力してください。
ボックス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番目にリングマが生成されます。

Image in a image block

ボックス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番目にパッチールが生成されれば完了です。

Image in a image block

手順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と同じ交換操作を行い、パソコンのメニューをすべて閉じると簡易版バイナリエディタが起動します。

簡易版バイナリエディタ

Image in a image block

左の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

バイナリエディタ

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

Image in a image block

左の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で紹介した文献に加えて以下を参考にしています。

バイナリエディタに関しては以下を参考にしています。