Difference between revisions of "Save File Format"
m (→LINF) |
m (→LINF) |
||
Line 74: | Line 74: | ||
|- | |- | ||
!4 | !4 | ||
− | |||
− | |||
− | |||
− | |||
!1 Byte | !1 Byte | ||
|Lance's attack stat | |Lance's attack stat | ||
|- | |- | ||
− | ! | + | !5 |
!1 Byte | !1 Byte | ||
|Lance's defense stat | |Lance's defense stat | ||
|- | |- | ||
− | ! | + | !6 |
!1 Byte (packed) | !1 Byte (packed) | ||
|Various flags about Lance's state: | |Various flags about Lance's state: | ||
Line 94: | Line 90: | ||
* Bit 7: Unused | * Bit 7: Unused | ||
|- | |- | ||
− | ! | + | !7 |
!1 Byte (packed) | !1 Byte (packed) | ||
|Various flags about the game itself: | |Various flags about the game itself: | ||
Line 109: | Line 105: | ||
* Bits 6-7: Unused. | * Bits 6-7: Unused. | ||
|- | |- | ||
− | ! | + | !8 |
− | ! | + | !4 Bytes |
|How many Pretty Petals Lance has in his possession. | |How many Pretty Petals Lance has in his possession. | ||
|- | |- | ||
− | ! | + | !12 |
!2 Bytes | !2 Bytes | ||
|Which save location Lance saved at. | |Which save location Lance saved at. | ||
+ | |- | ||
+ | !14 | ||
+ | !3 Bytes | ||
+ | |Reserved for future use. | ||
|- | |- | ||
!colspan=3|Lance's Active Abilities | !colspan=3|Lance's Active Abilities |
Revision as of 04:23, 8 November 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 will support up to 100 save files, but more can be added later if it is necessary.
OTTSAVFF.BIN
is used for the Autosave file. Save slot 0
is not used.
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 524
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_fixed
. It is 1 byte aligned.
Header
OTTSAV
files start with the following header string:
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.
Please Note this is not a string that is to be read with buffer_string
or buffer_text
. It is instead read as unsigned bytes
, and then the bytes are compared to see if the header is correct or not. The value 00
is actually ASCII, and will be $3030
.
The header is followed immediately by time information. This is 6 Bytes
that represent the time that this file was saved, as well as how long the player has been playing the game. The format for these 6 bytes is below.
Bytes | Bits | Usage |
---|---|---|
2 Bytes | 4 Bits | Month (1-12, though 16 months are possible there aren't actually that many months in a year.) |
5 Bits | Day (up to 31 days) | |
7 Bits | Year (since 2019) Allows up to 128 years. If you're from the year 2148 and are having problems with the game, please see config.ini's BaseTime option to change the base year this value counts from. | |
4 Bytes | 2 Bits | The first two bits are unused. |
11 Bits | Time that the player saved the file at, in minutes. There are 1440 minutes in a day. | |
19 Bits | Seconds the player has been playing. Allows for 524,287 seconds, but the clock will only go up to 99 hours, 59 minutes, and 59 seconds (this is 360,000 seconds.) |
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 65 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 | 1 Byte (packed) | Various flags about Lance's state:
|
7 | 1 Byte (packed) | Various flags about the game itself:
|
8 | 4 Bytes | How many Pretty Petals Lance has in his possession. |
12 | 2 Bytes | Which save location Lance saved at. |
14 | 3 Bytes | Reserved for future use. |
Lance's Active Abilities | ||
Each ability is stored using a 16bit value. The format is as follows:
This format continues for each of the 3 upgrades possible. Below, the names of each ability and its upgrades will be displayed. Each one represents 4 bits, and are in the order shown to make the 16 bits. Lance's abilities are detailed here. Lance cannot use an ability upgrade for an ability he does not have. For instance, if he finds the Ultra Spin upgrade for the Super Spin ability, but does not have the Super Spin ability, he will not be able to use it. | ||
17 | 2 Bytes | Shield Ability - Homing - Wave - Indestructable |
19 | 2 Bytes | Dagger - Explosion - Piercer - Surplus |
21 | 2 Bytes | Lance - Doubletime - Javelin - Grand Lance |
23 | 2 Bytes | Fire - Flame On - Long Distance - Triple Flame |
25 | 2 Bytes | Ice - Chill Master - Ice Spreader - Cool Blast |
27 | 2 Bytes | Super Spin - Ultra Spin - Radical Spin - Sure Footed |
29 | 2 Bytes | Air Dash - Distance Dash - Sharp Wind - Maneuverability |
31 | 2 Bytes | Boomerang - Doublerang - Returner - Center of Focus |
33 | 8 Bytes | Reserved, allows for 4 more Active Abilities to be added in later. |
Passive Abilities | ||
The format for Lance's abilities is as follows:
Lance's Passive abilities can be viewed here. | ||
41 | 1 Byte
(Format 1) |
|
42 | 1 Byte
(Format 1) |
|
43 | 1 Byte
(Format 1) |
|
44 | 1 Byte
(Format 1) |
|
45 | 1 Byte
(Format 1) |
|
46 | 1 Byte
(Format 2) |
Lucky |
47 | 1 Byte
(Format 2) |
Magic Master |
48 | 1 Byte
(Format 2) |
Attack Up |
49 | 1 Byte
(Format 2) |
Defense Up |
50 | 1 Byte
(Format 2) |
HP Up |
51 | 1 Byte
(Format 2) |
Magic Up |
52 | 10 Bytes | Reserved for future use. |
Upgrades | ||
Lance can have up to 255 of each upgrade, although if the amount of upgrades would exceed the amount possible, then the result will be capped. | ||
62 | 1 Byte | Attack Increase |
63 | 1 Byte | Defense Increase |
64 | 1 Byte | Magic Meter Increase |
65 | 1 Byte | Health Increase |
Story Progress (Quests) | ||
Lance keeps track of his progress in a notebook. Each entry supports up to 15 steps in the quest, where a value of 0 means that Lance doesn't know about it (and it won't show up in his notebook) and a value of 15 means the quest is complete. The first 4 bits represent the progress of the first quest, and the last 4 bits represents the progress of the last quest.
Special Note: What each bit will represent will be added in while the game is being developed. | ||
66 | 1 Byte | First 4 bits - Roo Express (Parker)
Last 4 bits - Underground Forest (Suzette) |
67 | 1 Byte | First 4 bits - Marine Exhibit (Ruby)
Last 4 bits - Mt. Bophades (Trent) |
68 | 1 Byte | First 4 bits - Sky Cat Airship Fleet (Olivia)
Last 4 bits - Cat Castle (Claire) |
69 | 16 Bytes | Reserved for up to 32 more quests. |
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. |
---|
OEND
This denotes the end of the file, and prevents the file from being truncated by having some kind of data at the end.