SEQ

From MultimediaWiki
Jump to navigation Jump to search

SEQ files are an FMV format used in the game Flashback: The Quest for Identity.

These files always contain one video stream in own format with image size 256x128 and 22 kHz 16-bit mono PCM audio.

File Format

Data is stored in 6144-byte frames without any header. Each frame may contain sound data, palette data and up to 3 video frames data. Frame structure:

 bytes  0- 1 - sound data offset (0 = no sound)
 bytes  2- 3 - palette data offset (0 = no palette)
 byte      4 - what buffer to use (255 = skip)
 byte      5 - frame num 1
 byte      6 - frame num 2
 byte      7 - frame num 3
 bytes  8- 9 - video data offset 1
 bytes 10-11 - video data offset 2
 bytes 12-13 - video data offset 3
 bytes 14-15 - video data end

Video Codec

Frame data is divided into 8x8 blocks, each block may be compressed with one of four methods. Those 2-bit method indices are packed in 16-bit little-endian words and stored in frame header. Methods:

  • 0 - skip block
  • 1 - most advanced coding mode. Data may be packed with RLE scheme described below or vector quantization (lookup table and 1-4 bits on index)
  • 2 - raw block
  • 3 - partial update of block, data is stored in pairs (skip, value) where skip = (x + y*8 + last*128), if last = 1 then end decoding, else put (value) at position (x,y)

RLE Packing

RLE data is also stored operations first, pixel data later. Operation byte consists of two signed nibbles, each meaning:

 if (n < 0) then set (-n) pixels to the next value
 else read (n) pixels values