home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
FAQSYS18.ZIP
/
FAQS.DAT
/
DVM_FORM.TXT
< prev
next >
Wrap
Internet Message Format
|
1995-10-13
|
3KB
From: Bert.Greevenbosch@mmm.xs4all.nl (Bert Greevenbosch)
Date: 27 Feb 95 18:45:00
Newsgroups: comp.os.msdos.programmer
Subject: DVM movie file format
Organization: Multi Media Master, +31-(0)10-4204461
DESCRIPTION DVM FORMAT (v1.0, v2.0, v3.0 and v3.1)
==================================================
HEADER
3 bytes: "DVM"
1 byte: version 1.0: "Q": quarter screen, "F": full screen.
higher versions: "V".
Only by versions 2.0 and higher:
1 byte version: Left nibble before point, right nibble after point.
1 byte infobyte: Bits got the folowing information:
bit 7: 0: quarter screen (160x100) Version 2.0 and higher
1: full screen (320x200)
bit 6: 0: not compressed
1: compressed
bit 5: 0: standard palette (see next page)
1: enhanced palette
bit 4: 0: 16 colors Version 3.0 and higher
1: 256 colors
bit 3: 0: no text Version 3.1 and higher
1: text exist
1 word: time (ms) to wait after each frame.
If text exist:
1 word: number of characters:
x bytes: characters.
N.B. by version 1.0 the shower should define infobyte like this:
If full screen: a0h = 160d
If quarter screen: 20h = 32d
FRAMEDATA
If enhanced palette:
If 16 colors: 48 bytes 6 bits rgb palette (r0, g0, b0, r1, g1, b1,
..., r15, g15, b15)
If 256 colors: 768 bytes rgb palette (0..255)
Framedata:
>From left to right, from top to bottom.
Example (quarter screen uncompressed):
var
bt: byte;
fi: file;
x, y: word;
(...)
for y:=0 to 99 do
for x:=0 to 159 do
begin
blockread(fi,bt,1);
putpixel(x,y,bt);
end;
If compressed: Left nibble = byte 1, right nibble = byte 2.
Example (quarter screen compressed):
var
bt: byte;
fi: file;
x, y: word;
(...)
for y:=0 to 99 do
for x:=0 to 79 do
begin
blockread(fi,bt,1);
putpixel(x*2,y,(bt and $f0) shr 4);
putpixel(x*2+1,y,bt and $0f);
end;
STANDARD PALETTE
Does not exist in file, should be included with viewer.
Can be created like this;
var
palette: array [0..255] of record red, green, blue: byte; end;
b, c, g, r: byte;
(...)
for c:=0 to 15 do
with palette[c] do
begin
red:=round(c*4.2);
green:=round(c*4.2);
blue:=round(c*4.2);
end;
for r:=0 to 5 do
for g:=0 to 5 do
for b:=0 to 5 do
with palette[r*36+g*6+b+16] do
begin
red:=round(r*12.6);
green:=round(g*12.6);
blue:=round(b*12.6);
end;
for c:=0 to 7 do
begin
with palette[232+c] do
begin
red:=c*9;
green:=0;
blue:=0;
end;
with palette[240+c] do
begin
red:=0;
green:=c*9;
blue:=0;
end;
with palette[248+c] do
begin
red:=0;
green:=0;
blue:=c*9;
end;
end;
The DVM format was created by Magic Software and may only be modified by
members of Magic Software.
Any questions or suggestions? Write me!
E-mail: bert.greevenbosch@mmm.xs4all.nl
-------------------------------------------------------------------------------
-> Internet: Bert.Greevenbosch@mmm.xs4all.nl
..\|/ Multi Media Master +31-10-4204461 \|/..
-> Standard disclaimer: The views of this user are strictly his own <-
-------------------------------------------------------------------------------