Lara’s Escape

Games published under the Eidos umbrella, most famously the Tomb Raider series, are known you use .RPL files for their full motion video (FMV). RPL appears to be a reasonably open container format and the details are in this document. The specific video codec used in this format is closed. It is known as “Escape”, internally identified as codec #130. (The audio format is also not entirely clear, but it definitely appears to be an ADPCM variant.)

As I discovered in this multimedia journal entry, there are several DLLs distributed with an Eidos game that actually handle the playback. In the case of Legacy of Kain: Soul Reaver, the kain2.exe imports functions from winplay.dll, which imports from winstr.dll, which imports from, among others of course, dec130.dll. Since the Escape codec is identified as codec #130, this is promising. Disassembling the binary, however, reveals that the exported functions are very unintuitively named as ExpFn0000() .. ExpFn0009().

More intelligence on this matter came in today:

actually, the main frame decoding function locaded in dec130.dll (you’re right about this) and it’s exported under ordinal #202 . Upon calling, it’s second parameter is a pointer to packed frame data from file (which started from bytes 0x30, 0x01, 0x01, etc).