• 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
    • He/Him
    • 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