Savegames: Difference between revisions
→Partitions: Real wikis use drawings and charts :) |
→The SAVE file system: more on the SAVE header and structure |
||
Line 351: | Line 351: | ||
[[File:Sfimg_drawing.png]] | [[File:Sfimg_drawing.png]] | ||
==== The SAVE | ==== The SAVE partition ==== | ||
* The SAVE filesystem works with a backup. There are two SAVE blocks inside the partition concatenated. Which SAVE block is the updated one is unknown yet.. (I'm guessing from experience that (image[0x100B] & 0x20) == 0x20 --> 1st SAVE --[[User:Elisherer|Elisherer]] 01:30, 18 October 2011 (CEST)) | * The SAVE filesystem works with a backup. There are two SAVE blocks inside the partition concatenated. Which SAVE block is the updated one is unknown yet.. (I'm guessing from experience that (image[0x100B] & 0x20) == 0x20 --> 1st SAVE --[[User:Elisherer|Elisherer]] 01:30, 18 October 2011 (CEST)) | ||
Line 376: | Line 374: | ||
u32 folder_index; | u32 folder_index; | ||
u32 unk1; | u32 unk1; | ||
u32 | u32 last_file_index; | ||
u32 unk3; | u32 unk3; | ||
u32 unk4; | u32 unk4; | ||
Line 396: | Line 394: | ||
</pre> | </pre> | ||
The first entry | The first entry in both tables is the count of the table, the parent directory index will be the amount of table rows. The root includes itself, so there are the amount - 1 (minus one) folders in the root directory (or files). The entries that follow after the root are the actual folders/files. | ||
Reading the files out is as simple as taking the file base offset and adding (block_offset * 0x200) to it. | Reading the files out is as simple as taking the file base offset and adding (block_offset * 0x200) to it. | ||
Line 436: | Line 434: | ||
| 0x10 | | 0x10 | ||
| 8 | | 8 | ||
| Partition Size | | Partition Size [medias] | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| 4 | | 4 | ||
| | | Partition Media Size | ||
|- | |- | ||
| 0x1C | | 0x1C | ||
Line 452: | Line 450: | ||
| 0x28 | | 0x28 | ||
| 8 | | 8 | ||
| | | FolderMap Offset | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
| 4 | | 4 | ||
| | | FolderMap Size | ||
|- | |- | ||
| 0x34 | | 0x34 | ||
| 4 | | 4 | ||
| | | FolderMap Media Size | ||
|- | |- | ||
| 0x38 | | 0x38 | ||
| 8 | | 8 | ||
| | | FileMap Offset | ||
|- | |- | ||
| 0x40 | | 0x40 | ||
| 4 | | 4 | ||
| | | FileMap Size | ||
|- | |- | ||
| 0x44 | | 0x44 | ||
| 4 | | 4 | ||
| | | FileMap Media Size | ||
|- | |- | ||
| 0x48 | | 0x48 | ||
| 8 | | 8 | ||
| | | BlockMap Offset | ||
|- | |- | ||
| 0x50 | | 0x50 | ||
| 4 | | 4 | ||
| | | BlockMap Size | ||
|- | |- | ||
| 0x54 | | 0x54 | ||
| 4 | | 4 | ||
| | | BlockMap Media Size | ||
|- | |- | ||
| 0x58 | | 0x58 | ||
Line 492: | Line 490: | ||
| 0x60 | | 0x60 | ||
| 4 | | 4 | ||
| File store length | | File store length [medias] | ||
|- | |- | ||
| 0x64 | | 0x64 | ||
Line 531: | Line 529: | ||
|- | |- | ||
|} | |} | ||
* The FolderMap and FileMap still unknown. They are tables of uint32. | |||
* The BlockMap is a map of the blocks in the filestore. An entry in the BlockMap is 2 uint32: {uint32 start_block; uint32 end_block; }. This is still being researched. (You can use [[3DSExplorer]] to see those maps. | |||
=== Initialization === | === Initialization === |