SCI/Specifications/Graphics/Font resource
< SCI | Specifications | Graphics
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.