{"id":9,"date":"2005-01-05T17:52:38","date_gmt":"2005-01-06T00:52:38","guid":{"rendered":"\/?p=9"},"modified":"2006-10-04T21:02:01","modified_gmt":"2006-10-05T04:02:01","slug":"laras-escape","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/laras-escape\/","title":{"rendered":"Lara&#8217;s Escape"},"content":{"rendered":"<p>Games published under the Eidos umbrella, most famously the <em>Tomb Raider<\/em> series, are known you use .RPL files for their full motion video (FMV). RPL appears to be a reasonably open container format and <a href=\"http:\/\/www.multimedia.cx\/AE7doc.txt\">the details are in this document<\/a>. The specific video codec used in this format is closed. It is known as &#8220;Escape&#8221;, internally identified as codec #130. (The audio format is also not entirely clear, but it definitely appears to be an ADPCM variant.)<\/p>\n<p><!--more--><\/p>\n<p>As I discovered in <a href=\"http:\/\/www.multimedia.cx\/mmentry-2003-08-12.html\">this multimedia journal entry<\/a>, there are several DLLs distributed with an Eidos game that actually handle the playback. In the case of <em>Legacy of Kain: Soul Reaver<\/em>, 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(). <\/p>\n<p>More intelligence on this matter came in today:<\/p>\n<blockquote><p>\nactually, the main frame decoding function locaded in dec130.dll (you&#8217;re right about this) and it&#8217;s exported under ordinal #202 . Upon calling, it&#8217;s second parameter is a pointer to packed frame data from file (which started from bytes 0x30, 0x01, 0x01, etc).\n<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8220;Escape&#8221;, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-reverse-engineering"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}