34
edits
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
Character sets define the fonts used by SCUMM to draw text, such as dialogue, on the screen. | Character sets define the fonts used by SCUMM to draw text, such as dialogue, on the screen. | ||
== SCUMM V1 and V2 == | |||
== | |||
The V1 and V2 font format is identical to that found in V3 games; the big difference is that in V1 and V2, the font is not stored in the game data files, but rather is hardcoded into the executable. | The V1 and V2 font format is identical to that found in V3 games; the big difference is that in V1 and V2, the font is not stored in the game data files, but rather is hardcoded into the executable. | ||
Line 15: | Line 12: | ||
Another minor difference compared to the V3 format is that all characters are exactly 8x8 pixels big. Thus the font is always monospaced, unlike V3 fonts. | Another minor difference compared to the V3 format is that all characters are exactly 8x8 pixels big. Thus the font is always monospaced, unlike V3 fonts. | ||
== | == SCUMM V3 == | ||
The header looks as follows: | The header looks as follows: | ||
Line 33: | Line 30: | ||
After this header the character data starts. Every character in the charset takes up exactly 8 bytes, representing 8x8 pixels in which the actual character is contained (the actual width and height of the char should be computed from the charset header). | After this header the character data starts. Every character in the charset takes up exactly 8 bytes, representing 8x8 pixels in which the actual character is contained (the actual width and height of the char should be computed from the charset header). | ||
== | == SCUMM V4 == | ||
The header looks as follows: | The header looks as follows: | ||
Line 44: | Line 39: | ||
|2 || || unknown | |2 || || unknown | ||
|- | |- | ||
|15 || bytes || | |15 || bytes || color map | ||
|- | |- | ||
|1 || byte || number of bits per pixel | |1 || byte || number of bits per pixel | ||
Line 57: | Line 52: | ||
Character glyphs may be 1, 2, 4 or 8 bits per pixel, and can be masked. | Character glyphs may be 1, 2, 4 or 8 bits per pixel, and can be masked. | ||
The | The color map contains the colors each pixel of the character glyph | ||
is drawn as. Pixel value 0 is used for transparency; the other values are | is drawn as. Pixel value 0 is used for transparency; the other values are | ||
mapped using the color map in the header. | mapped using the color map in the header. | ||
The character data pointers contain the offset, relative to the byte | The character data pointers contain the offset, relative to the byte | ||
after the end of the | after the end of the color map (byte 29), of the character data. | ||
This can be 0 if that particular character is not encoded in the character | This can be 0 if that particular character is not encoded in the character | ||
set. The character data itself is formatted as follows: | set. The character data itself is formatted as follows: | ||
Line 110: | Line 105: | ||
</pre> | </pre> | ||
== | == SCUMM V5 and V6 == | ||
Like all other resources in V5 and later, the charset data is stored in a chunk, in this case a 'CHAR' chunk. The header looks as follows: | Like all other resources in V5 and later, the charset data is stored in a chunk, in this case a 'CHAR' chunk. The header looks as follows: | ||
Line 123: | Line 118: | ||
|2 || short || version ? (always 0x6303 in dott) | |2 || short || version ? (always 0x6303 in dott) | ||
|- | |- | ||
|15 || bytes || | |15 || bytes || color map | ||
|- | |- | ||
|1 || byte || number of bits per pixel | |1 || byte || number of bits per pixel | ||
Line 136: | Line 131: | ||
Observe that this header is identical to the V4 header with a few bytes added to the start of it. The charset format is otherwise identical to the V4 format described above. | Observe that this header is identical to the V4 header with a few bytes added to the start of it. The charset format is otherwise identical to the V4 format described above. | ||
== | == SCUMM V7 and V8 == | ||
=== NUT (V7 & V8) charset format === | === NUT (V7 & V8) charset format === |
edits