DRL

From MultimediaWiki
Jump to navigation Jump to search
  • Company: Mass Media Inc, Philips P.O.V. Entertainment Group
  • Extension: drl
  • Game: Thunder in Paradise (PC port)

This is RLE-based format used in the FMV game.

Header:

 2 bytes - version
 2 bytes - number of frames
 2 bytes - unknown
 4 bytes - unknown
 2 bytes - data size in 2kB sectors
 2 bytes - unknown
 2 bytes - number of audio chunks to preload
 2 bytes - number of colours used
 2 bytes - palette changes are present
 2 bytes - audio frame length
 38 bytes - unknown
 2 bytes - audio mode
 // initial palette
 1 byte - unknown
 1 byte - unknown
 2 bytes - start colour
 2 bytes - end colour
 N*3 bytes - partial VGA palette
 // tables
 M*4 bytes - frame offsets (relative to data start)
 M*2 bytes - bottom 16 bits of total audio length at the end of the frame
 X bytes - alignment to the next 2kB sector

Then if there are audio preload frames, data for that number of frame follows. Then data is aligned to the multiple of sector size again.

Frames start with the following header:

 2 bytes - total frame size
 2 bytes - audio data size
 2 bytes - update area X offset
 2 bytes - update area Y offset
 2 bytes - update area width
 2 bytes - update area height
 1 byte  - coding mode

If palette changes are allowed, then palette change data follows (1 byte - start colour index, 1 byte - number of colours, then partial VGA palette).

Then RLE-encoded video data for the update rectangle follows. Opcodes are the following:

  • 0x00..0xDF -- output pixel value
  • 0xE0..0xEF -- skip 2-17 pixels
  • 0xF0..0xFE -- read colour value, repeat it 3-17 times
  • 0xFF -- long skip (next byte value plus 18 pixels)

Finally there's audio data.