• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Quick Research & Development Thread

After doing some research into the Emerald HP boxes, I've found a few useful offsets.
I haven't seen them documented anywhere else on the internet so I thought I'd share them here.

Player HP box - C1F1C8
[PokeCommunity.com] Quick Research & Development Thread


Enemy HP box - C1F46C
[PokeCommunity.com] Quick Research & Development Thread


The palette used for these two is located at C11B9C

I've also seen this palette in one of Jaizu's post where I found the other palette, C11BBC
It might be related to the other HP boxes I found below.
These could possibly be related to double battles. I haven't tested them so I'm not too sure.

C1F5E8
[PokeCommunity.com] Quick Research & Development Thread

C1F76C
[PokeCommunity.com] Quick Research & Development Thread

C1F8E8
[PokeCommunity.com] Quick Research & Development Thread
 
Last edited:
FireRed:
If you ever opened a script from FireRed in XSE, you will quite often see these lines:
Code:
special 0x187
compare LASTRESULT 0x2
if 0x1 goto 0x81A7AE0

Most people think that that special is there as a safe switch or does nothing, but it's actually used for the flashbacks that occur when the player continues their save file. It's there to make sure the events play out properly in the flashback.
 
Pokemon Center Doesn't Count 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, just change:

Code:
0x08083B8E : 0xbd 0xf7 0x55 0xf8
to

Code:
0x08083B8E : 0x08 0xf0 0xd5 0xfa
Spoiler:

Pokemon Center Doesn't Count Eggs [EM]

If you want this for Emerald, make the change at:

Code:
0x0B61A2 - B5 F7 CB F9
to
Code:
0x0B61A2 - 10 F0 31 FF
 
Environmental Moves In FireRed (with some Emerald Offsets)

Camoflouge

There is a table at 0x250888 (0x31C483 in Emerald). This table is what Camoflouge uses to determine the Type the user turns into. It has ten entries for ten different types of terrain.

This order is important, because all the environmental moves use this same order of terrain. The terrain bytes start at 0 and go through 9.

1. 0C = Grass Type used for short grass
2. 0C = Grass Type used for long grass
3. 04 = Ground Type used for sand
4. 0B = Water type used for Underwater
5. 0B = Water Type used for ponds
6. 0B = Water Type used for the sea
7. 05 = Rock Type used for craggy terrain
8. 05 = Rock Type used for caves
9. 00 = Normal Type used for indoors
10. 00 = Normal Type used for link battles

I tried expanding it but it didn't work. I didn't really focus all that much on expanding it though so it may be possible.

This table is useful for people who are using KarateKid's Battle Background hack to set specific backgrounds, as the terrain byte doesn't change just because the background does.

For people who are using that patch, you can make the terrain change with the background by using/modifying this routine:

Spoiler:


You would replace the pointer at 0xf00020 with the pointer to this new routine.

Secret Power

Secret Power is known for having different secondary effects depending on the terrain byte. This leads to the same problem with the Battle Background hack as with camouflage, where you can have Secret Power animations or effects that don't match terrain.

You can use the following Battle Script to edit the effects even if you don't have the Battle Background hack.

Spoiler:


I'd do a version for Emerald, but I don't know where the RAM for the terrain is in Emerald yet. If you know where it is, tell me! Porting that script to Emerald is as easy as replacing all the offsets with their Emerald equivalents.

Secret Power's animation in FireRed (and also in Emerald) is basically just a compilation of pointers to other move's animations. The animation it uses once again depends on the terrain byte.

FireRed (at 0x1D4CBA)
Spoiler:


Emerald (at 0x2D6FD0)
Spoiler:


Nature Power

It was already posted somewhere here, but I'll just put the offset at the end so all the environmental moves are in the same place.

FireRed: 0x25081C
Emerald: 0x31C414

Editing the table is as easy as putting the index number of the move you want in the correct location in the table depending on the terrain you want it to go with.
 
Last edited:
RAM Offsets for Player's and Opponent's Pokemon

These contain information such as current HP and level for all six of your Pokemon, and all six of your opponent's Pokemon.

The RAM Offsets for FireRed are already documented (I'll put them here for convenience's sake).

Yours:
1st: 0x02024284
2nd: 0x020242E8
3rd: 0x0202434C
4th: 0x020243B0
5th: 0x02024414
6th: 0x02024478

