1,079
edits
(Initial SCUMM charset page) |
(Added some V5/V6 charset format info from the SCUMM Reference Guide) |
||
Line 33: | Line 33: | ||
|1024 || 256*quad LE || character data offsets | |1024 || 256*quad LE || character data offsets | ||
|} | |} | ||
Character glyphs may be 1, 2, 4 or 8 bits per pixel, and can be masked. | |||
The colour map contains the colours each pixel of the character glyph | |||
is drawn as. Pixel value 0 is used for transparency; the other values are | |||
mapped using the color map in the header. | |||
The character data pointers contain the offset, relative to the byte | |||
after the end of the colour map (byte 29), of the character data. | |||
This can be 0 if that particular character is not encoded in the character | |||
set. The character data itself is formatted as follows: | |||
{| border="1" cellpadding="2" cellspacing="0" | |||
!Size !! Type !! Description | |||
|- | |||
|1 || byte || width of character | |||
|- | |||
|1 || byte || height of character | |||
|- | |||
|1 || byte || X offset | |||
|- | |||
|1 || byte || Y offset | |||
|- | |||
|many || bytes... || glyph data bitstream | |||
|} | |||
The X and Y offsets are added to the screen coordinates of the top-left | |||
corner of the glyph before drawing. This is useful for, say, shadowed | |||
text. Needless to say, glyphs don't all have to be the same size, | |||
although in all the examples I have they are the same height. | |||
The data bitstream encodes the pixels in the glyph in left-to-right, | |||
top-to-bottom order. Multiple pixels are encoded per byte. The pixels | |||
are arranged in big-endian format; so, the first pixel in the stream | |||
is in the top bits of the first data byte; then the bits below that; | |||
and so on. For example, at one bit per pixel: | |||
<pre> | |||
Bit position: 7 0 7 0 ... | |||
Words of data: 01234567 89ABCDEF | |||
</pre> | |||
At two bits per pixel: | |||
<pre> | |||
Bit position: 7 0 7 0 ... | |||
Words of data: 00112233 44556677 | |||
</pre> | |||
And at four bits per pixel: | |||
<pre> | |||
Bit position: 7 0 7 1 ... | |||
Words of data: 00001111 22223333 | |||
</pre> | |||
=== NUT (V7 & V8) charset format === | === NUT (V7 & V8) charset format === | ||
TODO | TODO |
edits