DOSBox-X

Cross-platform DOS emulation package
Complete, accurate emulation and more


DOSBox-X 0.84.1 Release Notes

Release Date: July 1, 2022

Please report any issues in our issue tracker.

Also, make sure to check out our Wiki guide.

New in This Version

  • Added dosbox(-x).conf option to enable workaround for errant DOS programs that set the TF (trap flag) and then crash. Added code to DOS kernel INT 01h handler to clear TF flag if instructed to by the dosbox(-x).conf setting which can prevent such errant programs from crashing. Needed for 1996 demo “Dyslexia” by Threesome. (joncampbell123)
  • Fix RETF instruction handling to only modify the low 16 bits of ESP in real mode, even if the immediate value for RETF is a large value like FFFEh (fix for Finster by Mad Scientists). Prior to this fix, it was possible to increment the upper 32 bits of ESP from real mode using a normal 16-bit RETF with a very large immediate value. This fix removes the need for the ENTER masking dosbox(-x).conf option entirely and allows Finster to run without it. (joncampbell123).
  • Added dosbox(-x).conf option to control whether the ENTER instruction masks the stack pointer to 64KB if the stack segment is 16-bit, which is off by default because real Intel processors do not do that. (joncampbell123).
  • Added dosbox(-x).conf option that can instruct EGA/ VGA emulation to ignore the display blanking bit in the sequencer registers. Some games appear to have bugs in their VGA programming code that can accidentally set that bit and therefore show nothing on screen. Fix for 1996 game “Finster” by Mad Scientists. The game appears to make this programming mistake on any fork of DOSBox including DOSBox-X, and is reported to also make the same mistake on other emulators like 86box. However most forks of DOSBox have a matching bug in their VGA emulation that allows the blanked display to appear normally regardless of that register bit unless run with machine=vgaonly. It’s unclear if there is anything about DOSBox or DOSBox-X emulation that causes the game to misprogram the registers. (joncampbell123).
  • If guest uses ENTER instruction from 16-bit code with 66h (32-bit operand) prefix, and the CPU is in real mode or the stack segment is 16-bit, mask stack pointer with 0xFFFF. This fixes 1996 game “Finster” by Mad Scientists (joncampbell123).
  • DOSBox-X will now search for resource files such as fonts and translations in the resource directory ( C:/DOSBox-X in Windows, /usr/(local/)share/dosbox-x in Linux, and dosbox-x.app/Contents/Resources in macOS) in addition to other locations. (Wengier)
  • Updated DOSBox-X’s integration device to version 1.0.1, adding API calls such as DOSBox-X’s version number and platform, and some DOS-related status such as DOS version number. (Wengier)
  • Improve the HX-DOS build package, including the TTF output support and accessory files. (Wengier)
  • Use long double for internal event scheduling if available, to improve accuracy (joncampbell123).
  • Fix remaining SDL2 Windows problems by adding missing break statement above window event handler. (joncampbell123).
  • Move “Always on top” menu option from “Video” to “Main” menu, also enabled for Windows/macOS SDL2 builds when possible. (Wengier)
  • Add workarounds for SDL2 builds to avoid problems with window resize, menu update, and restore events that sometimes caused the emulator to hang on startup in Windows. (joncampbell123).
  • Add “Set transparency…” and “Set text in title bar…” menu options under “Video” to change window transparency and title bar text. (Wengier)
  • Add special properties to CONFIG command including “system” and “version”. (Wengier)
  • Fix DOS 8.3 filename generations when there are special characters in the filenames. (Wengier)
  • Fix creation of disk images with spaces using the “Create blank disk image…” menu option. (Wengier)
  • Fix IMGMAKE to provide executable code in MS-DOS partition or floppy disk boot sector following the BPB, that prints “This is not a bootable disk” instead of leaving zeros that lead the CPU astray and possibly hang the system in the event anything tries to boot the partition (joncampbell123).
  • Fix emulator segfault on invalid encoding of BOUND instruction (joncampbell123).
  • Address auto-centering on mode change complaints by making the “-“ setting of windowposition the default. (joncampbell123).
  • Added MinGW-lowend SDL2 build, which is compatible with Windows XP. Also updated the build selection page for Windows installers. (Wengier)
  • Fix windows transparency during TTF output switch in Windows SDL2 builds. (Wengier)
  • Fix SDL2 Windows builds to flag a resize as not user initiated only if the presence of the menu bar changes. This fixes a problem where SDL2 builds did not acknowledge window resize events at all. (joncampbell123).
  • Fix FluidSynth weird sound issue in 32-bit Visual Studio SDL2 build. (Wengier)
  • Fluidsynth: Fix uninitialized conditional object init in Windows builds (joncampbell123).
  • Linux/X11: Add an X11 error handler function to handle the occasional X11 error that can happen within the SDL2 library if certain events, like window resize, occur too frequently. The custom error handler logs the error but does not abort the emulator like the default one would. (joncampbell123).
  • Fix SDL2 builds with output=surface not to render if the window at any point is too small. Resizing the window below the minimum supported by the DOS screen will not longer trigger segfaults or assertion failures. Issue #3348. (joncampbell123).
  • Fix IME not working on Windows when -langcp option is used to load a language with DBCS codepage, or in 32-bit MinGW lowend SDL1 build. (Wengier)
  • Fixed INT 10h failing to fully clear Tandy video memory when entering 16-color graphics modes. (joncampbell123).
  • Fixed missing/NULL INT 1Fh interrupt vector with CGA/PCjr/Tandy machine types. DOS games that print to screen using INT 10h in graphics modes can now print extended (>=128) character codes correctly. This fixes “BushBuck: A Treasure Hunt” and enables it’s rather odd Tandy detection routine to work with machine=tandy. (joncampbell123).
  • Disney Sound Source: Fix problems between Disney sound source and parallel port emulation. Fix the code to enable Disney Sound System emulation either by disney=true (DOSBox SVN compatible) or parallel1=disney (The DOSBox-X way). (joncampbell123).
  • DOS SHELL: Change shell command parsing to make unusual combinations of command plus trailing command possible such as ECHO. ECHO; ECHO: ECHO[ ECHO] ECHO\ ECHO/ ECHO” ECHO+ (issue #3503). (joncampbell123).
  • DIR command supports more sorting methods including “DIR /OGD”, “DIR /OGE”, and “DIR /OGS”. (Wengier)
  • Support for BDF and PCF bitmap fonts for DOS/V functions, such as the free WenQuanYi bitmap font (bundled for displaying CJK characters). (Wengier)
  • EGA: Add machine type to emulate 200-line (CGA compatible) EGA display mode, machine=ega200. All text modes have 8x8 character cells, use CGA compatible video timing, and the 640x350 modes are not available. Fix EGA display offset register usage to properly work with alphanumeric text mode when “word mode” is turned off. This fixes IBM demonstration program “Fantasy Land”. (joncampbell123).
  • IDE: Remove extra state from IDE controller that is managed by the drive. The ATA-1 standard seems to say that status and drive/head registers on read back always come from the ATA device. (joncampbell123).
  • IDE: If ATA device is busy, all IDE registers return the status register and BSY bit according to ATA-1 standard (joncampbell123).
  • IDE ATAPI CD-ROM: Add ATAPI command BEh READ CD. This command is like the 28h/A8h READ command but specific to the CD/CD-ROM format and allows reading the various sector types including data sectors and CD audio. Windows NT 4.0 requires this, or else it treats the CD-ROM drive like a non-working device. (joncampbell123).
Previous release: 0.84.0 (release notes) Next release: 0.84.2 (release notes)