00 00 47 70 to:

Original bytes: 00 00 47 70 Patch to: 40 00 47 70

0x08023C20: 4770 bx lr (returns)

| Pokémon defeated | Base EXP | Normal gain | With 2× patch | |----------------|----------|-------------|----------------| | Rattata (Lv.3) | 45 | 45 | 90 | | Pidgey (Lv.5) | 55 | 55 | 110 | | Trainer battle | 400 | 400 | 800 |

00 00 00 00 40 00 47 70 Wait — this misaligns. The correct minimal patch (tested working) is:

No overflow occurs under normal gameplay (max EXP per battle < 2^20, doubling stays within 32-bit).

We overwrite a few preceding bytes to add lsl r0, r0, #1 (logical shift left by 1 = multiply by 2), then return.

1. Objective To modify the game code of Pokémon Fire Red (USA, Rev 1) so that any experience points (EXP) earned after a battle are automatically doubled before being added to a Pokémon’s total EXP.

Pokemon Fire Red Exp: Multiplier X2

00 00 47 70 to:

Original bytes: 00 00 47 70 Patch to: 40 00 47 70

0x08023C20: 4770 bx lr (returns)

| Pokémon defeated | Base EXP | Normal gain | With 2× patch | |----------------|----------|-------------|----------------| | Rattata (Lv.3) | 45 | 45 | 90 | | Pidgey (Lv.5) | 55 | 55 | 110 | | Trainer battle | 400 | 400 | 800 |

00 00 00 00 40 00 47 70 Wait — this misaligns. The correct minimal patch (tested working) is: pokemon fire red exp multiplier x2

No overflow occurs under normal gameplay (max EXP per battle < 2^20, doubling stays within 32-bit).

We overwrite a few preceding bytes to add lsl r0, r0, #1 (logical shift left by 1 = multiply by 2), then return. 00 00 47 70 to: Original bytes: 00

1. Objective To modify the game code of Pokémon Fire Red (USA, Rev 1) so that any experience points (EXP) earned after a battle are automatically doubled before being added to a Pokémon’s total EXP.