Difference between revisions of "Save File Format"
m |
m |
||
Line 16: | Line 16: | ||
Save information is stored in blocks, where each block has a certain data associated with it. <b>There <u>cannot</u> be two blocks of the same type.</b> All blocks listed below must be present, or the file will be considered invalid. They must also be in the correct spot, or the file will be invalid. | Save information is stored in blocks, where each block has a certain data associated with it. <b>There <u>cannot</u> be two blocks of the same type.</b> All blocks listed below must be present, or the file will be considered invalid. They must also be in the correct spot, or the file will be invalid. | ||
− | The save file is expected to be exactly <code> | + | The save file is expected to be exactly <code>479</code> bytes in size. If it isn't, then it is considered invalid. |
In Gamemaker, it is loaded and saved as a Buffer with type <code>buffer_fast</code>. It is <code>buffer_u8</code> 1 byte aligned. | In Gamemaker, it is loaded and saved as a Buffer with type <code>buffer_fast</code>. It is <code>buffer_u8</code> 1 byte aligned. |
Revision as of 18:46, 27 September 2019
Warning! | The information detailed on this page may not be in the present available build, and may only be available in an upcoming build! Therefore, all information here is to be considered volatile and could change or be removed without notice. |
---|
Warning! | The information below is to be considered a draft. This means that the information presented is not final, so don't go running wild with this information. |
---|
Shield Cat saves are stored in the /saves
directory. This directory is platform specific, please see Installation Instructions for its location on your platform.
Please note, save files can only be easily accessed and modified on Windows
, Mac OS
, and Linux
. It may be possible on other platforms, but it is not supported.
Shield Cat save files are saved using the following structure:
OTTSAV00.BIN
where 00
is the number of the save file. The game, therefore, supports up to 254 save files.
OTTSAVEFF.BIN
is used for the Autosave file.
Save information is stored in blocks, where each block has a certain data associated with it. There cannot be two blocks of the same type. All blocks listed below must be present, or the file will be considered invalid. They must also be in the correct spot, or the file will be invalid.
The save file is expected to be exactly 479
bytes in size. If it isn't, then it is considered invalid.
In Gamemaker, it is loaded and saved as a Buffer with type buffer_fast
. It is buffer_u8
1 byte aligned.
Header
OTTSAV
files start with the following header:
SC_OTTSAV_V00
where 00
is the version of the save format. During the prototype phase, all save files will use format 00. The format may also change a lot.
LINF
The LINF
block contains info about Lance and the abilities he has, max health, max magic, attack, defense, abilities equipped, and others. It is 50 Bytes
in length.
Please note that Lance's health, magic, attack, and defense are computed from his base stats + any upgrades that you may have, and are provided for convenience. If you modify these numbers, and then Lance gets a new upgrade, the numbers will be corrected.
Offset | Bytes | Description |
---|---|---|
0 | 2 Bytes | Lance's max health |
2 | 2 Bytes | Lance's max magic |
4 | 1 Byte | Lance's attack stat |
5 | 1 Byte | Lance's defense stat |
6 | 4 Bytes | The abilities Lance has, as packed bytes. Please see the Ability Byte Format table below. |
10 | 4 Bytes | The abilities Lance has equipped, as packed bytes. Please see the Ability Byte Format table below.
Please note that if it is marked Lance has an ability equipped that he does not actually have, undefined behavior will occur. |
14 | 1 Byte (packed) | Various flags about Lance's state:
|
15 | 1 Byte (packed) | Various flags about the game itself:
|
16 | 3 Bytes | How many Pretty Petals Lance has in his possession. |
19 | 1 Byte | Which save location Lance saved at. |
20 | 2 Bytes | Lance's current health. |
22 | 2 Bytes | Lance's current magic. |
24-50 | 26 Bytes | Unused, reserved for future use. |
Below is an explaination of the packed bytes that represent the abilities Lance currently owns and has equipped. For a detailed explaination of his abilities, please visit Lance's Abilities.
Ability Byte Format | |
---|---|
Bit Offset | Ability/Upgrade Name |
Shield | |
0 | Shield Ability |
1 | Shield Upgrade - Homing |
2 | Shield Upgrade - Wave |
3 | Shield Upgrade - Indestructible |
Dagger | |
4 | Dagger Ability |
5 | Dagger Upgrade - Explosion |
6 | Dagger Upgrade - Piercer |
7 | Dagger Upgrade - Surplus |
FLGS
These are event flags for different events that happen in the game. It is 256
bytes in length, with 2048
possible event flags. If a value is 0
then it hasn't happened yet, while a value of 1
means that the event occurred.
Below is a description of the flag offsets, and what each one means when it is set to 1
.
Please note that not all flags are consecutive. This allows me to add more later and group them together.
Bit Offset | Bit description |
---|---|
Boss States | |
0 | Parker defeated |
1 | Suzette defeated |
2 | Trent defeated |
3 | Olivia defeated |
4 | Ruby defeated |
5 | Claire defeated |
TRSR
These are the different treasure locations in the game, and whether you got the treasure at that location or not. This block is 128
bytes in length, allowing for 1024
treasures.
Please Note that not every treasure slot is used. This allows me to add more treasures later and keep them in the same group.
This page is a stub. Roxy will probably come along later and add more to it. |
---|
ACHV
These are flags for the different Achievements you can get in the game. It is 16
bytes in length, allowing for 128
achievements. (However, it is unlikely that this many achievements will be in the game.)
This page is a stub. Roxy will probably come along later and add more to it. |
---|