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:
Table 3-1. The SCI font resource data structure
Offset | Type | Meaning |
---|---|---|
0 | 16 bit integer, little endian encoding | Always zero (?) |
2 | 16 bit integer, little endian encoding | NUMCHAR: Number of characters |
4 | 16 bit integer, little endian encoding | HEIGHT: Number of pixel lines per text line |
6 + NR * 2 | 16 bit 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:
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 iff the bit it corresponds to is set.