Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
ff6a:doc:savefile [2018/08/11 18:30] jvh147 slot 1 data |
ff6a:doc:savefile [2019/02/27 18:29] jvh147 some info. |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== GBA Save File ===== | ===== GBA Save File ===== | ||
- | All the test have been made on a (U) save file (.sav). The first $1E00 bytes of the file are 3 blocks of $A00 bytes for the 3 save slots. They are somewhat similar to SNES SRAM $1600-$1FFF. | + | Most of the test have been made on a (U) save file (.sav). The save file contains three save slots, a quicksave slot and some identifying save marks. A large portion |
^ Offsets | ^ Offsets | ||
| '' | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
- | | '' | + | | '' |
- | | '' | + | | '' |
- | | '' | + | | '' |
- | | '' | + | |
- | | '' | + | |
- | | '' | + | |
- | | '' | + | |
| '' | | '' | ||
| '' | | '' | ||
Line 21: | Line 16: | ||
| '' | | '' | ||
- | ==== Slot 1 data ==== | + | ==== Slot data ==== |
- | ^ Offsets | + | This block is the regular save data space and the first $1E00 bytes of the file are 3 blocks of $A00 bytes for the 3 save slots. They are mostly similar to SNES [[ff3: |
+ | ^ Offsets ^ Description ^ | ||
| Character block (repeat 16 times) || | | Character block (repeat 16 times) || | ||
| '' | | '' | ||
Line 41: | Line 37: | ||
| | e: petrify | | | | e: petrify | | ||
| | i: imp | | | | i: imp | | ||
- | | | c: clear | | + | | | c: invisible |
| | m: magitek | | | | m: magitek | | ||
| | p: poison | | | | p: poison | | ||
| | z: zombie | | | | z: zombie | | ||
- | | | d: dark | | + | | | d: blind | |
| '' | | '' | ||
| | f: float | | | | f: float | | ||
Line 51: | Line 47: | ||
| | h: hide (?) | | | | h: hide (?) | | ||
| | c: control (?) | | | | c: control (?) | | ||
- | | | m: morph (?) | | + | | | m: trance |
- | | | l: life 3 (?) | | + | | | l: reraise |
| | z: freeze | | | z: freeze | ||
| | r: rage (?) | | | | r: rage (?) | | ||
Line 68: | Line 64: | ||
| '' | | '' | ||
| End of character block || | | End of character block || | ||
+ | | Roster (16 bytes. One byte per character.) || | ||
+ | | '' | ||
+ | | | v: Character is visible | | ||
+ | | | e: Character is enabled | | ||
+ | | | r: Battle Row (back row if set) | | ||
+ | | | b: Battle Order (1-4) | | ||
+ | | | p: Party (0: unassigned, 1-3: groups) | | ||
+ | | Generic Data || | ||
| '' | | '' | ||
| '' | | '' | ||
Line 77: | Line 81: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
| '' | | '' | ||
Line 105: | Line 109: | ||
| '' | | '' | ||
| | a: A button mapping (0 = start, 1 = A, 2 = B, 3 = X, 4 = Y, 5 = top L, 6 = top R, 7 = select) | | | | a: A button mapping (0 = start, 1 = A, 2 = B, 3 = X, 4 = Y, 5 = top L, 6 = top R, 7 = select) | | ||
- | | | b: B button mapping | + | | | b: B button mapping |
| '' | | '' | ||
| | x: X button mapping | | | | x: X button mapping | | ||
Line 129: | Line 133: | ||
| | b-h: same as a | | | | b-h: same as a | | ||
| '' | | '' | ||
- | | | m: permanent | + | | | m: permanent |
- | | | t: morph lasts twice as long (set after Humbaba battle) | | + | | | t: trance |
| | f: magic only (Cultists' | | | f: magic only (Cultists' | ||
| '' | | '' | ||
Line 138: | Line 142: | ||
| | b: ran away from previous battle | | | | b: ran away from previous battle | | ||
| | e: gained AP is displayed (espers have been acquired) | | | | e: gained AP is displayed (espers have been acquired) | | ||
- | | | m: morph is available | | + | | | m: trance |
| | s: enables scene with LOCKE and EDGAR if TERRA uses magic. | | | | s: enables scene with LOCKE and EDGAR if TERRA uses magic. | | ||
| | g: game over after battle ends | | | | g: game over after battle ends | | ||
Line 157: | Line 161: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
- | | '' | + | | '' |
| '' | | '' | ||
| Position data || | | Position data || | ||
Line 170: | Line 174: | ||
| | m: Current Map Index | | | | m: Current Map Index | | ||
| '' | | '' | ||
- | | '' | + | | '' |
- | | '' | + | | '' |
| '' | | '' | ||
| Other Data || | | Other Data || | ||
Line 185: | Line 189: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
| | p: Pause timer in menu and battle. | | | | p: Pause timer in menu and battle. | | ||
Line 192: | Line 196: | ||
| | m: Timer is visible in menu and battle (timer 0 only). | | | | m: Timer is visible in menu and battle (timer 0 only). | | ||
| '' | | '' | ||
- | | '' | + | | '' |
- | | || | + | | End of timer block || |
| '' | | '' | ||
- | | '' | + | | Event Variables |
| '' | | '' | ||
| '' | | '' | ||
Line 201: | Line 205: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | More position data || |
+ | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
+ | | Checkum || | ||
| '' | | '' | ||
+ | |||
+ | ==== Save marks ==== | ||
+ | This block contains various identifying save marks. | ||
+ | ^ Offsets ^ Description ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | ==== Data extension ==== | ||
+ | A block of data was added to the GBA port. Item inventory and Esper data were moved here when compared to the SNES version. The size of the block is 1024 bytes including a two byte checksum and it repeats three times for the three save slots. | ||
+ | ^ Offsets ^ Description ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | ==== Bestiary ==== | ||
+ | Bestiary was included in the GBA version and this block has its data. The size of the block is 1024 bytes including a two byte checksum and it repeats three times for the three save slots. Two bytes are used per monster and the byte order is the same as the monster index order. For a monster to appear in the bestiary, it needs to be slain at least once in a victorious battle. The victory increments a slain counter which gets values from 0x0-7FFF. 0x8000 clears the new entry flag. Total space is 1022/2 = 511 slots of which 384 are for pages visible in the game browser, 39 for unlisted monsters and the rest 88 are assumed to be empty. The last two bytes hold the bestiary checksum. | ||
+ | |||
+ | | Bestiary || | ||
+ | | '' | ||
+ | | '' | ||
+ | | Checksum || | ||
+ | | '' | ||
+ | |||
+ | Example values: | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | |||
+ | ==== Quicksave Slot ==== | ||
+ | A quicksave option was included in the GBA port and it enables the player to temporary save the game almost anywhere. Quicksave cannot directly be transferred to the other slots in-game, but contains the same data as the other slots plus some additions. | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ |