CFAST Disney Animation Studio
From Just Solve the File Format Problem
Revision as of 08:23, 18 June 2017 by Sigurdler
CFAST is an animated raster graphics format associated with the Disney Animation Studio application for Amiga computers.
Numbers are stored in big-endian format. 4 bytes - signature 'GUCF', 'LOCK' or 'STDY' 'LOCK' means the file was meant to be saved as final/non editable. If the signature is 'LOCK' or 'STDY' then a copyright/description message follows 2 bytes string length n bytes string Then follows the bitmap header 4 bytes - image width 4 bytes - image height 4 bytes - Amiga screen width (320=lores, 640=hires) 4 bytes - Amiga screen height (200/400, 256/512) 1 byte - number of bitplanes (1..5) (numColors = 2^bitplanes) Then follows palette information for the first two colors (if there are more colors, they are specified later in the file) 3 bytes - rgb for color index 0 3 bytes - rgb for color index 1 Then follows an extra block of data of varying length 1 byte - extralen n bytes (unknown contents) Then follows the number of frames 4 bytes - numFrames Frame are compressed individually (frames are NOT delta compressed from the previous frame) for every frame for every bitplane 4 bytes - compressed size of bitplane n bytes - compressed bitplane data (Run length encoding) end of every bitplane 1 byte - numColors in frame 3*numColors bytes 1 byte - number of color cycling ranges for every range 1 byte - low color index (0..31) 1 byte - high color index (0..31) 6 bytes - unknown 4 bytes - color cycle Rate 32 bytes - color cycle color indices ? Seems to always be numbered 0,1,2,3,4...31 (regardless of # bitplanes) I don't know why these are needed, when we have low/high. end of every range end of every frame At the end of the file, there may also be exposure sheet information ... (TODO) Bitplanes are compressed with run length encoding. Each column of words (two bytes) are compressed separately. 2 bytes - code if code < 0 then the next word is replicated -code+1 times else code+1 words are copied literally