Difference between revisions of "FF7/Savemap"

From QhimmWiki
Jump to navigation Jump to search
Qhimm>Synergy Blades
Qhimm>M4v3R
m (Changed wiki tables format to more editable)
Line 5: Line 5:
Note: For the ''preview'' descriptions below, changing these values does not change any in-game values. These are only used so a player can preview the data within the save file when viewing the Save menu.
Note: For the ''preview'' descriptions below, changing these values does not change any in-game values. These are only used so a player can preview the data within the save file when viewing the Save menu.


{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;"
|+'''Table 1: FF7 Save Slot'''
|+'''Table 1: FF7 Save Slot'''
! style="background:rgb(204,204,204)" align="center" | Offset
! style="background:rgb(204,204,204)" align="center" | Offset
Line 11: Line 11:
! style="background:rgb(204,204,204)" align="center" colspan="2" | Description
! style="background:rgb(204,204,204)" align="center" colspan="2" | Description
|-
|-
|style="background:rgb(255,255,255)" | 0x0000
| 0x0000
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Checksum
| colspan="2" | Checksum
|-
|-
|style="background:rgb(255,255,255)" | 0x0004
| 0x0004
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's level
| colspan="2" | '''Preview''': Lead character's level
|-
|-
|style="background:rgb(255,255,255)" rowspan="2" | 0x0005
| rowspan="2" | 0x0005
|style="background:rgb(255,255,255)" rowspan="2" | 1 byte
| rowspan="2" | 1 byte
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's portrait
| colspan="2" | '''Preview''': Lead character's portrait
|-
|-
|style="background:rgb(255,255,255)" | 0x00: Cloud<br />0x01: Barret<br />0x02: Tifa<br />0x03: Aeris<br />0x04: Red XIII<br />0x05: Yuffie<br />0x06: Cait Sith
| 0x00: Cloud<br />0x01: Barret<br />0x02: Tifa<br />0x03: Aeris<br />0x04: Red XIII<br />0x05: Yuffie<br />0x06: Cait Sith
|style="background:rgb(255,255,255)" | 0x07: Vincent<br />0x08: Cid<br />0x09: Young Cloud<br />0x0A: Sephiroth<br />0x0B: Chocobo<br />0xFF: None
| 0x07: Vincent<br />0x08: Cid<br />0x09: Young Cloud<br />0x0A: Sephiroth<br />0x0B: Chocobo<br />0xFF: None
|-
|-
|style="background:rgb(255,255,255)" | 0x0006
| 0x0006
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': 2nd character's portrait
| colspan="2" | '''Preview''': 2nd character's portrait
|-
|-
|style="background:rgb(255,255,255)" | 0x0007
| 0x0007
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': 3rd character's portrait
| colspan="2" | '''Preview''': 3rd character's portrait
|-
|-
|style="background:rgb(255,255,255)" | 0x0008
| 0x0008
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's name, terminated with 0xFF
| colspan="2" | '''Preview''': Lead character's name, terminated with 0xFF
|-
|-
|style="background:rgb(255,255,255)" | 0x0018
| 0x0018
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's current HP
| colspan="2" | '''Preview''': Lead character's current HP
|-
|-
|style="background:rgb(255,255,255)" | 0x001A
| 0x001A
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's max HP
| colspan="2" | '''Preview''': Lead character's max HP
|-
|-
|style="background:rgb(255,255,255)" | 0x001C
| 0x001C
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's current MP
| colspan="2" | '''Preview''': Lead character's current MP
|-
|-
|style="background:rgb(255,255,255)" | 0x001E
| 0x001E
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Lead character's max MP
| colspan="2" | '''Preview''': Lead character's max MP
|-
|-
|style="background:rgb(255,255,255)" | 0x0020
| 0x0020
|style="background:rgb(255,255,255)" | 4 bytes
| 4 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Amount of Gil
| colspan="2" | '''Preview''': Amount of Gil
|-
|-
|style="background:rgb(255,255,255)" | 0x0024
| 0x0024
|style="background:rgb(255,255,255)" | 4 bytes
| 4 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Total number of seconds played
| colspan="2" | '''Preview''': Total number of seconds played
|-
|-
|style="background:rgb(255,255,255)" | 0x0028
| 0x0028
|style="background:rgb(255,255,255)" | 32 bytes
| 32 bytes
|style="background:rgb(255,255,255)" colspan="2" | '''Preview''': Save location, [[FF Text|FF Text format]], terminated with 0xFF
| colspan="2" | '''Preview''': Save location, [[FF7/FF Text|FF Text format]], terminated with 0xFF
|-
|-
|style="background:rgb(255,255,255)" | 0x0048
| 0x0048
|style="background:rgb(255,255,255)" | 3 bytes
| 3 bytes
|style="background:rgb(255,255,255)" colspan="2" | RGB value for upper left corner of window
| colspan="2" | RGB value for upper left corner of window
|-
|-
|style="background:rgb(255,255,255)" | 0x004B
| 0x004B
|style="background:rgb(255,255,255)" | 3 bytes
| 3 bytes
|style="background:rgb(255,255,255)" colspan="2" | RGB value for upper right corner of window
| colspan="2" | RGB value for upper right corner of window
|-
|-
|style="background:rgb(255,255,255)" | 0x004E
| 0x004E
|style="background:rgb(255,255,255)" | 3 bytes
| 3 bytes
|style="background:rgb(255,255,255)" colspan="2" | RGB value for lower left corner of window
| colspan="2" | RGB value for lower left corner of window
|-
|-
|style="background:rgb(255,255,255)" | 0x0051
| 0x0051
|style="background:rgb(255,255,255)" | 3 bytes
| 3 bytes
|style="background:rgb(255,255,255)" colspan="2" | RGB value for lower right corner of window
| colspan="2" | RGB value for lower right corner of window
|-
|-
|style="background:rgb(255,255,255)" | 0x0054
| 0x0054
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Cloud [see below for Character record format]
| colspan="2" | Character record: Cloud [see below for Character record format]
|-
|-
|style="background:rgb(255,255,255)" | 0x00D8
| 0x00D8
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Barret
| colspan="2" | Character record: Barret
|-
|-
|style="background:rgb(255,255,255)" | 0x015C
| 0x015C
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Tifa
| colspan="2" | Character record: Tifa
|-
|-
|style="background:rgb(255,255,255)" | 0x01E0
| 0x01E0
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Aeris
| colspan="2" | Character record: Aeris
|-
|-
|style="background:rgb(255,255,255)" | 0x0264
| 0x0264
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Red XIII
| colspan="2" | Character record: Red XIII
|-
|-
|style="background:rgb(255,255,255)" | 0x02E8
| 0x02E8
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Yuffie
| colspan="2" | Character record: Yuffie
|-
|-
|style="background:rgb(255,255,255)" | 0x036C
| 0x036C
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Cait Sith
| colspan="2" | Character record: Cait Sith
|-
|-
|style="background:rgb(255,255,255)" | 0x03F0
| 0x03F0
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Vincent
| colspan="2" | Character record: Vincent
|-
|-
|style="background:rgb(255,255,255)" | 0x0474
| 0x0474
|style="background:rgb(255,255,255)" | 132 bytes
| 132 bytes
|style="background:rgb(255,255,255)" colspan="2" | Character record: Cid
| colspan="2" | Character record: Cid
|-
|-
|style="background:rgb(255,255,255)" | 0x04F8
| 0x04F8
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Party member in slot 1 [uses same format as character portrait above]
| colspan="2" | Party member in slot 1 [uses same format as character portrait above]
|-
|-
|style="background:rgb(255,255,255)" | 0x04F9
| 0x04F9
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Party member in slot 2
| colspan="2" | Party member in slot 2
|-
|-
|style="background:rgb(255,255,255)" | 0x04FA
| 0x04FA
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Party member in slot 3
| colspan="2" | Party member in slot 3
|-
|-
|style="background:rgb(255,255,255)" | 0x04FB
| 0x04FB
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | 0xFF
| colspan="2" | 0xFF
|-
|-
|style="background:rgb(255,255,255)" | 0x04FC
| 0x04FC
|style="background:rgb(255,255,255)" | 640 bytes
| 640 bytes
|style="background:rgb(255,255,255)" colspan="2" | Party Item stock, 2 bytes per item, 320 item slots max [See save item list below]
| colspan="2" | Party Item stock, 2 bytes per item, 320 item slots max [See save item list below]
|-
|-
|style="background:rgb(255,255,255)" | 0x077C
| 0x077C
|style="background:rgb(255,255,255)" | 800 bytes
| 800 bytes
|style="background:rgb(255,255,255)" colspan="2" | Party Materia stock, 4 bytes per materia, 200 materia max [See materia list]
| colspan="2" | Party Materia stock, 4 bytes per materia, 200 materia max [See materia list]
|-
|-
|style="background:rgb(255,255,204)" | 0x0A9C
|style="background:rgb(255,255,204)" | 0x0A9C
Line 146: Line 146:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0B7C
| 0x0B7C
|style="background:rgb(255,255,255)" | 4 bytes
| 4 bytes
|style="background:rgb(255,255,255)" colspan="2" | Party's Gil amount
| colspan="2" | Party's Gil amount
|-
|-
|style="background:rgb(255,255,255)" | 0x0B80
| 0x0B80
|style="background:rgb(255,255,255)" | 4 bytes
| 4 bytes
|style="background:rgb(255,255,255)" colspan="2" | Total number of seconds played
| colspan="2" | Total number of seconds played
|-
|-
|style="background:rgb(255,255,204)" | 0x0B84
|style="background:rgb(255,255,204)" | 0x0B84
Line 158: Line 158:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0B94
| 0x0B94
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Current map
| colspan="2" | Current map
|-
|-
|style="background:rgb(255,255,255)" | 0x0B96
| 0x0B96
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Current location
| colspan="2" | Current location
|-
|-
|style="background:rgb(255,255,204)" | 0x0B98
|style="background:rgb(255,255,204)" | 0x0B98
Line 170: Line 170:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0B9A
| 0x0B9A
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | X location on world map
| colspan="2" | X location on world map
|-
|-
|style="background:rgb(255,255,255)" | 0x0B9C
| 0x0B9C
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Y location on world map
| colspan="2" | Y location on world map
|-
|-
|style="background:rgb(255,255,255)" | 0x0B9E
| 0x0B9E
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Z location on world map
| colspan="2" | Z location on world map
|-
|-
|style="background:rgb(255,255,204)" | 0x0BA0
|style="background:rgb(255,255,204)" | 0x0BA0
Line 194: Line 194:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0BA7
| 0x0BA7
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Aeris' current love points
| colspan="2" | Aeris' current love points
|-
|-
|style="background:rgb(255,255,255)" | 0x0BA8
| 0x0BA8
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Tifa's current love points
| colspan="2" | Tifa's current love points
|-
|-
|style="background:rgb(255,255,255)" | 0x0BA9
| 0x0BA9
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Yuffie's current love points
| colspan="2" | Yuffie's current love points
|-
|-
|style="background:rgb(255,255,255)" | 0x0BAA
| 0x0BAA
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Barret's current love points
| colspan="2" | Barret's current love points
|-
|-
|style="background:rgb(255,255,204)" | 0x0BAB
|style="background:rgb(255,255,204)" | 0x0BAB
Line 214: Line 214:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0BB0
| 0x0BB0
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Number of battles fought
| colspan="2" | Number of battles fought
|-
|-
|style="background:rgb(255,255,255)" | 0x0BB2
| 0x0BB2
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Number of escapes
| colspan="2" | Number of escapes
|-
|-
|style="background:rgb(255,255,255)" | 0x0BB4
| 0x0BB4
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Game timer (Hours)
| colspan="2" | Game timer (Hours)
|-
|-
|style="background:rgb(255,255,255)" | 0x0BB5
| 0x0BB5
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Game timer (Minutes)
| colspan="2" | Game timer (Minutes)
|-
|-
|style="background:rgb(255,255,255)" | 0x0BB6
| 0x0BB6
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Game timer (Seconds)
| colspan="2" | Game timer (Seconds)
|-
|-
|style="background:rgb(255,255,255)" | 0x0BB7
| 0x0BB7
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Game timer (Tenths)
| colspan="2" | Game timer (Tenths)
|-
|-
|style="background:rgb(255,255,204)" | 0x0BB8
|style="background:rgb(255,255,204)" | 0x0BB8
Line 242: Line 242:
|style="background:rgb(255,255,204)" colspan="2" | Unknown (curse ring usage?)
|style="background:rgb(255,255,204)" colspan="2" | Unknown (curse ring usage?)
|-
|-
|style="background:rgb(255,255,255)" | 0x0BBC
| 0x0BBC
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Number of battles fought
| colspan="2" | Number of battles fought
|-
|-
|style="background:rgb(255,255,255)" | 0x0BBE
| 0x0BBE
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Number of escapes
| colspan="2" | Number of escapes
|-
|-
|style="background:rgb(255,255,204)" | 0x0BBF
|style="background:rgb(255,255,204)" | 0x0BBF
Line 254: Line 254:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0BE4
| 0x0BE4
|style="background:rgb(255,255,255)" | 8 bytes
| 8 bytes
|style="background:rgb(255,255,255)" colspan="2" | Key items [see Key Item List]
| colspan="2" | Key items [see Key Item List]
|-
|-
|style="background:rgb(255,255,204)" | 0x0BEC
|style="background:rgb(255,255,204)" | 0x0BEC
Line 262: Line 262:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0BF9
| 0x0BF9
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Field Chocobo rating
| colspan="2" | Field Chocobo rating
|-
|-
|style="background:rgb(255,255,255)" | 0x0BFA
| 0x0BFA
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Field Chocobo rating
| colspan="2" | Field Chocobo rating
|-
|-
|style="background:rgb(255,255,255)" | 0x0BFB
| 0x0BFB
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Field Chocobo rating
| colspan="2" | Field Chocobo rating
|-
|-
|style="background:rgb(255,255,255)" | 0x0BFC
| 0x0BFC
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Field Chocobo rating
| colspan="2" | Field Chocobo rating
|-
|-
|style="background:rgb(255,255,204)" | 0x0BFD
|style="background:rgb(255,255,204)" | 0x0BFD
Line 282: Line 282:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" rowspan="2" | 0x0BC9
| rowspan="2" | 0x0BC9
|style="background:rgb(255,255,255)" rowspan="2" | 2 bytes
| rowspan="2" | 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Menu Visiblity Mask (Quit not affected)
| colspan="2" | Menu Visiblity Mask (Quit not affected)
|-
|-
|style="background:rgb(255,255,255)" colspan="2" |
| colspan="2" |
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
|style="background:rgb(68,144,205)" | LSB
|style="background:rgb(68,144,205)" | LSB
Line 302: Line 302:
|}
|}
|-
|-
|style="background:rgb(255,255,255)" rowspan="2" | 0x0BCB
| rowspan="2" | 0x0BCB
|style="background:rgb(255,255,255)" rowspan="2" | 2 bytes
| rowspan="2" | 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Menu Locking Mask (1: Locked) (Quit not affected)
| colspan="2" | Menu Locking Mask (1: Locked) (Quit not affected)
|-
|-
|style="background:rgb(255,255,255)" colspan="2" |
| colspan="2" |
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
|style="background:rgb(68,144,205)" | LSB
|style="background:rgb(68,144,205)" | LSB
Line 322: Line 322:
|}
|}
|-
|-
|style="background:rgb(255,255,255)" | 0x0C02
| 0x0C02
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Rating for Penned Chocobo Number 1 (01: Wonderful -> 08: Worst)
| colspan="2" | Rating for Penned Chocobo Number 1 (01: Wonderful -> 08: Worst)
|-
|-
|style="background:rgb(255,255,255)" | 0x0C03
| 0x0C03
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Rating for Penned Chocobo Number 2
| colspan="2" | Rating for Penned Chocobo Number 2
|-
|-
|style="background:rgb(255,255,255)" | 0x0C04
| 0x0C04
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Rating for Penned Chocobo Number 3
| colspan="2" | Rating for Penned Chocobo Number 3
|-
|-
|style="background:rgb(255,255,255)" | 0x0C05
| 0x0C05
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Rating for Penned Chocobo Number 4
| colspan="2" | Rating for Penned Chocobo Number 4
|-
|-
|style="background:rgb(255,255,204)" | 0x0C06
|style="background:rgb(255,255,204)" | 0x0C06
Line 350: Line 350:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0CEE
| 0x0CEE
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Party GP (0-10000)
| colspan="2" | Party GP (0-10000)
|-
|-
|style="background:rgb(255,255,204)" | 0x0CF0
|style="background:rgb(255,255,204)" | 0x0CF0
Line 358: Line 358:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0CFC
| 0x0CFC
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Number of chocobo stables owned
| colspan="2" | Number of chocobo stables owned
|-
|-
|style="background:rgb(255,255,204)" | 0x0CFD
|style="background:rgb(255,255,204)" | 0x0CFD
Line 366: Line 366:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0CFE
| 0x0CFE
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Number of occupied stables
| colspan="2" | Number of occupied stables
|-
|-
|style="background:rgb(255,255,255)" | 0x0CFF
| 0x0CFF
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Mask of occupied stables
| colspan="2" | Mask of occupied stables
|-
|-
|style="background:rgb(255,255,204)" | 0x0D00
|style="background:rgb(255,255,204)" | 0x0D00
Line 386: Line 386:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0DC4
| 0x0DC4
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | Chocobo slot 1 [See table 3 for Chocobo Slot format]
| colspan="2" | Chocobo slot 1 [See table 3 for Chocobo Slot format]
|-
|-
|style="background:rgb(255,255,255)" | 0x0DD4
| 0x0DD4
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | Chocobo slot 2
| colspan="2" | Chocobo slot 2
|-
|-
|style="background:rgb(255,255,255)" | 0x0DE4
| 0x0DE4
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | Chocobo slot 3
| colspan="2" | Chocobo slot 3
|-
|-
|style="background:rgb(255,255,255)" | 0x0DF4
| 0x0DF4
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | Chocobo slot 4 [Slot 5 and 6 are located at 0x1084 - 0x10A3]
| colspan="2" | Chocobo slot 4 [Slot 5 and 6 are located at 0x1084 - 0x10A3]
|-
|-
|style="background:rgb(255,255,204)" | 0x0D04
|style="background:rgb(255,255,204)" | 0x0D04
Line 414: Line 414:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0EC4
| 0x0EC4
|style="background:rgb(255,255,255)" | 6 bytes
| 6 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of Chocobo 1 ([[FF Text|FF Text format]])
| colspan="2" | Name of Chocobo 1 ([[FF7/FF Text|FF Text format]])
|-
|-
|style="background:rgb(255,255,255)" | 0x0ECA
| 0x0ECA
|style="background:rgb(255,255,255)" | 6 bytes
| 6 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of Chocobo 2
| colspan="2" | Name of Chocobo 2
|-
|-
|style="background:rgb(255,255,255)" | 0x0ED0
| 0x0ED0
|style="background:rgb(255,255,255)" | 6 bytes
| 6 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of Chocobo 3
| colspan="2" | Name of Chocobo 3
|-
|-
|style="background:rgb(255,255,255)" | 0x0ED6
| 0x0ED6
|style="background:rgb(255,255,255)" | 6 bytes
| 6 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of Chocobo 4
| colspan="2" | Name of Chocobo 4
|-
|-
|style="background:rgb(255,255,255)" | 0x0EDC
| 0x0EDC
|style="background:rgb(255,255,255)" | 6 bytes
| 6 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of Chocobo 5
| colspan="2" | Name of Chocobo 5
|-
|-
|style="background:rgb(255,255,255)" | 0x0EE2
| 0x0EE2
|style="background:rgb(255,255,255)" | 6 bytes
| 6 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of Chocobo 6
| colspan="2" | Name of Chocobo 6
|-
|-
|style="background:rgb(255,255,255)" | 0x0EE8
| 0x0EE8
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Stamina of Chocobo 1
| colspan="2" | Stamina of Chocobo 1
|-
|-
|style="background:rgb(255,255,255)" | 0x0EEA
| 0x0EEA
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Stamina of Chocobo 2
| colspan="2" | Stamina of Chocobo 2
|-
|-
|style="background:rgb(255,255,255)" | 0x0EEC
| 0x0EEC
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Stamina of Chocobo 3
| colspan="2" | Stamina of Chocobo 3
|-
|-
|style="background:rgb(255,255,255)" | 0x0EEE
| 0x0EEE
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Stamina of Chocobo 4
| colspan="2" | Stamina of Chocobo 4
|-
|-
|style="background:rgb(255,255,255)" | 0x0EF0
| 0x0EF0
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Stamina of Chocobo 5
| colspan="2" | Stamina of Chocobo 5
|-
|-
|style="background:rgb(255,255,255)" | 0x0EF2
| 0x0EF2
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | Stamina of Chocobo 6
| colspan="2" | Stamina of Chocobo 6
|-
|-
|style="background:rgb(255,255,204)" | 0x0EF4
|style="background:rgb(255,255,204)" | 0x0EF4
Line 474: Line 474:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0F15
| 0x0F15
|style="background:rgb(255,255,255)" | 24 bytes
| 24 bytes
|style="background:rgb(255,255,255)" colspan="2" | Name of location ([[FF Text|FF Text format]])
| colspan="2" | Name of location ([[FF7/FF Text|FF Text format]])
|-
|-
|style="background:rgb(255,255,204)" | 0x0F24
|style="background:rgb(255,255,204)" | 0x0F24
Line 482: Line 482:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0F15
| 0x0F15
|style="background:rgb(255,255,255)" | 24 bytes
| 24 bytes
|style="background:rgb(255,255,255)" colspan="2" | Instructions to be shown
| colspan="2" | Instructions to be shown
|-
|-
|style="background:rgb(255,255,204)" | 0x0F33
|style="background:rgb(255,255,204)" | 0x0F33
Line 490: Line 490:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0F66
| 0x0F66
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Party's X location on world map (Tile)
| colspan="2" | Party's X location on world map (Tile)
|-
|-
|style="background:rgb(255,255,255)" | 0x0F67
| 0x0F67
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Party's Y location on world map (Tile)
| colspan="2" | Party's Y location on world map (Tile)
|-
|-
|style="background:rgb(255,255,255)" | 0x0F68
| 0x0F68
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Party's Heading<br />e.g: 00: South, 40: East, 80: North, C0: West
| colspan="2" | Party's Heading<br />e.g: 00: South, 40: East, 80: North, C0: West
|-
|-
|style="background:rgb(255,255,204)" | 0x0F69
|style="background:rgb(255,255,204)" | 0x0F69
Line 518: Line 518:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0F86
| 0x0F86
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Vehicle X location (Tile)
| colspan="2" | Vehicle X location (Tile)
|-
|-
|style="background:rgb(255,255,255)" | 0x0F87
| 0x0F87
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Vehicle Y location (Tile)
| colspan="2" | Vehicle Y location (Tile)
|-
|-
|style="background:rgb(255,255,255)" | 0x0F88
| 0x0F88
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Vehicle Heading (as per Party Heading)
| colspan="2" | Vehicle Heading (as per Party Heading)
|-
|-
|style="background:rgb(255,255,204)" | 0x0F89
|style="background:rgb(255,255,204)" | 0x0F89
Line 554: Line 554:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" rowspan="3" | 0x0FA6
| rowspan="3" | 0x0FA6
|style="background:rgb(255,255,255)" rowspan="3" | 1 byte
| rowspan="3" | 1 byte
|style="background:rgb(255,255,255)" colspan="2" | World map camera & map display<br />Add two values (one from camera, one from map) and set this byte.
| colspan="2" | World map camera & map display<br />Add two values (one from camera, one from map) and set this byte.
|-
|-
|style="background:rgb(255,255,255)" colspan="2" | Camera: Aerial(00); Closeup(20)
| colspan="2" | Camera: Aerial(00); Closeup(20)
|-
|-
|style="background:rgb(255,255,255)" colspan="2" | Map: Off(80); Small(00); Large(40)
| colspan="2" | Map: Off(80); Small(00); Large(40)
|-
|-
|style="background:rgb(255,255,204)" | 0x0FA7
|style="background:rgb(255,255,204)" | 0x0FA7
Line 566: Line 566:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x0FAB
| 0x0FAB
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | If not 0x00, game crashes
| colspan="2" | If not 0x00, game crashes
|-
|-
|style="background:rgb(255,255,204)" | 0x0FAC
|style="background:rgb(255,255,204)" | 0x0FAC
Line 574: Line 574:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x1030
| 0x1030
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Field screen rain switch (non-zero to turn on rain effect)
| colspan="2" | Field screen rain switch (non-zero to turn on rain effect)
|-
|-
|style="background:rgb(255,255,204)" | 0x1031
|style="background:rgb(255,255,204)" | 0x1031
Line 582: Line 582:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x1084
| 0x1084
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | Chocobo slot 5
| colspan="2" | Chocobo slot 5
|-
|-
|style="background:rgb(255,255,255)" | 0x1094
| 0x1094
|style="background:rgb(255,255,255)" | 16 bytes
| 16 bytes
|style="background:rgb(255,255,255)" colspan="2" | Chocobo slot 6
| colspan="2" | Chocobo slot 6
|-
|-
|style="background:rgb(255,205,154)" | 0x10A3
|style="background:rgb(255,205,154)" | 0x10A3
Line 598: Line 598:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" rowspan="2" | 0x10AD
| rowspan="2" | 0x10AD
|style="background:rgb(255,255,255)" rowspan="2" | 2 bytes
| rowspan="2" | 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | PHS Locking Mask (1: Locked)
| colspan="2" | PHS Locking Mask (1: Locked)
|-
|-
|style="background:rgb(255,255,255)" colspan="2" |
| colspan="2" |
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
|style="background:rgb(68,144,205)" | LSB
|style="background:rgb(68,144,205)" | LSB
Line 617: Line 617:
|}
|}
|-
|-
|style="background:rgb(255,255,255)" rowspan="2" | 0x10AF
| rowspan="2" | 0x10AF
|style="background:rgb(255,255,255)" rowspan="2" | 2 bytes
| rowspan="2" | 2 bytes
|style="background:rgb(255,255,255)" colspan="2" | PHS Visibility Mask (does not ''turn off'' party characters)
| colspan="2" | PHS Visibility Mask (does not ''turn off'' party characters)
|-
|-
|style="background:rgb(255,255,255)" colspan="2" |
| colspan="2" |
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
|style="background:rgb(68,144,205)" | LSB
|style="background:rgb(68,144,205)" | LSB
Line 640: Line 640:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x10D8
| 0x10D8
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Battle Speed (0x00: fastest, 0xFF: slowest)
| colspan="2" | Battle Speed (0x00: fastest, 0xFF: slowest)
|-
|-
|style="background:rgb(255,255,255)" | 0x10D9
| 0x10D9
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Battle Message Speed
| colspan="2" | Battle Message Speed
|-
|-
|style="background:rgb(255,255,204)" | 0x10DA
|style="background:rgb(255,255,204)" | 0x10DA
Line 656: Line 656:
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|style="background:rgb(255,255,204)" colspan="2" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x10EC
| 0x10EC
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" colspan="2" | Message Speed
| colspan="2" | Message Speed
|-
|-
|style="background:rgb(255,255,204)" | 0x10ED
|style="background:rgb(255,255,204)" | 0x10ED
Line 665: Line 665:
|}
|}


