Site cover image

🐾 flag3

ポケットモンスター ファイアレッド・リーフグリーン 殿堂入り(任意コード実行)

本記事はポケットモンスター ファイアレッド・リーフグリーンで任意コード実行を用いて殿堂入りする方法について紹介します。バグあり(セーブ中リセットなし)でなるべく早く殿堂入りを目指すRTAのAny% No Save Corruptionのカテゴリーで使うことができます。

殿堂入り手順

環境

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

バージョンの違い

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

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

準備

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

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

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

  • ファイアレッドを使用している
  • ニドくんをすでに持っていて経験値を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任意コード実行用バグポケモン作製用計算機、もしくはSpecies Word FinderとChecksum Adjustment Calculatorをお使いください。

手順4: 殿堂入り

ボックス12~14にはポケモンを預けないようにし、手持ちのポケモンを4匹以下にしてください。手持ちを5匹以上にすると殿堂入りの途中でフリーズします。

使っているソフトのバージョンとバグポケモンの種族IDに応じてボックスの名前を付けてください。下の三角形をクリックすることで表示される表でバグポケモンの種族IDに対応するパターンを確認し、そのパターンのボックス名を設定してください。なお手順3の方法でニドくんをバグポケモンにした場合はパターンAを使ってください。

ファイアレッド種族ID
種族ID パターン
0x03F8 パターンA
0x060C パターンA
0x15BC パターンA
0x1626 パターンA
0x4312 パターンB
0x4317 パターンB
0x4D12 パターンA
0x7912 パターンB
0x89FA パターンB
0xA253 パターンB
0xB2A9 パターンA
0xC7FE パターンB
0xC950 パターンA
0xCAA2 パターンA
0xCD48 パターンB
0xCF8B パターンB
0xD624 パターンB
0xDD37 パターンB
0xE07C パターンB
0xE472 パターンA
0xE69D パターンA
0xFF3B パターンA
0xFF41 パターンA
0xFF61 パターンA
0xFF6B パターンB
0xFF78 パターンA
0xFF79 パターンB
0xFF7B パターンB
0xFF7E パターンB
0xFF81 パターンB
0xFF83 パターンB
0xFF86 パターンB
0xFF8B パターンB
0xFF8E パターンB
0xFF96 パターンB
0xFF99 パターンB
0xFF9B パターンB
0xFF9E パターンB
0xFFA1 パターンB
0xFFA3 パターンB
0xFFAB パターンB
0xFFAE パターンB
0xFFB1 パターンB
0xFFB3 パターンB
0xFFB6 パターンB
0xFFB9 パターンB
0xFFBB パターンB
0xFFC3 パターンB
0xFFC6 パターンB
0xFFC9 パターンB
0xFFCE パターンB
0xFFD3 パターンB
0xFFF8 パターンA
0xFFF9 パターンB

リーフグリーン種族ID
種族ID パターン
0x03F8 パターンA
0x060C パターンA
0x15BC パターンA
0x1626 パターンA
0x3D88 パターンA
0x4D1B パターンB
0xBCB2 パターンB
0xC290 パターンB
0xC6AA パターンA
0xCFAD パターンA
0xD45D パターンA
0xD628 パターンB
0xEA20 パターンA
0xEB51 パターンB
0xFBED パターンA
0xFF11 パターンA
0xFF37 パターンA
0xFF41 パターンA
0xFF57 パターンA
0xFF5C パターンA
0xFF61 パターンA
0xFF6C パターンB
0xFF79 パターンB
0xFF7C パターンB
0xFF7F パターンB
0xFF81 パターンB
0xFF84 パターンB
0xFF87 パターンB
0xFF8C パターンB
0xFF8F パターンB
0xFF97 パターンB
0xFF99 パターンB
0xFF9C パターンB
0xFF9F パターンB
0xFFA1 パターンB
0xFFA4 パターンB
0xFFAC パターンB
0xFFAF パターンB
0xFFB1 パターンB
0xFFB4 パターンB
0xFFB7 パターンB
0xFFB9 パターンB
0xFFBC パターンB
0xFFC4 パターンB
0xFFC7 パターンB
0xFFC9 パターンB
0xFFCE パターンA
0xFFD1 パターンB
0xFFF9 パターンB

GBA版ファイアレッドv1.0 パターンA

ボックス1: ア        []
ボックス2:      まqた [     まqた]
ボックス3: ぁmしく『」   [ぁmしく『」]

GBA版ファイアレッドv1.0 パターンB

ボックス1:  ぶ び『」しく [ ぶ び『」しく]

GBA版ファイアレッドv1.1 パターンA

ボックス1: ア        []
ボックス2:      まqた [     まqた]
ボックス3: ぁmしくす♂   [ぁmしくす♂]

GBA版ファイアレッドv1.1 パターンB

ボックス1:  ぶ びす♂しく [ ぶ びす♂しく]

Switch版ファイアレッド パターンA

ボックス1: ア        []
ボックス2:      まqた [     まqた]
ボックス3: ぁmしく『y   [ぁmしく『y]

Switch版ファイアレッド パターンB

ボックス1:  ぶ び『yしく [ ぶ び『yしく]

GBA版リーフグリーンv1.0 パターンA

ボックス1: ア        []
ボックス2:      まqた [     まqた]
ボックス3: ぁmしくュ」   [ぁmしくュ」]

GBA版リーフグリーンv1.0 パターンB

ボックス1:  ぶ びュ」しく [ ぶ びュ」しく]

GBA版リーフグリーンv1.1 パターンA

ボックス1: ア        []
ボックス2:      まqた [     まqた]
ボックス3: ぁmしくm」   [ぁmしくm」]

GBA版リーフグリーンv1.1 パターンB

ボックス1:  ぶ びm」しく [ ぶ びm」しく]

Switch版リーフグリーン パターンA

ボックス1: ア        []
ボックス2:      まqた [     まqた]
ボックス3: ぁmしくュy   [ぁmしくュy]

Switch版リーフグリーン パターンB

ボックス1:  ぶ びュyしく [ ぶ びュyしく]

なおSwitch版のパターンAについてはボックス1の名前がデフォルトの ボックス1 でも良いです。

ボックス12~14にポケモンが預けられていない状態でボックスを整理するから任意のポケモンをつかみ、バグポケモンの上に移動し入れ換えることで殿堂入りとなります。

なお殿堂入り後はバグポケモンが消滅することに気をつけてください。

コード

GBA版ファイアレッドv1.0のみ記述します。パターンAがARM、パターンBがThumbに対応しておりどちらも殿堂入りの関数アドレス0x080CB4B0をThumb命令で実行するものとなっております。

ARM

02031618 <.data>:
 2031618:	e51f0000 	ldr	r0, [pc, #-0]	@ 0x2031620
 203161c:	e12fff10 	bx	r0
 2031620:	b4b1080c 	ldrtlt	r0, [r1], #2060	@ 0x80c
バイナリ
00 00 1F E5 10 FF 2F E1 0C 08 B1 B4

Thumb

0203160c <.data>:
 203160c:	4800      	ldr	r0, [pc, #0]	@ (0x2031610)
 203160e:	4700      	bx	r0
 2031610:	b4b1      	push	{r0, r4, r5, r7}
 2031612:	080c      	lsrs	r4, r1, #32
バイナリ
00 48 00 47 B1 B4 0C 08

謝辞

Switch版において殿堂入りの関数アドレスを特定してくれたぼんじりさんに感謝します。

参考文献

手順1で紹介した文献を除くと以下を参考にしています。