CFAST Disney Animation Studio
From Just Solve the File Format Problem
(Difference between revisions)
m (→Format Specification) |
m |
||
| Line 25: | Line 25: | ||
4 bytes - image height | 4 bytes - image height | ||
4 bytes - Amiga screen width (320=lores, 640=hires) | 4 bytes - Amiga screen width (320=lores, 640=hires) | ||
| − | 4 bytes - Amiga screen height (200 | + | 4 bytes - Amiga screen height (200=NTSC, 256=PAL, 400=NTSC interlaced, 512=PAL interlaced) |
1 byte - number of bitplanes (1..5) (numColors = 2^bitplanes) | 1 byte - number of bitplanes (1..5) (numColors = 2^bitplanes) | ||
Revision as of 22:08, 22 June 2018
CFAST is an animated raster graphics format associated with the Disney Animation Studio application for Amiga computers.
Contents |
Format Specification
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.
'STDY' means the file is one of the Animation Studio Sample files (copyright Disney)
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=NTSC, 256=PAL, 400=NTSC interlaced, 512=PAL interlaced)
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
Frames 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)
RLE compression:
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
Software
- Disney Animation Studio
- DASFLICK.ARJ → FLICK.EXE - Player for MS-DOS
Sample files
- DASFLICK.ARJ
- DASFLICK.ZIP - Another copy