Savegames: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
No edit summary  | 
				No edit summary  | 
				||
| 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 19: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) |