{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;"
|+'''Table 2: Character Record'''
|+'''Table 2: Character Record'''
! style="background:rgb(204,204,204)" align="center" | Offset
! style="background:rgb(204,204,204)" align="center" | Offset
Line 671: Line 671:
! style="background:rgb(204,204,204)" align="center" | Description
! style="background:rgb(204,204,204)" align="center" | Description
|-
|-
|style="background:rgb(255,255,255)" | 0x00
| 0x00
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Sephiroth flag for changing Vincent into Sephiroth
| Sephiroth flag for changing Vincent into Sephiroth
|-
|-
|style="background:rgb(255,255,255)" | 0x01
| 0x01
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Level (0-99)  
| Level (0-99)  
|-
|-
|style="background:rgb(255,255,255)" | 0x02
| 0x02
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Strength (0-255)  
| Strength (0-255)  
|-
|-
|style="background:rgb(255,255,255)" | 0x03
| 0x03
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Vitality (0-255)  
| Vitality (0-255)  
|-
|-
|style="background:rgb(255,255,255)" | 0x04
| 0x04
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Magic (0-255)  
| Magic (0-255)  
|-
|-
|style="background:rgb(255,255,255)" | 0x05
| 0x05
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Spirit (0-255)  
| Spirit (0-255)  
|-
|-
|style="background:rgb(255,255,255)" | 0x06
| 0x06
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Dexterity (0-255)  
| Dexterity (0-255)  
|-
|-
|style="background:rgb(255,255,255)" | 0x07
| 0x07
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Luck (0-255)  
| Luck (0-255)  
|-
|-
|style="background:rgb(255,255,255)" | 0x08
| 0x08
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Strength Bonus (Power Sources used)
| Strength Bonus (Power Sources used)
|-
|-
|style="background:rgb(255,255,255)" | 0x09
| 0x09
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Vitality Bonus (Guard Sources used)
| Vitality Bonus (Guard Sources used)
|-
|-
|style="background:rgb(255,255,255)" | 0x0A
| 0x0A
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Magic Bonus (Magic Sources used)
| Magic Bonus (Magic Sources used)
|-
|-
|style="background:rgb(255,255,255)" | 0x0B
| 0x0B
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Spirit Bonus (Mind Sources used)
| Spirit Bonus (Mind Sources used)
|-
|-
|style="background:rgb(255,255,255)" | 0x0C
| 0x0C
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Dexterity Bonus (Speed Sources used)
| Dexterity Bonus (Speed Sources used)
|-
|-
|style="background:rgb(255,255,255)" | 0x0D
| 0x0D
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Luck Bonus (Luck Sources used)
| Luck Bonus (Luck Sources used)
|-
|-
|style="background:rgb(255,255,255)" | 0x0E
| 0x0E
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Current limit level (1-4)
| Current limit level (1-4)
|-
|-
|style="background:rgb(255,255,255)" | 0x0F
| 0x0F
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Current limit bar (0xFF = limit break)
| Current limit bar (0xFF = limit break)
|-
|-
|style="background:rgb(255,255,255)" | 0x10
| 0x10
|style="background:rgb(255,255,255)" | 12 bytes
| 12 bytes
|style="background:rgb(255,255,255)" | Name ([[FF Text|FF Text]] format)
| Name ([[FF7/FF Text|FF Text]] format)
|-
|-
|style="background:rgb(255,255,255)" | 0x1C
| 0x1C
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Equipped weapon
| Equipped weapon
|-
|-
|style="background:rgb(255,255,255)" | 0x1D
| 0x1D
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Equipped armor
| Equipped armor
|-
|-
|style="background:rgb(255,255,255)" | 0x1E
| 0x1E
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Equipped accessory
| Equipped accessory
|-
|-
|style="background:rgb(255,255,255)" | 0x1F
| 0x1F
|style="background:rgb(255,255,255)" | 3 bytes
| 3 bytes
|style="background:rgb(255,255,255)" | Character flags
| Character flags
|-
|-
|style="background:rgb(255,255,255)" | 0x22
| 0x22
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Learned limit skills
| Learned limit skills
|-
|-
|style="background:rgb(255,255,255)" | 0x24
| 0x24
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Number of kills
| Number of kills
|-
|-
|style="background:rgb(255,255,255)" | 0x26
| 0x26
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Times limit 1-1 has been used
| Times limit 1-1 has been used
|-
|-
|style="background:rgb(255,255,255)" | 0x28
| 0x28
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Times limit 2-1 has been used
| Times limit 2-1 has been used
|-
|-
|style="background:rgb(255,255,255)" | 0x2A
| 0x2A
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Times limit 3-1 has been used
| Times limit 3-1 has been used
|-
|-
|style="background:rgb(255,255,255)" | 0x2C
| 0x2C
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Current HP
| Current HP
|-
|-
|style="background:rgb(255,255,255)" | 0x2E
| 0x2E
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Base HP (before materia alterations)
| Base HP (before materia alterations)
|-
|-
|style="background:rgb(255,255,255)" | 0x30
| 0x30
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Current MP
| Current MP
|-
|-
|style="background:rgb(255,255,255)" | 0x32
| 0x32
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Base MP (before materia alterations)
| Base MP (before materia alterations)
|-
|-
|style="background:rgb(255,255,204)" | 0x34
|style="background:rgb(255,255,204)" | 0x34
Line 795: Line 795:
|style="background:rgb(255,255,204)" | Unknown
|style="background:rgb(255,255,204)" | Unknown
|-
|-
|style="background:rgb(255,255,255)" | 0x38
| 0x38
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Maximum HP (after materia alterations)
| Maximum HP (after materia alterations)
|-
|-
|style="background:rgb(255,255,255)" | 0x3A
| 0x3A
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Maximum MP (after materia alterations)
| Maximum MP (after materia alterations)
|-
|-
|style="background:rgb(255,255,255)" | 0x3C
| 0x3C
|style="background:rgb(255,255,255)" | 4 bytes
| 4 bytes
|style="background:rgb(255,255,255)" | Current EXP
| Current EXP
|-
|-
|style="background:rgb(255,255,255)" | 0x40
| 0x40
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 1
| Weapon materia slot number 1
|-
|-
|style="background:rgb(255,255,255)" | 0x41
| 0x41
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 2
| Weapon materia slot number 2
|-
|-
|style="background:rgb(255,255,255)" | 0x42
| 0x42
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 3
| Weapon materia slot number 3
|-
|-
|style="background:rgb(255,255,255)" | 0x43
| 0x43
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 4
| Weapon materia slot number 4
|-
|-
|style="background:rgb(255,255,255)" | 0x44
| 0x44
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 5
| Weapon materia slot number 5
|-
|-
|style="background:rgb(255,255,255)" | 0x45
| 0x45
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 6
| Weapon materia slot number 6
|-
|-
|style="background:rgb(255,255,255)" | 0x46
| 0x46
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 7
| Weapon materia slot number 7
|-
|-
|style="background:rgb(255,255,255)" | 0x47
| 0x47
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Weapon materia slot number 8
| Weapon materia slot number 8
|-
|-
|style="background:rgb(255,255,255)" | 0x48
| 0x48
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 1
| Armor materia slot number 1
|-
|-
|style="background:rgb(255,255,255)" | 0x49
| 0x49
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 2
| Armor materia slot number 2
|-
|-
|style="background:rgb(255,255,255)" | 0x4A
| 0x4A
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 3
| Armor materia slot number 3
|-
|-
|style="background:rgb(255,255,255)" | 0x4B
| 0x4B
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 4
| Armor materia slot number 4
|-
|-
|style="background:rgb(255,255,255)" | 0x4C
| 0x4C
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 5
| Armor materia slot number 5
|-
|-
|style="background:rgb(255,255,255)" | 0x4D
| 0x4D
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 6
| Armor materia slot number 6
|-
|-
|style="background:rgb(255,255,255)" | 0x4E
| 0x4E
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 7
| Armor materia slot number 7
|-
|-
|style="background:rgb(255,255,255)" | 0x4F
| 0x4F
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Armor materia slot number 8
| Armor materia slot number 8
|-
|-
|style="background:rgb(255,255,255)" | 0x80
| 0x80
|style="background:rgb(255,255,255)" | 4 bytes
| 4 bytes
|style="background:rgb(255,255,255)" | EXP to next level
| EXP to next level
|}
|}


