Changes

688 bytes added ,  08:42, 17 August 2016
→‎The SAVE partition: Correct entry fields based on research of some system savegames.
Line 626: Line 626:  
<pre>
 
<pre>
 
  struct folder_entry {
 
  struct folder_entry {
     u32 parent_folder_index;
+
     u32 parent_folder_index;     // stores entry count for dummy folders; 0 for the root folder (entry[1])
     u8  filename[0x10];
+
     u8  filename[0x10];         // "b" for dummy folders; "" for the root folder (entry[1])
     u32 folder_index;
+
     u32 next_folder_index;       // 0 if the last folder, or a dummy folder
     u32 unk1;  
+
     u32 first_sub_folder_index; // 0 if has no sub folder, or a dummy folder
     u32 last_file_index;
+
     u32 first_sub_file_index;   // 0 if has no sub file(?), or a dummy folder
     u32 unk3;  
+
     u32 unk;                     // flags? always 0?
     u32 unk4;
+
     u32 next_dummy_folder_index; // 0 if the last dummy folder; unknown (often 0) if not a dummy folder
 
  }
 
  }
 
</pre>
 
</pre>
Line 639: Line 639:  
<pre>
 
<pre>
 
  struct file_entry {
 
  struct file_entry {
     u32 parent_folder_index;
+
     u32 parent_folder_index;   // stores entry count for dummy files
     u8  filename[0x10];
+
     u8  filename[0x10];       // "\x01\x15" for dummy files
     u32 index;
+
     u32 next_file_index;       // 0 if the last file, or a dummy file
     u32 unk1; // magic?
+
     u32 unk1;                 // looks like time stamp? 0 if a dummy file
     u32 block_offset;
+
     u32 block_offset;         // 0 if a dummy file
     u64 file_size;
+
     u64 file_size;             // 0 if a dummy file
     u32 unk2; // flags?
+
     u32 unk2;                 // flags?
     u32 unk3;
+
     u32 next_dummy_file_index; // 0 if the last dummy file, unknown (always zero?) if not a dummy file
 
  }
 
  }
 
</pre>
 
</pre>
   −
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.
+
Both table contains some "dummy" entries, which are probably left there when deleting files/folders, reserved for future use. The first entry of the two tables are always a dummy entry.
    
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.
242

edits