This section lists the game-specific headers, footers and protections on the savegame. See the section on the profile page for per-platform protections.
All platforms
A 4 byte header specifying the length of the database is the first field in the save. All pointers in the database are relative to offset 4 in the file because of this. After the database is 0x47000 bytes of null data. Additional data follows on PC.
PC
The database is followed by 1024 characters storing the login token. The token is followed by a chunk of length 0x10. If nobody is logged in, this is null. If an account is logged in, this stores a 32-bit integer with value 2, 4 bytes of padding, and a 64-bit integer (or 32-bit with 4 bytes padding) which is presumably the account ID.
After this is a 128-bit hash used for savegame validation. Without recalculating the hash, saves cannot be modified. The algorithm used is currently unknown.
PC (Remastered)
The database is followed by a space character (0x20), then the same 128-bit hash as is used in the original PC game. No padding is present.
Other platforms
No game-specific headers, footers or protections are present on other platforms.
Row definitions
Row definitions define the fields, or columns, used in each table. With different schema versions, new row definitions may be added and existing ones may be altered or removed.
Although row definitions are best read programmatically with the rest of the database, the structures they define are provided in a subpage for those who want to read them manually.