DOSBox-X

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


DOSBox-X 2022.12.26 Release Notes

Release Date: December 26, 2022

Please report any issues in our issue tracker.

Also, make sure to check out our Wiki guide.

New in This Version

  • Allow more than 640KB of conventional memory, regardless of “allow more than 640kb” option, for Tandy machine type. The setting is capped to 768KB to reflect Tandy systems with that upgrade, which is said to allow a full 640KB for DOS and 128KB for video RAM without any conflict from the MCB chain. Adjust Tandy video emulation for 768KB case. This fixes “Might and Magic III Isles of Terra” crashes in Tandy mode and Tandy graphics because the game does not correctly handle the memory configuration when less RAM is involved. (joncampbell123).
  • Fix code page CPI/CPX loader to allocate 128KB of memory instead of 84KB. The code allocates a 64KB stack for the executable code within. The 84KB allocation permitted the initial stack pointer to exist beyond available conventional memory if conventional memory size was below about 156KB and cause a crash. This is a quick fix, a long term fix would be to instead set the initial stack pointer to some offset below 0xFFFE based on available memory, just as the .COM executable loader was modified to do some time back to enable proper execution when memsize < 64KB. (joncampbell123)
  • Do not load country/font information at startup if the code page to load is the same as the default code page. (joncampbell123)
  • Fix Tab/Shift+Tab in Configuration GUI regarding setting text fields that have a … button to select from an enumeration. Those buttons are no longer a trap for tab enumeration. (joncampbell123)
  • Fix Mac OS SDL1 keyboard support code to properly fill in unicode character values in relation to IME checks. This fixes a problem where it was impossible to type anything in the configuration GUI in SDL1 Mac OS builds. (joncampbell123)
  • Mark VBE mode 0x212 as “do not list” so that it does not appear in normal VBE mode enumeration, while keeping it valid for the Windows 3.1 driver which assumes the mode is there at that number without enumeration. By not listing the mode, drivers like VBEMP and DOS application code will not attempt to use it. There is already another mode number for 640x480 24bpp anyway. (joncampbell123)
  • Fix VBE mode 0x212, which is 640x480 24bpp packed mode but with a per scanline stride of 2048 bytes per pixel set aside for the Windows 3.1 driver and the “640x480 (1Meg) 16 million colors” setting, so that the VBE “Get Mode Info” call reflects the proper per-scanline stride instead of the ideal one. This should fix complaints about VBEMP and 640x480 24-bit color mode. Given how minimal the use of the mode is by the Windows 3.1 driver, the 2048 byte mode does not permit setting scan line length or display start i.e. panning is not permitted. (joncampbell123).
  • Fix Pentium Pro emulation to support microcode related MSRs so that Windows 98 does not crash on startup when cputype=ppro_slow. (joncampbell123).
  • Added SMV debugger command. This is the linear (virtual) equivalent of the SM “Set Memory” command. (joncampbell123). (https://github.com/joncampbell123/dosbox-x/issues/3826)
  • Fix debugger help command to list both C / D commands and the DV/DP commands. (joncampbell123)
  • Add VGA FONTDUMP debugger command for those who might want to take custom fonts in text mode and do something with them outside the emulator. “VGA FONTDUMP” followed by a filename which must have the extension .BIN (for a raw 64KB dump of font RAM) or .BMP (for a formatted dump as a monochrome bitmap file). (joncampbell123).
  • Disabled code to randomly return GDC drawing status active. The implementation was causing severe performance issues. The code has not been removed because it could be optimized and fixed and could even follow the state of GDC drawing. (joncampbell123)
  • VGA 6-bit DAC mode expand to full 8-bit range, instead of simple shifting (joncampbell123).
  • Fix 8254 PIT emulation (joncampbell123)
  • Add dosbox.conf option “cpuid string” to allow CPUID to return custom ID strings instead of just “GenuineIntel”. Have fun! (joncampbell123)
  • Fixed build to properly compile against internal SDL/SDL2 library even if an external version is available (joncampbell123)
  • Fixed some violations of the one definition rule. (Jookia)
  • Use pkg-config to find OpenGL (Jookia)
  • Updated Flatpak SDK and dependencies (Jookia)
  • PC-98 Implement AVSDRV.SYS PCM function (int D9h) (nanshiki)
  • PC-98 Support 6x8 Katakana font with int 18h ah=14h (nanshiki)
  • PC-98 Fix Audio Q-Channel info in MSCDEX (nanshiki)
  • Fixed FFMPEG 5 compatibility (Jookia)
  • Fix FFMPEG crash if FFMPEG fails to write header for some reason. (joncampbell123)
  • Fix setcap on systems with split /usr (Jookia)
  • Fix building with –disable-core-inline (Jookia)
  • Fix building not finding fluidsynth (Jookia)
  • Fix some NetBSD build issues (Jookia, with patch from Nia)
  • Fix minor graphical issues in mapper GUI (aybe)
  • Removed –disable-core-inline (Jookia)
  • Swap SDL2 XInput axes by default for a better out of the box experience (aybe)
  • SDL1 XInput is now enabled by default for a better out of the box experience (aybe)
  • add set of cga shaders from dosbox staging (aybe)
  • Updated mt32emu code to latest(2.7.0).(maron2000) Also, added config option “mt32.engage.channel1” (Refer to https://github.com/munt/munt for details)
  • Fix missing line in printouts (Issue #3569) (maron2000)
  • Adjust Int 11 return value to better match real BIOSes. (Allofich)
  • Limit the “always return bit 6 of port 61h as set for PC” change to only apply to early PC types (MDA, CGA or Hercules). (Allofich)
  • Integrated SVN commits (Allofich)
    • r4476: Preserve last error code when no error occurs.
    • r4477, r4478: Drive system improvements.
    • r4479: Correct handling of invalid encodings of the BOUND instruction.
    • r4480: Some confirmed DOS behaviors and minor cleanup.
    • r4481: Push registers for most DOS function calls; prevents a bug in UNLZEXE from causing a crash, and maybe helps other buggy programs and unusual cases. Use real addressing to support stack pointer wraparound.
  • Fix Opl3! Duo and Opl2 Audio board audio playback on unix (stengun)
  • Fix Japanese input related issues (nanshiki)
  • Fix START command only ever opens first file (NebularNerd, darac-10, aybe)
  • Win32 logging console (aybe)
    • add ‘Debug/Clear logging console’ menu entry
    • ensure main window stays above it when shown
  • Fix overflow in mapper info on SDL2 builds (aybe)
  • Enable OpenGL output in MinGW builds again (maron2000)
  • Fixed to display IME marked text in SDL2 version on macOS (nanshiki)
  • Fix allocation of IDE slots when mounting images by IMGMOUNT (maron2000)
  • Increase of sprintf buffer size in Program::WriteOut() (caiiiycuk)
  • Fix unexpected behavior of swapping multiple CD images (maron2000)
  • Fixed build on NetBSD and FreeBSD (Jookia)
  • Updated FFMPEG video capture to use newer API, fix memory leaks, and fix use-after-free bug that may have been responsible for occasional crashes when using the function. (joncampbell123)
Previous release: 0.84.3 (release notes) Next release: 2023.03.31 (release notes)