- 52
- Posts
- 15
- Years
- Seen Apr 26, 2025
Hello, everyone!
I'm here to show you how to expand the level cap in FireRed. How to do this in Emerald can be found here
However, there is currently a fairly important bug that I am trying to fix.
You will need a hex editor, I personally recommend HxD.
You will also need Free Space Finder.
EXP TABLE POINTERS
These offsets point to the location of the beginning of the EXP table. We are going to need to point them to the location of wherever you are placing the new table.
I recommend using Free Space Finder to find an offset for your new table. I have already created a new EXP table in the attached file for this post, which is set to accommodate up to 255 levels.
The amount of space needed for my table is 6,144 (or 0x1800) bytes.
0802FFB8 - Replace E4 3A 25 08 with XX XX XX 08
080300E4 - Replace E4 3A 25 08 with XX XX XX 08
080301F4 - Replace E4 3A 25 08 with XX XX XX 08
0803DCC8 - Replace E4 3A 25 08 with XX XX XX 08
0803E828 - Replace E4 3A 25 08 with XX XX XX 08
0803E894 - Replace E4 3A 25 08 with XX XX XX 08
0804199C - Replace E4 3A 25 08 with XX XX XX 08
08043B88 - Replace E4 3A 25 08 with XX XX XX 08
08043C0C - Replace E4 3A 25 08 with XX XX XX 08
08049F48 - Replace E4 3A 25 08 with XX XX XX 08
080E7F10 - Replace E4 3A 25 08 with XX XX XX 08
080E803C - Replace E4 3A 25 08 with XX XX XX 08
080E814C - Replace E4 3A 25 08 with XX XX XX 08
08136790 - Replace E4 3A 25 08 with XX XX XX 08
0813AADC - Replace E4 3A 25 08 with XX XX XX 08
081569E8 - Replace E4 3A 25 08 with XX XX XX 08
08156B14 - Replace E4 3A 25 08 with XX XX XX 08
08156C24 - Replace E4 3A 25 08 with XX XX XX 08
LEVEL 100 CHECKS
These offsets are what checks for the max level a pokemon can grow to. Keep in mind these are hex values! For example, I have my table set to level 250, which is FA. You can set yours higher/lower, so long as it remains 1 byte in length.
0804A216 - change 64 to YOUR LEVEL HEX
08021CFA - change 64 to YOUR LEVEL HEX
08021FB6 - change 64 to YOUR LEVEL HEX
0803E806 - change 64 to YOUR LEVEL HEX
0803E872 - change 64 to YOUR LEVEL HEX
08041834 - change 64 to YOUR LEVEL HEX
08041B1E - change 64 to YOUR LEVEL HEX
08041B22 - change 64 to YOUR LEVEL HEX
080420E8 - change 64 to YOUR LEVEL HEX
080420EC - change 64 to YOUR LEVEL HEX
0804274E - change 64 to YOUR LEVEL HEX
08045684 - change 64 to YOUR LEVEL HEX
08041B0E - change 63 to YOUR LEVEL HEX MINUS 1
08032F6E - change 63 to YOUR LEVEL HEX MINUS 1
EXP TABLE SIZE POINTERS
By default, FireRed will have 6 different exp growth rates assigned for different Pokemon. Each of which is 404 bytes long. That accounts for 100 levels + level 0. Since we need this to be larger to accommodate the new 255 level limit, each growth rate needs to be 1,024 bytes long. Which means that the pointers need to have the size they look for changed.
0803E7F2 - Replace CA 25 6D 00 with 20 25 6D 01
0803E85E - Replace CA 25 6D 00 with 20 25 6D 01
0802FF34 - Replace CA 21 49 00 with 20 21 49 01
080E7E8C - Replace CA 21 49 00 with 20 21 49 01
08156964 - Replace CA 21 49 00 with 20 21 49 01
08043B64 - Replace C8 21 49 00 with 20 21 49 01
08030094 - Replace CA 20 40 00 with 20 20 40 01
08049ED4 - Replace CA 20 40 00 with 20 20 40 01
0803DBF8 - Replace CA 20 40 00 with 20 20 40 01
08156AC4 - Replace CA 20 40 00 with 20 20 40 01
08156BCC - Replace CA 20 40 00 with 20 20 40 01
081366AA - Replace CA 20 40 00 with 20 20 40 01
0813A9F4 - Replace CA 20 40 00 with 20 20 40 01
080E7FEC - Replace CA 20 40 00 with 20 20 40 01
080E80F4 - Replace CA 20 40 00 with 20 20 40 01
0803019C - Replace CA 20 40 00 with 20 20 40 01
08043BE0 - Replace CA 20 40 00 with 20 20 40 01
08043B5E - Replace CA 20 40 00 with 20 20 40 01
08041860 - Replace CA 20 40 00 with 20 20 40 01
RARE CANDY PAST 100
Now we need to allow the use of Rare Candies for Pokemon over level 100.
081262D2 - Replace 64 with YOUR LEVEL HEX
EXP Display Summary
We need to change a few values so that EXP will display correctly after passing level 100.
08136684 - Replace 63 with YOUR LEVEL HEX minus 1
0813A9DC - Replace 63 with YOUR LEVEL HEX minus 1
0813664C - Replace 07 with 09
081366C0 - Replace 07 with 09
Stat Display Digits
We now need to change a few more values so that stats can have up to 4 digits.
08136378 - Replace 03 with 04
0813639C - Replace 03 with 04
08136534 - Replace 03 with 04
0813656E - Replace 03 with 04
081365A4 - Replace 03 with 04
081365DA - Replace 03 with 04
08136610 - Replace 03 with 04
0811E9B2 - Replace 03 with 04
Stat overflow fix
A few values have to be changed so that stats don't show incorrect values.
436D4 - 0B
436DC - 09
436E4 - 0A
Lastly we need to copy the EXP Table I have attached and paste the table at the offset you found with the appropriate free space.
And with that, you're done!
Keep in mind I tested this on a FireRed US v1.0 ROM, so it may or may not work on other versions.
Big thanks to DizzyEgg and BluRose for helping me find some of these values!
I'm here to show you how to expand the level cap in FireRed. How to do this in Emerald can be found here
However, there is currently a fairly important bug that I am trying to fix.
Levels over 100 won't display needed XP and will instead show 0. The leveling will work correctly, but display XP wrong.Stat growth is completely wrong. Turned out the problem was just my ROM. Should work fine.Cannot display EXP numbers 7 digits and higher.- 4 digit health not displaying correctly in Pokemon menu.
You will need a hex editor, I personally recommend HxD.
You will also need Free Space Finder.
EXP TABLE POINTERS
Spoiler:
These offsets point to the location of the beginning of the EXP table. We are going to need to point them to the location of wherever you are placing the new table.
I recommend using Free Space Finder to find an offset for your new table. I have already created a new EXP table in the attached file for this post, which is set to accommodate up to 255 levels.
The amount of space needed for my table is 6,144 (or 0x1800) bytes.
0802FFB8 - Replace E4 3A 25 08 with XX XX XX 08
080300E4 - Replace E4 3A 25 08 with XX XX XX 08
080301F4 - Replace E4 3A 25 08 with XX XX XX 08
0803DCC8 - Replace E4 3A 25 08 with XX XX XX 08
0803E828 - Replace E4 3A 25 08 with XX XX XX 08
0803E894 - Replace E4 3A 25 08 with XX XX XX 08
0804199C - Replace E4 3A 25 08 with XX XX XX 08
08043B88 - Replace E4 3A 25 08 with XX XX XX 08
08043C0C - Replace E4 3A 25 08 with XX XX XX 08
08049F48 - Replace E4 3A 25 08 with XX XX XX 08
080E7F10 - Replace E4 3A 25 08 with XX XX XX 08
080E803C - Replace E4 3A 25 08 with XX XX XX 08
080E814C - Replace E4 3A 25 08 with XX XX XX 08
08136790 - Replace E4 3A 25 08 with XX XX XX 08
0813AADC - Replace E4 3A 25 08 with XX XX XX 08
081569E8 - Replace E4 3A 25 08 with XX XX XX 08
08156B14 - Replace E4 3A 25 08 with XX XX XX 08
08156C24 - Replace E4 3A 25 08 with XX XX XX 08
LEVEL 100 CHECKS
Spoiler:
These offsets are what checks for the max level a pokemon can grow to. Keep in mind these are hex values! For example, I have my table set to level 250, which is FA. You can set yours higher/lower, so long as it remains 1 byte in length.
0804A216 - change 64 to YOUR LEVEL HEX
08021CFA - change 64 to YOUR LEVEL HEX
08021FB6 - change 64 to YOUR LEVEL HEX
0803E806 - change 64 to YOUR LEVEL HEX
0803E872 - change 64 to YOUR LEVEL HEX
08041834 - change 64 to YOUR LEVEL HEX
08041B1E - change 64 to YOUR LEVEL HEX
08041B22 - change 64 to YOUR LEVEL HEX
080420E8 - change 64 to YOUR LEVEL HEX
080420EC - change 64 to YOUR LEVEL HEX
0804274E - change 64 to YOUR LEVEL HEX
08045684 - change 64 to YOUR LEVEL HEX
08041B0E - change 63 to YOUR LEVEL HEX MINUS 1
08032F6E - change 63 to YOUR LEVEL HEX MINUS 1
EXP TABLE SIZE POINTERS
Spoiler:
By default, FireRed will have 6 different exp growth rates assigned for different Pokemon. Each of which is 404 bytes long. That accounts for 100 levels + level 0. Since we need this to be larger to accommodate the new 255 level limit, each growth rate needs to be 1,024 bytes long. Which means that the pointers need to have the size they look for changed.
0803E7F2 - Replace CA 25 6D 00 with 20 25 6D 01
0803E85E - Replace CA 25 6D 00 with 20 25 6D 01
0802FF34 - Replace CA 21 49 00 with 20 21 49 01
080E7E8C - Replace CA 21 49 00 with 20 21 49 01
08156964 - Replace CA 21 49 00 with 20 21 49 01
08043B64 - Replace C8 21 49 00 with 20 21 49 01
08030094 - Replace CA 20 40 00 with 20 20 40 01
08049ED4 - Replace CA 20 40 00 with 20 20 40 01
0803DBF8 - Replace CA 20 40 00 with 20 20 40 01
08156AC4 - Replace CA 20 40 00 with 20 20 40 01
08156BCC - Replace CA 20 40 00 with 20 20 40 01
081366AA - Replace CA 20 40 00 with 20 20 40 01
0813A9F4 - Replace CA 20 40 00 with 20 20 40 01
080E7FEC - Replace CA 20 40 00 with 20 20 40 01
080E80F4 - Replace CA 20 40 00 with 20 20 40 01
0803019C - Replace CA 20 40 00 with 20 20 40 01
08043BE0 - Replace CA 20 40 00 with 20 20 40 01
08043B5E - Replace CA 20 40 00 with 20 20 40 01
08041860 - Replace CA 20 40 00 with 20 20 40 01
RARE CANDY PAST 100
Spoiler:
Now we need to allow the use of Rare Candies for Pokemon over level 100.
081262D2 - Replace 64 with YOUR LEVEL HEX
EXP Display Summary
Spoiler:
We need to change a few values so that EXP will display correctly after passing level 100.
08136684 - Replace 63 with YOUR LEVEL HEX minus 1
0813A9DC - Replace 63 with YOUR LEVEL HEX minus 1
0813664C - Replace 07 with 09
081366C0 - Replace 07 with 09
Stat Display Digits
Spoiler:
We now need to change a few more values so that stats can have up to 4 digits.
08136378 - Replace 03 with 04
0813639C - Replace 03 with 04
08136534 - Replace 03 with 04
0813656E - Replace 03 with 04
081365A4 - Replace 03 with 04
081365DA - Replace 03 with 04
08136610 - Replace 03 with 04
0811E9B2 - Replace 03 with 04
Stat overflow fix
Spoiler:
A few values have to be changed so that stats don't show incorrect values.
436D4 - 0B
436DC - 09
436E4 - 0A
Lastly we need to copy the EXP Table I have attached and paste the table at the offset you found with the appropriate free space.
And with that, you're done!
Keep in mind I tested this on a FireRed US v1.0 ROM, so it may or may not work on other versions.
Big thanks to DizzyEgg and BluRose for helping me find some of these values!
Attachments
Last edited: