Difference between revisions of "Savegames"
From Nintendo Switch Brew
| Line 129: | Line 129: | ||
* Generally follows DPFS, similar to 3DS. | * Generally follows DPFS, similar to 3DS. | ||
| + | |||
| + | ==== JNGL ==== | ||
| + | |||
| + | * Generally follows IVFC | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Start | ||
| + | ! Length | ||
| + | ! Description | ||
| + | |- | ||
| + | | 0x00 | ||
| + | | 4 | ||
| + | | Magic ("JNGL") | ||
| + | |- | ||
| + | | 0x04 | ||
| + | | 4 | ||
| + | | Magic Number (0x10000) | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | ==== SAVE ==== | ||
| + | |||
| + | * Generally follows JNGL, structure is different from 3DS. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Start | ||
| + | ! Length | ||
| + | ! Description | ||
| + | |- | ||
| + | | 0x00 | ||
| + | | 4 | ||
| + | | Magic ("SAVE") | ||
| + | |- | ||
| + | | 0x04 | ||
| + | | 4 | ||
| + | | Magic Number (0x60000) | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | ==== RMAP ==== | ||
| + | |||
| + | * There are generally two RMAP blocks in sequence. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Start | ||
| + | ! Length | ||
| + | ! Description | ||
| + | |- | ||
| + | | 0x00 | ||
| + | | 4 | ||
| + | | Magic ("RMAP") | ||
| + | |- | ||
| + | | 0x04 | ||
| + | | 4 | ||
| + | | Magic Number (0x10000) | ||
| + | |- | ||
| + | |} | ||
Revision as of 18:56, 2 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.
JNGL
- Generally follows IVFC
| Start | Length | Description |
|---|---|---|
| 0x00 | 4 | Magic ("JNGL") |
| 0x04 | 4 | Magic Number (0x10000) |
SAVE
- Generally follows JNGL, structure is different from 3DS.
| Start | Length | Description |
|---|---|---|
| 0x00 | 4 | Magic ("SAVE") |
| 0x04 | 4 | Magic Number (0x60000) |
RMAP
- There are generally two RMAP blocks in sequence.
| Start | Length | Description |
|---|---|---|
| 0x00 | 4 | Magic ("RMAP") |
| 0x04 | 4 | Magic Number (0x10000) |