From MultimediaWiki
Jump to: navigation, search

UMV is (suspected to be) a full motion video file format used in the DOS game Are You Afraid of the Dark? The Tale of Orpheo's Curse.

The format is split into individual "packets", with no special header. Each packet starts with 4 bytes packet size (big-endian, including the 4 bytes for the size itself), followed by the size value of the previous packet (0 if there is no previous one). The following 4 bytes are probably some kind of "packet type" value. Packets are grouped together, with the last packet in a group having a size value of 0 and type 00 00 00 80. After each packet group follows a section of PCM audio samples, up to the start of the next packet group. The start offset of the next packet group is coded in the first packet of the current group, such a packet starts e.g. like this: 00 00 00 40 00 00 00 00 00 00 00 02 00 02 c8 00 where 0x40 is the size of that first packet, 0 is the size of the previous one, the packet "type" is 2 and 0x2c800 is the start offset of the next packet group.

The PCM "packets" are strange, e.g. in V_END7.UMV most packets seem to have only a size of 8820 bytes, the remaining bytes are filled up with the value 0x80 - whereas the e.g. first PCM packet and the one starting at 0x47f2c seem to contain audio data all the way. Possibly the value 0x80 is not allowed in the signed PCM format used but instead indicates padding/values to be dropped?

Video seems to be a paletted format, where the palette is stored in packets of type 0x40 in a 1-byte per component, 3 component format (i.e. 768 bytes for a full palette). It is possible that these palette packets specify the first and last palette entry they replace, so only parts of the palette can be changed. Packets of type 0x20 might code full frames/keyframes at a resolution of 160x120.