Theirs:
1st: 0x0202402C
2nd: 0x02024090
3rd: 0x020240F4
4th: 0x02024158
5th: 0x020241BC
6th: 0x02024220

But I'm not sure if the ones for Emerald are documented but I couldn't find them, so here they are:

Yours:
1st: 0x020244EC
2nd: 0x02024550
3rd: 0x020245B4
4th: 0x02024618
5th: 0x0202467C
6th: 0x020246E0

Theirs:
1st: 0x02024744
2nd: 0x020247A8
3rd: 0x0202480C
4th: 0x02024870
5th: 0x020248D4
6th: 0x02024938
 
Does anybody know the var, flag, or special that activates swarming in Emerald?
 
How to change the spawn location of the player after beating the Pokemon League in Emerald:


After some research I've found that the spawn location of the player after beating the Pokemon League is tied to the Flying position [04] tile (in map 1.1 or 1.3 in the coordinates 4/2).

It is possible to change the location of that tile (including the map it's in) in HxD, in the offset 59F53C.

Code:
01 01 04 00 02 00
are the bytes that will be there by default.

01 - map bank
01 - map number
04 - X
00 - X
02 - Y
00 - Y

Note that the rom reads the X's and Y's backwards. For example, if for any reason you'd want it to be in the X 125, you'd put in 05 12 in the X's spots.

If you can choose a gender in your game, you must also edit the female's Flying position [04] tile, which is in the offset 59F544.

Code:
01 03 04 00 02 00
these are the bytes there by default, if you see this you're in the right place.​
 
Secret Base Decoration Sprites (Emerald)
The sprites for the Secret Base decorations (The sprites you see when buying them at the Department Store) in Emerald start at 0x5A6C00. It ends at 0x5A6FAF with the Registeel Doll.
It looks like the decorations are in groups (like all the dolls are together) and there are a lot of 00s between them.
The first four bytes are the image pointer, and the next four are the palette. :)
 
How to change the spawn location of the player after beating the Pokemon League in Emerald:
Spoiler:

Thanks, I've been looking for that! 0x3EEBF8 is the offset for FireRed.
Default bytes:
Code:
03 00 06 00 08 00
 
What if I expand pokeballs from DaniiS's method?
from the readme
"If you've added custom Poké Balls, you'll need to add definitions for them in src/balls.h. Note that these are not the same as their item numbers; vanilla Poké Balls have the same item and ball number, but custom Poké Balls won't unless you overwrite the item numbers after the vanilla Poké Balls."
 
[PokeCommunity.com] Quick Research & Development Thread


I'm using your routine but when I'm fishing when I catch the Pok?mon my rod disappears, but it only happens at the Safari Zone. Do you know how to fix it?

EDIT: I think it's caused by your "deleteball" routine, because it removes the last item used from the Bag, but the Safari Balls isn't on the Bag and the reusable function isn't working on them.

I made a fix for that routine, and will test it on Monday.
I sent you the solution, if you don't mind testing it too.
I'll post it as soon as I confirm it's fixed.

EDIT:
Link to the post with the routine:
https://www.pokecommunity.com/posts/8896448
If anyone could help confirm that Safari won't be screwed with this new hack, it would be highly appreciated. =D
 
Last edited:
from the readme
"If you've added custom Pok? Balls, you'll need to add definitions for them in src/balls.h. Note that these are not the same as their item numbers; vanilla Pok? Balls have the same item and ball number, but custom Pok? Balls won't unless you overwrite the item numbers after the vanilla Pok? Balls."
How to change the weather abilities from infinity turns to 5 turns?
 
I made a fix for that routine, and will test it on Monday.
I sent you the solution, if you don't mind testing it too.
I'll post it as soon as I confirm it's fixed.

EDIT:
Link to the post with the routine:
https://www.pokecommunity.com/posts/8896448
If anyone could help confirm that Safari won't be screwed with this new hack, it would be highly appreciated. =D

Good. I ended my ROM hacking cause I lost my flash drive with all my work.
 
So you know the animations for end-of-turn events or animations that aren't exactly move animations (e.g. poisoned, sleeping, burn, Leech Seed absorb, Future Sight attack etc)? In Emerald, they're stored in a table at the end of the regular move animations table (so it starts at 2C92F8), which I have gone through and summarised as follows:
Spoiler:

This could be helpful for anyone who wants to edit the status animations or include some of these animations as part of move animations; they can (mostly) be called with 0E XX XX XX 08.
 
Last edited:
Back
Top