RAC file

From ScummVM :: Wiki
Jump to navigation Jump to search

The RAC file is the file used by Coktel for the protection in Fascination CD (deleted TOC). it contains, for all the missing file, their name, address and size (between others).

The structure of the file is the following:

Header: 18 bytes, contains a version, arraysize1 and arraysize2

  • 2 bytes: magic number, must be equal to 0x0300
  • 2 bytes: arraySize1
  • 2 bytes: arraySize2
  • 4 bytes: dummy, overwritten in memory by array1 address (unused for Fascination)
  • 4 bytes: dummy, overwritten in memory by array2 address
  • 4 bytes: unused ?

Body:

  • unknownArray: arraySize1 * 14 bytes (unused for Fascination), not encrypted
  • missingFileArray : arraySize2 * 30 bytes, encrypted

The encryption of the missing file array is a simple XOR.

  for (int i = 0; i < (arraysize2 * 30); i++)
     missingFileArray[i] ^= (i * i);

The structure of this array is then, for each 30 bytes block in it:

  • 14 bytes: filename
  • 10 bytes: unknown (containing the offset on the CDROM ?)
  • 4 bytes : size
  • 2 bytes : unknown

It's interesting to notice that, in this RAC file,

  • Coktel used 'intro.stk' name instead of 'disk0.stk' in the other versions of Fascination
  • the track audio is present and named 'FASCI1N.SON'. Of course, We don't need this file.