Through routine analysis, the function that calculates EXP after a battle is located at RAM offset 0x08023B94 (ROM offset 0x023B94 ). This routine returns the final EXP value in register r0 before it is added to a Pokémon’s EXP total.
00 00 47 70 to:
Go to ROM offset 0x023C1E (2 bytes before the return). Change: pokemon fire red exp multiplier x2
No overflow occurs under normal gameplay (max EXP per battle < 2^20, doubling stays within 32-bit). Through routine analysis, the function that calculates EXP
Original bytes: 00 00 47 70 Patch to: 40 00 47 70 Change: No overflow occurs under normal gameplay (max
| 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:
© 2022 Retro Bowl