The PokéCommunity Forums Fan Games ROM Hacking Research & Development
Research FireRed: Map Headers and What They Mean

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Thread Tools
Old April 4th, 2013 (12:04 PM). Edited April 5th, 2013 by aar2697.
aar2697 aar2697 is offline
Join Date: Jun 2010
Age: 20
Gender: Male
Posts: 37
Send a message via Skype™ to aar2697
After a 7 month break, I have finally returned to ROM hacking. Today, I have finished learning about all the bytes in the map header. I am hoping this information will be helpful to you all working on your ROM hacks.

You can see the map header by pressing CTRL+H while you are in the header tab on your map in Advance Map. It is a long strand of bytes that the game uses to load everything for the map.

For example, the map header for Mt. Moon is this..
A43D7608 DCA17308 00000000 00000000 2001 72 00 7F 00 00 04 01 06 00 00

Now, I will go through all the bytes and explain what they mean. Experiment or use different maps as examples to get what you want.

Bytes 1-4: Pointer to map footer offset
Bytes 5-8: Pointer to event offset
Bytes 9-12: Pointer to map script offset
Bytes 13-16: Pointer to connection offset
Bytes 17-18: Music in reverse hex form.

Byte 19: Map footer #. Used for setmapfooter command, which changes the map to another. You should probably leave it be unless you're adding a new map.

Byte 20: ??

Byte 21: Defines what map name the map belongs to. (Thanks to Jambo51 for clearing this up)

Byte 22: Cave type

Byte 23: Weather type

Byte 24: Similar to byte 28. The trainer battle background may or may not change depending on the value chosen.

Byte 25: Set to 01 to be able to ride a bicycle on the map.

Byte 26: Changes the "Show name on entering" value that is visible in simple header mode. 06, 07 allow you to run on the map, 05, 08 do not.

Byte 27: Species floor number. Above-ground floors count up from 01, where 01 is "F1." Below-ground (basement) floor count down from FF, where FF is "BF1."

Byte 28: Species a battle background that will override the trainer battle background AND wild battle background. Leave at 00 if you do not want this. You can choose from 00-09. 0A and on seem to be the same background. This may be because I have JPAN's engine installed, but I'm not quite sure.

Perhaps someone knows what the twentieth byte is. If so, please say so and I will put it in this post.
Reply With Quote

Relevant Advertising!

Old April 4th, 2013 (4:31 PM). Edited April 5th, 2013 by Spherical Ice.
Spherical Ice's Avatar
Spherical Ice Spherical Ice is offline
Join Date: Nov 2007
Location: Bristol, UK
Age: 19
Posts: 4,990
Setting Byte 25 to 06 seems to work if you insert a map and you can't run in-game. I don't know if 01 does the same, it's just something I've always done when inserting maps.
Reply With Quote
Old April 5th, 2013 (5:28 AM).
Spherical Ice's Avatar
Spherical Ice Spherical Ice is offline
Join Date: Nov 2007
Location: Bristol, UK
Age: 19
Posts: 4,990
If the map names go over FF, maybe the twentieth byte was in case it went to 100?
Reply With Quote
Old April 5th, 2013 (5:47 AM).
Jambo51's Avatar
Jambo51 Jambo51 is offline
Glory To Arstotzka
Join Date: Jun 2009
Gender: Male
Nature: Quiet
Posts: 732
Nope, it's strictly a byte. With a lot of work and redefinition you could have more than 0xFF, but as things stand, no.
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 7:37 PM.