First two bytes are the header:

Byte Description
00 Character width, in pixels.
01 Character width, in columns.

After the header is the pixel information itself. The 2BPP format stores four pixels per byte; these pixels make up one line of a column. The number of lines needed for each character is determined by the height of the font. For characters with multiple columns, the bytes are interlaced. This means that the first byte is the first line of column one, the second byte is the first line of column two, etc. for each column. This also means that the number of bytes required for a character is equal to the height of the font times the number of columns.

Which bits are toggled determines the color of the pixel:

Value Color
00 Transparent
01 White
10 Black
11 Gray

Source Document

  • ff6a/data/formats/fontchar.txt
  • Last modified: 2 years ago
  • (external edit)