CC Tools is a collection of scripts to explore Unique Development Studio's (UDS) CC, the 3D engine (Cc.dll, UdsPack.dll) data files.
- extract.py to extract
UpPackage
s - convert.py to convert
GtImage
s to PNG - chunks.py to dump
MmChunkContainer
s andAfChunkContainer
s to JSON
UpPackage
*.up filesGtImage
*.gti filesCcAnim
*.cca filesCcLoadedScene
*.ccf files (mostly just the shape of the data without meaning)MmChunkContainer
Mulle Meck binary files- *.air files
- *.dat files
AfChunkContainer
Airfix binary files (excluding some chunks, see below)- path.dat
- *.brf files
- *.level files
- *.object files
- *.roster files
- *.world files
- Unused
CcLoadedScene
*.l3d files - Unused
MmChunkContainer
chunksDTBS
(database) chunksCMND
(command) chunksDATA
chunks
MmChunkContainer
missions.dat file- mission state data size is hardcoded but isn't included in this file
- Some
AfChunkContainer
chunks- path.dat file
PDAT
chunks: recorded path steps
- *.level
MODL
chunks: namedOBJE
cts with additional dataIAOB
chunks: interactive objects with state
- *.object
GRAV
gravity chunks?
- path.dat file
Kaitai Struct, a declarative language for describing binary data, is used to parse files:
- ksy/up_package.ksy describes
UpPackage
s (magic:UDSP
) - ksy/gt_image.ksy describes
GtImage
s (magic:GtIm
) - ksy/cc_anim.ksy describes
CcAnim
s (magic:CCA
) - ksy/cc_loaded_scene.ksy
describes
CcLoadedScene
s (magic:CcFf
) - ksy/mm_chunk_container.ksy
describes
MmChunkContainer
s (Mulle Meck binary files) and their chunks - ksy/af_chunk_container.ksy
describes
AfChunkContainer
s (Airfix binary files) and their chunks
Only a few games are known to use the CC engine:
- Airfix Dogfighter
- Mulle Meck 3: Planes
- Mulle Meck (Swedish/Danish)
- Miel Monteur (Dutch)
- Masa Mainion (Finnish)
- Willy Werkel (German)
- Mulle Mekk (Norwegian)
The Cc.dll found in Airfix Dogfighter is less optimized and better for reversing.