No Healing Eggs [FR]
When healing at a Pokemon Center, the healing machine will light up with the number of Pokemon in your party. Starting in DP, eggs don't count - if you have two Pokemon and an egg, in RSEFRLG, you get three lights, in DP, you get two.
To get this behavior in FR, all you need to do is:
Pokeblock Research [EM]
This
may already be known, but I looked and couldn't find it. If this is known already, I apologize.
In Emerald, the contents of the Pokeblock Case are stored starting at
[0x03005D8C] + 0x848
. It is encrypted using the Security Key. Information on the Security Key, and how to disable it for Emerald can be found
here.
The Pokeblock Case has room for 40 Pokeblocks, each in the same 8-byte format:
I believe
unk_0x7
is either just padding or some sort of terminator. In my experimentation, it was always
0x03
. The available colors are:
How could you use this? Well, I guess you could use this to, say, make NPCs that give out Pokeblocks, but seeing as most hacks don't feature contests anyway, that seems unlikely.
It's actually more useful for Emerald hacks that don't use the Pokeblock Case at all. The space reserved for the Pokeblock Case is persistent; it will be saved and loaded. If you don't use the Pokeblock case, you have
(8 bytes/pokeblock) * (40 pokeblocks) = 320
bytes to persistently store whatever you want.
Constant Base Power For Hidden Power [FR]
Starting with XY, Hidden Power's base power was fixed at 60. Prior to this, it varied between 30 and 70, based on the Pokemon's IVs. To force the game to read the base power from the move data table, null out the strh at
0x0802B722
:
After you've done that, HP will use the base power in the table as its base power. Unfortunately, in a vanilla FR it is listed as
0x01
, so it will be very weak until you change it. Open your ROM in an attack editor (for example, the one bundled with PGE) and change the base power to 60 (as in XY).
For a final tweak, you may want to edit Hidden Power's description to remove the part that says its power varies, since that's no longer true.
Unhidden Power [FR]
Calculates the type (not power) of Hidden Power, so it displays as its actual type instead of always as a Normal-type move.
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
Disable Item Removal During Trade With Held Item Evolutions [FR]
Trade With Held Item evolutions, such as Onix into Steelix, remove the required held item. As part of the above, I realized you could easily disable this entirely (and, yes, it is compatible with the above) by nulling out a call to
pokemon_setattr
. The held item will still be required, it just won't be removed. Why you would want to do this I don't really know, but if you do, I'm putting it here.
Disable Trade Restrictions [FR]
FR has three distinct types of trade restrictions:
- You can't trade or be traded an egg (even an egg of a Kanto Pokemon)
- You can't trade in a Pokemon not in the Kanto Dex (even from another FRLG)
- You can't trade with RSE
Normally, the first two restrictions are lifted after getting the National Dex, while trading with RSE is unlocked by the Sevii Island stuff in the post-game.
This removes all three of those restrictions.
Code:
0x08009754: C0 46 01 20
0x0800975C: C0 46 01 20
0x0804FA4E: C0 46 01 20