This is an old revision of the document!
GBA Save File
All the test have been made on a (U) save file (.sav). The first $1E00 bytes of the file are 3 blocks of $A00 bytes for the 3 save slots. They are somewhat similar to SNES SRAM $1600-$1FFF.
Offsets | Description |
---|---|
$0000-$09FF | Slot 1 data |
$0A00-$13FF | Slot 2 data |
$1400-$1DFF | Slot 3 data |
$1E00-$1EFF | Seems empty |
$1F00-$1F1F | Ascii mark: FINAL FANTASY VI ADVANCE |
$1F20 | 0x01: Game has been saved at least once. |
$1F21-$1FF7 | Seems empty |
$1FF8-$1FFF | FF6 static save mark: 0x1BE4 x4 |
$2000-$23FF | Extra space for slot 1 |
$2400-$27FF | Extra space for slot 2 |
$2800-$2BFF | Extra space for slot 3 |
$2C00-$2FFF | Bestiary for slot 1 |
$3000-$33FF | Bestiary for slot 2 |
$3400-$37FF | Bestiary for slot 3 |
$3800-$5BFF | Quicksave slot |
$5C00-$FFFF | Unused space - Filled with 0xFF |
Slot 1 data
Offsets | Description |
---|---|
Character block (repeat 16 times) | |
$0000 | Actor index |
$0001 | Graphic index |
$0002-$0007 | Name (A-Z $20-$39, a-z $3A-$53) |
$0008 | Level |
$0009-$000A | Current HP |
$000B-$000C | bbhhhhhh hhhhhhhh |
b: hp boost (none, 25%, 50% , 12.5%) | |
h: max hp | |
$000D-$000E | Current MP |
$000F-$0010 | bbmmmmmm mmmmmmmm |
b: mp boost (none, 25%, 50% , 12.5%) | |
h: max mp | |
$0011-$0013 | Current EXP |
$0014 | weicmpzd Status 1 |
w: wound | |
e: petrify | |
i: imp | |
c: clear | |
m: magitek | |
p: poison | |
z: zombie | |
d: dark | |
$0015 | fihcmlzr Status 4 |
f: float | |
i: interceptor | |
h: hide (?) | |
c: control (?) | |
m: morph (?) | |
l: life 3 (?) | |
z: freeze (?) | |
r: rage (?) | |
$0016-$0019 | Battle Commands |
$001A | Strength |
$001B | Speed |
$001C | Stamina |
$001D | Magic |
$001E | Esper |
$001F | Right Hand |
$0020 | Left Hand |
$0021 | Head |
$0022 | Body |
$0023 | Relic 1 |
$0024 | Relic 2 |
End of character block | |
$0260-$0262 | Gil |
$0263 | Hours |
$0264 | Minutes |
$0265 | Seconds |
$0266-$0268 | Steps |
Ability Lists | |
$0269-$02A8 | Character 1 known spells (57 spells + 7 empty slots, 1 byte per spell slot) |
$02A9-$0568 | Spells for the other 11 characters |
$0569-$06F4 | Seems empty. Probably leftovers from moving the item data to another location. |
$06F5 | Active group number. (Used in multiparty dungeons.) |
$06F6 | Trance bar/counter. |
$06F7 | Learned Bushido |
$06F8-$0727 | Static marks? SNES version had Bushido names here. |
$0728 | Learned Blitzes |
$0729-$072B | Learned Lores |
$072C-$074B | Learned Rages |
$074C | Learned Dances |
Config Data | |
$074D-$07C6 | Config Data block |
$074D | cmmmwbbb |
c: command set (window/short) | |
m: message speed | |
w: battle mode (active/wait) | |
b: battle speed | |
$074E | gcsrwwww |
g: gauge | |
c: cursor | |
s: sound (removed) | |
r: re-equip | |
w: wallpaper (values 0-7 valid) | |
$074F | - - - -4321 (removed) |
4: player 2 control character 4 | |
3: player 2 control character 3 | |
2: player 2 control character 2 | |
1: player 2 control character 1 | |
$0750 | aaaabbbb (removed) |
a: A button mapping (0 = start, 1 = A, 2 = B, 3 = X, 4 = Y, 5 = top L, 6 = top R, 7 = select) | |
$0751 | xxxxyyyy (removed) |
x: X button mapping | |
y: Y button mapping | |
$0752 | llllrrrr (removed) |
l: top L button mapping | |
r: top R button mapping | |
$0753 | tttteeee (removed) |
t: Start button mapping | |
e: Select button mapping | |
$0754 | mbcccsss |
m: controller 2 enabled (unused) | |
b: enable custom button config (unused) | |
c: Font/Window palette color selection (unused) | |
s: Magic order | |
$0755-$0756 | Font color |
$0757-$07C6 | Window palettes/colors (8 palettes, 7 colors each) |
$07C7-$07C8 | Empty (SNES version had save counter here.) |
Battle Events | |
$07C9-$07CE | Seems empty |
$07CF | abcdefgh |
a: if set, program compares current monster index with monster index at CF3780,X. if equal, monster index is changed to monster index at CF3782,X. | |
b-h: same as a | |
$07D0 | - - - - - mtf |
m: permanent morph (for Humbaba battle) | |
t: morph lasts twice as long (set after Humbaba battle) | |
f: magic only (Cultists' Tower) | |
$07D1 | ztrbemsg |
z: zone eater engulfed the party | |
t: timers are shown in menu and battle | |
r: ran out of time (before emperor's banquet) | |
b: ran away from previous battle | |
e: gained AP is displayed (espers have been acquired) | |
m: morph is available | |
s: enables scene with LOCKE and EDGAR if TERRA uses magic. | |
g: game over after battle ends | |
$07D2 | - -ums-gd |
u: LOCKE is wearing soldier uniform | |
m: LOCKE is wearing merchant clothes | |
s: SHADOW won't leave after battle | |
g: GAU has been obtained | |
d: DeathGaze has been defeated | |
$07D3-$07D4 | DeathGaze's HP |
$07D5 | Battles Fought with Cursed Shield |
$07D6-$07DC | Seems empty |
Field Data | |
$07DD-$081C | Veldt Formations Available (64 bytes) |
$081D-$083F | Seems empty |
$0840-$0863 | Treasure Bits (indicates if chests have been collected) |
$0864-$086F | Empty treasure bits |
$0870-$087F | Seems empty. Leftover bytes from treasure bits. |
$0880-$08DB | Event bits |
$08DC-$08DD | Active party members in shops |
$08DE-$08DF | Active party members in airship |
$08E0-$095F | NPC event bits |
Position data | |
$0960-$0961 | Overworld XY Position |
$0962-$0963 | Airship XY Position |
$0964-$0965 | - -ddnzpm mmmmmmmm |
d: facing direction | |
n: show map name | |
z: z-level | |
p: set destination as parent map | |
m: Current Map Index | |
$0966-$0967 | Field XY Scroll Position (BG1) |
$0968 | Facing Direction (parent facing direction if bit 7 set) |
$0969-$096A | Parent Map |
$096B-$096C | Parent XY Position |
Other Data | |
$096D | Random Number (RNG Seed for NPC walking direction.) |
$096E-$096F | Danger counter for random battles |
$0970-$097F | Saved Character Palette Indexes (for world map) |
$0980 | Current Song index |
$0981-$09A0 | Saved Object Map Indexes |
$09A1 | Step counter used as an RNG Seed in determining the next random encounter. |
$09A2 | Battle counter used as an RNG Seed in determining the monster formation. |
$09A3 | RNG salt for use with $09A2 (increments +23 when $09A2 goes over 255.) |
$09A4 | RNG salt for use with $09A1 (increments +17 when $09A1 goes over 255.) |
$09A5 | Veldt battle group number. |
$09A6-$09A7 | Pointer to Current Showing Character's Object Data |
$09A8-$09BF | Saved timer data (repeats 4 times.) |
$09A8 | pfrm - - - - |
p: Pause timer in menu and battle. | |
f: Timer is visible on field (timer 0 only). | |
r: End battle or exit menu if timer runs out. | |
m: Timer is visible in menu and battle (timer 0 only). | |
$09A9-$09AA | Frame counter |
$09AB-$09AC | pointer to event code (+CA0000) |
$09C0-$09C1 | Party XY Map Position |
$09C2-$09D1 | Event Variables |
$09C2-$09C3 | Points from Narshe security checkpoint/Emperor's banquet |
$09C4-$09C5 | Narshe security checkpoint variable |
$09C6-$09CD | Empty |
$09CE-$09CF | Number of Dragons Left |
$09D0-$09D1 | Cid's Health/Pieces of Coral |
$09D2 | parent facing direction |
$09D3-$09F2 | Character Saved XY Positions (2 bytes each) |
$09F3-$09F6 | Party Z Levels |
$09F7-$09FD | Empty |
$09FE-09FF | Slot data checksum (Sum 16 from $0000-$09FD) |