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. (PSX header is 512 Bytes, checksum @ 0x200) (PC header is 9 bytes, checksum @ 0x11) 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.
Offset | Length | Description | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 2(4) bytes | Checksum (how to generate) | |||||||||||
0x0004 | 1 byte | Save Preview: Lead character's level | |||||||||||
0x0005 | 1 byte | Save Preview: Lead character's portrait | |||||||||||
0x00: Cloud | 0x07: Vincent | ||||||||||||
0x0006 | 1 byte | Save Preview: 2nd character's portrait | |||||||||||
0x0007 | 1 byte | Save Preview: 3rd character's portrait | |||||||||||
0x0008 | 16 bytes | Save Preview: Lead character's name, FF Text format , terminated with 0xFF | |||||||||||
0x0018 | 2 bytes | Save Preview: Lead character's current HP | |||||||||||
0x001A | 2 bytes | Save Preview: Lead character's max HP | |||||||||||
0x001C | 2 bytes | Save Preview: Lead character's current MP | |||||||||||
0x001E | 2 bytes | Save Preview: Lead character's max MP | |||||||||||
0x0020 | 4 bytes | Save Preview: Amount of Gil | |||||||||||
0x0024 | 4 bytes | Save Preview: Total number of seconds played | |||||||||||
0x0028 | 32 bytes | Save 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 | |||||||||||
0x00D8 | 132 bytes | Character Record: Barret | |||||||||||
0x015C | 132 bytes | Character Record: Tifa | |||||||||||
0x01E0 | 132 bytes | Character Record: Aeris's | |||||||||||
0x0264 | 132 bytes | Character Record: Red XIII | |||||||||||
0x02E8 | 132 bytes | Character Record: Yuffie | |||||||||||
0x036C | 132 bytes | Character Record: Cait Sith (or Young Cloud) | |||||||||||
0x03F0 | 132 bytes | Character Record: Vincent (or Sephiroth) | |||||||||||
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 | Alignment (Always 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 save materia list ] | |||||||||||
0x0A9C | 192 bytes | Materia stolen by Yuffie, 4 bytes per materia, 48 materia max [See save materia list ] | |||||||||||
0x0B5C | 32 bytes | z_3 Unknown (Always 0xFF?) | |||||||||||
0x0B7C | 4 bytes | Party's Gil amount | |||||||||||
0x0B80 | 4 bytes | Total number of seconds played | |||||||||||
0x0B84 | 4 bytes | Countdown Timer (in seconds) | |||||||||||
0x0B88 | 12 bytes | z_4 Unknown | |||||||||||
0x0B88 | 4 byte | Used to calculate fractions of seconds (1/65535) of Game timer (0x0B80). | |||||||||||
0x0B8C | 4 byte | Used to calculate fractions of seconds (1/65535) of Countdown timer (0x0B84). | |||||||||||
0x0B90 | 4 byte | This is set along with Current map value (0x0B94). | |||||||||||
0x0B94 | 2 bytes | Current module | |||||||||||
0x0B96 | 2 bytes | Current location | |||||||||||
0x0B98 | 2 bytes | Alignment (Always 0x00) | |||||||||||
0x0B9A | 2 bytes | X location on Field map (Signed) | |||||||||||
0x0B9C | 2 bytes | Y location on Field map (Signed) | |||||||||||
0x0B9E | 2 bytes | Triangle Id of player on Field map (Unsigned) | |||||||||||
0x0BA0 | 1 byte | Direction of Player Model on Field Map(Unsigned) | |||||||||||
0x0BA1 | 3 bytes | z_6 Unknown | |||||||||||
0x0BA1 | 1 byte | Field Encounter Timer: StepID/Seed ([1]) | |||||||||||
0x0BA2 | 1 byte | Field Encounter Timer: Offset ([2]) | |||||||||||
0x0BA3 | 1 byte | Alignment (Always 0x00) | |||||||||||
0x0BA4 | [BEGINNING OF FIELD SCRIPT MEMORY BANK 1 (1/2)] | ||||||||||||
0x0CA4 | [BEGINNING OF FIELD SCRIPT MEMORY BANK 2 (3/4)] | ||||||||||||
0x0DA4 | [BEGINNING OF FIELD SCRIPT MEMORY BANK 3 (B/C)] | ||||||||||||
0x0EA4 | [BEGINNING OF FIELD SCRIPT MEMORY BANK 4 (D/E)] | ||||||||||||
0x0FA4 | [BEGINNING OF FIELD SCRIPT MEMORY BANK 5 (7/F)] | ||||||||||||
0x10A4 | 2 bytes | PHS Locking Mask (1: Locked) | |||||||||||
| |||||||||||||
0x10A6 | 2 bytes | PHS Visibility Mask (does not turn off party characters) | |||||||||||
| |||||||||||||
0x10A8 | 48 bytes | z_39 Unknown (Always 0x00?) | |||||||||||
0x10D8 | 1 byte | Battle Speed (0x00: fastest, 0xFF: slowest) | |||||||||||
0x10D9 | 1 byte | Battle Message Speed | |||||||||||
0x10DA | 1 byte | General configuration | |||||||||||
Sound: mono (0x00); stereo (0x01) | |||||||||||||
Controller: normal (0x00); customize (0x04) | |||||||||||||
Cursor: initial (0x00); memory (0x10) | |||||||||||||
ATB: Active (0x00); Recommended (0x40); Wait (0x80) | |||||||||||||
0x10DB | 1 byte | General configuration (continued) | |||||||||||
Camera angle: Auto (0x00); Fix (0x01) | |||||||||||||
Magic order: (game crashes if flag set to 0x18 or 0x1C) | |||||||||||||
Extra battle window displaying information: Inactive (0x00); Active (0x40) | |||||||||||||
0x10DC | 16 bytes | Controller Mapping (PSX ONLY) | |||||||||||
0x10EC | 1 byte | Message Speed | |||||||||||
0x10ED | 8 bytes | z_40 Unknown (Always 0x00?) |
Table 1: FF7 Save Slot
Save Memory Bank 1/2
Offset | Length | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0BA4 | 2 byte | Main progress variable | ||||||||||||
0x0BA6 | 1 Byte | Yuffie's Initial Level (z_7 Unknown) Byte value before Yuffie join the team: 0x00. | ||||||||||||
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 | 17 bytes | z_8 Unknown | ||||||||||||
0x0BAB | 1 byte | 1st temp party member char ID placeholder | ||||||||||||
0x0BAC | 1 byte | 2nd temp party member char ID placeholder | ||||||||||||
0x0BAD | 1 byte | 3ed temp party member char ID placeholder | ||||||||||||
0x0BAE | 6 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BB4 | 1 byte | Game Timer Hours | ||||||||||||
0x0BB5 | 1 byte | Game Timer Minutes | ||||||||||||
0x0BB6 | 1 byte | Game Timer Seconds | ||||||||||||
0x0BB7 | 1 byte | Game Timer Frames. From 0x00 to ~0x21 in one sec.(33 FPS?) | ||||||||||||
0x0BB8 | 1 bytes | Countdown Timer Hours | ||||||||||||
0x0BB9 | 1 bytes | Countdown Timer Minutes | ||||||||||||
0x0BBA | 1 bytes | Countdown Timer Seconds | ||||||||||||
0x0BBB | 1 bytes | Countdown Timer Frames. From 0 to 30 (dec) in one sec. | ||||||||||||
0x0BBC | 2 bytes | Number of battles fought | ||||||||||||
0x0BBE | 2 bytes | Number of escapes | ||||||||||||
0x0BC0 | 2 bytes | Menu Visiblity Mask (Quit not affected) | ||||||||||||
| ||||||||||||||
0x0BC2 | 2 bytes | Menu Locking Mask (1: Locked) (Quit not affected) | ||||||||||||
| ||||||||||||||
0x0BC4 | 16 bytes | z_9 Unknown | ||||||||||||
0x0BC4 | 4 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BC8 | 1 byte | Field Items, Sector 7 Train Graveyard | ||||||||||||
0x0BC9 | 1 byte | Field Items | ||||||||||||
0x0BCA | 10 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BD4 | 1 byte | Item bit mask (LBS)(applied when you pick them up). Field Item / Materia | ||||||||||||
0x0BD5 | 1 byte | Materia Cave / Northern Cave (Item bit mask) | ||||||||||||
0x0BD6 | 14 bytes | z_10 Unknown | ||||||||||||
0x0BD6 | 1 byte | Field Items Northern Cave | ||||||||||||
0x0BD7 | 1 byte | Field Items | ||||||||||||
0x0BD8 | 4 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BDC | 1 byte | Field Items, Sector 7 Wall Market and Shinra HQ | ||||||||||||
0x0BDD | 1 byte | Field Items, Shinra HQ | ||||||||||||
0x0BDE | 1 byte | Field Items | ||||||||||||
0x0BDF | 1 byte | Field Items | ||||||||||||
0x0BE0 | 4 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BE4 | 8 bytes | Key items [see Key Item List] | ||||||||||||
0x0BEC | 8 bytes | z_11 Unknown | ||||||||||||
0x0BEC | 1 byte | Northern Cave - Progress (TODO: more info) | ||||||||||||
0x0BED | 1 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BEE | 1 byte | Northern Cave - Progress (TODO: more info) | ||||||||||||
0x0BEF | 1 byte | Items mask, Chocobo Farm (LBS)(applied when you take the item). | ||||||||||||
0x0BF0 | 4 byte | Unknown (Always 0x00?) | ||||||||||||
0x0BF4 | 1 byte | Aeris battle love points | ||||||||||||
0x0BF5 | 1 byte | Tifa battle love points | ||||||||||||
0x0BF6 | 1 byte | Yuffie battle love points | ||||||||||||
0x0BF7 | 1 byte | Barret battle love points | ||||||||||||
0x0BF8 | 1 bytes | z_12 Unknown | ||||||||||||
0x0BF9 | 1 byte | Rating for Penned Chocobo Number 1 (01: Wonderful -> 08: Worst) | ||||||||||||
0x0BFA | 1 byte | Rating for Penned Chocobo Number 2 | ||||||||||||
0x0BFB | 1 byte | Rating for Penned Chocobo Number 3 | ||||||||||||
0x0BFC | 1 byte | Rating for Penned Chocobo Number 4 | ||||||||||||
0x0BFD | 2 bytes | z_13 Unknown | ||||||||||||
0x0BFF | 3 bytes | Ultimate Weapon's remaining HP | ||||||||||||
0x0C02 | 28 bytes | z_14 Unknown | ||||||||||||
0x0C02 | 1 byte | Northern Cave, bit mask | ||||||||||||
0x0C14 | 2 bytes | Current Battle Points (Battle Square) | ||||||||||||
0x0C18 | 1 byte | Current Number of Battles Won (Battle Square) | ||||||||||||
0x0C1E | 1 bytes | Needs more research. (bit=0: show tutorial. bit=1: hide tutorial.) | ||||||||||||
0x0C1F | 1 bytes | Weapons Killed | ||||||||||||
0x0C20 | 4 bytes | z_15 Unknown | ||||||||||||
0x0C20 | 1 byte | Which Chocobo was taken out from the stable. | ||||||||||||
0x0C21 | 1 byte | Riding off wild chocobo dialog options. | ||||||||||||
0x0C22 | 1 byte | Chocobo display value on world map (LBS). | ||||||||||||
0x0C23 | 1 byte | Vehicle display value on world map (LBS). | ||||||||||||
0x0C24 | 97 bytes | z_16 Unknown | ||||||||||||
0x0C24 | 1 byte | Field mask, Corel (LBS)(applied when you take the item). | ||||||||||||
0x0C25 | 1 byte | Field mask (LBS)(applied when you take the item). | ||||||||||||
0x0C26 | 1 byte | Field mask (LBS)(applied when you take the item). | ||||||||||||
0x0C27 | 1 byte | Field mask (LBS)(applied when you take the item). | ||||||||||||
0x0C28 | 1 byte | Field mask (LBS)(applied when you take the item). | ||||||||||||
0x0C29 | 1 byte | Field mask, Whirlwind Maze (LBS)(applied when you take the item). | ||||||||||||
0x0C2A | 1 byte | Field mask, Whirlwind Maze (LBS)(applied when you take the item). | ||||||||||||
0x0C2B | 1 byte | Field mask, Whirlwind Maze (LBS)(applied when you take the item). | ||||||||||||
0x0C44 | 1 byte | Progress items, Wallmarket (LBS). | ||||||||||||
0x0C45 | 1 byte | Progress items, Wallmarket (LBS). | ||||||||||||
0x0C46 | 1 byte | Progress items, Wallmarket (LBS). | ||||||||||||
0x0C47 | 1 byte | Ms. Cloud Bauty level (Don Corneo choice) (0 to 25 Points) | ||||||||||||
0x0C48 | 1 byte | Field Objects, Sector 7 Train Graveyard (LBS) (so far) | ||||||||||||
0x0C49 | 1 byte | Field Items, Sector 7 Wall Market | ||||||||||||
0x0C4A | 1 byte | Number of Fort Condor Battles Fought | ||||||||||||
0x0C4B | 1 byte | Number of Fort Condor Battles Won | ||||||||||||
0x0C4C | 1 byte | Progress, Fort Condor | ||||||||||||
0x0C4D | 1 byte | Battle Rank (Battle difficulty), Fort Condor | ||||||||||||
0x0C4E | 1 byte | Number of Allies left, Fort Condor | ||||||||||||
0x0C4F | 1 byte | Number of Enemies killed, Fort Condor | ||||||||||||
0x0C50 | 1 byte | Battle result, Fort Condor | ||||||||||||
0x0C51 | 2 bytes | Game Progres Temp Var, Fort Condor {convil_4/mihari/s1} | ||||||||||||
0x0C53 | 1 bytes | Number of Enemies left alive in the battle field, Fort Condor | ||||||||||||
0x0C54 | 1 byte | Progress, Fort Condor | ||||||||||||
0x0C55 | 1 byte | Progress & Battle Reward, Fort Condor | ||||||||||||
0x0C56 | 1 byte | Progress, Fort Condor | ||||||||||||
0x0C57 | 1 byte | Battle modifier linked with 0x0C4D, Fort Condor | ||||||||||||
0x0C58 | 2 bytes | Fort Condor Funds | ||||||||||||
0x0C5A | 1 byte | Number of Fort Condor Battles Lost | ||||||||||||
0x0C5B | 1 byte | Conversations mask (LBS)(applied when you speak). | ||||||||||||
0x0C5C | 1 byte | Handle the map jumps to MOVE_S(670),MOVE_I,MOVE_F,MOVE_R,MOVE_U,MOVE_D, Great Glacier | ||||||||||||
0x0C5D | 1 byte | Progress, Great Glacier | ||||||||||||
0x0C5E | 2 byte | Store Cloud MAPID, is used to know where to send you after seeing the Glacier Map, Great Glacier {hyoumap/init/s0} | ||||||||||||
0x0C60 | 2 byte | Store Cloud position (X) right before you use the map, Great Glacier | ||||||||||||
0x0C62 | 2 byte | Store Cloud position (Y) right before you use the map, Great Glacier | ||||||||||||
0x0C64 | 2 byte | Store Cloud position (Z) right before you use the map, Great Glacier | ||||||||||||
0x0C66 | 2 byte | Store Cloud position (triangle ID) right before you use the map, Great Glacier | ||||||||||||
0x0C68 | 1 byte | Store Cloud direction right before you use the map, then restore it from it, Great Glacier | ||||||||||||
0x0C69 | 1 byte | Is set to 1 when cloud pass-out, Great Glacier | ||||||||||||
0x0C6A | 1 byte | Cloud Pass-out Counter, Great Glacier | ||||||||||||
0x0C6B | 1 byte | Progress & Field item mask, Great Glacier | ||||||||||||
0x0C74 | 1 byte | Used to save user anwser in the debugroom {BLACKBG7/leave/s1} before Jump to map blin70_4 (No269) | ||||||||||||
0x0C75 | 1 byte | Unknown is set to 0 in Wall Market {MRKT2/mapinit/s0} | ||||||||||||
0x0C84 | 1 byte | Keeps track of which Shinra floors are unlocked (By picking keycards). Values still unknown.(255 all doors opened when set manualy) | ||||||||||||
0x0C85 | 1 byte | Mission 1st reactor flags. | ||||||||||||
0x0C86 | 1 byte | Mission 1st reactor flags. | ||||||||||||
0x0C87 | 29/45 bytes | z_17 Unknown[0-28] First 29 bytes of 45 (ENDS AT 0x0CB3 16 Bytes into next bank) |
Table 1: FF7 Save Slot
Save Memory Bank 3/4
Offset | Length | Description |
---|---|---|
0x0CA4 | 16/45 Bytes | z_17 Unknown[29-44] Last 16 bytes of 45 |
0x0CAD | 1 byte | 1st party member char ID mirror. Is a mirror of 0x04F8 (set from field module). |
0x0CAE | 1 byte | 2nd party member char ID mirror. Is a mirror of 0x04F9 (set from field module). |
0x0CAF | 1 byte | 3ed party member char ID mirror. Is a mirror of 0x04FA (set from field module). |
0x0CB4 | 1 byte | Aeris In Church progression (document this better) |
0x0CB5 | 49 Bytes | z_18 Unknown |
0x0CE6 | 1 byte | Escape from 1st reactor progress. |
0x0CE7 | 7 Bytes | z_19 Unknown |
0x0CEE | 2 bytes | Party GP (0-10000) |
0x0CF0 | 12 Bytes | z_20 Unknown |
0x0CF0 | 1 byte | Chocobo Race - Times you lose (Only on Corel Prision Race){crcin/esto/s0} |
0x0CF3 | 1 Byte | Battle Square Special Dialog Progression {0x00 init, 0x10 :no text, 0xF0:new special fight} |
0x0CF4 | 2 Bytes | Battle Square Battle Points |
0x0CFC | 1 byte | Number of chocobo stables owned |
0x0CFD | 1 byte | Number of occupied stables |
0x0CFE | 1 Byte | Choco Bill dialogs mask 0x01: If you talk him after meteor get summoned (only showed once) {FRMIN/jijii/s1} |
0x0CFF | 1 byte | Chocobo Stables Occupied Mask. LSB 1 2 3 4 5 6 x x MSB Stable #) Chocobo's in stables. 1=0ccupied |
0x0D00 | 1 byte | Chocobos who can't mate LSB 1 2 3 4 5 6 x x MSB (Stable #).The Chocobo Was Just Born or has Recently Mated.1=can't mate |
0x0D01 | 40 Bytes | z_22 Unknown |
0x0D13 | 1 byte | Aeris flower quest progress. |
0x0D23 | 1 byte | Current room in TUNNEL_1. From 1 to 6. If less then 1 then we go to TUNNEL_3. If 6 then to TUNNEL_2. Used instead of duplicating tunnel rooms. Start room set during mission 5 reactor train minigame. |
0x0D24 | 1 byte | Conversations mask, Kalm (LBS)(applied when you speak to someone). |
0x0D26 | 1 byte | Conversations mask, Reactor under the plate (LBS)(applied when you speak). |
0x0D27 | 1 byte | Conversations mask, Reactor under the plate (LBS)(applied when you speak). |
0x0D29 | 1 Byte | Yuffie can be found in the forests? (LSB only) others used? |
0x0D2A | 28 Bytes | z_23 Unknown |
0x0D44 | 1 byte | Conversations mask, Reactor under the plate (LBS). |
0x0D46 | 1 byte | Don's Mission Progress (more needed here) |
0x0D47 | 31 Bytes | z_24 Unknown |
0x0D47 | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D49 | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D4A | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D4C | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D50 | 1 byte | Items mask, Shinra HQ (LBS)(applied when you speak). |
0x0D52 | 2 bytes | Bits kept for the doors at floor 63, Shinra HQ (LBS)(applied when you speak). |
0x0D55 | 1 byte | Item mask, Shinra HQ (LBS)(applied when you speak). |
0x0D56 | 1 byte | Bits kept for some events on floor 63, Shinra HQ (LBS)(Really needs to be investigated). |
0x0D57 | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D58 | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D59 | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D5D | 1 byte | Conversations mask, Shinra HQ (LBS)(applied when you speak). |
0x0D66 | 1 byte | Turtle Paradise Flyers Seen LSB 1 2 3 4 5 6 x x MSB (flyer#) 1=seen 0x01: Sector 7 Slums |
0x0D67 | 12 Bytes | z_25 Unknown |
0x0D67 | 1 byte | Conversations mask |
0x0D68 | 1 byte | Northern Cave: Cloud Lv just before Jenova Synthesis battle start. |
0x0D69 | 1 byte | Northern Cave: Barret Lv just before Jenova Synthesis battle start. |
0x0D6A | 1 byte | Northern Cave: Tifa Lv just before Jenova Synthesis battle start. |
0x0D6B | 1 byte | Northern Cave: Red XII Lv just before Jenova Synthesis battle start. |
0x0D6C | 1 byte | Northern Cave: Yuffie Lv just before Jenova Synthesis battle start. |
0x0D6D | 1 byte | Northern Cave: Cait Sith Lv just before Jenova Synthesis battle start. |
0x0D6E | 1 byte | Northern Cave: Vincent Lv just before Jenova Synthesis battle start. |
0x0D6F | 1 byte | Northern Cave: Cid Lv just before Jenova Synthesis battle start. |
0x0D70 | 1 byte | Bizarro Sephiroth Fight Number of Groups |
0x0D71 | 1 byte | Bizarro Sephiroth Fight, some progress value |
0x0D72 | 1 byte | Great Glacier Snowboard, taken path (Set the exit location where you land) {hyou1/event/s1} |
0x0D73 | 1 byte | Yuffie Regulary. Has the character entered the party regulary? For example Yuffie further appears in the forest if this option is off. |
0x0D74 | 15 Bytes | z_26 Unknown |
0x0D74 | 1 byte | MDS7PLR1 event flags. |
0x0D75 | 1 byte | Conversations mask, MDS7 (LBS)(applied when you speak). |
0x0D76 | 1 byte | Conversations mask, MDS7 (LBS)(applied when you speak). |
0x0D77 | 1 byte | Conversations mask, MDS7 (LBS)(applied when you speak). |
0x0D78 | 1 byte | Conversations mask, MDS7 (LBS)(applied when you speak). |
0x0D79 | 1 byte | Conversations mask, MDS7 (LBS)(applied when you speak). |
0x0D7A | 1 byte | Conversations mask, MDS7 (LBS)(applied when you speak). |
0x0D7B | 1 byte | Items mask, Training room at sector 5 (LBS)(applied when you speak). |
0x0D7C | 1 byte | MDS7ST3 event flags. |
0x0D83 | 1 byte | Midgard train flags. |
0x0D84 | 32/64 Bytes | z_27 Unknown[0-31] First 32 bytes of 64 (ENDS AT 0x0DC3 32 Bytes into next bank) |
0x0D90 | 1 byte | Event flags inside Junon. |
Table 1: FF7 Save Slot
Save Memory Bank B/C
Offset | Length | Description |
---|---|---|
0x0DA4 | 32/64 Bytes | z_27 Unknown[32-63] Last 32 bytes of 64 |
0x0DA4 | 6 bytes | Chocobo Race - Chocobo Name (FF Text format) |
0x0DAA | 1 bytes | Chocobo Race(G1) - Jockey |
0x0DAB | 1 bytes | Chocobo Race(G1) - Course |
0x0DAC | 1 bytes | Chocobo Race(G1) - Bet Selection Screen |
0x0DAD | 1 bytes | Chocobo Race(G1) - ??? |
0x0DAE | 2 bytes | Chocobo Race(G2) - Sprint Speed |
0x0DB0 | 2 bytes | Chocobo Race(G2) - Speed |
0x0DB2 | 1 byte | Chocobo Race(G2) - Acceleration |
0x0DB3 | 1 byte | Chocobo Race(G2) - Cooperation |
0x0DB4 | 1 byte | Chocobo Race(G2) - Intelligence |
0x0DB5 | 1 byte | Chocobo Race(G2) - Type (Yellow, Green, Blue, Black, Gold) |
0x0DB6 | 1 byte | Chocobo Race(G2) - Personality |
0x0DB7 | 1 byte | Chocobo Race(G2) - ??? |
0x0DB8 | 1 byte | Chocobo Race(G2) - ??? |
0x0DB9 | 1 byte | Chocobo Race(G2) - ??? |
0x0DBA | 1 byte | Chocobo Race(G2) - Joe/TEIOH Chalenge |
0x0DBB | 1 byte | Chocobo Race(G2) - Selected Rank |
0x0DBC | 1 byte | Chocobo Race - ??? |
0x0DBD | 1 byte | Chocobo Race - Finish Place (0 to 5) |
0x0DBE | 2 bytes | Chocobo Race(G2) - Stamina |
0x0DC0 | 1 bytes | Chocobo Race(G1) - Winning Prize |
0x0DC4 | 16 bytes | Chocobo slot 1 [See Below 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] |
0x0E04 | 13 Bytes | z_28 Unknown |
0x0E0C | 1 byte | Change on Final Battle |
0x0E0E | 1 byte | Yuffie Stolen Materia Quest - Disabled party members {YUFY1/YUFI} |
0x0E0F | 2 bytes | G-Bike Minigame Last Score {GAMES_2/dic} |
0x0E11 | 2 Bytes | G-Bike Minigame High Score |
0x0E13 | 1 Byte | UnSaved Snowboard Mini Game Temp Var. |
0x0E14 | 4 Bytes | Fastest Time For Snowboard Beginner Course. Format: MMSSTTT0 90 27 36 02 in the file is a time of 2'36"279 (value is 32bit int so will become 02362790 when read ) |
0x0E18 | 4 Bytes | Fastest Time For Snowboard Expert Course. See Beginner Course for more info |
0x0E1C | 4 Bytes | Fastest Time For Snowboard Crazy Course. See Beginner Course for more info |
0x0E20 | 1 Byte | HighScore For Snowboard Beginner Course |
0x0E21 | 1 Byte | HighScore For Snowboard Expert Course |
0x0E22 | 1 Byte | HighScore For Snowboard Crazy Course |
0x0E23 | 1 Byte | UnSaved Snowboard Mini Game Temp Var |
0x0E24 | 2 bytes | 2nd rank at RollerCoaster Shooter |
0x0E26 | 2 bytes | 3rd rank at RollerCoaster Shooter |
0x0E28 | 17 Bytes | z_29 Unknown |
0x0E28 | 1 bytes | Mythril Side Quest/Chocobo Sage Side Quest |
0x0E29 | 1 byte | Chocobo Sage Side Quest - Progression Variable 01: First time you talk to Chocobo Sage |
0x0E2A | 2 bytes | Number of battles to reach in order to unlock the next part of the Chocobo breeding tutorial |
0x0E2C | 1 bytes | Chocobo Sage Side Quest - Part of the random number of battles formula |
0x0E2D | 1 bytes | Unused? |
0x0E2E | 1 bytes | Chocobo Race / Others |
0x0E2F | 1 bytes | Chocobo Race - Selected Chocobo Stable Position (0 to 5) |
0x0E30 | 1 bytes | Unused? |
0x0E2E | 1 bytes | Northern Cave |
0x0E2F | 1 bytes | Northern Cave |
0x0E30 | 1 bytes | Northern Cave - Received items from party in the last talk |
0x0E33 | 1 byte | Lucrecia's Cave sidequest Progression Variable |
0x0E35 | 2 bytes | Lucrecia's Cave sidequest: |
0x0E39 | 2 bytes | 1st rank at RollerCoaster Shooter |
0x0E3C | 105 Bytes | z_30 Unknown |
Table 1: FF7 Save Slot
Save Memory Bank D/E
Offset | Length | Description |
---|---|---|
0x0EA4 | 1 byte | Which game-play Disc is needed |
0x0EA5 | 1 byte | z_31 Tifa's House 0x01: Final Heaven {niv_ti2/piano/s1} |
0x0EA6 | 1 Byte | Start Of Bombing Mission (0x14=Yes, 0x56=No) |
0x0EA7 | 3 bytes | z_32 Unknown |
0x0EA7 | 1 bytes | Northern Cave - Progress (TODO: more info) |
0x0EAA | 2 Bytes | Step counter. Used in great glacier to count the steps until passing out and resetted whenever you enter it. Value to pass out = 544 |
0x0EAC | 22 bytes | z_33 Unknown |
0x0EC2 | 1 byte | Field pointers mask (hand over party leader's head + red and green arrows) |
0x0EC3 | 1 byte | z_34 Unknown. |
0x0EC4 | 6 bytes | Name of Chocobo 1 (FF Text format) |
0x0ECA | 6 bytes | Name of Chocobo 2 (FF Text format) |
0x0ED0 | 6 bytes | Name of Chocobo 3 (FF Text format) |
0x0ED6 | 6 bytes | Name of Chocobo 4 (FF Text format) |
0x0EDC | 6 bytes | Name of Chocobo 5 (FF Text format) |
0x0EE2 | 6 bytes | Name of Chocobo 6 (FF Text format) |
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 | 1 byte | Vincent Regularly/Change Submarine Color. (Bit-mask) |
0x0EF5 | 23 bytes | z_35 Unknown |
0x0EF6 | 1 byte | Vehicle Submarine |
0x0EFD | 1 byte | Northern Cave - Yuffie Split up path |
0x0EFF | 1 byte | Save flag. |
0x0F04 | 1 byte | Northern Cave - Progress (TODO: more info) |
0x0F05 | 1 byte | Northern Cave - Progress (TODO: more info) |
0x0F0C | 24 bytes | Name of location (FF Text format) |
0x0F24 | 5 bytes | z_36 Unknown |
0x0F29 | 1 bytes | Save on the world map - Tutorial seen (To be Checked) |
0x0F2A | 50 bytes | z_37 Unknown |
0x0F2A | 1 byte | Needs more research. 0x01: |
0x0F2B | 1 bytes | 0x20: World map Ruby Weapon form. bit=0: Small Form (before first encounter). bit=1: Big Form (after first encounter). |
0x0F3A | 1 bytes | Rand number between 0,1,2. Is set when you change field map. ex: enter a town. |
0x0F5C | 3 bytes | Party leader's coordinates on world map: |
0x0F5F | 1 bytes | Party leader viewing direction angle on the world map. Value from 0 up to 255 to cover 0 - 359° |
0x0F60 | 3 bytes | Party leader Y position on the world map (Y coord). Value from 1 up to 230000 |
0x0F63 | 1 bytes | Party leader Z altitude on the world map (Z coord). Input value from -128 up to 127 are allowed (0 = Mean Sea Level) |
0x0F64 | 8 bytes | Caught Wild Chocobo's coordinates on world map |
0x0F6C | 8 bytes | Tiny Bronco/Chocobo's coordinates on world map |
0x0F74 | 8 bytes | Buggy/Highwind's coordinates on world map |
0x0F7C | 8 bytes | Submarine/???'s coordinates on world map |
0x0F84 | 8 bytes | Diamond=>Ultimate=>Ruby Weapon's coordinates on world map (ruby is bound To the desert) |
0x0F8C | 2 bytes | 1st Snow Pole X Coordinate. |
0x0F8E | 2 bytes | 1st Snow Pole Y Coordinate. |
0x0F90 | 2 bytes | 2nd Snow Pole X Coordinate. |
0x0F92 | 2 bytes | 2nd Snow Pole Y Coordinate. |
0x0F94 | 2 bytes | 3ed Snow Pole X Coordinate. |
0x0F96 | 2 bytes | 3ed Snow Pole Y Coordinate. |
0x0F98 | 12/236 bytes | z_38 Unknown[0-11] First 12 bytes of 236 (ENDS AT 0x1083 224 Bytes into next bank) |
0x0F9C | 1 bytes | Angle of the world. The viewing direction of the camera onto the world map. For top-view (ca. 45°) this value should be 0. |
0x0F9D | 1 bytes | Top-view (ca. 45°). Determines the camera's position. |
0x0F9C | 2 bytes | Camera angle and rotation of normal world map. |
0x0F9F | 2 bytes | Snow Pole Number/Where address will be overwritten by next pole (cycling 00, 01, 02, 00, 01, 02... ) |
0x0FA0 | 1 bytes | Wild Chocobo Type. |
0x0FA1 | 1 bytes | Riding Byte. |
0x0FA3 | 1 bytes | Unknown. It seems this value is mixture of Number of Snow Poles, Party direction and walking steps or coordinates. Value will be ignored when loading slot. |
Table 1: FF7 Save Slot
Save Memory Bank 7/F
Offset | Length | Description |
---|---|---|
0x0FA4 | 224/236 Bytes | Unknown z_38[12-235] Last 224 bytes of 236 |
0x0FA6 | 1 byte | World map camera & map display |
0x0FAB | 1 byte | If not 0x00, game crashes |
0x0FC4 | 2 bytes | Fields items mask. |
0x0FC6 | 1 byte | Items mask, Chocobo Farm (LBS)(applied when you take the item). |
0x0FF1 | 1 byte | On Buggy vehicle. Specifies if a character is on a Buggy. Only if a Buggy is present. |
0x0FF4 | 1 byte | Items mask, Mythril Mine (LBS)(applied when you take the item). |
0x0FF5 | 1 byte | Items mask, (LBS)(applied when you take the item). |
0x0FF6 | 1 byte | Items mask, (LBS)(applied when you take the item). |
0x0FF9 | 1 byte | Items mask, Kalm (LBS)(applied when you take the item). |
0x0FFB | 1 byte | Kalm Traveler rewards visibility (each bit set back to 0 when picked up) |
0x0FFC | 1 byte | Items mask, Kalm (LBS)(applied when you take the item). |
0x0FFD | 1 byte | Items mask, Kalm (LBS)(applied when you take the item). |
0x0FFE | 1 byte | Items mask, Mythril Mine (LBS)(applied when you take the item). |
0x1004 | 1 byte | 1st party member char ID in Group 1. Final Boss Battle: Bizarro Sephiroth. |
0x1005 | 1 byte | 2nd party member char ID in Group 1. Final Boss Battle: Bizarro Sephiroth. |
0x1006 | 1 byte | 3ed party member char ID in Group 1. Final Boss Battle: Bizarro Sephiroth. |
0x1007 | 1 byte | 1st party member char ID in Group 2. Final Boss Battle: Bizarro Sephiroth. |
0x1008 | 1 byte | 2nd party member char ID in Group 2. Final Boss Battle: Bizarro Sephiroth. |
0x1009 | 1 byte | 3ed party member char ID in Group 2. Final Boss Battle: Bizarro Sephiroth. |
0x100A | 1 byte | 1st party member char ID in Group 3. Final Boss Battle: Bizarro Sephiroth. |
0x100B | 1 byte | 2nd party member char ID in Group 3. Final Boss Battle: Bizarro Sephiroth. |
0x100C | 1 byte | 3ed party member char ID in Group 3. Final Boss Battle: Bizarro Sephiroth. |
0x101E | 1 byte | Items mask, Junon (LBS)(applied when you take the item). |
0x1030 | 1 byte | Field screen rain switch (non-zero to turn on rain effect) |
0x1084 | 16 bytes | Chocobo slot 5 |
0x1094 | 16 bytes | Chocobo slot 6 |
Table 1: FF7 Save Slot
Character Record
Offset | Length | Description |
---|---|---|
0x00 | 1 byte | Character ID - Ignored If Not Cait / Vincent??? |
0x01 | 1 byte | Level (1-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) Game's Naming Boxes Cap you At 9 Chars |
0x1C | 1 byte | Equipped weapon |
0x1D | 1 byte | Equipped armor |
0x1E | 1 byte | Equipped accessory |
0x1F | 1 byte | Character flags - 0x10-Sadness, 0x20-Fury |
0x20 | 1 byte | Char order - 0xFF-Normal, 0xFE-Back row |
0x21 | 1 byte | Level progress bar (0-63) Games Gui Hides Values <4, 4-63 are visible as "progress" |
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 | 4 bytes | Weapon materia slot number 1 |
0x44 | 4 bytes | Weapon materia slot number 2 |
0x48 | 4 bytes | Weapon materia slot number 3 |
0x4C | 4 bytes | Weapon materia slot number 4 |
0x50 | 4 bytes | Weapon materia slot number 5 |
0x54 | 4 bytes | Weapon materia slot number 6 |
0x58 | 4 bytes | Weapon materia slot number 7 |
0x5C | 4 bytes | Weapon materia slot number 8 |
0x60 | 4 bytes | Armor materia slot number 1 |
0x64 | 4 bytes | Armor materia slot number 2 |
0x68 | 4 bytes | Armor materia slot number 3 |
0x6C | 4 bytes | Armor materia slot number 4 |
0x70 | 4 bytes | Armor materia slot number 5 |
0x74 | 4 bytes | Armor materia slot number 6 |
0x78 | 4 bytes | Armor materia slot number 7 |
0x7C | 4 bytes | Armor materia slot number 8 |
0x80 | 4 bytes | EXP to next level |
Table 2: Character Record
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) |
Table 3: Chocobo Record
Save Item List
Each item in the item list is stored as a word value with the quantity, expressed as a 7-bit value, concatenated with the item’s index, expressed as a 9-bit value between the range of 0-320. In Binary: QQQQQQQXXXXXXXXX Where X is the index and Q is the quantity. There are a total of 320 item slots in the save map and a total of 320 objects that are stored there, some of which are dummy items. The objects are indexed like this:
Indexes 0 - 127: Items
Indexes 128 - 255: Weapons
Indexes 256 - 287: Armors
Indexes 288 - 319: Accessories
Quantity is limited (by the menu mechanics) to 99 since there are only two characters available in the item menu to show quantity. A Graphical “glitch” occurs in the ten’s digit when quantity exceeds that number. The menu only checks the current quantity to determine if the value can increase and the quantity will not decrease unless an item is used or sold. Forcing the quantity to exceed 99 does not have any side effect with most versions of the game. The Japanese PSX version(BISLPS-00700) is the only version with a problem when you exceed a quantity of 99 for an item. This version will experience an error during battles when you have more then 99 of an item.
Save Materia List
Materia is stored as a single-byte ID followed by the amount of AP on that instance of Materia stored as an unsigned 24-bit integer.eskill materia does not use the ap value, but instead the 24 bits as switches for each skill that can be learned. For every materia ap =0xFFFFFF when mastered
ID | Name | Type |
---|---|---|
0x00 | MP Plus | Independent |
0x01 | HP Plus | Independent |
0x02 | Speed Plus | Independent |
0x03 | Magic Plus | Independent |
0x04 | Luck Plus | Independent |
0x05 | EXP Plus | Independent |
0x06 | Gil Plus | Independent |
0x07 | Enemy Away | Independent |
0x08 | Enemy Lure | Independent |
0x09 | Chocobo Lure | Independent |
0x0B | Long Range | Independent |
0x0C | Mega All | Independent |
0x0D | Counter Attack | Independent |
0x0E | Slash-All | Command |
0x0F | Double Cut | Command |
0x0A | Pre-emptive | Independent |
0x10 | Cover | Independent |
0x11 | Underwater | Independent |
0x12 | HP <-> MP | Independent |
0x13 | W-Magic | Command |
0x14 | W-Summon | Command |
0x15 | W-Item | Command |
0x16 | Unknown | Placeholder? |
0x17 | All | Support |
0x18 | Counter | Support |
0x19 | Magic Counter | Support |
0x1A | MP Turbo | Support |
0x1B | MP Absorb | Support |
0x1C | HP Absorb | Support |
0x1D | Elemental | Support |
0x1E | Added Effect | Support |
0x1F | Sneak Attack | Support |
0x20 | Final Attack | Support |
0x21 | Added Cut | Support |
0x22 | Steal As Well | Support |
0x23 | Quadra Magic | Support |
0x24 | Steal | Command |
0x25 | Sense | Command |
0x26 | Unknown | Placeholder? |
0x27 | Throw | Command |
0x28 | Morph | Command |
0x29 | Deathblow | Command |
0x2A | Manipulate | Command |
0x2B | Mime | Command |
0x2C | Enemy Skill | Command |
0x2D | Unknown | Placeholder? |
0x2E | Unknown | Placeholder? |
0x2F | Unknown | Placeholder? |
0x30 | Master Command | Command |
0x31 | Fire | Magic |
0x32 | Ice | Magic |
0x33 | Earth | Magic |
0x34 | Lightning | Magic |
0x35 | Restore | Magic |
0x36 | Heal | Magic |
0x37 | Revive | Magic |
0x38 | Seal | Magic |
0x39 | Mystify | Magic |
0x3A | Transform | Magic |
0x3B | Exit | Magic |
0x3C | Poison | Magic |
0x3D | Demi | Magic |
0x3E | Barrier | Magic |
0x3F | Unknown | Placeholder? |
0x40 | Comet | Magic |
0x41 | Time | Magic |
0x42 | Unknown | Placeholder? |
0x43 | Unknown | Placeholder? |
0x44 | Destruct | Magic |
0x45 | Contain | Magic |
0x46 | FullCure | Magic |
0x47 | Shield | Magic |
0x48 | Ultima | Magic |
0x49 | Master Magic | Magic |
0x4A | Choco/Mog | Summon |
0x4B | Shiva | Summon |
0x4C | Ifrit | Summon |
0x4D | Ramuh | Summon |
0x4E | Titan | Summon |
0x4F | Odin | Summon |
0x50 | Leviathan | Summon |
0x51 | Bahamut | Summon |
0x52 | Kujata | Summon |
0x53 | Alexander | Summon |
0x54 | Phoenix | Summon |
0x55 | Neo Bahamut | Summon |
0x56 | Hades | Summon |
0x57 | Typhoon | Summon |
0x58 | Bahamut ZERO | Summon |
0x59 | Knights of Round | Summon |
0x5A | Master Summon | Summon |
0xFF | Empty Slot | NONE |
Table 1: Materia List (PC)
Key Item List
Key Items are stored in Bank 1 of the Savemap, one bit for each item. Bit ON - party has the item.
Variable | Description |
---|---|
0x0BE4 | 0x01: Cotton Dress |
0x0BE5 | 0x01: Diamond Tiara |
0x0BE6 | 0x01: Pharmacy Coupon |
0x0BE7 | 0x01: Key to Ancients |
0x0BE8 | 0x01: Keycard 65 |
0x0BE9 | 0x01: PHS |
0x0BEA | 0x01: Black Materia |
Table 1: Key Items List
KERNEL.BIN Section 4 Entry
During game initialization, section 4 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 0x0B93).
Documentation Notes & Format
Format: Bit mask: Bit description [Hex byte value] {Field Keyword}
Example: 0x04: Set to 1 if we choose no drink when talking to tifa. [0x0F] {MDS7PB_1}
Bit mask: Is the bit position number in hex. Bit7(0x80)|Bit6(0x40)|Bit5(0x20)|Bit4(0x10)|Bit3(0x08)|Bit2(0x04)|Bit1(0x02)|Bit0(0x01)
Note: We use LBS 0 bit numbering.
Bit description: What bit does.
Hex byte value: The Byte’s value in hex when the bit change.(optional)
Field Keyword: Field name code.