Vault-Tec Labs

AAF File Format

403pages on
this wiki
Add New Page
Talk0 Share

AAF File FormatEdit

The AAF Font File Format is used to store fonts in Fallouts 1 & 2.. Only the AAF files used in the English versions are discussed here, there may or may not be variations for other languages.

The AAF file stores a separate glyph for each of the 256 position in the ASCII table. The fonts in an AAF file are typically non-fixed size, i.e. each glyph has it's own width and height. A glyph is defined by a rectangular bitmap representing the pixels of the glyph, corresponding to the way that it appears on the screen. Each pixel can have a possible value in the range of 0 to 9.

  • 0 means that the pixel is transparent.
  • The values 1 to 9 represent the relative brightness of that pixel, with 9 being the brightest. There does not appear to be a linear increase in brightness from values 1 to 9.

Here is an example of the bitmap of a glyph. This glyph is from the file FONT1.AAF and represents the character 'b' (ASCII 98).

  77  76
  77  77
  77  76

Pixels with value 0 are not shown as they are transparent. The higher numbers 7 and 6 represent the brighter parts of the glyph, while the 3 would be much duller in colour. This would be expected for the rounder corners of the b.

Offset Size (bytes) Data Type Description
0x0000 4 char[4] = "AAFF" Signature used to identify file type.
0x0004 2 unsigned short Maximum glyph Height.This is the maximum height of the glyph, including ascenders and descenders.
0x0006 2 unsigned short Horizontal gap.Gap size (in pixels) between adjacent glyphs.
0x0008 2 unsigned short Width of space.The width of the space character.
0x000A 2 unsigned short Vertical gap.The number of pixels between two lines of glyphs.
0x000C 2 unsigned short GLYPH-0-WIDTH : Width of glyph 0.The width (in pixels) of the glyph corresponding to ascii 0.
0x000E 2 unsigned short GLYPH-0-HEIGHT : Height of glyph 0.The height (in pixels) of the glyph corresponding to ascii 0.
0x0010 4 unsigned long Offset of glyph 0.The offset in this AAF file where the data for glyph 0 is stored.You need add 0x080C to this value to getting REAL offset from begin of file.Note: If GLYPH-x-WIDTH * GLYPH-x-HEIGHT = 0 (NULL glyph), then this value is offset of next "REAL" glyph.
0x0014 2 unsigned short GLYPH-1-WIDTH : Width of glyph 1.
0x0016 2 unsigned short GLYPH-1-HEIGHT : Height of glyph 1.
0x0018 4 unsigned long Offset of glyph 1. You need add 0x080C to this value to getting REAL offset from begin of file.
0x001C (2 + 2 + 2) * (256 - 2) Descriptions of glyphs 2 through 255, as described above.
0x080C GLYPH-0-WIDTH * GLYPH-0-HEIGHT byte = [0..9] Pixel data for glyph 0. Contains the pixel data for the glyph. Each pixel in the glyph is represented by one byte, with possible values in the range 0 to 9. A value of 0 means the pixel is transparent, while values 1 to 9 represent different brightness values of the pixel (1 is dark and 9 is bright). Pixel data is starts at the top left corner of the glyph and increases left to right, then top to bottom.
0x080C + (GLYPH-0-WIDTH * GLYPH-0-HEIGHT) GLYPH-1-WIDTH * GLYPH-1-HEIGHT byte = [0..9] Pixel data for glyph 1.
0x080C + (GLYPH-0-WIDTH * GLYPH-0-HEIGHT) + (GLYPH-1-WIDTH * GLYPH-1-HEIGHT) ... byte = [0..9] Pixel data for glyphs 2 to 255, as described above.

Note: All integers are in Motorola format.

Created by Noid (

Patched by Anchorite (

Found in TeamX's offline docs

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki