Open main menu

SCI/Specifications/Graphics/Font resource

< SCI‎ | Specifications‎ | Graphics
Revision as of 12:24, 6 January 2009 by Timofonic (talk | contribs) (Merging of the SCI documentation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The SCI font resource

SCI font resources remained unchanged during the SCI revisions and were still used in SCI32. Their format is relatively straightforward and completely sufficient for any 8 or even 16 bit character table:

Offset Type Meaning
0 16bit integer, little endian encoding Always zero (?)
2 16bit integer, little endian encoding NUMCHAR: Number of characters
4 16bit integer, little endian encoding HEIGHT: Number of pixel lines per text line
6+NR*2 16bit integer, little endian encoding Absolute offset of the character #NR, where 0 <= NR < NUMCHAR


HEIGHT does not affect the height of a character, though- it only tells the interpreter how far to move downwards when displaying a line of text. The characters referenced to starting at offset 6 are encoded as follows:

Offset Type Meaning
0 unsigned 8 bit integer character HEIGHT
1 unsigned 8 bit integer character WIDTH
2... bitmask, size HEIGHT * round up(WIDTH / 8) Bitmask for the character


The bitmap consists of HEIGHT lines of n bytes, where n equals the number of bytes required for storing WIDTH bits. Data is stored with the MSB first, in little-endian encoding (first byte describes the 8 leftmost pixels), where a pixel is drawn if the bit it corresponds to is set.