While playing the iconic game Quake, I noticed the nice pixel typeface in the game. I was curious about how the typeface is stored in the source code and if I could extract the data and draw the font into a font editor.
I found that the font was stored as a special texture, in a file with other textures. This 'CONCHAR' chunk of data is 16 kb. A grid of 128 x 128. Top left to top right and top to bottom. Every byte represents a color in the palette.
Quakes color palette has 256 colors = 16 x 16 colors. Every row is a defined color, in this row are the shades of this color. This is smart system to easily create light and shadow effects. The palette is stored as an array of 256 x 3 bytes; 3 because RGB.
With all this information I can draw the full character set:
loop through all the bytes in CONCHAR, look up and set the color, draw a pixel.
You see that the character set is double. First a grey, than brown/rust. The fun thing about the grey one is that its all the same row in the palette. With means I can shift to an other row and I get a different color. The Rust color set is more color designed so to speak.