Savegame Files
This is an old revision of this page, as edited by SpamBot (talk | contribs) at 22:33, 3 February 2008. It may differ significantly from the current revision. |
(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.