Flexi IBM VGA Font: a Scalable Take on Text Mode

The VGA ROM font has to be the most recognizable text-mode character set, whether you spent the 1990s as an ANSI artist or as a POS cashier.  Naturally it's all bitmap, but I've seen a few attempts to shape it into a truly scalable font, with a 'smart' contoured outline that would theoretically look good at any size.  For instance, there's Nouveau IBM (previously used for titles on this blog) or Codepage Mono.

This one here takes a different approach, derived partially from the xBRZ scaler.  That gives it more of a 'rounded' look, but even so (IMO, YMMV, etc.) the perceptual form of the glyphs is closer to the original than other attempts.  The font was already pretty much finished last year, when I put it up on VOGONS as a 'beta' release, but there wasn't much to add to it... so here it is for your arguable enjoyment.

Two variants are included, 'True' and 'False': 'True' is aspect-corrected to match the appearance of a good old 4:3 VGA monitor.  The default VGA text mode has a resolution of 720x400, and at 4:3 this produces pixels that are far from square: (400/3)/(720/4) = 0.740740....  For simplicity's sake I rounded that to 0.75, meaning that the character cell is really 3/4 the width of a 'naïve' square-pixel representation.

Flexi IBM VGA9 Font Specimen

The 'False'-aspect variant does keep to the square-pixel assumption.  Which isn't true to the original look, but some may like that appearance or even be used to it.  At a text size of 16px, it has the effect of sticking to the 1:1 pixel representation but with an added anti-aliasing (depending on the font renderer).

Flexi IBM VGA9 False Aspect

Each of those two variants also comes in two encodings:

  • The unmarked file covers a wide selection of characters, mostly based on various code-pages from DOS (including Greek, Hebrew, Cyrillic and many Latin scripts): this is the same as the 'PxPlus' extensions from the Ultimate Oldskool PC Font Pack.
  • The "437" version contains only the characters from the original IBM PC codepage CP437 ("US-Latin"), and is detected by Windows as an "OEM/DOS" font.  Suitable for your favorite .NFO viewer or any other situation where you need this character set.

The full selection of glyphs is this:

Flexi IBM VGA9 Font: All Glyphs

Have fun.


blackcrack says:


why so you not make a Installpacket with your Fonts for windows
for more easy install your fonts, i guess, someone peoples do not know how they can use the Fonts from your , therewith would be a Fontinstall/setup Package really well, maybe
as silence install also /S for unattended install or extract /x C:test-extract
and i mean therewith a setup/installer with all your nice fonts..
best regards

blackcrack says:

by the way, don't forget a zip-file with folders for all fonts, therewith spear you the peoples the whole downloads and make one big file .. (all in one) and you have it later more easy .. just zip the folder, upload / update, add a logentry "{date} add/update font XXXXXX "..
and by the way, don't forget @, Öö,Ää,Üü and ß for the germans and the Eurpean Sigh too €

best regards

VileR says:

I thought it was easy and flexible enough to just highlight the font files you want, right-click, and pick 'Install' from the Windows context menu. And anyway creating an installer means more work and effort, which would be better spent on updating the oldskool font pack itself (which is long overdue!)

As for the Euro sign, Central European characters, etc. - this font has 'em already. :)

Jerry says:

Just want to say thank you for the high quality work!
Yes, I am keenly waiting for the IBM "rev0" font and the "Trident VGA" font :)

Vasili says:

Great work. Nice font. It will be nice if you write a tutorial about how to transform bitmap font to ttf. Here ( https://github.com/sunaku/tamzen-font/issues/7 ) was an attempt to convert bitmap font to ttf but without any success. Your tutorial may help.
Thank you.

VileR says:

If I only had the time. But you can't really have a single monolithic tutorial about this process, because it all depends on what you're trying to achieve. Very generally speaking, there are a few ways I can think of to get a .TTF from a bitmap font:

  • FontForge itself can trace bitmap glyphs to produce outline layers.
  • Inkscape can also trace bitmaps into vector .SVGs, which can be easily imported as glyphs into FontForge. That's what I did with this font.
  • Bits'N'Picas is a java app that takes various bitmap font formats and outputs vector ones. That's what I used for the Oldskool PC Font Pack.
  • Finally, this isn't widely known, but TTF fonts are fully capable of including bitmap versions of the font inside the TrueType container. I just don't know how well this feature is supported across platforms (In Windows you practically have to break stuff to make it work, but IIRC the Terminus fonts actually do this).

onhuur says:

Hey, thank you very much, looks great in emacs!

anirath says:

Thank you for this! I stumbled upon your blog via a link to your Oldskool PC Font Pack. I've definitely bookmarked this place.

jengelh says:

I tried xbrz too (via hxtools/vfontas utilities). Unfortunately for me, xbrz-scaled fonts do not look very..."sharp": strokes like the horizontal of a 't' essentially become a rectangle with rounded corners, which should not be. It goes without saying it is also far from the (hand-crafted) diagonals of Nouveau IBM.

Schmoove says:

WOW awesome, not only this font but your complete website! takes me back to the pre-Internet days of modems, mailboxes, demos, booting from diskette on a PC Junior :-) yeaaaaah!

Adiee5 says:

Literally the best font ever. i always preffered the old raster font from those new monospace fonts when it comes to terminal. sadly those didn't support Unicode characters, but this is true game-changer. and i also love the fact. that this font gets automatically on the Command Line's font list. Huge thanks

I love this project! Would you consider making this available under the SIL Open Font License, and in fonts.google.com?

Nazo says:

By the way, might it be possible to provide a DOS version (the .com) like BigBlueTerminal has? Would be kind of nice in things like DOSBox and the like.

VileR says:

@Nazo: a DOS executable would only be able to set a different bitmap font. If you want an outline font like this in a DOS environment, you could try something like DOSBox-X's TrueType font output, although I haven't tried it with the Flexi VGA font so I can only hope it works well with it.

Common Joe says:

This is an incredible piece of work that you are gifting the community. I cannot imagine how many hours you put into this project, but it is absolutely awesome. Thank you so much for sharing your talent.

Write a response:

* Required.
Your email address will not be published.