DOSBox is een opensourceprogramma waarmee een DOS-omgeving kan worden geëmuleerd, waardoor het mogelijk is om oude software en spellen te draaien die niet of niet goed meer werken op moderne computers. De laatste versie van DOSBox is echter alweer meer dan zes jaar geleden verschenen. DOSBox-X is ontstaan als een fork en biedt naar eigen zeggen meer flexibiliteit en functionaliteit. Downloads zijn beschikbaar voor Windows, Linux en macOS. De changelog voor versie 2026.06.02 kan hieronder worden gevonden.
DOSBox-X 2026.06.02
- DOS file search bugfix: Prevent undefined stat_block usage on failed ht_stat() calls. Use a separate variable for special file attribute checks to avoid reusing stat_block when it contains garbage values. This fixes issues on latest Darwin kernels.
- Added function to config to load MS-DOS device drivers. The command is config -device -devparm . For example, to load OAKCDROM.SYS into memory, you could type:
config -device C:\DOS\OAKCDROM.SYS -devparm "/D:CD001"
which is equivalent to the DEVICE line in CONFIG.SYS:
DEVICE=C:\DOS\OAKCDROM.SYS /D:CD001
The goal is that DOSBox-X would fully support, through INT 21h and other interfaces, real device drivers instead of hard coding specific driver emulation. INT 21h would use the actual device chain instead of a built-in list. Built-in device emulation could appear properly in the device chain instead of fake entries.
There seems to be interest on the DOSBox-X discussion and issue trackers of getting DOSBox-X to provide or emulate the MS-DOS/Windows 95 IFS driver to get Windows 95 to boot from a disk image in the native DOSBox-X environment, perhaps this would help enable that. At this time (in development), only INIT is called.- External DOS device driver read/write: Optimize I/O by using larger read/write transfers (currently 16 based on how much memory is allocated for device driver I/O request and data). Until this change, the code used an extremely inefficient 1-byte read/write method to transfer to or from the device driver.
- DOS execute bugfix: While ownership was properly listed in the MCB for the PSP segment, the environment block associated with the program was always listed in the MCB as belonging to the parent process. This has been addressed
- Fix INT 21h AH=3Fh/40h READ/WRITE processing, when talking to an external MS-DOS device driver, so that the bytes actually processed by the driver are returned in AX to the DOS program, instead of giving the DOS program the impression that all were processed when they may not have been.
- CD Audio: Fix track not advancing at end of playback
- Fix geometry detection of qcow2 images
- Fixed advanced scaler rendering artifacts when machine type is MDA, Hercules, CGA, EGA, Tandy, or PCjr, or when SVGA 15/16bpp SVGA modes are active. CGA/EGA with Advanced MAME 2x/3x and HQ2X scalers should render correctly now.
- Added dosbox.conf [devices] section, which functions much like the DEVICE= lines in CONFIG.SYS to load MS-DOS device drivers at startup. Added support for RUN= lines to run commands like IMGMOUNT to help set up drive mounts and CD-ROM devices, or any other diagnostic purpose. While RUN= works just like the command shell, it is not intended to be a general command shell for running DOS games or applications that are unrelated to system startup. Added debugging options like ECHO which echo the command about to be run, and DEBUGBREAK which breaks into the debugger when starting the program or device driver.
- Added code to device driver loading which will, where possible, attempt to load the device driver as low as possible and pack it into the DOS kernel below the start of the MCB chain to resemble how device drivers are loaded in MS-DOS.
- Added debugger command "DOS DEVS" to list and enumerate the device drivers in the DOS kernel. Added code to BOOT --boothax msdos to track the location of the device driver list in the guest MS-DOS kernel so "DOS DEVS" can work there as well.
- DOSBox-X shell will now free any memory it allocated and close files that were opened on shutdown. This is important so that the CONFIG shell (used for loading device drivers) does not leave behind any memory it allocated when transferring control to the main command shell. However, do NOT release memory and do NOT close files on shell shutdown if the reason for the shutdown is the BOOT command. By the time normal shutdown occurs, the BOOT command has already overwritten low memory (and the MCB chain) with the guest OS's boot code, therefore freeing shell memory in that cause would only cause a complaint about a corrupted MCB chain and emulator E_Exit() shutdown.
- Fixed VHD, qcow2 image geometry calculation
- Fix CONFIG vs DOS shell to ensure the welcome screen is printed first before anything else on the console during startup. This is to help keep any output from programs and device drivers on screen where the user can see it
- Add basic support for MS-DOS block device drivers. If a block device driver succeeds, set up a disk image object and attach it to the FAT filesystem driver, and then a drive letter. At this time, this is enough for Microsoft RAMDRIVE.SYS to load and appear as a working drive letter in DOSBox-X
- CD-ROM device emulation is no longer strictly tied to MSCDEX emulation. While devices are still initialized through MSCDEX emulation, it is now possible for other parts of emulation to own a reference to it without MSCDEX. This means it is now possible for CD-ROM emulation to work after booting a guest OS without reaching back through MSCDEX emulation, and MSCDEX emulation can now unload properly with the rest of the DOS kernel.
- Fix bug where El Torito no emulation boot failed to notify the DOS kernel that the MCB chain is no longer valid, causing MCB chain corruption crashes.
- Added checks to sector I/O code to fix potential buffer overrun issues.
- Fixed logging of 'Packed file is corrupt' message detection
- Fixed upper 32-bit of LBA was always cleared
- Fix and revise MSCDEX and CD-ROM emulation to disentangle the two, so that MSCDEX no longer needs to remain in the background when BOOTed into a guest OS for IDE emulation to work.
- CD-ROM emulation updated to use reference counting to improve sharing of the image between IDE, MSCDEX, and general CD-ROM emulation. IDE emulation can hold on to a reference instead of constantly asking MSCDEX for it.
- Fix bug where mounting an invalid CUE file with no tracks caused DOSBox-X to crash.
- MSCDEX and CD-ROM emulation: Cleanup and centralize creation of CD-ROM interface objects, including the creation of the fake "empty" special interface used to emulate an empty CD-ROM drive.
- Revise MSCDEX emulation to separate the CD-ROM subunit and drive tracking from MSCDEX itself so that state can persist properly for a guest OS even when MSCDEX is shutdown during BOOT.
- Add -replace option to IMGMOUNT to allow changing the ISO image assigned to a CD-ROM drive without changing or altering the drive letter already assigned. -replace is strictly limited to CD-ROM drives where the drive letter is already assigned to that drive letter.
- Clean up the Drives menu for any drive letter assigned to a CD-ROM drive. Enable the "Mount a disk or CD image file" and "Mount multiple disk/CD images" even if the drive letter already has a CD-ROM drive attached, in which case the menu item just replaces it. Allow these menu items to work even when running a guest OS so that Windows 95 users can load any ISO image they want at any time, instead of having to pre-load all images they will need on a swap chain before BOOT.
- Replace ISO mounting code from the menu item to call more directly into IMGMOUNT to avoid making a commad shell object which would probably interfere with the guest OS.
- Enable the "Unmount drive" menu option under Drives for any drive attached to a CD-ROM drive while running a guest OS like Windows 95. When used in that scenario, it does not remove the drive letter, but instead acts like a command to eject the CD from the CD-ROM drive (swaps in the "empty" CD-ROM image). In the DOSBox-X environment "Unmount drive" will still unmount the drive and remove the drive letter as expected.
- "Swap disk" menu item under "Drives" is now enabled even while running a guest OS like Windows 95, if the drive is associated with a CD-ROM drive. Using the command rotates through the CD-ROM drive swap chain only for that specific drive, instead of all drives as the Swap CD mapper shortcut would do.
- IDE emulation: Skip the CD-ROM eject / unload / load delay if media change is swapping to the "empty" CD-ROM image object.
- Program object (base class of built-in commands) will no longer attempt to do anything with PSP segments or command line strings in memory if invoked while DOS kernel is disabled (running a guest OS).
- IDE ATAPI CD-ROM emulation: If the guest issues the START/STOP command to eject the CD-ROM drive, replace the CD-ROM image with the "empty" object to emulate a now-empty CD-ROM drive.
- Enable "Swap disk" menu command for floppy drives even while running a guest OS, as long as a floppy drive was already mounted there.
- BOOT: Fixed a regression of floppy image detection
- Sound Blaster DSP command 0x10 (Direct DAC) and Disney Sound Source emulation will hold the last sample received from the guest application to avoid popping noises if games like In Extremis use those devices to play sound effects that have a DC bias way off center.
- Added DC bias correction to the audio mixing code so that, if games like In Extremis finish a sound effect with the last held sample way off center, it doesn't cause all other audio to clip and distort, and it does not potentially cause all audio on the user's operating system (as modern OSes mix all audio across applications) to clip and distort, such as playing In Extremis while listening to a YouTube video.
- Fixed bug in MMX instruction EMMS emulation that correctly marked all FPU registers as empty but also reset the FPU status and control words. This fixes the distorted 3D cube when running the Microsoft DirectX diagnostics program (dxdiag.exe) with software rendering.
- FPU instructions now correctly throw exception 7 (Coprocessor not present) if the EM (emulation) and TS (task switch) bits in CR0 are set, as documented by Intel. Many OSes, including Microsoft Windows, require this fix in order to properly maintain FPU state while multitasking. Without this fix, the FPU state is never switched and all applications (and kernel drivers in Windows 98) end up corrupting each other's FPU state. This fixes glitching artifacts in "Attack of the Saucerman!" by Psygnosis when emulating a CPU type that supports MMX instructions. It also appears to fix the random 3D rendering errors (verticies spiking off into the distance at random) when running "The Sims" for Windows 95 by Maxis, although the game still seems to exit at random after a while and the opening FMV video locks up at some random point. As part of the same fix, MMX instructions will also trigger the exception given the same condition. This fix is only applicable to normal core (cor
- Option to disable TTF winperc limit
- Fixed screenshot crash (and others) in protected-mode games with output=ttf
- Debugger: Add missing debugger commands in documentation
- Debugger: MEMFIND/MEMS fixes (most important: protected mode addressing)
- IMGMOUNT: Attach CD-ROM to IDE controller
- Bump mt32emu to ver 2.8.0
- IMGMOUNT: Ensure not to attach a new drive to the IDE Controller when running a booted guest OS.
- Fixed savestate load producing scrambled graphics
- Feature: Add detailed info when loading savestate mismatch
- output_ttf: Don't reset colors when already in TTF output mode
