Skip to content

DOSBox-X - RetroBIOS

Type standalone
Classification Enhanced forks
Source https://github.com/joncampbell123/dosbox-x
Version 2026.08.02
Profiled 2026-08-08
Cores dosbox-x, dosboxx
Systems dos, ibm-pc, ibm-pcjr, tandy-1000, pc-98
Technical notes

Fork of DOSBox SVN with its own DOS kernel. The machine setting picks the emulated hardware: mda, cga and its composite variants, hercules, hercules_plus, hercules_incolor, hercules_color, tandy, pcjr, amstrad, olivetti/m24/att6300, pc3270, ega, ega200, jega, mcga, vgaonly, the S3, Tseng, Paradise and ATI SVGA cards, the vesa variants, and pc98/pc9801/pc9821. fm_towns is marked STUB in the same list. ref: dosbox.cpp:1526-1562

No system BIOS: the PC BIOS, VGA BIOS, video fonts, keyboard layouts, codepage tables, the Z: drive utilities including GLIDE2X.OVL, and the TTF text font are compiled in. ref: int10_memory.cpp, dos_keyboard_layout_data.h, dos_codepages.h, src/builtin/glide2x.cpp:2861, output_ttf.cpp:664

Files named without a directory are searched in the working directory, the program directory, the user configuration directory and the resource directory. On Linux the configuration directory is $XDG_CONFIG_HOME/dosbox-x or ~/.config/dosbox-x, and the resource directory is $XDG_DATA_HOME/dosbox-x, then /usr/local/share/dosbox-x, then /usr/share/dosbox-x. Windows uses C:\DOSBox-X. ref: int10.cpp:1442-1485, cross.cpp:120-167

MT-32: libmt32emu is built from src/libs/mt32. Only four file names are ever opened, and each candidate is identified by exact file size then SHA1, so the name says nothing about the contents. addROMFile matches against the full image list only, which rejects the interleaved chip dumps. ref: midi_mt32.h:74-109, c_interface.cpp:442-462, ROMInfo.cpp:206-215 mt32.model = auto opens CM32L_CONTROL.ROM then MT32_CONTROL.ROM, and CM32L_PCM.ROM then MT32_PCM.ROM; cm32l keeps only the CM32L names, mt32 only the MT32 names. The directory is mt32.romdir, then the working directory, then the resource directory, then the configuration directory. A missing pair logs the accepted file names and disables the device. ref: midi_mt32.h:246-275, dosbox.cpp:3571-3576

FluidSynth reads fluid.soundfont; fluid_synth_sfload is the only check. With the setting empty it probes /usr/share/soundfonts/default.sf2, /usr/share/sounds/sf2/FluidR3_GM.sf2 and GeneralUser_GS.sf2 on Linux, and C:\soundfonts\default.sf2 then the two same names under C:\DOSBox-X on Windows. ref: midi_synth.h:342-384, 462-480

PC-98 character generator, tried in order: FONT.ROM as generated by T98Tools, then the FONTX2 files named by pc-98 fontx sbcs and pc-98 fontx dbcs, then the file named by pc-98 anex86 font or ANEX86.BMP followed by FREECG98.BMP, then the built-in FREECG single-byte font and the built-in Japanese double-byte font. Each stage fills only what the previous one left empty. ref: int10.cpp:1882-1893, 1652-1675

PC-98 sound board BIOS: with pc-98 sound bios set, SOUND.ROM is read from the working directory into CC000h. Without it a callback Sound BIOS is installed at CEE0:0000 answering INT D2h. ref: pc98_fm.cpp:367-385, 416-434

DOS/V and CJK text: fontxsbcs, fontxsbcs16, fontxsbcs24, fontxdbcs, fontxdbcs14 and fontxdbcs24 name font files. LoadFontxFile reads a FONTX2 header, otherwise tries BDF and PCF, otherwise accepts a raw bitmap font identified by its size, which covers ASC16 and ASCFONT.15 from UCDOS and ETen Chinese DOS, ASC24, HZK14, HZK16, HZK24 and STDFONT.15 and STDFONT.24. Unset settings fall back to the built-in font data. ref: int_dosv.cpp:654-749, 1631-1710, dosbox.cpp:2533-2568

BOOT -bios loads a BIOS image at the top of the first megabyte, truncated to 128 KB, or 96 KB on PC-98 where it also looks for .itf.rom, .ITF.ROM, itf.rom and ITF.ROM to serve the bank switched Initial Firmware Test region through port 43Dh. ref: dos_programs.cpp:2244-2332

BIOSTEST.COM loads an image of up to 64 KB at F000:0 and restarts the CPU at the reset vector; it is compiled only when the debugger is enabled. The settings call binary on reset and call binary on boot load blobs of up to 128 KB into the ROM BIOS area for CPU testing. ref: dos_programs.cpp:3581-3640, bios.cpp:13142-13215

Glide passthrough loads glide2x.dll, libglide2x.so or libglide2x.dylib. ref: glide.cpp:353-359, dosbox.cpp:3471-3473

