Changes

Jump to navigation Jump to search
140 bytes added ,  11:50, 1 June 2011
no edit summary
Line 59: Line 59:       −
=== Filesystem ===
+
=== ファイルシステム===
 
   
 
   
Savefiles are stored on the FLASH in a custom filesystem called SAVE. SAVE has a header which describes where the various bits of the filesystem live. The most important is the FST or filesystem table. You can find the FST by first finding the file base offset which is the offset to which all the entries in the FST are relative. The file base offset is a uint16_t at 0x58 from the filesystem start. The FST offset is a uint32_t at 0x6C and is in blocks (which are 0x200 bytes large).
+
セーブデータは「SAVE」という特殊なファイルシステムでフラッシュメモリに保存されています。 SAVEはヘッダー部分にファイルシステムの様々なデータの詳細情報があります。  The most important is the FST or filesystem table. You can find the FST by first finding the file base offset which is the offset to which all the entries in the FST are relative. The file base offset is a uint16_t at 0x58 from the filesystem start. The FST offset is a uint32_t at 0x6C and is in blocks (which are 0x200 bytes large).
   −
Once you've found the FST, parsing it is fairly straightforward.
+
FSTが見つかれば、そのセーブデータを解析するのは非常に簡単です。
    
<pre>
 
<pre>
 
  struct fs_entry {
 
  struct fs_entry {
 
     u32 node_cnt;
 
     u32 node_cnt;
     u8  filename[0x10];
+
     u8  filename[0x10]; //9文字以内
 
     u32 index;
 
     u32 index;
     u32 unk1; // magic?
+
     u32 unk1; // マジック・ワード?
 
     u32 block_offset;
 
     u32 block_offset;
 
     u32 file_size;
 
     u32 file_size;
 
     u32 unk2;
 
     u32 unk2;
     u32 unk3; // flags and/or date?
+
     u32 unk3; // フラグまたは日付?
 
     u32 unk4;
 
     u32 unk4;
 
  }
 
  }
Line 81: Line 81:  
The first entry is the root directory, easily identifiable by the node_cnt being larger than 1. The node_cnt includes the root directory itself, so there are node_cnt - 1 files in the root directory. The entries that follow after the root directory are the actual files. Reading them out is as simple as taking the file base offset and adding (block_offset * 0x200) to it.
 
The first entry is the root directory, easily identifiable by the node_cnt being larger than 1. The node_cnt includes the root directory itself, so there are node_cnt - 1 files in the root directory. The entries that follow after the root directory are the actual files. Reading them out is as simple as taking the file base offset and adding (block_offset * 0x200) to it.
   −
Example from Super MonkeyBall 3D:
+
スーパーモンキーボール 3Dの例:
 
<pre>
 
<pre>
 
0003800: 04000000 21000000 00000000 00000000  ....!...........
 
0003800: 04000000 21000000 00000000 00000000  ....!...........
Line 97: Line 97:  
</pre>
 
</pre>
   −
=== Initialization ===
+
=== 初期化方法===
   −
When a save EEPROM contains all xFFFF blocks it's assumed uninitialized by the game cartridges and it initializes default data in place, without prompting the user.
+
EEPROMの内容をすべて0xFFFFで初期化することで、出荷するときの状態に戻すことができます。
          
[[Savegames|English]]
 
[[Savegames|English]]
405

edits

Navigation menu