RalliSport Challenge RFF: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Alf
No edit summary
imported>Ikskoks
 
(5 intermediate revisions by 2 users not shown)
Line 10: Line 10:
     '''<font color="green">char</font>'''[<font color="fuchsia">32</font>] magicString; <font color="blue">// == "Refractor2 FinkelArchive 1.0", padded with NULLs</font>
     '''<font color="green">char</font>'''[<font color="fuchsia">32</font>] magicString; <font color="blue">// == "Refractor2 FinkelArchive 1.0", padded with NULLs</font>
     '''<font color="green">ulong</font>''' TOCOffset;
     '''<font color="green">ulong</font>''' TOCOffset;
     '''<font color="green">ulong</font>''' archiveType; <font color="blue">// { 1 = STORE, 2 = ENCRYPTED, 3 = ENCRYPTED_AND_COMPRESSED }</font>
     '''<font color="green">ulong</font>''' archiveType; <font color="blue">// { 0 = STORE, 1 = ENCRYPTED, 2 = ENCRYPTED_AND_COMPRESSED }</font>
   
   
     '''<font color="green">uchar</font>''' data[];
     '''<font color="green">uchar</font>''' data[];
Line 46: Line 46:
=== Supported programs ===
=== Supported programs ===
* [http://knowledge.stien.org/?go=download RFFTool]
* [http://knowledge.stien.org/?go=download RFFTool]
[[Category:File Format]]

Latest revision as of 13:29, 17 January 2021

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