RalliSport Challenge

From XentaxWiki
Jump to: navigation, search

RFF

Format specifications

RFF
{
    char[32] magicString; // == "Refractor2 FinkelArchive 1.0", padded with NULLs
    ulong TOCOffset;
    ulong archiveType; // { 0 = STORE, 1 = ENCRYPTED, 2 = ENCRYPTED_AND_COMPRESSED }

    uchar data[];

    TOC fileList;
}

TOC
{
    ulong nFiles;
    fileEntry[nFiles] files;
    char[4] padding; // == NULL
}

fileEntry
{
    ulong filenameLength;
    char[filenameLength] filename;
    ulong size;
    ulong uncompressedSize;
    ulong dataOffset;
    FILETIME time; // 64-bit integer
    char[4] padding; // == NULL
}

MultiEx BMS

Not written yet.

Notes and comments

  • Encryption is provided by Blowfish, a symmeteric cipher using 64-bit blocks, thus requiring the input data chunk size to be divisible by eight bytes. The retail version uses the 64-bit key { 0x72, 0x03, 0x17, 0xF4, 0x12, 0x43, 0x92, 0x88 }, and the demo { 0x23, 0x43, 0x55, 0x02, 0x37, 0x99, 0xaf, 0xc7 }.
  • zlib is used for compression.
  • FILETIME is a 64-bit datatype for representing time on Microsoft operating systems.
  • The XBOX version of RalliSport Challenge uses the RFA format.

Supported programs