Archimedean Dynasty MVI
- Extension: mvi
- Company Massive Development GmbH
This is a video format used in Schleichfahrt game that employs LZW compression.
File header:
4 bytes - 1 (version?) 4 bytes - unknown 4 bytes - width 4 bytes - height 4 bytes - number of frames 4 bytes - unknown 4 bytes - unknown (always 61?) 4 bytes - frames per second 4 bytes - audio present 4 bytes - number of channels 4 bytes - sample rate 4 bytes - bits per audio sample N bytes - frame table
Frame table consists of the following records:
4 bytes - frame type 4 bytes - unknown 4 bytes - frame size 4 bytes - offset
Frame types are:
- 1 -- intra frame
- 2 -- inter frame
- 3 -- monaural audio
- 4 -- stereo audio
- 5 -- palette (sometimes followed by some table)
Intra frames start with 32-bit packed and unpacked sizes for the frame pixels followed by LZW-compressed data if packed size is smaller (and theoretically raw data otherwise). LZW compression is remarkable for mapping 0 to explicit dictionary size bumping, 1 to dictionary reset, 2 to data end and 3..258 to actual symbols.
Inter frames consist of two parts, pixel data and mask data telling where to put those pixels at. Packed and unpacked sizes for both parts are transmitted before actual data. If packed and unpacked sizes are the same, data is unpacked; otherwise LZW compression is used.