Difference between revisions of "Savegame Files"
Jump to navigation
Jump to search
(Let's start this one too) |
(→Header) |
||
Line 25: | Line 25: | ||
|- style="background-color: #ddd;" | |- style="background-color: #ddd;" | ||
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x000C | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x000C | ||
+ | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x000C | ||
+ | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 1 | ||
+ | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | permissions | ||
+ | |- style="background-color: #ddd;" | ||
+ | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x000D | ||
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x000D | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x000D | ||
− | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | | + | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 1 |
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | ?? unknown | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | ?? unknown | ||
|- style="background-color: #ddd;" | |- style="background-color: #ddd;" | ||
Line 94: | Line 99: | ||
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | icon7 (optional, present if size of header is 0xf0a0) | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | icon7 (optional, present if size of header is 0xf0a0) | ||
|} | |} | ||
− | |||
=== Bk Header === | === Bk Header === |
Revision as of 22:33, 3 February 2008
(Feel free to fix or enhance this page)
Format
Header
The Header is 0xF0C0 bytes long.
Start | End | Length | Description |
0x0000 | 0x0007 | 8 | Savegame ID |
0x0008 | 0x000B | 4 | size of header (0x72a0 or 0xf0a0) |
0x000C | 0x000C | 1 | permissions |
0x000D | 0x000D | 1 | ?? unknown |
0x000E | 0x001D | 16 | md5 of plaintext header with md5 blanker applied |
0x001E | 0x001F | 2 | ?? unknown |
0x0020 | 0x003F | 16 | ?? unknown |
0x0040 | 0x00BF | 128 | title (?? in utf16) |
0x00C0 | 0x60BF | 24576 | banner (192x64) |
0x60C0 | 0x72BF | 4608 | icon0 (48x48) |
0x72C0 | 0x84BF | 4608 | icon1 (optional, present if size of header is 0xf0a0) |
0x84C0 | 0x96BF | 4608 | icon2 (optional, present if size of header is 0xf0a0) |
0x96C0 | 0xA8BF | 4608 | icon3 (optional, present if size of header is 0xf0a0) |
0xA8C0 | 0xBABF | 4608 | icon4 (optional, present if size of header is 0xf0a0) |
0xBAC0 | 0xCCBF | 4608 | icon5 (optional, present if size of header is 0xf0a0) |
0xCCC0 | 0xDEBF | 4608 | icon6 (optional, present if size of header is 0xf0a0) |
0xDEC0 | 0xF0BF | 4608 | icon7 (optional, present if size of header is 0xf0a0) |
Bk Header
The Bk Header is 0x80 bytes long.
Start | End | Length | Description |
0x000 | 0x003 | 4 | magic1 (0x00000070) |
0x004 | 0x005 | 2 | magic2 ('Bk') |
0x006 | 0x007 | 2 | magic3 (0x0001) |
0x008 | 0x00B | 4 | NG id |
0x00C | 0x00F | 4 | number of files |
0x010 | 0x013 | 4 | size of files |
0x014 | 0x017 | 4 | ?? unknown |
0x018 | 0x01B | 4 | ?? unknown |
0x01C | 0x01F | 4 | total size |
0x020 | 0x05F | 64 | ?? unknown |
0x060 | 0x063 | 4 | ?? unknown |
0x064 | 0x067 | 4 | Game ID (ex. 'RMGP' for Super Mario Galaxy) |
0x068 | 0x06B | 4 | ?? unknown |
0x06C | 0x06F | 4 | ?? unknown |
0x070 | 0x07F | 16 | null padded |
Files
The savegame consists of several files up to the number specified in the Bk Header. Files are stored immediatelly after the Bk Header using the format described in the next sections.
File Header
The file header is 0x80 bytes long.
Start | End | Length | Description |
0x000 | 0x003 | 4 | magic1 (0x03adf17e) |
0x004 | 0x007 | 4 | size of file |
0x008 | 0x008 | 1 | permissions |
0x009 | 0x009 | 1 | attributes |
0x00A | 0x00A | 1 | type (1=file, 2=directory) |
0x00B | variable | variable | name (null tereminated) |
0x050 | 0x05F | 16 | IV for file data decryption |
File data
File data comes after the File Header. Each file actually occupies the length specified in the file header rounded up to the next 64 byte boundary. File data is encrypted using the "sd-key" and the initialization vector specified in the File Header.