FF8/GameSaveFormat
From Final Fantasy Inside
< FF8
Revision as of 15:52, 12 August 2012 by my_wiki>Myst6re
The save format
Offset | Size | Data |
---|---|---|
0x0000 | 2 bytes | Checksum |
0x0002 | 2 bytes | Always 0x08FF |
0x0004 | 2 bytes | Preview: Location ID |
0x0006 | 2 bytes | Preview: 1st character's current HP |
0x0008 | 2 bytes | Preview: 1st character's max HP |
0x000A | 2 bytes | Preview: save count |
0x000C | 4 bytes | Preview: Amount of Gil |
0x0020 | 4 bytes | Preview: Total number of seconds played |
0x0024 | 1 byte | Preview: 1st character's level |
0x0025 | 1 byte | Preview: 1st character's portrait |
0x0026 | 1 byte | Preview: 2nd character's portrait |
0x0027 | 1 byte | Preview: 3rd character's portrait |
0x0028 | 12 bytes | Preview: Squall's name (0x00 terminated) |
0x0034 | 12 bytes | Preview: Rinoa's name (0x00 terminated) |
0x0040 | 12 bytes | Preview: Angelo's name (0x00 terminated) |
0x004C | 12 bytes | Preview: Boko's name (0x00 terminated) |
0x0058 | 4 bytes | Preview: Current Disk (0 based) |
0x005C | 4 bytes | Preview: Current save (last saved game) |
0x0060 | 68 bytes | Guardian Forces: Quetzalcoatl |
0x00A4 | 68 bytes | Guardian Forces: Shiva |
0x00E8 | 68 bytes | Guardian Forces: Ifrit |
0x012C | 68 bytes | Guardian Forces: Siren |
0x0170 | 68 bytes | Guardian Forces: Brothers |
0x01B4 | 68 bytes | Guardian Forces: Diablos |
0x01F8 | 68 bytes | Guardian Forces: Carbuncle |
0x023C | 68 bytes | Guardian Forces: Leviathan |
0x0280 | 68 bytes | Guardian Forces: Pandemonia |
0x02C4 | 68 bytes | Guardian Forces: Cerberus |
0x0308 | 68 bytes | Guardian Forces: Alexander |
0x034C | 68 bytes | Guardian Forces: Doomtrain |
0x0390 | 68 bytes | Guardian Forces: Bahamut |
0x03D4 | 68 bytes | Guardian Forces: Cactuar |
0x0418 | 68 bytes | Guardian Forces: Tonberry |
0x045C | 68 bytes | Guardian Forces: Eden |
0x04A0 | 152 bytes | Characters: Squall |
0x0538 | 152 bytes | Characters: Zell |
0x05D0 | 152 bytes | Characters: Irvine |
0x0668 | 152 bytes | Characters: Quistis |
0x0700 | 152 bytes | Characters: Rinoa |
0x0798 | 152 bytes | Characters: Selphie |
0x0830 | 152 bytes | Characters: Seifer |
0x08C8 | 152 bytes | Characters: Edea |
0x0960 | bytes | TODO |
Guardian Forces
The checksum calculation starts here.
There are 16 G-F: Quetzalcoatl, Shiva, Ifrit, Siren, Brothers, Diablos, Carbuncle, Leviathan, Pandemonia, Cerberus, Alexander, Doomtrain, Bahamut, Cactuar, Tonberry, Eden.
For each G-F:
Offset | Size | Data |
---|---|---|
0x00 | 12 bytes | Name (0x00 terminated) |
0x0C | 4 bytes | Experience |
0x10 | 1 byte | Unknown |
0x11 | 1 byte | Exists |
0x12 | 2 bytes | HP |
0x14 | 16 bytes | Complete abilities (1 bit = 1 ability completed, 9 bits unused) |
0x24 | 24 bytes | APs (1 byte = 1 ability of the GF, 2 bytes unused) |
0x3C | 2 bytes | Number of kills |
0x3E | 2 bytes | Number of KOs |
0x41 | 1 byte | Learning ability |
0x42 | 3 bytes | Forgotten abilities (1 bit = 1 ability of the GF forgotten, 2 bits unused) |
Characters
Squall, Zell, Irvine, Quistis, Rinoa, Selphie, Seifer, Edea. For each character:
Offset | Size | Data |
---|---|---|
0x00 | 2 bytes | Current HPs |
0x02 | 2 bytes | Max HPs |
0x04 | 4 bytes | Experience |
0x08 | 1 byte | Model ID |
0x09 | 1 byte | Weapon ID |
0x0A | 1 byte | STR |
0x0B | 1 byte | VIT |
0x0C | 1 byte | MAG |
0x0D | 1 byte | SPR |
0x0E | 1 byte | SPD |
0x0F | 1 byte | LCK |
0x10 | 2*32 bytes | Magics |
0x50 | 3 bytes | Commands |
0x53 | 1 byte | Padding or unused command |
0x54 | 4 bytes | Abilities |
0x58 | 2 bytes | Junctionned GFs |
0x5A | 1 byte | Unknown |
0x5B | 1 byte | Alternative model (Normal, SeeD, Soldier...) |
0x5C | 1 byte | Junction HP |
0x5D | 1 byte | Junction STR |
0x5E | 1 byte | Junction VIT |
0x5F | 1 byte | Junction MAG |
0x60 | 1 byte | Junction SPR |
0x61 | 1 byte | Junction SPD |
0x62 | 1 byte | Junction EVA |
0x63 | 1 byte | Junction HIT |
0x64 | 1 byte | Junction LCK |
0x65 | 1 byte | Junction elemental attack |
0x66 | 1 byte | Junction mental attack |
0x67 | 4 bytes | Junction elemental defense |
0x6B | 4 bytes | Junction mental defense |
0x6F | 1 byte | Unknown (padding?) |
0x70 | 16 * 2 bytes | Compatibility with GFs |
0x90 | 2 bytes | Number of kills |
0x92 | 2 bytes | Number of KOs |
0x94 | 1 byte | Exists |
0x95 | 1 byte | Unknown |
0x96 | 1 byte | Mental Status |
0x97 | 1 byte | Unknown |