Difference between revisions of "FF7/Savemap"

From QhimmWiki
Jump to navigation Jump to search
Qhimm>Halkun
 
Qhimm>Synergy Blades
Line 1: Line 1:
=== The Savemap ===
=== The Savemap ===
(Note: Savemap section should be moved from "Menu" to here and rewritten as a more standalone article)--[[User:Halkun|Halkun]] 21:29, 9 Mar 2005 (CST)


The following is the general save format for the game. This data excludes the header data that differs between the PSX and PC version.
Table 1: FF7 Save Slot
Coming soon
Table 2: Character record
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
! style="background:rgb(204,204,204)" align="center" | Offset
! style="background:rgb(204,204,204)" align="center" | Length
! style="background:rgb(204,204,204)" align="center" | Description
|-
|style="background:rgb(255,255,255)" | 0x00
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Sephiroth flag for changing Vincent into Sephiroth
|-
|style="background:rgb(255,255,255)" | 0x01
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Level (0-99)
|-
|style="background:rgb(255,255,255)" | 0x02
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Strength (0-255)
|-
|style="background:rgb(255,255,255)" | 0x03
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Vitality (0-255)
|-
|style="background:rgb(255,255,255)" | 0x04
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Magic (0-255)
|-
|style="background:rgb(255,255,255)" | 0x05
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Spirit (0-255)
|-
|style="background:rgb(255,255,255)" | 0x06
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Dexterity (0-255)
|-
|style="background:rgb(255,255,255)" | 0x07
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Luck (0-255)
|-
|style="background:rgb(255,255,255)" | 0x08
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Strength Bonus (Power Sources used)
|-
|style="background:rgb(255,255,255)" | 0x09
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Vitality Bonus (Guard Sources used)
|-
|style="background:rgb(255,255,255)" | 0x0A
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Magic Bonus (Magic Sources used)
|-
|style="background:rgb(255,255,255)" | 0x0B
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Spirit Bonus (Mind Sources used)
|-
|style="background:rgb(255,255,255)" | 0x0C
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Dexterity Bonus (Speed Sources used)
|-
|style="background:rgb(255,255,255)" | 0x0D
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Luck Bonus (Luck Sources used)
|-
|style="background:rgb(255,255,255)" | 0x0E
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Current limit level (1-4)
|-
|style="background:rgb(255,255,255)" | 0x0F
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Current limit bar (0xFF = limit break)
|-
|style="background:rgb(255,255,255)" | 0x10
|style="background:rgb(255,255,255)" | 12 bytes
|style="background:rgb(255,255,255)" | Name ([[FF Text|FF Text]] format)
|-
|style="background:rgb(255,255,255)" | 0x1C
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Equipped weapon
|-
|style="background:rgb(255,255,255)" | 0x1D
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Equipped armor
|-
|style="background:rgb(255,255,255)" | 0x1E
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Equipped accessory
|-
|style="background:rgb(255,255,255)" | 0x1F
|style="background:rgb(255,255,255)" | 3 bytes
|style="background:rgb(255,255,255)" | Character flags
|-
|style="background:rgb(255,255,255)" | 0x22
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Learned limit skills
|-
|style="background:rgb(255,255,255)" | 0x24
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Number of kills
|-
|style="background:rgb(255,255,255)" | 0x26
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Times limit 1-1 has been used
|-
|style="background:rgb(255,255,255)" | 0x28
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Times limit 2-1 has been used
|-
|style="background:rgb(255,255,255)" | 0x2A
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Times limit 3-1 has been used
|-
|style="background:rgb(255,255,255)" | 0x2C
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Current HP
|-
|style="background:rgb(255,255,255)" | 0x2E
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Base HP (before materia alterations)
|-
|style="background:rgb(255,255,255)" | 0x30
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Current MP
|-
|style="background:rgb(255,255,255)" | 0x32
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Base MP (before materia alterations)
|-
|style="background:rgb(255,255,204)" | 0x34
|style="background:rgb(255,255,204)" | 4 bytes
|style="background:rgb(255,255,204)" | Unknown
|-
|style="background:rgb(255,255,255)" | 0x38
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Maximum HP (after materia alterations)
|-
|style="background:rgb(255,255,255)" | 0x3A
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Maximum MP (after materia alterations)
|-
|style="background:rgb(255,255,255)" | 0x3C
|style="background:rgb(255,255,255)" | 4 bytes
|style="background:rgb(255,255,255)" | Current EXP
|-
|style="background:rgb(255,255,255)" | 0x40
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 1
|-
|style="background:rgb(255,255,255)" | 0x41
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 2
|-
|style="background:rgb(255,255,255)" | 0x42
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 3
|-
|style="background:rgb(255,255,255)" | 0x43
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 4
|-
|style="background:rgb(255,255,255)" | 0x44
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 5
|-
|style="background:rgb(255,255,255)" | 0x45
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 6
|-
|style="background:rgb(255,255,255)" | 0x46
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 7
|-
|style="background:rgb(255,255,255)" | 0x47
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 8
|-
|style="background:rgb(255,255,255)" | 0x48
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 1
|-
|style="background:rgb(255,255,255)" | 0x49
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 2
|-
|style="background:rgb(255,255,255)" | 0x4A
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 3
|-
|style="background:rgb(255,255,255)" | 0x4B
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 4
|-
|style="background:rgb(255,255,255)" | 0x4C
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 5
|-
|style="background:rgb(255,255,255)" | 0x4D
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 6
|-
|style="background:rgb(255,255,255)" | 0x4E
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 7
|-
|style="background:rgb(255,255,255)" | 0x4F
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 8
|-
|style="background:rgb(255,255,255)" | 0x80
|style="background:rgb(255,255,255)" | 4 bytes
|style="background:rgb(255,255,255)" | EXP to next level
|}
Table 3: Chocobo record
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
! style="background:rgb(204,204,204)" align="center" | Offset
! style="background:rgb(204,204,204)" align="center" | Length
! style="background:rgb(204,204,204)" align="center" | Description
|-
|style="background:rgb(255,255,255)" | 0x0
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Sprint Speed
|-
|style="background:rgb(255,255,255)" | 0x2
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Max Sprint Speed
|-
|style="background:rgb(255,255,255)" | 0x4
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Speed
|-
|style="background:rgb(255,255,255)" | 0x6
|style="background:rgb(255,255,255)" | 2 bytes
|style="background:rgb(255,255,255)" | Max Speed
|-
|style="background:rgb(255,255,255)" | 0x8
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Acceleration
|-
|style="background:rgb(255,255,255)" | 0x9
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Cooperation
|-
|style="background:rgb(255,255,255)" | 0xA
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Intelligence
|-
|style="background:rgb(255,255,255)" | 0xB
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Personality
|-
|style="background:rgb(255,255,204)" | 0xC
|style="background:rgb(255,255,204)" | 1 byte
|style="background:rgb(255,255,204)" | Pcount (?)
|-
|style="background:rgb(255,255,255)" | 0xD
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Number of races won
|-
|style="background:rgb(255,255,255)" | 0xE
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Sex (0: male | 1: female)
|-
|style="background:rgb(255,255,255)" | 0xF
|style="background:rgb(255,255,255)" | 1 byte
|style="background:rgb(255,255,255)" | Type (Yellow, Green, Blue, Black, Gold)
|}


