Re: Eidos RPL video codec

Mike Melanson <[email protected]> Sun, 02 Jan 2005 09:27:39 -0700
Newsgroups gmane.comp.video.xine.codec.devel
Message-ID <[email protected]>
Christian Ohm wrote:
> Hello,
> 
> Has anyone any information on the video codec in Eidos's RPL files?

	Nope. All we have pretty much boils down to what you figured out.

> The file format itself is pretty simple, infos at the start and an index at
> the end (both in readable text, the three numbers of the index are offset
> into the file, size of the video data, size of the audio data for every
> frame). Sound format 1 is PCM, 101 ADPCM.

	Question is: Which ADPCM format? And I do not know about you, but I am 
not looking forward to having to write a demuxer that parses arbitrary 
text strings. But that time will come, I suppose.

> The only thing I have no idea about is the video codec, and I wouldn't know
> where to start reverse engineering it... So I'd be grateful if anyone could
> help me to decode the video codec. (There's a sample file at
> http://mplayerhq.hu/MPlayer/samples/game-formats/rpl/landing.rpl .)

	If anyone is serious about RE'ing this, I have 26 RPL files from at 
least 3 different Eidos games. I have another unopened Eidos game 
waiting in the queue. And I see that the Warzone game comes with another 
19 RPL files.

> Resolution and colour depth can be found in the file header; I think video
> data is always 16 bit RGB, and the CPU requirements for decoding are about a
> P90. A windows player can be downloaded from
> http://www.cubeit.com/ctimes/download/rpl_player.zip (runs with wine). I

	I remember investigating this player once. However, it only plays in 
16-bit mode.

> have attached three files from the Warzone 2100 source, recently released
> under the GPL, that deal with video sequences.

	I just downloaded the 89 MB .rar file so I could investigate it for 
myself. I see the Warzone/Warzone/Game/SRC/seqDisp.* files that are 
"Functions for the display of the Escape Sequences". "Escape" is the 
codec used in Eidos games. However, tracing through that file, we see 
the game calling functions that are found in Game/LIB/sequence, a 
directory that contains the same DLL files that other Eidos games use 
for decoding RPL/Escape codec files. However, this source code may still 
help us by de-obfuscating the interface into those DLLs which is very 
obtuse (DecFn001, DecFn002, something like that).

	Hmm, here is a fun tidbit, from mplayer.c:

/*
  * mplayer.c
  * mplayer specific code. Keep it out of the main game!
  */

:)

	Thanks for the intelligence and investigation...
-- 
	-Mike Melanson


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt