Difference between revisions of "Savegames"
Jump to navigation
Jump to search
Line 129: | Line 129: | ||
* Generally follows DPFS, similar to 3DS. | * Generally follows DPFS, similar to 3DS. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Start | ||
+ | ! Length | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x00 | ||
+ | | 4 | ||
+ | | Magic ("IVFC") | ||
+ | |- | ||
+ | | 0x04 | ||
+ | | 4 | ||
+ | | Magic Number (0x20000) | ||
+ | |- | ||
+ | | 0x08 | ||
+ | | 8 | ||
+ | | Master hash size? | ||
+ | |- | ||
+ | | 0x10 | ||
+ | | 8 | ||
+ | | Level 1 offset | ||
+ | |- | ||
+ | | 0x18 | ||
+ | | 8 | ||
+ | | Level 1 size | ||
+ | |- | ||
+ | | 0x20 | ||
+ | | 4 | ||
+ | | Level 1 block size, in log2 | ||
+ | |- | ||
+ | | 0x24 | ||
+ | | 4 | ||
+ | | Reserved | ||
+ | |- | ||
+ | | 0x28 | ||
+ | | 8 | ||
+ | | Level 2 offset | ||
+ | |- | ||
+ | | 0x30 | ||
+ | | 8 | ||
+ | | Level 2 size | ||
+ | |- | ||
+ | | 0x38 | ||
+ | | 4 | ||
+ | | Level 2 block size, in log2. | ||
+ | |- | ||
+ | | 0x3C | ||
+ | | 4 | ||
+ | | Reserved | ||
+ | |- | ||
+ | | 0x40 | ||
+ | | 8 | ||
+ | | Level 3 offset | ||
+ | |- | ||
+ | | 0x48 | ||
+ | | 8 | ||
+ | | Level 3 size | ||
+ | |- | ||
+ | | 0x50 | ||
+ | | 4 | ||
+ | | Level 3 block size, in log2. | ||
+ | |- | ||
+ | | 0x54 | ||
+ | | 4 | ||
+ | | Reserved | ||
+ | |- | ||
+ | | 0x58 | ||
+ | | 8 | ||
+ | | Level 4 offset | ||
+ | |- | ||
+ | | 0x60 | ||
+ | | 8 | ||
+ | | Level 4 size | ||
+ | |- | ||
+ | | 0x68 | ||
+ | | 4 | ||
+ | | Level 4 block size, in log2. | ||
+ | |- | ||
+ | | 0x6C | ||
+ | | 4 | ||
+ | | Reserved | ||
+ | |- | ||
+ | | 0x70 | ||
+ | | 48 | ||
+ | | Unknown, reserved? | ||
+ | |- | ||
+ | | 0xA0 | ||
+ | | 32 | ||
+ | | Hash | ||
+ | |- | ||
+ | |} | ||
==== JNGL ==== | ==== JNGL ==== |
Revision as of 18:13, 3 July 2017
This page describes the format of savegames contained in NAND.
AES CMAC header
Image offset | Length | Description |
---|---|---|
0x00 | 0x10 | AES-CMAC |
0x10 | 0xF0 | Zero padding |
DISF
- This is located @ 0x100 in the image, following the CMAC header.
Start | Length | Description |
---|---|---|
0x000 | 4 | Magic ("DISF") |
0x004 | 4 | Magic Number (0x40000) |
0x008 | 32 | Hash |
0x028 | 8 | Primary Partition Table Offset |
0x030 | 8 | Primary Partition Table Size |
0x038 | 8 | Secondary Partition Table Offset |
0x040 | 8 | Secondary Partition Table Size |
0x048 | 8 | Save Partition Offset |
0x050 | 8 | Save Partition Size |
0x258 | End |
DPFS
- This is located @ 0x200 in the image, following DISF.
- Block sizes are log2
Start | Length | Description |
---|---|---|
0x00 | 4 | Magic ("DPFS") |
0x04 | 4 | Magic Number (0x10000) |
0x08 | 8 | Offset 0 |
0x10 | 8 | Size 0 |
0x18 | 8 | Block Size 0 |
0x20 | 8 | Offset 1 |
0x28 | 8 | Size 1 |
0x30 | 8 | Block Size 1 |
0x38 | 8 | Offset 2 |
0x40 | 8 | Size 2 |
0x48 | 8 | Block Size 2 |
IVFC
- Generally follows DPFS, similar to 3DS.
Start | Length | Description |
---|---|---|
0x00 | 4 | Magic ("IVFC") |
0x04 | 4 | Magic Number (0x20000) |
0x08 | 8 | Master hash size? |
0x10 | 8 | Level 1 offset |
0x18 | 8 | Level 1 size |
0x20 | 4 | Level 1 block size, in log2 |
0x24 | 4 | Reserved |
0x28 | 8 | Level 2 offset |
0x30 | 8 | Level 2 size |
0x38 | 4 | Level 2 block size, in log2. |
0x3C | 4 | Reserved |
0x40 | 8 | Level 3 offset |
0x48 | 8 | Level 3 size |
0x50 | 4 | Level 3 block size, in log2. |
0x54 | 4 | Reserved |
0x58 | 8 | Level 4 offset |
0x60 | 8 | Level 4 size |
0x68 | 4 | Level 4 block size, in log2. |
0x6C | 4 | Reserved |
0x70 | 48 | Unknown, reserved? |
0xA0 | 32 | Hash |
JNGL
- Generally follows IVFC
Start | Length | Description |
---|---|---|
0x00 | 4 | Magic ("JNGL") |
0x04 | 4 | Magic Number (0x10000) |
0x08 | 8 | Savedata Size |
0x10 | 8 | Unknown, Size |
0x18 | 8 | Savedata Blocksize? |
0x20 | 4 | Unknown |
0x24 | 4 | Unknown |
0x28 | 8 | Unknown |
0x30 | 464 | Padding? |
SAVE
- Generally follows JNGL, structure is different from 3DS.
Start | Length | Description |
---|---|---|
0x00 | 4 | Magic ("SAVE") |
0x04 | 4 | Magic Number (0x60000) |
0x08 | 8 | Unknown, number |
0x10 | 8 | Unknown, block size |
0x18 | 8 | Unknown, block size |
0x20 | 8 | Unknown |
RMAP
- There are generally two RMAP blocks in sequence.
Start | Length | Description |
---|---|---|
0x00 | 4 | Magic ("RMAP") |
0x04 | 4 | Magic Number (0x10000) |