== KERNEL.BIN Section 3 Entry ==
== KERNEL.BIN Section 3 Entry ==
During game initialization, section 3 from KERNEL.BIN is decompressed and copied into RAM. This is all the initial values and structure for most of the Save, excluding the header data and the tail of the last bank (0x0054 to 0x0FE7).
During game initialization, section 3 from KERNEL.BIN is decompressed and copied into RAM. This is all the initial values and structure for most of the Save, excluding the header data and the tail of the last bank (0x0054 to 0x0FE7).

Revision as of 22:34, 20 March 2005

The Savemap

The following is the general save format for the game. This data excludes the header data that differs between the PSX and PC version.

Table 1: FF7 Save Slot

Coming soon

Table 2: Character record

Offset Length Description
0x00 1 byte Sephiroth flag for changing Vincent into Sephiroth
0x01 1 byte Level (0-99)
0x02 1 byte Strength (0-255)
0x03 1 byte Vitality (0-255)
0x04 1 byte Magic (0-255)
0x05 1 byte Spirit (0-255)
0x06 1 byte Dexterity (0-255)
0x07 1 byte Luck (0-255)
0x08 1 byte Strength Bonus (Power Sources used)
0x09 1 byte Vitality Bonus (Guard Sources used)
0x0A 1 byte Magic Bonus (Magic Sources used)
0x0B 1 byte Spirit Bonus (Mind Sources used)
0x0C 1 byte Dexterity Bonus (Speed Sources used)
0x0D 1 byte Luck Bonus (Luck Sources used)
0x0E 1 byte Current limit level (1-4)
0x0F 1 byte Current limit bar (0xFF = limit break)
0x10 12 bytes Name (FF Text format)
0x1C 1 byte Equipped weapon
0x1D 1 byte Equipped armor
0x1E 1 byte Equipped accessory
0x1F 3 bytes Character flags
0x22 2 bytes Learned limit skills
0x24 2 bytes Number of kills
0x26 2 bytes Times limit 1-1 has been used
0x28 2 bytes Times limit 2-1 has been used
0x2A 2 bytes Times limit 3-1 has been used
0x2C 2 bytes Current HP
0x2E 2 bytes Base HP (before materia alterations)
0x30 2 bytes Current MP
0x32 2 bytes Base MP (before materia alterations)
0x34 4 bytes Unknown
0x38 2 bytes Maximum HP (after materia alterations)
0x3A 2 bytes Maximum MP (after materia alterations)
0x3C 4 bytes Current EXP
0x40 1 byte Weapon materia slot number 1
0x41 1 byte Weapon materia slot number 2
0x42 1 byte Weapon materia slot number 3
0x43 1 byte Weapon materia slot number 4
0x44 1 byte Weapon materia slot number 5
0x45 1 byte Weapon materia slot number 6
0x46 1 byte Weapon materia slot number 7
0x47 1 byte Weapon materia slot number 8
0x48 1 byte Armor materia slot number 1
0x49 1 byte Armor materia slot number 2
0x4A 1 byte Armor materia slot number 3
0x4B 1 byte Armor materia slot number 4
0x4C 1 byte Armor materia slot number 5
0x4D 1 byte Armor materia slot number 6
0x4E 1 byte Armor materia slot number 7
0x4F 1 byte Armor materia slot number 8
0x80 4 bytes EXP to next level


Table 3: Chocobo record

Offset Length Description
0x0 2 bytes Sprint Speed
0x2 2 bytes Max Sprint Speed
0x4 2 bytes Speed
0x6 2 bytes Max Speed
0x8 1 byte Acceleration
0x9 1 byte Cooperation
0xA 1 byte Intelligence
0xB 1 byte Personality
0xC 1 byte Pcount (?)
0xD 1 byte Number of races won
0xE 1 byte Sex (0: male | 1: female)
0xF 1 byte Type (Yellow, Green, Blue, Black, Gold)

KERNEL.BIN Section 3 Entry

During game initialization, section 3 from KERNEL.BIN is decompressed and copied into RAM. This is all the initial values and structure for most of the Save, excluding the header data and the tail of the last bank (0x0054 to 0x0FE7).