Difference between revisions of "Eldos Solid File System ST XFS"

From XentaxWiki
Jump to: navigation, search
(Format Specifications)
(Format Specifications)
Line 58: Line 58:
 
4 bytes (uint32) - unknown  // 2
 
4 bytes (uint32) - unknown  // 2
 
16 bytes - unknown  
 
16 bytes - unknown  
 
 
num_of_directories *
 
num_of_directories *
 
{
 
{
Line 73: Line 72:
  
  
 
+
// root file data structures
// file info structure
+
num_of_root_files *
number_of_files_in_directory *
 
 
{
 
{
   4 bytes (uint32) - type1 // 32
+
   4 bytes (uint32) - entry type // 32
   4 bytes (uint32) - type2 // 4 or 5
+
   4 bytes (uint32) - entry ID // e.g. 4
 
   88 bytes - unknown
 
   88 bytes - unknown
   x bytes - file data
+
   x bytes - root file data
 +
  x bytes - padding
 
}
 
}
x bytes - padding
 
  
  
// unknown structure
+
 
4 bytes (uint32) - type1 // 32
+
num_of_directories *
4 bytes (uint32) - type2 // 6
+
{
42 bytes - unknown
+
  // directory info structure
24 bytes - unknown // "fJaR...@fJaR...@fJaR...@"
+
  4 bytes (uint32) - entry type // 33
8 bytes - nulls
+
  4 bytes (uint32) - entry ID // 7
4 bytes (uint32) - some size?
+
  24 bytes - unknown
4 bytes - nulls
+
  num_of_files_in_directory *
4 bytes (uint32) - unknown // 7
+
  {
x bytes - padding
+
      20 bytes - unknown
 +
      44 bytes (char) - file name // e.g. "text3.txt"
 +
  }
 +
 
  
  
 +
  num_of_files_in_directory *
 +
  {
 +
      // file data structure
 +
      4 bytes (uint32) - entry type  // 32
 +
      4 bytes (uint32) - entry ID  // e.g. 8
 +
      88 bytes - unknown
 +
      x bytes - file data
 +
      x bytes - padding
 +
  }
  
// filenames structure
+
  // unknown structure
4 bytes (uint32) - type1 // 33
+
  4 bytes (uint32) - entry type // 32
4 bytes (uint32) - type2 // 7
+
  4 bytes (uint32) - entry ID // e.g. 10
  
num_of_files *
 
{
 
  44 bytes - some file attributes?
 
  44 bytes - file name  // e.g. "text1.txt"
 
 
}
 
}
x bytes - padding
 
  
  
// file data structure
 
4 bytes (uint32) - type1  // 32
 
4 bytes (uint32) - type2  // 4
 
88 bytes - unknown
 
x bytes - file data
 
x bytes - padding
 
  
 
+
num_of_directories *
// unknown structure
+
{
4 bytes (uint32) - type1 // 0
+
  // unknown structure
4 bytes (uint32) - type2 // 5
+
  4 bytes (uint32) - entry type // 0
x bytes - padding
+
  4 bytes (uint32) - entry ID // e.g. 17
 +
  x bytes - padding
 +
}
 
</pre>
 
</pre>
 
</div>
 
</div>

Revision as of 22:50, 26 February 2021

Back to index | Edit this page

ST, XFS


Format Specifications

// Eldos Solid File System 
// ST, XFS file format

// header
2 bytes - unknown // 12
2 bytes (char) - magic  // NW
num_of_values *
{
  2 bytes - some value  // 33 or 32
}
x bytes - padding


// file system info?
2 bytes (char) - magic  // NW
2 bytes - nulls
2 bytes - unknown // 1
8 bytes - nulls
4 bytes - next line characters // \x0D\x00\x0A\x00
124 bytes (char) - storage logo name // default is "SolFS for Windows (c) EldoS Corporation\n"
5 bytes - nulls
4 bytes (uint32) - unknown // 4
4 bytes (uint32) - unknown // 260, 516, 1028, 1540 or 2308
4 bytes (uint32) - unknown // 256, 1792, 4608, 12288 or 12800
93 bytes - unknown
4 bytes - some CRC value  // e.g. \x95\xAF\x25\x3B
x bytes - padding



// unknown structure  
4 bytes (uint32) - type1 // 32
4 bytes (uint32) - type2 // 2
68-102 bytes - unknown
x bytes - padding


// Note: data ends right after this structure 
// when there are no files and no directories in the XFS/ST file.



// root info structure
4 bytes (uint32) - type1  // 33
4 bytes (uint32) - type2  // 3
4 bytes - nulls
4 bytes (uint32) - unknown  // 2
16 bytes - unknown 
num_of_directories *
{
    // root entry (64 bytes per entry)
    4 bytes (uint32) - ID_1? 
    4 bytes (uint32) - ID_2?  
    4 bytes (uint32) - entry type?  // 1 - file
                                    // 2 - directory
    4 bytes (uint32) - unknown  // 8, 9 or 13
    4 bytes - nulls
    44 bytes (char) - directory name or file name // e.g. "Text files" or "text1.txt"
}
x bytes - padding


// root file data structures
num_of_root_files *
{
   4 bytes (uint32) - entry type  // 32
   4 bytes (uint32) - entry ID  // e.g. 4
   88 bytes - unknown
   x bytes - root file data
   x bytes - padding
}



num_of_directories *
{
   // directory info structure
   4 bytes (uint32) - entry type  // 33
   4 bytes (uint32) - entry ID  // 7
   24 bytes - unknown
   num_of_files_in_directory *
   {
      20 bytes - unknown
      44 bytes (char) - file name // e.g. "text3.txt"
   }



   num_of_files_in_directory *
   {
      // file data structure
      4 bytes (uint32) - entry type  // 32
      4 bytes (uint32) - entry ID  // e.g. 8
      88 bytes - unknown
      x bytes - file data
      x bytes - padding
   }

   // unknown structure
   4 bytes (uint32) - entry type  // 32
   4 bytes (uint32) - entry ID  // e.g. 10

}



num_of_directories *
{
   // unknown structure
   4 bytes (uint32) - entry type  // 0
   4 bytes (uint32) - entry ID  // e.g. 17
   x bytes - padding
}

MultiEx BMS Script

Not written yet.

Notes and Comments

  • This is format used by Eldos Solid File System.
  • Files can be encrypted with AES and compressed with ZLIB. Whole archive may be encrypted with AES. Custom encryption is also supported.
  • Padding size depends on page size which can be set to 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 or 65536 bytes.

Games

List of games using this file format:

  • Rakion
  • Rakion Chaos Force

Compatible Programs

See Also