Cybermate Delta Animation file format

From Atari Wiki
Jump to navigation Jump to search
                               Stereo CAD-3D 2.0
                     Communication Pipeline Specification
                                 by Tom Hudson
                                  April, 1987
                           Copyright 1987 Tom Hudson
                              All rights reserved


CYBERMATE COMPRESSED DELTA FILE FORMAT

         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 WORD 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 WORD which indicates the number of deltas
         that are present for that frame.  When all those are
         processed, a new frame delta count WORD is read and the
         process is repeated.

         The .DLT file has the following format:

         WORD -- 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.

         WORD -- 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 LONG.

         LONG -- 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).

Back to ST Picture Formats