Savegames: Difference between revisions
Moosehunter (talk | contribs) No edit summary |
→Extra data: prior save struct link fix pointed to wrong struct |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 67: | Line 67: | ||
== AES CMAC header == | == AES CMAC header == | ||
This is internally referred to as MasterHeaderMac. | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 432: | Line 435: | ||
| 0x00 | | 0x00 | ||
| 0x40 | | 0x40 | ||
| [[Filesystem_services# | | [[Filesystem_services#SaveDataAttribute|SaveDataAttribute]] | ||
|- | |- | ||
| 0x40 | | 0x40 | ||
Line 658: | Line 661: | ||
== File allocation table == | == File allocation table == | ||
The savedata FS uses | The savedata FS uses an allocation table to keep track of block allocation. This FAT contains doubly-linked lists of the blocks allocated to each file. Each entry in the FAT is 8 bytes in size. | ||
FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block. | FAT entry 0 is reserved for the list of free blocks. Because of this, the FAT entry for block n is found at FAT index n+1. The indexes stored in FAT entries refer the index of the next/previous FAT entry in the chain, not the index of the next/previous block. | ||
The FAT header is internally called AllocationTableControlArea. The FAT itself is called AllocationTableMeta. The actual save FS data is called AllocationTableData. | |||
=== File allocation table header === | === File allocation table header === |