Eldos Solid File System ST XFS: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| (9 intermediate revisions by the same user not shown) | |||
| Line 8: | Line 8: | ||
=== Format Specifications === | === Format Specifications === | ||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width: | <div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:900px; overflow:auto;"> | ||
<pre> | <pre> | ||
// Eldos Solid File System | // Eldos Solid File System | ||
| Line 16: | Line 16: | ||
2 bytes (uint16) - unknown // 12 | 2 bytes (uint16) - unknown // 12 | ||
2 bytes (char) - magic // NW | 2 bytes (char) - magic // NW | ||
num_of_entries * | |||
{ | { | ||
2 bytes (uint16) - entry type // 33 - | 2 bytes (uint16) - entry type // 33 - directory info structure | ||
// 32 - any other structure with data? | // 32 - any other structure with data? | ||
// 0 - end structure or nothing | // 0 - end structure or nothing | ||
| Line 43: | Line 43: | ||
// unknown structure | // unknown structure | ||
4 bytes (uint32) - | 4 bytes (uint32) - entry type // 32 | ||
4 bytes (uint32) - | 4 bytes (uint32) - entry ID // e.g. 2 | ||
68-102 bytes - unknown | 68-102 bytes - unknown | ||
x bytes - padding | x bytes - padding | ||
| Line 116: | Line 116: | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Attribute name !! Value (Hex) | ! Attribute name !! Value (Hex) !! Value (Dec) | ||
|- | |- | ||
| File || 0x01 | | File || 0x01 || 1 | ||
|- | |- | ||
| Directory || 0x02 | | Directory || 0x02 || 2 | ||
|- | |- | ||
| Compressed || 0x08 | | Compressed || 0x08 || 8 | ||
|- | |- | ||
| Encrypted || 0x10 | | Encrypted || 0x10 || 16 | ||
|- | |- | ||
| SymLink || 0x20 | | SymLink || 0x20 || 32 | ||
|- | |- | ||
| ReadOnly || 0x40 | | ReadOnly || 0x40 || 64 | ||
|- | |- | ||
| Archive || 0x80 | | Archive || 0x80 || 128 | ||
|- | |- | ||
| Hidden || 0x100 | | Hidden || 0x100 || 256 | ||
|- | |- | ||
| System || 0x200 | | System || 0x200 || 512 | ||
|- | |- | ||
| Temporary || 0x400 | | Temporary || 0x400 || 1024 | ||
|- | |- | ||
| DeleteOnClose || 0x800 | | DeleteOnClose || 0x800 || 2048 | ||
|- | |- | ||
| Reserved0 || 0x1000 | | Reserved0 || 0x1000 || 4096 | ||
|- | |- | ||
| Reserved1 || 0x2000 | | Reserved1 || 0x2000 || 8192 | ||
|- | |- | ||
| Reserved2 || 0x4000 | | Reserved2 || 0x4000 || 16384 | ||
|- | |- | ||
| Reserved3 || 0x8000 | | Reserved3 || 0x8000 || 32768 | ||
|- | |- | ||
| UserDefined || 0xFFFF0000 | | UserDefined || 0xFFFF0000 || 4294901760 | ||
|- | |- | ||
| AnyFile || 0xFFFFFFFF | | AnyFile || 0xFFFFFFFF || 4294967295 | ||
|- | |- | ||
Latest revision as of 15:01, 28 February 2021
Back to index | Edit this page
ST, XFS
- Format Type : Archive
- Endian Order : Little Endian
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) - entry type // 32
4 bytes (uint32) - entry ID // e.g. 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) | Value (Dec) |
|---|---|---|
| File | 0x01 | 1 |
| Directory | 0x02 | 2 |
| Compressed | 0x08 | 8 |
| Encrypted | 0x10 | 16 |
| SymLink | 0x20 | 32 |
| ReadOnly | 0x40 | 64 |
| Archive | 0x80 | 128 |
| Hidden | 0x100 | 256 |
| System | 0x200 | 512 |
| Temporary | 0x400 | 1024 |
| DeleteOnClose | 0x800 | 2048 |
| Reserved0 | 0x1000 | 4096 |
| Reserved1 | 0x2000 | 8192 |
| Reserved2 | 0x4000 | 16384 |
| Reserved3 | 0x8000 | 32768 |
| UserDefined | 0xFFFF0000 | 4294901760 |
| AnyFile | 0xFFFFFFFF | 4294967295 |
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