spacerace/romfont

spacerace/romfont

I have diassembled and/or searched BIOS and VGA-ROMs for fonts and extracted these.
Also I have written a few tools to support this job.
All extracted fonts and screenshots are available here. I have written a big
table to show what is covered. Also had a look and wrote about fonts of open
source BIOSes/source available.

If you have exotic ROMs or links to other open source BIOSes please let me know.
Testing a ROM for known fonts and add it to this list only takes a few minutes and
if there is one with a yet unknown font, I am happy to extract and document it 🙂


I am really intersted in ROMs of old laptops with weird LCD-fonts and embedded
devices (like POS systems, cash registers, money machines and other stuff).
Also if you have localized graphic cards, that bring a local charset (ex. greek),
I am happy to extract their’ fonts.

I already extracted more than 240 ROM-fonts. Most likely I am not updating this
counter for every font, so check the font-bin and font-images folder, if there
is something new relevant to you.

I have written a tool to browse a ROM image and search for 8×8, 8×14, 8×16 charsets
and export.
It can be found here on github in another repo, called “romfont-extractor”.

ls

LEGEND: "ok" - font already extracted
        "XX" - font not included in ROM (newer cards dont ship 8x14 usually)
        "  " - not yet done
        "??" - something strange
        "LO" - only lower 128 characters available

