CFAST Disney Animation Studio

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Added a note that there are two separate formats)
 
(14 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 - encoded size of bitplane
+
       4 bytes - compressed size of bitplane
       n bytes - compressed bitplane
+
       n bytes - compressed bitplane data (Run length encoding)
 +
  end of every bitplane
  
 
   1 byte - numColors in frame
 
   1 byte - numColors in frame
Line 49: Line 56:
 
6 bytes - unknown
 
6 bytes - unknown
 
4 bytes - color cycle Rate
 
4 bytes - color cycle Rate
         32 bytes - color cycle color indices ?
+
         32 bytes - color cycle color indices ? Seems to always be numbered 0,1,2,3,4...31 (regardless of # bitplanes)
    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.
  I don't know why need these, 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.
  
At the end of file may be exposure sheet information ... (TODO)
+
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 65: 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 ==

Latest 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

[edit] 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

[edit] Software

[edit] Sample files

[edit] Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox