ff6a:doc:savefile

This is an old revision of the document!


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
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: invisible
m: magitek
p: poison
z: zombie
d: blind
$0015 fihcmlzr Status 4
f: float
i: interceptor
h: hide (?)
c: control (?)
m: trance (?)
l: reraise (?)
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
Roster (16 bytes. One byte per character.)
$0250-$025F verbbppp
v: Character is visible
e: Character is enabled
r: Battle Row (back row if set)
b: Battle Order (1-4)
p: Party (0: unassigned, 1-3: groups)
Generic Data
$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)
b: B button mapping
$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 trance (for Humbaba battle)
t: trance 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: trance 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 (00:Up, 01:Right, 02:Down, 03:Left, parent facing direction if bit 7 set)
$0969-$096A Parent Map Index
$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 (for 4 timers.)
$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-$09AD 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 (00:Up, 01:Right, 02:Down, 03:Left)
$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)
  • ff6a/doc/savefile.1534015281.txt.gz
  • Last modified: 5 years ago
  • (external edit)