Crunched Screen Image

From ModdingWiki
(Redirected from Super ZZT Graphics Format)
Jump to navigation Jump to search
Crunched Screen Image
There is no example of an image in this format — upload one!
Format typeImage
HardwareCGA, EGA, VGA
Colour depth4-bit
Minimum size (pixels)80×25 cells
Maximum size (pixels)80×25 cells
PaletteDefault CGA
Plane count2
Transparent pixels?No
Hitmap pixels?No
Games

Crunched Screen Image is an exported format from an ASCII graphics editing program called TheDraw.

This format is also used to store compressed text screens in various titles by Epic Megagames, including Super ZZT, Jill of the Jungle, Kiloblaster and Xargon where the hardware configuration screens (and sometimes ending screens) are stored in this format. Some menu programs also use this format to store text-based menu, ordering info and ending screens.

The Xargon source code refers to this data format as "TheDraw C Crunched Screen Image" in CFG_WIN.H. Kiloblaster's source code uses the same name in BEGIN.H.

Format

There is no header information for this format. It is read as a stream of bytes until the Y-position goes off the bottom (row 25). The uncrunch algorithm found in the Xargon and Kiloblaster source code takes the length of the compressed block as a parameter and stops decompressing once all bytes have been processed.

The uncrunch decompression starts with the text attributes set to 0 (black text on black background, not blinking). The text usually appears at the top left corner of the text screen.

Value Description
00-0F Set the foreground color of following output to this value.
10-17 Set the background color of following output to the lower 4 bits of this value.
18 Go to the beginning of the following text line.
19 Read one more byte n, and output a space character n+1 times.
1A Read two more bytes n and char, and output char for n+1 times.
1B Toggle blinking text on/off
1C-1F Undefined (uncrunch just skips these)
20-FF Output this character exactly.

Location

These graphics cannot be found or used outside the game executable. They are referenced directly by the code and compiled into the game engine itself.