• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

The Offset Reference - please contribute!

6,355
Posts
18
Years
  • Seen Apr 16, 2020
The aim of this thread is to have a list of all possible offsets that might be useful for us ROM hackers. I've added a few for Fire Red for now and will add more later. Please contribute! Include additional information (for tables, for example) if you have to.

Fire Red

Data
Base stats: 0x08254784 - 28 bytes per Pokémon
Evolution data: 0x08259754 - table of pointers
Moveset data: 0x0825D7B4 - table of pointers
Footprint data: 0x0843FAB0 - table of pointers

Pokémon front sprites: 0x082350AC - table of pointers
Pokémon back sprites: 0x0823654C - table of pointers
Regular palettes: 0x0823730C - table of pointers, Pokémon palettes are compressed
Shiny palettes: 0x082380CC - table of pointers

Icon sprites data: 0x083D37A0 - table of pointers, icon sprites are not compressed (512 bytes for each frame, two frames)
Icon palette data: 0x083D3E80 - 1 byte per icon, references one of three below palettes
Icon palettes: 0x083D3740 - 3 palettes

Item data: 0x083DB028 - 44 bytes per item
Item images/palletes table: 0x083D4294 - 8 bytes per item
Pickup item table: 0x08250848 - details

TM data: 0x0845A80C
TM compatibility data: 0x08252BC8 - 1 byte per 8 TMs

Move Tutor data: 0x08459B60 - 15 moves
Move Tutor compatibility data: 0x08459B7E - 1 byte per 8 attacks (so 2 on FireRed)

Text
Default player names: 0x081C574F
Pokémon names: 0x08245EE0 - 11 bytes per name
Attack names: 0x08247094 - 13 bytes per name
Ability names: 0x0824F1A0 - 13 bytes per name
Type names: 0x0824F1A0 - 7 bytes per name

Palettes
Oak introduction background: 0x0846056A
Sand footprints: 0x08398FA8

Scripts
Town map tile: 0x081A6C32
Nurse Joy blackout: 0x081A8D97
Mom blackout: 0x081A8DD8

Other
Item limiters: 0x0809A8AE (insert 00 00 00 00) and 0x08098998 (number of items)
Type effectiveness table: 0x0824F050

Emerald

Tables
Item images/palletes: 0x08614410 - 8 bytes per item

Other
Item data: 0x085839A0 - 44 bytes per item
Item limiters: 0x081B001E and 0x080D7466 - details
 
Last edited:

Substitute Doll

An Alolan Exeggutor
115
Posts
8
Years
Oooh first post

I'll start with item offsets

FR

Item Data: 0x083DB028 - 44 bytes per item
Item Image/Pallete Table: 0x083D4294 - 8 bytes per item
Item Limiters: 0x0809a8ae and 0x08098998
0x08098998 - number of items
 
Last edited:

Starfall321

OnePunchStarfall
36
Posts
7
Years
  • Age 28
  • Seen Aug 3, 2016
Oooh first post

I'll start with item offsets

FR

Item Data: 0x083DB028 - 44 bytes per item
Item Image/Pallete Table: 0x083D4294 - 8 bytes per item
Item Limiters: 0x0809a8ae and 0x08098998
0x08098998 - number of items

0809a8ae = 00 00 00 00

For Emerald
Item Data: 0x5839A0 - 44 bytes per item
Item Image/Pallete Table: 0x614410 - 8 bytes per item

To remove item limiters:
0x1B001E= 00 00 00 00
0x0D7466= 00 00 00 00
Emerald has a total of 0x40CC bytes for the data but a total of 0xBD0 bytes for the image(included bag "return arrow" image). So if you really want to do item expansion, just leave slot 378 empty.
 

Squeetz

ROM Hacker
191
Posts
10
Years
Sand footprint palette:
The palette used for sandy footprints is at 0x398FA8 in FireRed and 0x398F88 in LeafGreen.


Pickup table: (click "see original post" for more info)
The Pickup table in FR is at x250848. Each entry is four bytes- the first two are the index number of an item, the latter two are the odds of the item being obtained plus the value for the previous item.
 
3,830
Posts
14
Years
  • Age 27
  • OH
  • Seen Feb 26, 2024
Some stuff for FireRed:

Nurse Joy Blackout Script: 0x081A8D97
Mom Blackout Script: 0x081A8DD8

Base Stat Data: 0x08254784 - 28 bytes per pokemon
Pokemon Names: 0x08245EE0 - 11 bytes per name
Evolution Data: 0x08259754 - table of pointers
Moveset Data: 0x0825D7B4 - table of pointers
Footprint Data: 0x0843FAB0 - table of pointers

