• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Documentation Convenient Hex Edits for FR 1.0 (BPRE)

Compatible Base ROMs
PKMN FireRed
#1
Credits to Diegoisawesome, HackMew, Doesntknowhowtoplay, NewDenverCity, Jambo51, Touched, Lunos, Sagiri, and the original poster in highlighted sources
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Having Moves Bypass Accuracy Checks
-
Some moves, mostly status seem to not have accuracy listed and seem to always hit in later Gens
- These hex values allow the game to bypass checking for perfect accuracy moves like Swift and see if the accuracy is 0, to always hit
- Set move accuracy to zero in an editor of your choice (G3T, PGE, etc.)
at 0x01DD8E
C0 78 00 28 01 D0 10 E0
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Fixed Hidden Power Base Power
- Want to make Hidden Power a flat base 60?
- Set base power at 60 in an editor of your choice
at 0x02B712
07 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disable Help Menu
- Think that the help menu in FR is annoying?
at 0x13B8C2
1D E0
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disable Flashbacks
- Think the "previously on..." sequence when booting up the game is annoying or is bugged on your rom?
at 0x110F54
00 1C 0F E0
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Mew and Deoxys Always Obey
- Dont want to use setobedience commands for every Mew and Deoxys?
at 0x01D3F0
00 00 00 00

at 0x01D402
00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Roaming IV Glitch Fix
- Roaming pokemon have very low IVs due to an error in coding
at 0x40A92
21 68 69 60 20 E0
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pokedex shows Seen instead of Caught
- Like the DPPt aesthetic of showing how many pokemon are seen instead of caught when saving?
at 0x00CF56
00 20

at 0x00CF64
00 20

at 0x0F803C
00 20

at 0x0F8044
00 20
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Eggs Hatch at Level 1
- You can change 01 to any level you want in hex
at 0x1375B0
01 21

at 0x046CBE
01 22

at 0x04623E
01 22
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
EV's Cap at 252 per stat
at 0x0439FC
FC

