Skip to content

Asteroids font

Asteroids font

My version of the Asteroids font is derived from Ed Logg's hand-written notes (shown in this archived post from I modified a few of the characters to make them more distinct as well as added a strike to the 0 so that it stands out from the O.


I've used the font in my Asteroids "clone" Space Rocks, as well as my Vectorscope clock and Twitter oscilloscope. It is a very easy font to embed, so it shows up in several places where I need to draw legible text with a microcontroller. It is uppercase only, and I've had to create a few special characters for ones that weren't represented in Logg's notes.


The source code is in and has been compressed to use very little memory in representing the font in memory.

The drawing routine extracts the 4-bit X and Y offsets from the array and generates the moveto() or lineto() commands:

        const uint8_t * const pts = asteroids_font[- ' '](c).points;
        int next_moveto = 1;

        for(int i = 0 ; i < 8 ; i++)
            uint8_t delta = pts[i](i);
            if (delta == FONT_LAST)
            if (delta == FONT_UP)
                next_moveto = 1;

            unsigned dx = ((delta >> 4) & 0xF) * size;
            unsigned dy = ((delta >> 0) & 0xF) * size;

            if (next_moveto)
                moveto(x + dx, y + dy);
                lineto(x + dx, y + dy);

            next_moveto = 0;

        return 12 * size;

Font Vector display 2015

Last update: November 8, 2020