Eldos Solid File System ST XFS

From XentaxWiki
Revision as of 15:46, 28 February 2021 by Ikskoks (talk | contribs) (Format Specifications)

Jump to: navigation, search

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_entries *
{
  2 bytes (uint16) - entry type  // 33 - 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.




// Note: First directory is always root,
// then there are sructures for all sub-directories in the filesystem.

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) - directory or file attributes  // e.g. 257 - file + hidden
                                                       // e.g. 2 - directory
      4 bytes (uint32) - directory or file name length
      4 bytes - nulls
      44 bytes (char) - directory or file name // e.g. "DIR_2" or "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.


Attributes

This file format supports storing informmation about directory and file attributes.
Below tables lists all attributes names and values.


Attribute name Value (Hex)
File 0x01
Directory 0x02
Compressed 0x08
Encrypted 0x10
SymLink 0x20
ReadOnly 0x40
Archive 0x80
Hidden 0x100
System 0x200
Temporary 0x400
DeleteOnClose 0x800
Reserved0 0x1000
Reserved1 0x2000
Reserved2 0x4000
Reserved3 0x8000
UserDefined 0xFFFF0000
AnyFile 0xFFFFFFFF

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