at 0x043A02
FC
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Running Shoes Indoors
at 0x0BD494
00
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Protect Fix
- After about 4 consecutive uses of protect, however unlikely, the game begins to read garbage data
- To make it like Gen 4+, use this
at 0x026FB6
01 7A 14 88 CC 40 1D F0 84 FF 21 1C
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Evolve Without National Dex
Disable "The Pokemon Stopped Evolving." [FR]
FR has a feature that if you attempt to evolve a Pokemon into something not in the Kanto Dex (and you don't have the National Dex), it will mysteriously stop evolving. You could just give the player the National Dex at the beginning of the game, but if you don't want to do that, you can easily disable this.

Basically, this will turn some conditional jumps into unconditional jumps, and remove some checks. No free space required.

Code:
0x08043156: 02 E0
0x080CE90C: 1C E0
0x080CF566: 17 E0
0x08126C26: C0 46 C0 46 C0 46 C0 46
0x08126C4C: 08 E0

The code explaining the above byte changes is:
Code:
.text
.align 2
.thumb
.thumb_func

@ trade item removal
.org 0x043156
b 0x04315E

@ all three
.org 0x0CE90C
b 0x0CE948

@ trade
.org 0x0CF566
b 0x0CF598

@ stone
.org 0x126C26
nop
nop
nop
nop

@ stone
.org 0x126C4C
b 0x126C60
Credits to Lunos and Sagiri for this one
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Turbo Boost: An optimization to the wait-for-loop function I think, which makes the game hella faster when you use VBA's Turbo.
At 0x890 write: 00 B5 05 4A 13 88 01 20 83 43 13 80 02 DF 13 88 03 42 FB D0 00 BD C0 46 0C 31 00 03
Source.
(Thanks Lunos)
Note: I have noticed a bug where if you use the turbo speed when booting up the rom, it will either freeze or your sprite will be invisible until you enter/exit a building. Otherwise, this has no problems so far.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disable TMs Animation: Disables this annoying animation that shows up after teaching a TM to a Pokémon.
At 0x11CE6E write: 00 00
At 0x11CA2C write: 00 F0 0E FA
Source.
(Thanks Lunos)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Allow a Pokémon to forget any move: The move deleter sucks, if a pokémon wants to forget Surf in order to learn Earthquake, just let it.
At 0x441D6 and 0x125AA8 write: 01
Source.
(Thanks Lunos)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Display a Foreign Pokémon's ID in the Summary Screen without the National Dex: Pretty self-explanatory.
At 0x6E272 write: 00 00 00 00
At 0x6E280 write: 00 00 00 00
At 0x1360F7 write: E0
At 0x43FA6 write: 00 00 04 E0
Source.
(Thanks Lunos)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Delta231 said:
To match Generation 7th mechanism
Burn Damage Update
0x01856A - 00 09

Paralysis Speed Drop Update
0x014E60 - 40 08
0x014F40 - 7F 08
(Thanks YoY-X and Delta231)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ever dreamed about disabling the stat boosts provided by badges? Here is how you can disable them in FireRed:

Write 00 20 at the following offsets: 0x14E1A, 0x14F02 (both for Speed), 0x3EE24 (Attack), 0x3EE56 (Defense), 0x3EE8C (Sp. Attack) and 0x3EEC4 (Sp. Defense).

(Thanks SP458 and Mystelex)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tall grass fix

Start overwriting at 08059f34 with 00 21 00 06 00 0e 02 28 01 d0 d1 28 01 d1 01 20 00 e0 00 20 00 21 70 47 03 28 f5 e7

eh 08059f34 0x2100
eh 08059f48 0x2100
eh 08059f4a 0x4770
eh 08059f4c 0x2803
eh 08059f4e 0xE7F5

(Thanks Delta231 and Knizz)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
When a new save is generated, the default wallpapers for the storage system will loop through the first four wallpapers for every box. This always annoyed me way back when I first played FRLG; it felt like they were just wasting the assets.

To make the boxes use wallpapers 1 through 14, change the byte at 0x8C836 to 0xF (you can make it higher but as there are only fourteen boxes, it won't really affect anything). As the wallpapers are assigned at the time of generating the save, this will only affect new saves.

(Thanks You Watanabe and Delta231)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Change the Money Cap from 999999 to 9999999: Pretty self-explanatory.
At 0x09FDD4 write: FF C9 9A 3B
At 0x08A006, 0x09FE52 and 0x09FE62 write: 09
Source.
(Thanks Lunos and Turtl3skulll)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Writing C0 46 C0 46 to 0x03DF40 will allow the Weedle in the Old Man's tutorial to be female or genderless. Obviously this is only for FR but hey something similar should be out there for Emerald.

Also at 0x07F88C, there is a
Code:

mov r1, #0xD
which is where it loads Weedle's species, so you can change that to whatever you want with hooks or whatever.
(thanks NewDenverCity and Delta231)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Change Daycare Breeding Rate

To change the 70% value, the following hex edits are required:
  1. At 0x46648, change 46 20 to XX 20
  2. At 0x466A8, change 46 2A to XX 2A
To change the 50% value...:
  1. At 0x4665A, change 32 20 to XX 20
  2. At 0x466A2, change 32 28 to XX 28
To change the 20% value...:
  1. At 0x46656, change 14 20 to XX 20
  2. At 0x4669C, change 14 28 to XX 28
XX would be the percentage value you'd like (in hex of course), 0(?) to 100. The first edits listed are to the main compatibility check function, the second edits are to the function that determines which message the daycare man displays when spoken to.
(Thanks Skeli Unbound and Delta231)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
To remove the black bar animation, cry and Pokémon sprite and all, that shows when you use a HM, do the following


FR: 00 00 00 00 00 00 00 00 00 00 00 00 at x860C2.
(Thanks Spherical Ice and Delta231)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Modify the exp. boost that the Lucky Egg gives: Pretty self-explanatory.
At 0x21DC2 change "96" with the new multiplier that you want the Lucky Egg to have.

0x96 is 150 in decimal, which translates to "Amount of experience received x 1.5".
So, if we wanted the Lucky Egg to multiply the experience x2 instead of x1.5 for example, we would replace "96" with "C8" (200).
Worth mentioning, you can only bump it up to x2.5 without ASM.
Source.
(Thanks Lunos and AkameTheBulbasaur)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

If I discover any more, or anyone has some additions, I will update this post.
 
Last edited:
#2
Evolution Without National Dex
- Want a Golbat to evolve without the national dex?
at 0x0CE91A
00 00 14 E0
If I'm not mistaken, this won't affect Pokemon that evolve with evolutionary stones (such as Gloom -> Bellosom) or trade (such as Seadra -> Kingdra). I remember looking into this and posting it to Quick R&D back on PC, but I can't really remember the details.
 
#3
If I'm not mistaken, this won't affect Pokemon that evolve with evolutionary stones (such as Gloom -> Bellosom) or trade (such as Seadra -> Kingdra). I remember looking into this and posting it to Quick R&D back on PC, but I can't really remember the details.
I have noticed this on play tests of my hack but forgot as I was typing this out haha. I'll update the post
 

Lunos

Well-known member
#4
If I'm not mistaken, this won't affect Pokemon that evolve with evolutionary stones (such as Gloom -> Bellosom) or trade (such as Seadra -> Kingdra). I remember looking into this and posting it to Quick R&D back on PC, but I can't really remember the details.
I have noticed this on play tests of my hack but forgot as I was typing this out haha. I'll update the post
I still have that saved.
Sagiri said:
Disable "The Pokemon Stopped Evolving." [FR]

FR has a feature that if you attempt to evolve a Pokemon into something not in the Kanto Dex (and you don't have the National Dex), it will mysteriously stop evolving. You could just give the player the National Dex at the beginning of the game, but if you don't want to do that, you can easily disable this.

Basically, this will turn some conditional jumps into unconditional jumps, and remove some checks. No free space required.

Code:
0x08043156: 02 E0
0x080CE90C: 1C E0
0x080CF566: 17 E0
0x08126C26: C0 46 C0 46 C0 46 C0 46
0x08126C4C: 08 E0
The code explaining the above byte changes is:

Code:
.text
.align 2
.thumb
.thumb_func

@ trade item removal
.org 0x043156
b 0x04315E

@ all three
.org 0x0CE90C
b 0x0CE948

@ trade
.org 0x0CF566
b 0x0CF598

@ stone
.org 0x126C26
nop
nop
nop
nop

@ stone
.org 0x126C4C
b 0x126C60
Source.

---------------------------------------------------------------------------------------------

With that being said, allow me to share some of my favourites.

Turbo Boost: An optimization to the wait-for-loop function I think, which makes the game hella faster when you use VBA's Turbo.
At 0x890 write: 00 B5 05 4A 13 88 01 20 83 43 13 80 02 DF 13 88 03 42 FB D0 00 BD C0 46 0C 31 00 03
Source.

Disable TMs Animation: Disables this annoying animation that shows up after teaching a TM to a Pokémon.
At 0x11CE6E write: 00 00
At 0x11CA2C write: 00 F0 0E FA
Source.

Allow a Pokémon to forget any move: The move deleter sucks, if a pokémon wants to forget Surf in order to learn Earthquake, just let it.
At 0x441D6 and 0x125AA8 write: 01
Source.

Display a Foreign Pokémon's ID in the Summary Screen without the National Dex: Pretty self-explanatory.
At 0x6E272 write: 00 00 00 00
At 0x6E280 write: 00 00 00 00
At 0x1360F7 write: E0
At 0x43FA6 write: 00 00 04 E0
Source.
 
Last edited:
#6
SP458 said:
Ever dreamed about disabling the stat boosts provided by badges? Here is how you can disable them in FireRed:

Write 00 20 at the following offsets: 0x14E1A, 0x14F02 (both for Speed), 0x3EE24 (Attack), 0x3EE56 (Defense), 0x3EE8C (Sp. Attack) and 0x3EEC4 (Sp. Defense).
 
#7
I still have that saved.

Source.

---------------------------------------------------------------------------------------------

With that being said, allow me to share some of my favourites.

Turbo Boost: An optimization to the wait-for-loop function I think, which makes the game hella faster when you use VBA's Turbo.
At 0x890 write: 00 B5 05 4A 13 88 01 20 83 43 13 80 02 DF 13 88 03 42 FB D0 00 BD C0 46 0C 31 00 03
Source.

Disable TMs Animation: Disables this annoying animation that shows up after teaching a TM to a Pokémon.
At 0x11CE6E write: 00 00
At 0x11CA2C write: 00 F0 0E FA
Source.

Allow a Pokémon to forget any move: The move deleter sucks, if a pokémon wants to forget Surf in order to learn Earthquake, just let it.
At 0x441D6 and 0x125AA8 write: 01
Source.

Display a Foreign Pokémon's ID in the Summary Screen without the National Dex: Pretty self-explanatory.
At 0x6E272 write: 00 00 00 00
At 0x6E280 write: 00 00 00 00
At 0x1360F7 write: E0
At 0x43FA6 write: 00 00 04 E0
Source.
I've noticed that when you use the turbo boost on the bootscreen that there is a chance the rom freezes entirely, and another instance where the player's sprite is invisible until you enter/exit a house or cave.
 

Lunos

Well-known member
#8
I've noticed that when you use the turbo boost on the bootscreen that there is a chance the rom freezes entirely, and another instance where the player's sprite is invisible until you enter/exit a house or cave.
Never happened to me on VBA-M nor on mGBA.

ON: I totally forgot about this one.

Change the Money Cap from 999999 to 9999999: Pretty self-explanatory.
At 0x09FDD4 write: FF C9 9A 3B
At 0x08A006, 0x09FE52 and 0x09FE62 write: 09
Source.
 

Delta231

Well-known member
#9
By NewDenverCity
Writing C0 46 C0 46 to 0x03DF40 will allow the Weedle in the Old Man's tutorial to be female or genderless. Obviously this is only for FR but hey something similar should be out there for Emerald.

Also at 0x07F88C, there is a
Code:​

mov r1, #0xD
which is where it loads Weedle's species, so you can change that to whatever you want with hooks or whatever.​



 

Delta231

Well-known member
#10
By Skeli Unbound

Change Daycare Breeding Rate

To change the 70% value, the following hex edits are required:
  1. At 0x46648, change 46 20 to XX 20
  2. At 0x466A8, change 46 2A to XX 2A
To change the 50% value...:
  1. At 0x4665A, change 32 20 to XX 20
  2. At 0x466A2, change 32 28 to XX 28
To change the 20% value...:
  1. At 0x46656, change 14 20 to XX 20
  2. At 0x4669C, change 14 28 to XX 28
XX would be the percentage value you'd like (in hex of course), 0(?) to 100. The first edits listed are to the main compatibility check function, the second edits are to the function that determines which message the daycare man displays when spoken to.
 

Delta231

Well-known member
#12
By Mr. Pkmn

In Gen 3, Protect/Detect/Endure are bugged. The game is supposed to read the probability from a table which has only 4 entries, thus reading garbage data after the 4th consecutive protect.

To get the correct behavior (like gen 5+, no cap) replace the bytes at 0x26FB6 with this:

01 7A 14 88 CC 40 1D F0 84 FF 21 1C

If you ever manage to get off 16 consecutive protects, it will fail the next one because of precision .
 

Delta231

Well-known member
#13
By You Wantanabe
When a new save is generated, the default wallpapers for the storage system will loop through the first four wallpapers for every box. This always annoyed me way back when I first played FRLG; it felt like they were just wasting the assets.

To make the boxes use wallpapers 1 through 14, change the byte at 0x8C836 to 0xF (you can make it higher but as there are only fourteen boxes, it won't really affect anything). As the wallpapers are assigned at the time of generating the save, this will only affect new saves.
 

Delta231

Well-known member
#14
Originally Posted by Spherical Ice


To remove the black bar animation, cry and Pokémon sprite and all, that shows when you use a HM, do the following


FR: 00 00 00 00 00 00 00 00 00 00 00 00 at x860C2.
 

Delta231

Well-known member
#16
By Knizz

Tall grass fix

Start overwriting at 08059f34 with 00 21 00 06 00 0e 02 28 01 d0 d1 28 01 d1 01 20 00 e0 00 20 00 21 70 47 03 28 f5 e7

eh 08059f34 0x2100
eh 08059f48 0x2100
eh 08059f4a 0x4770
eh 08059f4c 0x2803
eh 08059f4e 0xE7F5
 

Delta231

Well-known member
#20
Never happened to me on VBA-M nor on mGBA.

ON: I totally forgot about this one.

Change the Money Cap from 999999 to 9999999: Pretty self-explanatory.
At 0x09FDD4 write: FF C9 9A 3B
At 0x08A006, 0x09FE52 and 0x09FE62 write: 09
Source.
Well add this
Code:
0809B430 (FR) from 4 to 5