Front Sprite Data: 0x082350AC - table of pointers
Back Sprite Data: 0x0823654C - table of pointers
Regular Palette Data: 0x0823730C - table of pointers, Pokémon palettes are compressed
Shiny Palette Data: 0x082380CC - table of pointers

Icon Sprite Data: 0x083D37A0 - table of pointers, icon sprites are not compressed (512 bytes for each frame, two frames)
Icon Palette Data: 0x083D3E80 - 1 byte per icon, references one of three below palettes
Icon Palettes: 0x083D3740 - 3 palettes

TM Data: 0x0845A80C
TM Compatibility Data: 0x08252BC8 - 1 byte per 8 TMs

Move Tutor Data: 0x08459B60 - 15 moves
Move Tutor Compatibility Data: 0x08459B7E - 1 byte per 8 attacks (so 2 on FireRed)

Attack Names: 0x247094 - 13 bytes per name

Ability Names: 0x0824F1A0 - 13 bytes per name

Type Names: 0x0824F1A0 - 7 bytes per name
Type Effectiveness Table: 0x0824F050
 
Last edited:

Joexv

ManMadeOfGouda joexv.github.io
1,037
Posts
11
Years
Locations of pointers to offsets. Idk if these belong here but they sure are helpful to retrieve lost offsets :D

FireRed
Spoiler:


Emerald
Spoiler:


Some Misc Palette offsets
Spoiler:


Sorry if some of these are a little messy or such. I don't keep very clean notes.
And if I find more I'll post them.
 

miksy91

Dark Energy is back in action! ;)
1,480
Posts
15
Years
Just a suggestion, but it could be worth writing down all kinds of useful information in a ROM Map that everyone could easily access rather than having a forum thread with several posts with each one having different kinds of stuff in it.

As an example of a useful ROM Map, here is one that is made mostly by Koolboyman back in the day for Pokemon Gold:
http://datacrystal.romhacking.net/wiki/Pokémon_Gold:ROM_map
I have personally found it quite useful although not so much anymore.

And here is a one for FireRed and LeafGreen with almost no information in it, but it could be easily expanded: http://datacrystal.romhacking.net/wiki/Pokémon_FireRed_and_LeafGreen:ROM_map
 

Squeetz

ROM Hacker
191
Posts
10
Years
Firered instrument offsets

Here's a list I've made as a reference when music hacking.
Feel free to contribute if you see I've missed any pointers, or if any instrument labels are wrong.

Directsound:
Spoiler:

Multi:
Spoiler:

Drum parts:
Spoiler:
 
Last edited:

0

Happy and at peace. :)
556
Posts
7
Years
I looked for this for a little bit and thought it might help.

This is for regular wild Pokemon data in a vanilla FR rom.

It looks like it's just a table and route one begins at 3C8E60.
3C8E98 Route 2.

This will be a little difficult to explain, but at the end of the table, you'll see this: 00 00 00 60 8E 3C 08 for route one. This actually tells you where the route 1 pokemon begin, which at the end of the route 1 data, due to reverse endian.
Now, the structure is this 0A 64 8B 01
0A = Min level
64 = Max level
8B 01 = pokemon Index in reverse endian.
This would be useful for changing wild pokemon data manually, as I believe I have to do with pokemon > Gen III.

Just thought it might be useful, idk.
 

~SAGE

Peruvian Rom Hacker
39
Posts
9
Years
All for FireRed (multilanguage) ROMs

8F034 PARTY POINTER (ENG)
135FFC DETAILS POINTER (ENG)
4886E8 MOVE DESC. POINTER (ESP)
47C174 MOSSE DESC. (ITA)
240138 MOSSE NOMI (ITA)
4406E0 POKÉDEX PAL (ENG)
 

Squeetz

ROM Hacker
191
Posts
10
Years
Firered:

Cry used in the intro sequence (Nidorino by default): 0xEE646
Cry used in the titlescreen (Charizard by default): 0x791EE
 

Henry Owen

Hank Joey
28
Posts
4
Years
Does anyone have the location of the Pokémon Party selection palettes? I really need them to finish my fan game. I admire the patches available in the community but I wanted to make my game as original as possible. Thank you so much.
 
361
Posts
3
Years
  • Age 17
  • Seen Dec 24, 2023
Does anyone have the location of the Pokémon Party selection palettes? I really need them to finish my fan game. I admire the patches available in the community but I wanted to make my game as original as possible. Thank you so much.

Use HMA
 
Back
Top