Savegames: Difference between revisions
→The SAVE partition: Confirm some fields by matching FS:FormatSaveData parameters |
|||
Line 556: | Line 556: | ||
| 0x08 | | 0x08 | ||
| 8 | | 8 | ||
| | | Level 1 offset | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| 8 | | 8 | ||
| | | Level 1 size | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| 8 | | 8 | ||
| | | Level 1 block size, in log2 (unused?) | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 8 | | 8 | ||
| | | Level 2 offset | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
| 8 | | 8 | ||
| | | Level 2 size | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
| 8 | | 8 | ||
| | | Level 2 block size, in log2 | ||
|- | |- | ||
| 0x38 | | 0x38 | ||
| 8 | | 8 | ||
| IVFC partition offset | | Level 3 (IVFC partition) offset offset | ||
|- | |- | ||
| 0x40 | | 0x40 | ||
| 8 | | 8 | ||
| IVFC partition size | | Level 3 (IVFC partition) offset size | ||
|- | |- | ||
| 0x48 | | 0x48 | ||
| 8 | | 8 | ||
| IVFC partition block size | | Level 3 (IVFC partition) block size, in log2 | ||
|- | |- | ||
|} | |} | ||
* Every | * Every level comes in pairs (concatenated), so the actual size of each level is twice as large as recorded in the "size" field. Level n (n = 1 or 2) is a bit-array (encoded in u32 array, with MSB as the first bit of each 32 bits), in which each bit corresponds to a block in level (n+1), indicating in which of the pair the block is the active one (0 means the first one, 1 means the second one). In this way, the actual valid data is scattered between the two IVFC partition images. | ||
* The offsets contained in the DPFS | * The valid one in level 1 pair is probably chosen by the same bit of "Active partition table". However in this case, 0 means the second one and 1 means the first one (in the same order as the partition tables). | ||
* The offsets contained in the DPFS are relative to the partition offset in the DISA/DIFF. The offsets from the IVFC are related to the IVFC partition (DPFS Level 3), after assembling the valid data. | |||
'''DIFI Hash''' | '''DIFI Hash''' |