Captain Comic II Sprite Format

From ModdingWiki
Jump to navigation Jump to search
Captain Comic II Sprite Format
There is no image of a tileset in this format — upload one!
Format typeTileset
HardwareEGA
Max tile countUnlimited
PaletteDefault EGA
Tile names?No
Minimum tile size (pixels)1×1
Maximum tile size (pixels)320×200
Plane count4/5
Plane arrangementTile-planar
Transparent pixels?Yes
Hitmap pixels?No
Metadata?None
Supports sub-tilesets?No
Compressed tiles?No
Hidden data?No
Games

This format stores the images used for drawing animated creatures and objects in Captain Comic II. The data is stored in FRNNN.2 level sprite files, FRDEMO.N introduction sequence files, and FRDATA.1.

File format

The file has no header - the first frame's data starts right at the beginning of the file. Each frame has a header of 4 or 6 bytes.

DataType Name Description
UINT16LE width Size of the frame in pixels
UINT16LE height
UINT16LE planeSize Size in bytes of one plane. This is equal to width × height / 8, but see following note.

The frames are 16-colour images, split into four or five planes (see Raw_EGA_data#Planar_EGA_data). Each image is stored one after the other, each image having the above header. The planes within each image are ordered with opacity first, if present, then blue, green, red, and intensity.

In reading these files, planeSize should always be checked against width × height / 8 for every image. If it is equal, this signals that an opacity plane is present. If it is not equal, that signals that there is no opacity plane, and the planeSize field should be treated as absent: the input stream should be backtracked two bytes (i.e. sizeof(planeSize)) before reading the four colour planes.

Credits

This file format was reverse engineered by Ceidwad. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)