Savegames: Difference between revisions
No edit summary |
|||
| Line 147: | Line 147: | ||
=== Partitions === | === Partitions === | ||
There can be multiple partitions | There can be multiple partitions in the image. | ||
The partitions are represented by tables of DIFI blobs inside a DISA/DIFF structure. | The partitions are represented by tables of DIFI blobs inside a DISA/DIFF structure. | ||
The order of the DIFI blobs is the order of the partitions in the | The order of the DIFI blobs is the order of the partitions in the image. | ||
'''DISA''' | '''DISA''' | ||
* This is located @ 0x100 in the image, following the MAC header. | * This is located @ 0x100 in the image, following the MAC header. | ||
* If the uint32 @ | * If the uint32 @ 0x68 in the DISA(the low 8-bits) is non-zero, then the first table is is hashed, otherwise the second DIFI table is hashed. | ||
* If the table has more then 1 DIFI then the uint32 @ 0x168 is the offset from the DATA partition to the file base (masked with 0xFFFFFFFE). | * If the table has more then 1 DIFI then the uint32 @ 0x168 is the offset from the DATA partition to the file base (masked with 0xFFFFFFFE). | ||
| Line 177: | Line 177: | ||
| 0x10 | | 0x10 | ||
| 8 | | 8 | ||
| Offset to primary partition table | | Offset to primary partition table | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| 8 | | 8 | ||
| Offset to secondary partition table | | Offset to secondary partition table | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| Line 291: | Line 291: | ||
'''DIFI''' | '''DIFI''' | ||
These | These 0x12C-byte blobs describe the partitions. Following each partition is an unused 0xFFFFFFFF cleartext word in the raw image. Every DIFI blob describes a partition. Partitions are catted together, so after the end of one partition is the beginning of the next. | ||
For most games there's only 1 partition (The SAVE partition) and some (like Asphalt 3D, Steel Diver & Lego Star Wars III) has 2 partitions. | For most games there's only 1 partition (The SAVE partition) and some (like Asphalt 3D, Steel Diver & Lego Star Wars III) has 2 partitions. | ||
| Line 299: | Line 297: | ||
* 2 Partitions means that the files inside the SAVE partition is on the other partition (we would call it DATA partition). | * 2 Partitions means that the files inside the SAVE partition is on the other partition (we would call it DATA partition). | ||
* | * The DISA/DIFF headers support a maximum of 2 partitions. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 484: | Line 482: | ||
The hashtable entries' size is 2^x where x is the 'Hashed block size' from the IVFC block. | The hashtable entries' size is 2^x where x is the 'Hashed block size' from the IVFC block. | ||
'''Hash''' | '''DIFI Hash''' | ||
The last 0x20-bytes of the partition following the DIFI, IVFC and DPFS is a 0x20-byte hash, it is unknown what it's hashing. The offset to this hash is stored in the DIFI. | |||
'''Summary Drawing''' | '''Summary Drawing''' | ||