{| border="0" cellspacing="1" cellpadding="3" style="background: rgb(0,0,0)" align="center"
{| border="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;"
|+'''Table 3: Chocobo Record'''
|+'''Table 3: Chocobo Record'''
! style="background:rgb(204,204,204)" align="center" | Offset
! style="background:rgb(204,204,204)" align="center" | Offset
Line 882: Line 882:
! style="background:rgb(204,204,204)" align="center" | Description
! style="background:rgb(204,204,204)" align="center" | Description
|-
|-
|style="background:rgb(255,255,255)" | 0x0
| 0x0
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Sprint Speed  
| Sprint Speed  
|-
|-
|style="background:rgb(255,255,255)" | 0x2
| 0x2
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Max Sprint Speed  
| Max Sprint Speed  
|-
|-
|style="background:rgb(255,255,255)" | 0x4
| 0x4
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Speed
| Speed
|-
|-
|style="background:rgb(255,255,255)" | 0x6
| 0x6
|style="background:rgb(255,255,255)" | 2 bytes
| 2 bytes
|style="background:rgb(255,255,255)" | Max Speed  
| Max Speed  
|-
|-
|style="background:rgb(255,255,255)" | 0x8
| 0x8
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Acceleration
| Acceleration
|-
|-
|style="background:rgb(255,255,255)" | 0x9
| 0x9
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Cooperation
| Cooperation
|-
|-
|style="background:rgb(255,255,255)" | 0xA
| 0xA
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Intelligence
| Intelligence
|-
|-
|style="background:rgb(255,255,255)" | 0xB
| 0xB
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Personality
| Personality
|-
|-
|style="background:rgb(255,255,204)" | 0xC
|style="background:rgb(255,255,204)" | 0xC
Line 918: Line 918:
|style="background:rgb(255,255,204)" | Pcount (?)
|style="background:rgb(255,255,204)" | Pcount (?)
|-
|-
|style="background:rgb(255,255,255)" | 0xD
| 0xD
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Number of races won
| Number of races won
|-
|-
|style="background:rgb(255,255,255)" | 0xE
| 0xE
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Sex (0: male | 1: female)
| Sex (0: male | 1: female)
|-
|-
|style="background:rgb(255,255,255)" | 0xF
| 0xF
|style="background:rgb(255,255,255)" | 1 byte
| 1 byte
|style="background:rgb(255,255,255)" | Type (Yellow, Green, Blue, Black, Gold)
| 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 11:13, 20 July 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.

Note: For the preview descriptions below, changing these values does not change any in-game values. These are only used so a player can preview the data within the save file when viewing the Save menu.

Table 1: FF7 Save Slot
Offset Length Description
0x0000 2 bytes Checksum
0x0004 1 byte Preview: Lead character's level
0x0005 1 byte Preview: Lead character's portrait
0x00: Cloud
0x01: Barret
0x02: Tifa
0x03: Aeris
0x04: Red XIII
0x05: Yuffie
0x06: Cait Sith
0x07: Vincent
0x08: Cid
0x09: Young Cloud
0x0A: Sephiroth
0x0B: Chocobo
0xFF: None
0x0006 1 byte Preview: 2nd character's portrait
0x0007 1 byte Preview: 3rd character's portrait
0x0008 16 bytes Preview: Lead character's name, terminated with 0xFF
0x0018 2 bytes Preview: Lead character's current HP
0x001A 2 bytes Preview: Lead character's max HP
0x001C 2 bytes Preview: Lead character's current MP
0x001E 2 bytes Preview: Lead character's max MP
0x0020 4 bytes Preview: Amount of Gil
0x0024 4 bytes Preview: Total number of seconds played
0x0028 32 bytes Preview: Save location, FF Text format, terminated with 0xFF
0x0048 3 bytes RGB value for upper left corner of window
0x004B 3 bytes RGB value for upper right corner of window
0x004E 3 bytes RGB value for lower left corner of window
0x0051 3 bytes RGB value for lower right corner of window
0x0054 132 bytes Character record: Cloud [see below for Character record format]
0x00D8 132 bytes Character record: Barret
0x015C 132 bytes Character record: Tifa
0x01E0 132 bytes Character record: Aeris
0x0264 132 bytes Character record: Red XIII
0x02E8 132 bytes Character record: Yuffie
0x036C 132 bytes Character record: Cait Sith
0x03F0 132 bytes Character record: Vincent
0x0474 132 bytes Character record: Cid
0x04F8 1 byte Party member in slot 1 [uses same format as character portrait above]
0x04F9 1 byte Party member in slot 2
0x04FA 1 byte Party member in slot 3
0x04FB 1 byte 0xFF
0x04FC 640 bytes Party Item stock, 2 bytes per item, 320 item slots max [See save item list below]
0x077C 800 bytes Party Materia stock, 4 bytes per materia, 200 materia max [See materia list]
0x0A9C 224 bytes Unknown
0x0B7C 4 bytes Party's Gil amount
0x0B80 4 bytes Total number of seconds played
0x0B84 16 bytes Unknown
0x0B94 2 bytes Current map
0x0B96 2 bytes Current location
0x0B98 2 bytes Unknown
0x0B9A 2 bytes X location on world map
0x0B9C 2 bytes Y location on world map
0x0B9E 2 bytes Z location on world map
0x0BA0 4 bytes Unknown
0x0BA4 2 bytes Plot Progression Variables [BEGINNING OF SCRIPT MEMORY BANK 1/2]
0x0BA5 3 bytes Unknown
0x0BA7 1 byte Aeris' current love points
0x0BA8 1 byte Tifa's current love points
0x0BA9 1 byte Yuffie's current love points
0x0BAA 1 byte Barret's current love points
0x0BAB 5 bytes Unknown
0x0BB0 2 bytes Number of battles fought
0x0BB2 2 bytes Number of escapes
0x0BB4 1 byte Game timer (Hours)
0x0BB5 1 byte Game timer (Minutes)
0x0BB6 1 byte Game timer (Seconds)
0x0BB7 1 byte Game timer (Tenths)
0x0BB8 0x0BBD Unknown (curse ring usage?)
0x0BBC 2 bytes Number of battles fought
0x0BBE 2 bytes Number of escapes
0x0BBF 0x0BE3 Unknown
0x0BE4 8 bytes Key items [see Key Item List]
0x0BEC 0x0BC9 Unknown
0x0BF9 1 byte Field Chocobo rating
0x0BFA 1 byte Field Chocobo rating
0x0BFB 1 byte Field Chocobo rating
0x0BFC 1 byte Field Chocobo rating
0x0BFD 0x0BC8 Unknown
0x0BC9 2 bytes Menu Visiblity Mask (Quit not affected)
LSB item magic materia equip status order limit config PHS save MSB
0x0BCB 2 bytes Menu Locking Mask (1: Locked) (Quit not affected)
LSB item magic materia equip status order limit config PHS save MSB
0x0C02 1 byte Rating for Penned Chocobo Number 1 (01: Wonderful -> 08: Worst)
0x0C03 1 byte Rating for Penned Chocobo Number 2
0x0C04 1 byte Rating for Penned Chocobo Number 3
0x0C05 1 byte Rating for Penned Chocobo Number 4
0x0C06 0x0CA3 Unknown
0x0CA4   [BEGINNING OF FIELD BANK 3/4]
0x0CA5 0x0CED Unknown
0x0CEE 2 bytes Party GP (0-10000)
0x0CF0 12 bytes Unknown
0x0CFC 1 byte Number of chocobo stables owned
0x0CFD 1 byte Unknown
0x0CFE 1 byte Number of occupied stables
0x0CFF 1 byte Mask of occupied stables
0x0D00 0x0DA3 Unknown
0x0DA4 [BEGINNING OF FIELD BANK B/C]
0x0DA5 0x0DC3 Unknown
0x0DC4 16 bytes Chocobo slot 1 [See table 3 for Chocobo Slot format]
0x0DD4 16 bytes Chocobo slot 2
0x0DE4 16 bytes Chocobo slot 3
0x0DF4 16 bytes Chocobo slot 4 [Slot 5 and 6 are located at 0x1084 - 0x10A3]
0x0D04 0x0EA3 Unknown
0x0EA4 1 byte Current CD [BEGINNING OF FIELD BANK D/E]
0x0EA5 31 bytes Unknown
0x0EC4 6 bytes Name of Chocobo 1 (FF Text format)
0x0ECA 6 bytes Name of Chocobo 2
0x0ED0 6 bytes Name of Chocobo 3
0x0ED6 6 bytes Name of Chocobo 4
0x0EDC 6 bytes Name of Chocobo 5
0x0EE2 6 bytes Name of Chocobo 6
0x0EE8 2 bytes Stamina of Chocobo 1
0x0EEA 2 bytes Stamina of Chocobo 2
0x0EEC 2 bytes Stamina of Chocobo 3
0x0EEE 2 bytes Stamina of Chocobo 4
0x0EF0 2 bytes Stamina of Chocobo 5
0x0EF2 2 bytes Stamina of Chocobo 6
0x0EF4 0x0EFD Unknown
0x0EFD 1 byte Vehicle Enabler
0x0EFE 0x0F14 Unknown
0x0F15 24 bytes Name of location (FF Text format)
0x0F24 0x0F32 Unknown
0x0F15 24 bytes Instructions to be shown
0x0F33 0x0F65 Unknown
0x0F66 1 byte Party's X location on world map (Tile)
0x0F67 1 byte Party's Y location on world map (Tile)
0x0F68 1 byte Party's Heading
e.g: 00: South, 40: East, 80: North, C0: West
0x0F69 1 byte Party's X?
0x0F6A 1 byte Party's Y?
0x0F6B 1 byte Party's Z?
0x0F6C 0x0F85 Unknown
0x0F86 1 byte Vehicle X location (Tile)
0x0F87 1 byte Vehicle Y location (Tile)
0x0F88 1 byte Vehicle Heading (as per Party Heading)
0x0F89 1 byte Submarine X?
0x0F8A 1 byte Submarine Y?
0x0F8B 1 byte Submarine Z?
0x0F8C 0x0FA5 Unknown
0x0FA4   [BEGINNING OF FIELD BANK 7/F]
0x0FA5 1 byte Unknown
0x0FA6 1 byte World map camera & map display
Add two values (one from camera, one from map) and set this byte.
Camera: Aerial(00); Closeup(20)
Map: Off(80); Small(00); Large(40)
0x0FA7 0x0FAA Unknown
0x0FAB 1 byte If not 0x00, game crashes
0x0FAC 0x102F Unknown
0x1030 1 byte Field screen rain switch (non-zero to turn on rain effect)
0x1031 0x1083 Unknown
0x1084 16 bytes Chocobo slot 5
0x1094 16 bytes Chocobo slot 6
0x10A3   [END OF FIELD SCRIPT MEMORY BANKS]
0x10A3 0x10AE Unknown
0x10AD 2 bytes PHS Locking Mask (1: Locked)
LSB Cloud Barret Tifa Aeris Red Yuffie Vincent Cait Cid MSB
0x10AF 2 bytes PHS Visibility Mask (does not turn off party characters)
LSB Cloud Barret Tifa Aeris Red Yuffie Vincent Cait Cid MSB
0x10B0 0x10D7 Unknown
0x10D8 1 byte Battle Speed (0x00: fastest, 0xFF: slowest)
0x10D9 1 byte Battle Message Speed
0x10DA 2 bytes Flag bits (?)
0x10DC 16 bytes Unknown
0x10EC 1 byte Message Speed
0x10ED 7 bytes Unknown
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 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).