
Fonts extracted from BIOSes and VGA ROMs - luu
https://github.com/spacerace/romfont
======
theandrewbailey
Over the past few weeks, I've been setting all my command prompts and terminal
emulators to old-school fonts. I've settled on PxPlus IBM VGA8[0] with color
#FFB000 (monochrome amber) on black. If font antialiasing blurs things, I use
Nouveau IBM[1].

[0] [https://int10h.org/oldschool-pc-
fonts/fontlist/#ibmvgamcga](https://int10h.org/oldschool-pc-
fonts/fontlist/#ibmvgamcga)

[1] [https://www.dafont.com/nouveau-ibm.font](https://www.dafont.com/nouveau-
ibm.font)

~~~
remlov
For years now I've set the font in various IDEs and terminals to Px437 ATI
9x16 at font size 16 from int10h as well: [https://int10h.org/oldschool-pc-
fonts/fontlist/#ati_gfx](https://int10h.org/oldschool-pc-
fonts/fontlist/#ati_gfx) I love the pixel perfect goodness.

~~~
acheron
Same. It’s very comforting to be using that font.

~~~
mrslave
Reminds me of Space Quest.

------
stragies
From the nice article this little hint about a (possible) problem with Qemu:

"qemu seabios 8x8 and 8x14 are exact matches to IBM's VGA and XGA fonts. These
files are in fntcol16.zip from simtel. VGA-ROM.F08 and VGA-ROM.F14. qemu
source comment claims this is public domain. I doubt IBM would release a font
to public domain. Does this mean, qemu relied on claims by package creator and
now they use a illegal copy?"

~~~
rbanffy
I don't think font geometries are copyrightable, only names.

In any case, the IBM PC fonts are horrendous. They should have gone with the
sans-serif they used in their mainframe terminals.

~~~
willis936
Honestly, I would find it extremely limiting if someone was able to copyright
1664 bits of information. Bitmap 8x8 fonts are absolutely trivial. In one
afternoon anyone could make every human readable variation.

~~~
willis936
Thinking on it: 1664 bits is 26 * 8 * 8, which is a little low. ASCII uses
indices 32 to 127 for visible characters, so this would be 95 * 8 * 8, or 6080
bits. It's still a trivially small amount of information and there are very
few ways to make unique English fonts out of it, so I still don't think it
should be possible to copyright it.

Looking at the actual IBM_VGA_8x8.bin file: the file size is 1024 bytes (8192
bits). I calculated the entropy of the data to be only 638 bits of
information.

MATLAB code:

    
    
      fid = fopen('IBM_PC_BIOS_1981-04-24_HALF_8x8.bin','r');
      ibmVga = fread(fid);
      fclose(fid);
      p = histogram(double(ibmVga),255);
      E = -sum(log2(p.Values(p.Values > 0)).*log2(p.Values(p.Values > 0)));

~~~
perl4ever
Counterpoint, 2^638 is a large number. So a particular 638 bits is very
particular.

~~~
willis936
This is meaningless. Information is information. Specifying a size has
virtually no information. The number "638" stored in uint16 has two bits of
information using any word size between 8 and 15 bits.

------
Sharlin
Incidentally, the font images ([1]) should be usable as Dwarf Fortress
tilesets [2] with very little work (just change the background color from
black to transparent).

[1] [https://github.com/spacerace/romfont/tree/master/font-
images](https://github.com/spacerace/romfont/tree/master/font-images)

[2]
[http://dwarffortresswiki.org/index.php/DF2014:Tilesets](http://dwarffortresswiki.org/index.php/DF2014:Tilesets)

------
blickentwapft
I don’t know why but I love VGA text mode fonts. This project is awesome.

Are there pictures of the fonts? I didn’t see any.

~~~
UI_at_80x24
My first computer was a Commodore64. My only real complaint at the time was
how the "!" was displayed. It was a straight line with a square dot. It felt
incomplete somehow and IIRC looked too much like another character (can't
remember which one, maybe "i"??).

Then I got my first VGA output with a 386.

The exclamation mark was now curvy and sexy! Thick at the top, curving down to
a point, finished with a round dot. I thought everything was right in the
world.

I miss that font.

I've tried reusing bitmapped fonts that give me my desired output but I find
it just doesn't work in enough places that it's too annoying. Maybe it messes
up curses output, or UTF-8 incompatibilities?

~~~
Someone
You have to give Commodore (or whoever designed that font) some slack.

VGA (in typically used character modes) had more bits per character, and its
fonts didn’t have to be designed to be legible when displayed on a television
set (screen not designed for text display, and signal converted to antenna
signal and back)

Also, are you sure about that “round dot”?
[https://github.com/spacerace/romfont/blob/master/font-
images...](https://github.com/spacerace/romfont/blob/master/font-
images/zoomed/zoomed_IBM_VGA_8x16.png) doesn’t show it, and any non-squareness
would require a width of at least 3 pixels (more likely 4) to draw.

~~~
UI_at_80x24
I guess I was wrong about the dot. But I also remember the taper on the
exclamation mark being finer and less blocky. Obviously I remember through
rose coloured glasses. Wolfenstien3D didn't look as bad as modern screenshots
show either! =)

I don't doubt the C64 designers did the best with what they could; but I was
absolutely impressed with how good the "!" looked on that VGA screen.

------
bluedino
For those who are interested, how the fonts are stored/accessed:

[https://wiki.osdev.org/VGA_Fonts](https://wiki.osdev.org/VGA_Fonts)

~~~
jaclaz
And some related info on bitmap VGA fonts (used in DOS and in grub4dos),
paticularly the 8x16 sizes:

[http://reboot.pro/topic/19076-grub4dos-menu-font-
type/](http://reboot.pro/topic/19076-grub4dos-menu-font-type/)

------
JonathonW
Isn't this missing the 9x16 font that was the actual VGA text mode default?
That variant allowed a few characters to be slightly wider and cleaner
(noticeable on W, M, and X).

------
blickentwapft
Sadly I just sold an old z80 sign making device from long ago and it had about
10 add on rom font cartridges. Would have been good to give them to this guy.

------
khm
Dmitry Bolkhovityanov has led an effort to extend the VGA BIOS font to cover
much more unicode space:
[http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.html](http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.html)

I've made upscaled versions for high-density displays and a truetype version,
with contributed postscript:
[http://sciops.net/downloads/vga/](http://sciops.net/downloads/vga/)

------
throwaway2048
Worth mentioning in UNSCII, an oldschool bitmap font inspired unicode graphics
and drawing font

[http://pelulamu.net/unscii/](http://pelulamu.net/unscii/)

------
richard_todd
I assume if you want good results actually using these today, you need to be
careful to select a VGA font that was originally on square pixels. Is there an
easy way to tell which those are?

------
VikingCoder
It's a tedious, manual process, but I have used
[https://fontstruct.com/](https://fontstruct.com/) to make TTF fonts from
bitmap fonts before.

~~~
aasasd
There was a post just recently on this topic:
[https://news.ycombinator.com/item?id=23129434](https://news.ycombinator.com/item?id=23129434)

If the Fontstruct thing is better or easier, the author might benefit from a
pointer to it.

Also it was mentioned that the [https://int10h.org](https://int10h.org) site
has its own article on the method they used, but I can't find the link now.

~~~
VikingCoder
Every time old fonts come up, I have to mention Cool Retro Term:

[https://github.com/Swordfish90/cool-retro-
term](https://github.com/Swordfish90/cool-retro-term)

Sorry for the music in this video, but cool-retro-term really is a thing of
beauty:

[https://www.youtube.com/watch?v=jWx7REAQ2MY](https://www.youtube.com/watch?v=jWx7REAQ2MY)

~~~
aasasd
Btw, the proper use for that app is firing it up on someone's laptop in full-
screen if they leave the machine unlocked.

Also iirc the authors went to some lengths to accurately simulate the effects
of phosphor—which is also a topic in game emulation (in the spirit of
[https://pics.me.me/what-indie-developers-think-what-retro-
ga...](https://pics.me.me/what-indie-developers-think-what-retro-games-
actually-retro-games-9561656.png)).

------
m463
I would love to have a console with vector fonts.

like _real_ vector fonts, like those found in old arcade games like Omega Race

[https://www.arcade-
museum.com/game_detail.php?game_id=8920](https://www.arcade-
museum.com/game_detail.php?game_id=8920)

it would look like this:

[https://www.arcade-
museum.com/images/118/1181242142159.png](https://www.arcade-
museum.com/images/118/1181242142159.png)

------
cerberusss
Can these be used on macOS in some way? Like in iTerm or some such?

~~~
bluedino
You'd have to convert them, but you could try a truetype version available
here: [https://int10h.org/oldschool-pc-
fonts/readme/#px437](https://int10h.org/oldschool-pc-fonts/readme/#px437)

~~~
cerberusss
Oh boy that's fantastic, thanks for the pointer!

------
thewebcount
This is really cool! When I was in college in the early 90s I used an IBM AIX
machine in terminal mode, and it had what seemed at the time to be a really
crystal clear serif font. I suspect that it was antialiased, but am not sure.
I would really love to find that font somewhere. If anyone knows what it was,
I'd love to learn more about it.

------
acqq
I remember looking/using at the different non-PC terminals decades ago,
produced by different companies, which had significantly nicer fonts than any
PC fonts I watched later.

Of course, it's not only the font, but the whole technology (analog devices
have analog responses etc). But some looked really nice.

Is there any resource with non-PC terminal fonts?

~~~
anthk
Get the TTF version of the IBM 3270 fonts (Google 3270 TTF github) and copy
the TTF files into ~/.fonts (or whatever method you use in your OS).

------
jedberg
I have a similar collection of fonts that I use in presentations. I like to
use the old school VGA fonts for emphasis on chunks of code.

It draws the eye and usually I get at least one person commenting on the
nostalgia factor of the font, which means they will remember that part of the
presentation.

------
clord
a clade diagram of these would be fascinating.

