Eldos Solid File System ST XFS: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
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 21: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