ttf.font, ttf.fontbold, ttf.fontital and ttf.fontboit name a TTF, OTF, FON or TTC font resolved through the same search order plus the system font directories. Unset, the TTF output uses the built-in font, except on PC-98 or a double-byte code page where SarasaGothicFixed.ttf is tried first. ref: output_ttf.cpp:318-473, 653-668

Shipped in the resource directory: FREECG98.BMP, wqy_11pt.bdf, wqy_12pt.bdf, Nouveau_IBM.ttf, SarasaGothicFixed.ttf and the two reference configuration files. ref: src/Makefile.am:14-22

Overrides for data that is compiled in: the boot logo PNG, the mapper file, the customcodepage translation table, .kl layout files and the KEYBOARD.SYS to KEYBRD4.SYS libraries read from a mounted drive, the glshaders directory and the .lng translations. ref: bios.cpp:11389-11398, sdlmain.cpp:7001-7008, dos.cpp:4397-4420, dos_keyboard_layout.cpp:300-340, render.cpp:1538-1545, messages.cpp:294-320

34 files | 0 required, 34 optional | 25 in repo, 9 missing | 5 with HLE fallback

MT32_CONTROL.ROM optional in repo
MT-32 Control v1.04

MT32_CONTROL.ROM optional in repo
MT-32 Control v1.05

MT32_CONTROL.ROM optional in repo
MT-32 Control v1.06

MT32_CONTROL.ROM optional in repo
MT-32 Control v1.07

MT32_CONTROL.ROM optional in repo
MT-32 Control BlueRidge

MT32_CONTROL.ROM optional in repo
MT-32 Control v2.03

MT32_CONTROL.ROM optional in repo
MT-32 Control v2.04

MT32_CONTROL.ROM optional in repo
MT-32 Control v2.06

MT32_CONTROL.ROM optional in repo
MT-32 Control v2.07

CM32L_CONTROL.ROM optional in repo
CM-32L/LAPC-I Control v1.00

CM32L_CONTROL.ROM optional in repo
CM-32L/LAPC-I Control v1.02

CM32L_CONTROL.ROM optional in repo
CM-32LN/CM-500/LAPC-N Control v1.00

MT32_PCM.ROM optional in repo
MT-32 PCM ROM

CM32L_PCM.ROM optional in repo
CM-32L/CM-64/LAPC-I PCM ROM

default.sf2 optional in repo
General MIDI SoundFont

FONT.ROM optional in repo HLE fallback
PC-98 character generator ROM, T98Tools layout

ANEX86.BMP optional in repo HLE fallback
PC-98 character generator, Anex86 bitmap

  • Source: src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2481-2484
  • 2048 by 2048 monochrome Windows bitmap, biSize 40, one plane, one bit per pixel, no compression, inverse colour scheme; the first row is the 8x16 single-width set and the rest is 16x16 full-width. Also reachable through the pc-98 anex86 font setting, which is tried before FONT.ROM

FREECG98.BMP optional in repo HLE fallback
PC-98 character generator, free generated bitmap

wqy_12pt.bdf optional in repo
WenQuanYi 16-pixel bitmap font

wqy_11pt.bdf optional in repo
WenQuanYi 14-pixel bitmap font

SarasaGothicFixed.ttf optional in repo HLE fallback
CJK fixed-width TrueType font

roman.ttf optional missing
Printer Roman typeface

sansserif.ttf optional missing
Printer Sans Serif typeface

courier.ttf optional missing
Printer Courier typeface

script.ttf optional missing
Printer Script typeface

ocra.ttf optional missing
Printer OCR-A typeface

SOUND.ROM optional in repo HLE fallback
PC-9801-26K/86 FM board BIOS

et4000.bin optional in repo
Tseng ET4000 video BIOS

TRIO64 (Ver. 1.5-07) [VGA] (S3 Incorporated).bin optional missing
S3 Trio64 video BIOS

Video BIOS option ROM optional missing
Option ROM image mapped at C000:0 and initialised

IBMROMBASIC-F6000h-1982-10-27.ROM optional in repo
IBM 5150 Cassette BASIC ROM

system.rom optional missing
IBM PCjr system ROM

  • Size: min 56.0 KB
  • Validation: size
  • Source: src/dos/dos_programs.cpp:3061-3070
  • read during PCjr cartridge boot; bytes 0x3000 to 0xDFFF are copied to physical F3000. A short read leaves the region untouched and the cartridge still boots

System BIOS image optional missing
PC/AT or PC-98 BIOS ROM image booted by BOOT -bios

  • Source: src/dos/dos_programs.cpp:2244-2293
  • loaded at the top of the first megabyte, rounded up to a paragraph and truncated to 128 KB, or to 96 KB on PC-98; a larger image is clamped rather than rejected

ITF.ROM optional in repo
PC-98 Initial Firmware Test BIOS

  • Size: max 32.0 KB
  • Validation: size
  • Source: src/dos/dos_programs.cpp:2295-2326
  • Platforms: batocera, retrobat
  • served through the port 43Dh bank switch alongside a BOOT -bios image; .itf.rom is tried before the bare name so one directory can hold several

Generated on 2026-08-23T16:12:06Z