Savegames: Difference between revisions
Line 236: | Line 236: | ||
* The hash in the DISA hashes the Active Table (starting from tables's offset to tables's offset + table length) with SHA256. | * The hash in the DISA hashes the Active Table (starting from tables's offset to tables's offset + table length) with SHA256. | ||
* The | * The partition offsets are absolute offsets in the image. | ||
* The SAVE partition offset is usually 0x1000. The SAVE/DATA partitions begins with the DPFS partitions, the relative offset for the IVFC partition data is specified by the DPFS header. | |||
The DIFIs table @ 0x200 (into the image) is written twice, (Meaning, if there's 4 DIFI blobs then the table is 2 DIFIs long). | The DIFIs table @ 0x200 (into the image) is written twice, (Meaning, if there's 4 DIFI blobs then the table is 2 DIFIs long). | ||
The second table is for backup. | The second table is for backup. | ||
'''DIFF''' | '''DIFF''' | ||
Line 333: | Line 335: | ||
| 0x28 | | 0x28 | ||
| 8 | | 8 | ||
| Offset to the hash in DIFI (Always | | Offset to the hash in DIFI (Always 0x10C) | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
Line 443: | Line 445: | ||
| 0x08 | | 0x08 | ||
| 8 | | 8 | ||
| Offset | | Offset to first table | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
Line 455: | Line 457: | ||
| 0x20 | | 0x20 | ||
| 8 | | 8 | ||
| Offset | | Offset to second table | ||
|- | |- | ||
| 0x28 | | 0x28 | ||
Line 467: | Line 469: | ||
| 0x38 | | 0x38 | ||
| 8 | | 8 | ||
| | | IVFC partition offset | ||
|- | |- | ||
| 0x40 | | 0x40 | ||
| 8 | | 8 | ||
| Data | | Data length | ||
|- | |- | ||
| 0x48 | | 0x48 | ||
Line 481: | Line 483: | ||
* Every block this table point to is written twice (concatenated). You can see that the offset to the next block is twice the length (except the data which always begin after 0x1000). | * Every block this table point to is written twice (concatenated). You can see that the offset to the next block is twice the length (except the data which always begin after 0x1000). | ||
The first partition's data starts at 0x2000. First comes the hashtable (usually start @ 0x40 into the partition) and then the filesystem. | * The offsets contained in the DPFS and IVFC are relative to the partition offset in the DISA/DIFF. The offsets from the IVFC are additionally added with the IVFC partition offset from the DPFS. | ||
The first partition's data usually starts at 0x2000. First comes the hashtable (usually start @ 0x40 into the partition) and then the filesystem. | |||
The hashtable entries' size is 2^x where x is the 'Filesystem block size' from the IVFC block. | The hashtable entries' size is 2^x where x is the 'Filesystem block size' from the IVFC block. |