Topic : ATARI ST Picture formats
Author : David Baggett/Jan K⌐upka
Version : atari_gf.hyp 0.01 (17/09/96)
Subject : Documentation/File formats
Nodes : 52
Index Size : 1328
HCP-Version : 3
Compiled on : Atari
@charset : atarist
@lang :
@default :
@help :
@options : -i -s +y +z
@width : 75Cybermate Delta File Format *.DLT (+ *.PI?)
The Cybermate animation system uses a "delta" compression technique
for storage of animated sequences. A delta compression is a simple
technique which compares a frame of animation to the previous frame,
storing only the changes (or deltas) that occurred from one frame to
the next.
In the current application of the delta compression technique, the
first frame of the animation sequence is stored in a DEGAS-format picture
file, and the remainder of the animation sequence is stored as a series
of delta values in a .DLT file.
Each frame of the animation is recorded as a series of delta values,
each of which is stored as a value from 0 to 31996 which indicate
an offset into the 32000-byte display bitmap memory, then a LONG value
which must be EOR'ed at the specified point in the display memory.
This changes the previous frame's LONG value to the new frame's value.
The EOR technique allows animations to be played in reverse as well.
Each frame has a which indicates the number of deltas that are
present for that frame. When all those are processed, a new frame delta
count is read and the process is repeated.
The .DLT file has the following format:
1 The number of deltas in this frame. A zero in this flag
indicates the end of the file. Frames with no deltas (the same
as the previous frame) are special cases and a dummy delta
offset and LONG EOR value of zero are provided in the delta
data which follows.
The following structure is repeated the number of times
specified in the delta count for this frame.
1 Offset into 32000-byte screen RAM for the delta data. This
number is a multiple of 4 from 0 to 31996. It should be used
as an offset from the start of screen RAM to EOR the following
.
1 Delta data. This value is EOR'ed with the screen data at
[screenbase + offset] to change the previous frame's data to
the new frame's.
Once all deltas for a particular frame have been processed, the
program reads the number of deltas for the next frame, and
continues with this process until all frames have been processed
(delta count = 0).