Skip to content OpenCol docs
GitHub
  1. Docs
  2. DOS file formats
  3. .FF — fonts

.FF — fonts

Five bitmap fonts, each one MADSPACK entry: a height, 128 widths, 128 offsets and two-bit glyphs.

0x000  BYTE   height of every glyph
0x001  BYTE   width of the widest glyph
0x002  BYTE   width[128]
0x082  WORD   offset[128], from the start of the entry
0x182  glyph rows, back to back in slot order

Slot s draws character s + 1: slot 31 is the space (no ink in any font) and slot 64 is A. A glyph is height rows of ⌈width / 4⌉ bytes, two bits a pixel, the leftmost pixel in the top two bits. A pixel is 0 (paper) or 1–3, one of three ink colours the drawing code chooses.

The fonts are FONT-NP, FONTINTR, FONTKING, FONTSMAL and FONTTINY.

Evidence #

The layout is the MADS engine's font format. What makes it established for these files, rather than borrowed, is a set of checks that hold in all five: each glyph starts exactly where the one before it ends, the last ends exactly at the end of the entry, byte 1 is the largest width, and no row has a bit set past its glyph's width. Every byte of every font is accounted for.

dos_181f_2a86 (file 0x76c70) loads the whole file into memory under a tag of its name; game_main loads fontintr with it.

An independent research project. Sid Meier's Colonization belongs to its rights holders; nothing here is affiliated with them.

Figures come from the reconstructed code of the 1995 Windows release · styled with web-ui v1.2.0 · source on GitHub · 2026