Filename of ROM                                  8x8  8x14 8x16  Bus    Memory   Date         Comments (BIOS manuf., year, version, ...)
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
ATI.X550.128.040512.rom                         | ok | xx | ok |      |        |            |
Asus.6200.16.050106.rom                         | ?? | ?? | ?? |      |        |            | NV44, 2004 Nvidia, Version 5.44.02.11.00 / AS05
CLGD5442.ROM                                    | ok | ok | ok |      |        |            | CL-GD540x/542x VGA BIOS Version 1.20, 1992-1993 Cirrus Logic, 1987-1990 Quadtel
avga1-a11.bin                                   | ?? | ?? | ?? |      |        |            |
AVGA2.ROM                                       | ok | ok | ok |      |        |            |
Commodore386SX-25_AVGA2.bin                     | ok | ok | ok | ISA  |   512k | 03/19/92   | Acumos AVGA2, DeskTop VGA BIOS (340-000-11-Rev1.00), 1984-1991 Phoenix
Connect3D.9500NP.128.Infineon30.021212.rom      | ok | xx | ok | AGP  |        | 2002/12/12 | R300, Infineon Memory BIOS - P/N 113-94232-101, 1988-2002 ATI BK-ATI VER008.004.008.004
Diamond Stealth 64 Video VRAM PCI 3.00.bin      | ok | ok | ok | PCI  |        | 07/05/95   | Stealth 64 Video VRAM Vers. 3.00, Diamond MultiMedia Systems
ELSAVIC2.ROM                                    | ok | ok | ok | AGP  |        | 11/23/98   | ELSA VICTORY II 4.03.00, 98-98 ELSA, 90-98 Elpin Systems
Elsa.FireGLV3200.128.040910.rom                 | ok | xx | ok | PCIE |  128MB | 2004/09/10 | RV380, 1988-2003, ATI BK-ATI VER008.015.121.000
FujitsuSiemens.QuadroFX1700.512.080123.rom      | ?? | ?? | ?? |      |  512MB |            | ??? compressed font ??? cant find font on first look
FujitsuSiemens.X300Mobility.32.050608.rom       | ok | xx | ok |      |   32MB |            |
G400.ROM                                        | ok | xx | ok |      |        |            | Matrox
GENOA.ROM                                       | ok | ok | ok |      |        |            | Tseng
Gigabyte.6200.16.050711.rom                     | ?? | ?? | ?? |      |        |            | ??? compressed font ??? cant find font on first look
Leadtek.6200.16.050128.rom                      | ?? | ?? | ?? |      |        |            | ??? compressed font ??? cant find font on first look
M32.ROM                                         | ok | ok | ok | PCI  |        |            | ATI
M64GX.ROM                                       | ok | ok | ok |      |        |            |
MGAMIL2.ROM                                     | ok | xx | ok |      |        |            |
MIROV968.ROM                                    | ok | ok | ok |      |        |            | Same like V7MERC
MORSE KP800 VGA CL-GD520A-32PC-B.bin            | ok | ok | ok |      |        |            | CL Award
NCR VLB VGA CL-GD5428-80QC-A.bin                | ok | ok | ok |      |        |            |
R128GL.ROM                                      | ok | xx | ok |      |        |            |
RIVA128A.ROM                                    | ok | xx | ok |      |        |            | STB
S3T64V2.ROM                                     | ok | ok | ok | PCI  |        |            | S3
S3VIRGX2.ROM                                    | ok | ok | ok | PCI  |        |            | S3
Sapphire.9600NP.256.unknown.031028.rom          | ok | xx | ok |      |  256MB |            |
Sapphire.9600PRO.128.Samsung28.030829.rom       | ok | xx | ok |      |  128MB |            |
TNT2M64.ROM                                     | ok | ok | ok |      |        |            |
TSVGA 9020-12 ET4000 ISA VGA.bin                | ok | ok | ok | ISA  |        |            |
Tseng ET3000AX ISA VGA-VGA ULTRA.bin            | ok | ok | ok | ISA  |        |            |
V7MERC.ROM                                      | ok | ok | ok |      |        |            |
V7_Vega                                         | ok | ok | ok |      |        |            | uses 3dfx font set, different fonts than V7MERC
video_seven_vega_vga_62L1989V5_435-0016-47.bin  | ok | ok | ok |      |        |            |
VANTA.ROM                                       | ok | ok | ?? |      |        |            | 8x16 not complete in ROM
VANTAGE.ROM                                     | xx | ok | ok |      |        |            | has no 8x8 font
VDOO3PCI.ROM                                    | ok | ok | ok |      |        |            | 3dfx Elpin
WIN1KXHR.ROM                                    | ok | ok | ok |      |        |            | ESLA
WONDER16.ROM                                    | ok | ok | ok |      |        |            |
XGA.ROM                                         | ok | ok | ok |      |        |            | Phoenix
et4000_stb.vbi                                  | ok | xx | ok |      |        |            |
et4000w32isa.BIN                                | ok | ok | ok |      |        |            |
et4000_weirdlowerL.bin                          | ok | ok | ok | ISA  |512k/1M |            | Has a weird lower L in 8x14 and 8x16 charsets. Typical TSENG change to a PC font.
OakTechnolgy-unknown-1.bin                      | ok | ok | ok |      |        |            |
OakTechnolgyVGA-KO77.bin                        | ok | ok | ok |      |        |            |
QuadtelS3_86C801_86C805EnhancedVGABIOS2.13.01   | ok | ok | ok |      |        |            |
QuadtelVGABIOSVersion1.21.00.bin                | ok | ok | ok |      |        |            |
SVGA141.ROM                                     | ok | ok | ok |      |        |            |
s3_764.bin                                      | ok | ok | ok |      |        |            |
TridentTVGA8900C_S27C256.bin                    | ?? | ?? | ?? |      |        |            |
tgui9400cxi.vbi                                 | ok | ok | ok |      |        |            |
tvga-c4.3.rom                                   | ok | ok | ok |      |        |            |
tvga-d3.0.rom                                   | ok | ok | ok |      |        |            |
tvga9000i-d4.01e                                | ?? | ?? | ?? |      |        |            |
tvga9000i-v2.vbi                                | ok | ok | ok |      |        |            |
tvga9000a_d211.bin                              | ok | ok | ok |      |        |            |
tvga9000a_d301.bin                              | ok | ok | ok |      |        |            |
tvga8800cs                                      | ok | ok | ok |      |        |            |
tvga8800cs_2                                    | ok | ok | ok |      |        |            |
BLADEXP.vbi                                     | ok | ok | ok |      |        |            |
BLADE3D_AGP.vbi                                 | ok | ok | ok |      |        |            |
BLADE3D_AGP_HIS.vbi                             | ok | ok | ok |      |        |            |
BLADE3D_PCI.vbi                                 | ok | ok | ok |      |        |            |
vgaedge.bin                                     | ok | ok | ok |      |        |            |
TsengLabsVGA-4000BIOSV1.1.bin                   | ok | ok | ok |      |        |            |
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
ATIEgaWonder800p.bin                            | ok | ok | ok |      |        |            |
ami-ega.rom                                     | ok | ok | xx |      |        |            | VERY SPECIAL FONTS, 2 different 8x8 (1 is mirrored) and one 8x14
genoa-ega-2.41.rom                              | ok | ok | xx |      |        |            |
ibm-ega.rom                                     | ok | ok | xx |      |        |            |
NSILogic-SmartEGAPlus-04-086-01Rev1.45-U21.bin  | ok | ok | xx |      |        |            |
wd-pega.rom                                     | ok | ok | xx |      |        |            |
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
IBM VGA                                         | ok | ok | ok |      |        |            | has a full 8x8 charset in 8x8, 8x14 and 8x16
IBM_PC_BIOS_1981-04-24_HALF_8x8.bin             | LO | XX | XX | ---  | ------ |            | IBM PC BIOS, only lower 128 characters, no "graphical" chars.
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
=> IN THIS SECTION: LOCALIZED VIDEO ROMS (greek, ...)
CGA_PRAVETZ.ROM                                 | ok | xx | xx |      |        |            | 4 different kyrillic fonts
acer500-II_cga_rom.bin                          | ok | xx | ?? |      |        |            | 2 different greek 8x8, somewhat strange 8x16 TBD
ati_small_wonder_rev1_GR-ROM.bin                | ok | xx | ?? |      |        |            | 4 different greek 8x8
clone2_cga_rom.bin                              | xx | ?? | ?? |      |        |            |
clone_cga_rom.bin                               | xx | ?? | ?? |      |        |            |
hyundai_mono-graphics-board_e40080004           | xx | ?? | ?? |      |        |            |
ibm5155_cga_rom_memotek_greek                   | ok | xx | xx |      |        |            | 10 different greek fonts?
tvga9000a_japan.vbi                             | ok | ok | ok |      |        |            |
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
mda.rom                                         | ?? | ?? | ?? |      |        |            | 8k ROM only font data, what is this? not extracted yet, some problems
50146chareuro.rom                               | ok | xx | ok |      |        |            | Tandy 1000, 8x8 and 8x14 in both a 8x16 array with padding zero bytes
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
=> IN THIS SECTION: SYSTEM BIOS
ali1429g.amw (AMI WINBIOS)                      | LO | xx | xx |      |        |            |
amic206.bin                                     | xx | xx | xx |      |        |            | NO FONT at all
ami386.bin                                      | LO | xx | xx |      |        |            |
amxtv132.rom                                    | LO | xx | xx |      |        |            |
award-2.05.rom                                  | LO | xx | xx |      |        |            |
DTK.PII-151B-BIOS.version.1.06B.bin             | xx | xx | xx |      |        |            | NO FONT at all
dtk_erso_2.42_2764.bin                          | LO | xx | xx |      |        |            |
genxt.bin                                       | LO | xx | xx |      |        |            |
JukoD16X-BIOSversion1.2.bin                     | xx | xx | xx |      |        |            | NO FONT at all
LongshineLCS-6821N-BIOSversion1.04.bin          | xx | xx | xx |      |        |            | NO FONT at all
olivetti-m24-1.21.rom                           | LO | xx | xx |      |        |            |
opt495sx.ami                                    | LO | xx | xx |      |        |            |
phoenix-2.51.rom                                | LO | xx | xx |      |        |            |
ToshibaT1000-BIOSROM-V4.10.bin                  | ?? | xx | xx |      |        |            | lo and hi in different places
toshibaT5200cbiosv3.bin                         | ok | xx | ok |      |        |            | VERY SPECIAL contains each 2 different fonts, 8x8 and 8x16
VTech-LaserTurboXT-BIOS-V1.11-27C64D.bin        | LO | xx | xx |      |        |            | VERY SPECIAL
VTech-LaserXT3-BIOS-V1.26-27C64.bin             | LO | xx | xx |      |        |            | VERY SPECIAL
wang3050_bios_rom                               | ok | ok | ok |      |        |            |
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
ibmjap.rom                                      | ok | ok | ok |      |        |            | Japanese PS/2 BIOS
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------
=> IN THIS SECTION: FONTS THAT ARE AVAILABLE IN SOURCE
seabios                                         | ok | ok | ok | ---  | ------ |            | from official source
bochs                                           | LO | XX | XX | ---  | ------ |            | from official source
3dfx                                            | ok | ok | ok |      |        |            | from leaked source
IBM PC BIOS V1                                  | LO | XX | XX |      |        |   1981     | from IBM's source
IBM PC BIOS V2,V3                               | LO | XX | XX |      |        |   1981     | from IBM's source
IBM AT BIOS V1,V2,V3                            | LO | XX | XX |      |        |   1981     | from IBM's source
IBM XT BIOS V1,V2,V3                            | LO | XX | XX |      |        |   1981     | from IBM's source
IBM XT286 BIOS V1                               | LO | XX | XX |      |        |   1981     | from IBM's source
------------------------------------------------+----+----+----+------+--------+------------+------------------------------------------------------------------------------------------------

