GBA Memory Locations
These are locations in memory that I found were helpful in debugging my changes in the ROM. Knowing some of these may be just what you need to make your own edits. Then again, maybe not. Intrepid cheaters could use these to their advantage as well, I suppose, but I digress…
Character data structure in memory
Structure size: 72 bytes, beginning at 0×020026cc. This means that the first character is defined, starting at 0×020026cc and ending at 0×02002713, the second character is beginning at 0×02002714, etc.
What follows is the information that is stored, to the best of my knowledge. I show a sample character, with Hex values above and the decoded meaning below.
82 | 71 | 82 | 8f | 82 | 93 | 82 | 81 | 00 | 00 | 00 | 00 | 0a | 00 | 11 | 00 |
Character name, 6 letters | Class | Condition | Exp. Level | ||||||||||||
fa | c2 | 00 | 00 | c7 | 00 | e7 | 00 | af | 00 | b5 | 00 | 04 | 10 | 0a | 16 |
Experience | Cur. HP | Max. HP | Cur. MP | Max. MP | Spell Level | Str. | Agi. | Int. | |||||||
12 | 07 | 17 | 00 | 2d | 00 | 59 | 00 | 1e | 20 | 2d | 04 | 3c | 01 | 02 | 03 |
Vit. | Luck | Accuracy | Evade | Magic Def. | Weapon | Shield | Helm | Armor | Gloves | Spell Level 1 | |||||
08 | 06 | 07 | 09 | 0a | 0c | 0d | 10 | 0f | 00 | 00 | 00 | 00 | 00 | 00 | |
Spell Level 2 | Spell Level 3 | Spell Level 4 | Spell Level 5 | Spell Level 6 | |||||||||||
00 | 00 | 00 | 00 | 00 | 00 | 02 | 00 | 00 | |||||||
Spell Level 7 | Spell Level 8 | ? | ? | ? |
Other data
Gold is stored in 4 bytes at 0×02002ab4.
The current map that the party is in is stored in 0×02003874.
When in battle, the current monsters are stored in 88 bytes, beginning at 0×02014114.
This was a big help, thanks!
— Anonymous · Mar 15, 04:27 PM · #
any idea on why when I change anything in the save file the game no longer recognizes the save and I only have the “new game” option?
— Glavitar · Jun 19, 12:49 PM · #
I don’t know, because I’ve not attempted any save file hacking. My assumption would be that there’s some “authenticity checking” going on, that invalidates the save file. For instance, a hashing algorithm (like MD5). A much better alternative, in my mind, is to open up the memory in an emulator that allows it (like VisualBoyAdvance, with its Memory Viewer), and edit the memory there, and then when you save in the game, the game computes the correct hash for the edits you entered, thus bypassing such a check.
— ludmeister · Jun 19, 01:06 PM · #
ah that worked, thanks much
— Glavitar · Jun 19, 08:56 PM · #