DOSBox-X v2025.10.07 has been released, enhancing the DOSBox emulator to support Intel x86 PCs for running legacy MS-DOS games on modern systems. Key updates include fixes to memory management and compatibility for titles like California Games II and Elder Scrolls Arena, ensuring smoother game experiences. New configuration options address corrupted memory block chains, while debugger and PCI bus improvements refine overall performance. The build also includes enhancements for older macOS compatibility, SDL2 updates, and multiple bug fixes across various platforms. This release aims to preserve classic gaming experiences by supporting outdated software environments effectively.
DOSBox-X v2025.10.07 has been officially released. DOSBox-X is an extension of DOSBox. The DOSBox software emulates an Intel x86 PC, offering sound, graphics, mouse, joystick, and modem support needed to run numerous classic MS-DOS games that are incompatible with contemporary PCs and operating systems like Microsoft Windows XP, Windows Vista, Linux, and FreeBSD.
DOSBox-X Changelog:
INT 21h AH=4Ah memory resizing: Now compacts free blocks only at or after the
segment being resized, aligning with MS-DOS documentation (joncampbell123).
INT 21h AH=4Ah memory resizing: Addresses a bug where resizing a previously
freed memory block leads to incorrect allocation, causing truncation of the MCB chain if the
next block in the MCB chain is also free and not the last block.
This fix resolves MCB chain truncation issues seen in California Games II DOS memory management in Tandy graphics mode. (joncampbell123).
Introduced a dosbox.conf option, disabled by default, for cases where the MCB memory
chain is corrupted past the running program’s memory block. Instead of halting emulation,
a new free memory block is created for allocation requests. This behavior mimics traditional MS-DOS (joncampbell123).
Debugger: The DOS MCBS command now outputs the segment immediately
following the last MCB block (joncampbell123).
Tseng ET3000/ET4000: Adjustments made to Status register 3DAh behavior to be consistent with the Tseng datasheet and VGAKIT SVGA detection expectations. Bit 7 is documented by Tseng to reflect the inverse of bit 3 (vertical retrace). CRTC 33h must not allow setting upper 4 bits as the documentation only discusses the lower four bits, which is vital for Tseng detection (joncampbell123).
Resolved a bug that prevented the Hercules palette shortcut from modifying colors in graphics mode (machine=hercules) (joncampbell123).
Removed the mixer and VGA capture test modes from the integration device, updated version number, converted hardcoded magic constants in IG to be shared with iglib.h in DOSLIB, and added an interface in the integration device to manipulate the emulator’s CPU cycle count. (joncampbell123).
Fixed issue with INT 10h AH=0Eh where a BEL would lead to screen scrolling if the
cursor was below the last line, which is applicable for the Elder Scrolls Arena installer.
(joncampbell123).
FAT filesystem driver (disk images): Made adjustments so that if Elder Scrolls Arena accesses
INT 21h for files named *.65 (like STATES.65) with an attribute mask of 0xA (VOLUME LABEL | HIDDEN), the VOLUME LABEL bit is ignored and a normal scan is performed. This fix enhances compatibility for Elder Scrolls Arena from a mounted disk
image. (joncampbell123).
FAT filesystem driver (disk images): Alterations made for Elder Scrolls Arena to load SAVEGAME.00 (due to a specific naming choice) with an attribute mask of 0x7C, ignoring the VOLUME LABEL bit to allow players to access their saved games seamlessly from the menu. (joncampbell123).
PCI bus enhancements: Enabled device to perform full size accesses (smunaut).
Addressed build issues with the SDL1 version on ArchLinux (potentially gcc-15) (maron2000).
Facilitated DOSBox-X compilation on older macOS versions and offered instructions (maron2000).
Included code page 951 in dialog box (1abcd).
Rectified temporary file creation/opening failures for piping (maron2000).
Implemented creation/opening of temporary file to device_TMP for piping on Z: drive.
(maron2000).
Converted messages to UTF16 before using the messagebox function (Windows)
(maron2000).
Expanded the MMX_reg union for big-endian platforms with additional members.
(alarixnia).
Created the directory if it doesn’t exist prior to writing the configuration file. (maron2000).
Resolved language files remaining locked post loading completion.
(maron2000).
Addressed freezes when switching to codepage 3846, 3848. (maron2000).
Corrected build errors when internal debugger is disabled (maron2000).
Displayed the full path of the loaded configuration file in logs (maron2000).
Logged syntax error if a pipe lacks a command for output (maron2000).
Implemented a permanent option for the initial DOSBox-X shell (maron2000).
Rectified initialization errors in fluidsynth (maron2000).
PC-98: Enhanced redrawing of function keys post-update (bobsayshilol).
Maintained the carriage return with a single LF(‘\n’) (maron2000).
Fixed the mapper not displaying correctly on SDL2/Windows (aybe).
Adjusted mapper scaling according to display resolution (aybe).
Incorporated relevant changes from SVN. (Allofich).
r4485: Allowed writing to all planes while drawing pixels in EGA modes.
r4487: Corrected VESA text mode panning.
r4488: Amended remarks about odd/even bit.
r4490: Assigned MCB ownership if *blocks equals total at the end of DOS_ResizeMemory.
r4492: Prevented clearing message queues of MPU-401 and compatible devices on reset.
r4493: Handled EOF character correctly in batch files as an actual end of file.
r4494: Utilized 4-byte partial page mapping data.
Replaced deprecated functions to facilitate building with FFmpeg 8 (maron2000).
Resolved screen blurring issues when restoring minimized windows in TTF mode (Windows SDL1) (maron2000).
PC-98: Saved Kanji CG access mode settings and restricted output accordingly
(OPNA2608).
Added previously missing language options to Windows installers (maron2000).
Debugger: Ensured IV does not truncate addresses to 16-bit length (cmsautter).
Debugger: Provided warnings that single-stepping may not yield expected results with the Dynamic core (maron2000).
MIDI: Show Soundfont/ROM path only when necessary. (maron2000).
SDL2: Updated SDL2 library to version 2.32.10 (maron2000).
Applied aspect/scaling/clipping while utilizing OpenGL shaders in windowed mode (rebb).
Resolved file locking issues on the Linux port (loops).
Corrected a typo in the Linux man page regarding the -date-host-forced option (maron2000).
Mentioned OPL in the MIDI/OPL configuration dialog menu (maron2000).