CFAST Disney Animation Studio

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Format Specification)
(Added a note that there are two separate formats)
(11 intermediate revisions by 2 users not shown)
Line 8: Line 8:
  
 
== Format Specification ==
 
== Format Specification ==
 +
There appears to be TWO different formats. One with .cft extension and one with .sec
  
 +
.cft format:
 
<pre>
 
<pre>
 +
Numbers are stored in big-endian format.
 +
 
4 bytes - signature 'GUCF', 'LOCK' or 'STDY'
 
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
 
If the signature is 'LOCK' or 'STDY' then a copyright/description message follows
 
2 bytes string length
 
2 bytes string length
 
n bytes string
 
n bytes string
'LOCK' means the file was meant to be saved as final/non editable
 
  
 
Then follows the bitmap header
 
Then follows the bitmap header
Line 21: Line 26:
 
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/400, 256/512)
+
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)
  
Line 35: Line 40:
 
4 bytes - numFrames
 
4 bytes - numFrames
  
 +
Frames are compressed individually (frames are NOT delta compressed from the previous frame)
 
for every frame
 
for every frame
 
   for every bitplane
 
   for every bitplane
 
       4 bytes - compressed size of bitplane
 
       4 bytes - compressed size of bitplane
       n bytes - compressed bitplane data
+
       n bytes - compressed bitplane data (Run length encoding)
 
   end of every bitplane
 
   end of every bitplane
  
Line 51: Line 57:
 
4 bytes - color cycle Rate
 
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)
 
         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 need these, when we have low/high,
+
          I don't know why these are needed, when we have low/high.
 
   end of every range
 
   end of every range
 
end of every frame
 
end of every frame
  
At the end of file may be exposure sheet information ... (TODO)
+
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.
  
Bitplanes are compressed with run length encoding. Each *column* of *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
  
 
</pre>
 
</pre>
Line 68: Line 80:
 
* [http://cd.textfiles.com/silvercollection/disc2/GRAPHVEW/DASFLICK.ARJ DASFLICK.ARJ]
 
* [http://cd.textfiles.com/silvercollection/disc2/GRAPHVEW/DASFLICK.ARJ DASFLICK.ARJ]
 
** [https://www.pcorner.com/list/ANIM/DASFLICK.ZIP/INFO/ DASFLICK.ZIP] - Another copy
 
** [https://www.pcorner.com/list/ANIM/DASFLICK.ZIP/INFO/ DASFLICK.ZIP] - Another copy
 +
* https://telparia.com/fileFormatSamples/video/disneyCFAST/
  
 
== Links ==
 
== Links ==

Revision as of 03:04, 17 February 2022

File Format
Name CFAST Disney Animation Studio
Ontology
Extension(s) .cft

CFAST is an animated raster graphics format associated with the Disney Animation Studio application for Amiga computers.

Contents

Format Specification

There appears to be TWO different formats. One with .cft extension and one with .sec

.cft format:

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

Sample files

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox