Interactive Pictures VID

From MultimediaWiki
Jump to navigation Jump to search

This is a format used in at least DOS version of a poker game by the company.

File header:

 4 bytes - "VID\x01"
 4 bytes - number of frames
 4 bytes - unknown
 1 byte  - unknown, tile size?
 2 bytes - width
 2 bytes - height
 1 byte  - unknown
 1 byte  - frames per second
 2 bytes - number of colours
 4 bytes - sample rate
 231 bytes - padding to 256 bytes
 C*3 bytes - VGA palette

Frame data starts with 16-bit sizes for audio, palette update and video parts. Palette updates are put at the end of palette (i.e. usually low 128 colours are transmitted in the header and top 128 colours are transmitted and updated by the frame data).

Video is coded in 8x8 tiles using following opcodes:

  • 0x00 -- raw tile
  • 0x01..0x10 -- 2D RLE: read 64 bits telling where new colour value should be used and fill tile using one of 16 pre-defined scan orders
  • 0x80 -- read 64-bit mask and colour value, update tile with this new value in the positions where mask is set
  • 0x81 -- read 64-bit mask and colour pair, paint tile using mask to select one of those colours
  • 0xFB -- read 4 colours and 64x2-bit index array, paint tile using appropriate colours
  • 0xFD -- read 16 colours and 64x4-bit index array, paint tile using appropriate colours
  • 0xFF -- read colour value, fill tile with it