2024-07-27 13:42:50 +10:00

62 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Keys stored in save file
%LocalAppData%\CrabChampions\Saved\SavedGames
SaveSlot.sav
save appears to be seralised as
## This was an incorrect assumption
PropertyName (Fixed size) Property Type (Fixed size) Property (Dynamic based on type?)
## These were also somewhat incorrect, I don't think the fields are byte aligned anymore
Propertyname:
- Not fixed size
- Appears to be NULL terminated strings
- Appears to be fit into 16 byte chunks
- IE: 'Keys' is stored in 16 bytes and 'AccountLevel' is stored in 32 bytes
- After keys there is an `0x0C` that I am not sure what that is yet, its after the NULL byte for a few strings
- There is always a value after the NULL byte I've seen `0x0C` and `0x0D` so far (Might indicate the size of the data or the data is always a fixed size)
PropertyType
- Not fixed size
- Appears to be fit into 16 byte chunks
- IE: 'IntProperty' is stored in 32 bytes
- Value is directly after padding
- Value stored in MAYBE 16 bytes ( HIGHLY DOUBT IT)
- 16 bytes contain `19 00 00 00 0B 00 00 00`
- 19 being the current keys I have
---------
Property Type fields
[PROPERTY_TYPE_NAME][NULL][PROPERTY_SIZE][NULL * 8][PROPERTY_VALUE][NULL * 3][NEXT_LABEL_SIZE][NULL * 3]
```
IntProperty
```
```
49 6E 74 50 72 6F 70 65 72 74 79 00 04 00 00 00 00 00 00 00 00 19 00 00 00 0B 00 00 00
```
```
Keys IntProperty
```
```
00 00 00 05 00 00 00 4B 65 79 73 00 0C 00 00 00 49 6E 74 50 72 6F 70 65 72 74 79 00 04 00 00 00 00 00 00 00 00 09 00 00 00
```
# Format is (This one seems correct)
[NULL] * 3 | [SIZE OF LABEL] | [NULL] to end of value size | [LABEL] (NULL TERMINATED) | [NULL] | [PROPERTY TYPE LABEL SIZE] | [NULL] to end of value size | [PROPERTY TYPE LABEL] (NULL TERMINATED) | [NULL] to end of value size | [SIZE OF DATA VALUE] | [NULL * 8] (padding?) | [DATA VALUE] | [NULL] to end of value size
Property/Type/Offset
Keys/Int/0x12DB
appears to use three null bytes as a separator between things
Serialisation starts at `0x42A` with the size of the crab champions version option