Difference between revisions of "SCUMM/Technical Reference/Charset resources"

Jump to navigation Jump to search
no edit summary
(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 old charset format: V1-V3 ==
 
=== V1/V2 charset format ===


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.


=== V3 charset format ===
== 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).


== The new charset format: V4-V6 ==
== SCUMM V4 ==
 
=== V4 charset format ===


The header looks as follows:
The header looks as follows:
Line 44: Line 39:
|2      ||                || unknown
|2      ||                || unknown
|-
|-
|15    || bytes          || colour map
|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 colour map contains the colours each pixel of the character glyph
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 colour map (byte 29), of the character data.
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>


=== V5/V6 charset format ===
== 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          || colour map
|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.


== The modern charset format: V7-V8 ==
== SCUMM V7 and V8 ==


=== NUT (V7 & V8) charset format ===
=== NUT (V7 & V8) charset format ===
34

edits

Navigation menu