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

From XentaxWiki
Jump to: navigation, search
(Format Specifications)
(Format Specifications)
Line 87: Line 87:
 
   // directory info structure
 
   // directory info structure
 
   4 bytes (uint32) - entry type  // 33
 
   4 bytes (uint32) - entry type  // 33
   4 bytes (uint32) - entry ID  // 7
+
   4 bytes (uint32) - entry ID  // e.g. 7
 
   24 bytes - unknown
 
   24 bytes - unknown
 
   num_of_files_in_directory *
 
   num_of_files_in_directory *

Revision as of 14:50, 28 February 2021

Back to index | Edit this page

ST, XFS


Format Specifications

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

// header
2 bytes (uint16) - unknown // 12
2 bytes (char) - magic  // NW
num_of_values *
{
  2 bytes (uint16) - entry type  // 33 - root info structure or directory info structure
                                 // 32 - any other structure with data?
                                 // 0 - end structure or nothing
}
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 (uint32) - 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 *
{
   x bytes - file data structure  // see explanation below
   x bytes - padding
}



num_of_directories *
{
   // directory info structure
   4 bytes (uint32) - entry type  // 33
   4 bytes (uint32) - entry ID  // e.g. 7
   24 bytes - unknown
   num_of_files_in_directory *
   {
      8 bytes - unknown
      4 bytes (uint32) - file attributes  // e.g. 257 - file + hidden
      4 bytes (uint32) - file name length
      4 bytes - nulls
      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
      44 bytes - unknown
      8 bytes (double) - creation time
      8 bytes (double) - modification time
      8 bytes (double) - last access time
      4 bytes (uint32) - file size
      16 bytes - unknown
      x bytes - file data
      x bytes - padding
   }

}



num_of_directories *
{
   // end 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