JeffLudwig.com
GOG.com

GBA Memory Locations

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.

ludmeister

Date published: 2010-09-10

Leave a comment ->

  1. This was a big help, thanks!

    — Anonymous · Mar 15, 04:27 PM · #

  2. 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 · #

  3. 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 · #

  4. ah that worked, thanks much

    — Glavitar · Jun 19, 08:56 PM · #