The folder ‘other_sources’ contains subfolders, which each holds a set of files for a ROM-font.
They were not extracted from ROMs, they are already available as source. These
sources were adapted and simple bin-generators were added to create the binary
font files.
These are available:

ibm_pc             -  original IBM PC, V1/V2/V3
ibm_xt             -  IBM XT, V1/V2/V3
ibm_xt286          -  IBM XT 286, only one BIOS available
ibm_at             -  IBM AT, V1/V2/V3
seabios            -  qemu seabios, 8x8, 8x14, 8x16
3dfx_leadked_bios  -  original source code, 8x8, 8x14, 8x16, 9x14, 9x16
bochs_bios         -  bochs bios, 8x8, only lower half of charset implemented

Not all are yet converted to C (most of them in ASM) and bins are generated.
The original sources are provided already.

  • IBM has used a font for the very first PC BIOS, that has changed in second
    version of BIOS. After this release the font remained the same on these machines:

    • IBM PC v2, v3
    • IBM XT v1, v2, v3
    • IBM XT v1
    • IBM AT v1, v2, v3
      The only change from first to second version is 1 single bit, that makes a huge
      difference when looking at it (ASCII 0x04, bottom line 0x00 changes to 0x08).
      This font only has the lower 128 characters.
  • IBM uses exactly same 8×8,8×14,8×16 on VGA and XGA. (full 256 item charset)
  • qemu seabios 8×8 and 8×14 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?
  • bochs bios 8×8 only brings lower 128 chars that are exactly matching IBM’s second font.
    Same as with seabios 8×8 font (licensing).
  • 3dfx uses 8×8+8×14 IBM font, but looks like they use NVidia 8×16 font.
  • The Voodoo3 8×8,8×14,8×16 match exactly the leaked ones from 3dfx.
  • The AVGA2 has totally unique fonts – TODO – bit by bit compare – what are the differences?

Have a look at MD5SUMs file, it is sorted by sum. This means, you will se which
cards share same font.
If you want to compare you may use a image viewer and view the zoomed images
of the desired fonts.

The folder lowercharset holds the lower 128 characters of all 8×8 fonts to
see, which one uses the original IBM PC’s or the second version of this font.

Other News

Menu
Need Help? Chat with us