Rage Software XFS
XFS
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
// XFS file format
// little endian
//header (16 bytes)
8 bytes (char) - magic // "DID DAT\x1A"
4 bytes (uint32) - section table checksum // "64" + "\xFF\xFF"
4 bytes (uint32) - section table size/8 // "8" // 8*8=64
// section table (64 bytes)
4 bytes (uint32) - number of sections // "3"
4 bytes (uint32) - data start offset // "80"
4 bytes (uint32) - section ID // "0"
4 bytes (uint32) - data end offset / DAT info start offset
4 bytes (uint32) - section ID // "1"
4 bytes (uint32) - some structure offset
4 bytes (uint32) - section ID // "2"
4 bytes (uint32) - hash index offset
32 bytes - padding?
//data section
num_of_entries *
{
4 bytes (uint32) - file size-8 / uncompressed file size
4 bytes - compression flag? // "0" - uncompressed,
// "1" - compressed with RA compression
x bytes - file data
}
// DAT information section (?) (16 bytes)
4 bytes (uint32) - unknown // "12"
4 bytes (uint32) - number of entries?
8 bytes - nulls
// some structure (?)
4 bytes (uint32) - section size-1
x bytes - data
x bytes - hash index section // 8 bytes per entry
MultiEx BMS Script
Not written yet.
Notes and Comments
- This file format occurs in games from Rage Software studio.
It was probably designed by Digital Image Design before company was sold to Rage Games Limited. - This file format uses custom RA compression method which is implementation of LZ77-based algorithm.
- XFS files seems to be enhanced version of "DID.DAT" archives from older Digital Image Design games.
Related structures
RA compressed data format:
// little endian 2 bytes (uint16) - magic // "RA" 2 bytes (uint16) - version // "\x00\x02" 2 bytes (uint16) - uncompressed file size 2 bytes (uint16) - checksum of the uncompressed data x bytes - compressed data
Games
List of games using this file format:
- E-Racer / eRacer
- Rage Rally
- Lamborghini (cancelled xbox game)
- Eurofighter Typhoon
Compatible Programs
- E-Racer_XFS_Tool.py (not finished)
- DecompRA