Rage Software XFS: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
Line 30: Line 30:




//data section
// file data section
num_of_entries *
num_of_entries *
{
{
Line 51: Line 51:
x bytes - data
x bytes - data


x bytes - hash index section // 8 bytes per entry
// hash index section (8 bytes per entry)
num_of_files+1 *
{
  8 bytes - hash entry
}
</pre>
</pre>
</div>
</div>

Revision as of 10:10, 7 December 2020

XFS


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?


// file 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) - section size-4 // "12"
4 bytes (uint32) - number of hash entries-1? / number of files
8 bytes - nulls

// some data (?)
// Note: This section is not used by game at all.
//       It is probably some random padding data.
4 bytes (uint32) - section size-1
x bytes - data

// hash index section (8 bytes per entry)
num_of_files+1 *
{
   8 bytes - hash 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