Interplay AV

From MultimediaWiki
Revision as of 05:10, 26 July 2021 by Kostya (talk | contribs) (fill format info from opensource LoTR engine)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

AV format was used by Interplay in CD version of The Lord of the Rings Volume I RPG for cutscenes (those cutscenes were clips from the animated movie with the same title).

Container structure

 768-byte VGA palette
 14 initial audio frames
 video frame
 audio frame
 video frame
 ...

Video

Video has fixed size of 224x144 and coded by splitting frames into 8x8 tiles and either updating them with new content or reusing this or previous frame data.

Frame data consists of indices (1008 bytes - 2 bytes per each tile) followed by the data for raw tiles. Tile indices FF FF signal this is a raw tile, otherwise those bytes should be treated as a special motion vector.

How to calculate source position:

  • calculate pos = idx0 + idx1 * 8 * 32
  • calculate X offset in pixels as pos % (28 * 8)
  • calculate Y offset in pixels as pos / (28 * 8) / 2
  • get source frame flag as (pos / (28 * 8)) % 2
  • current frame number low bit XOR source frame flag should give you the reference frame (e.g. for frame 0 and flag=0 you should copy data from the same frame, for frame 1 and flag=0 you should copy data from the previous frame, for frame 3 and flag=1 you should copy data from the same frame etc etc)

Audio

Audio is 11025Hz mono 8-bit PCM stored in 732-byte frames.