DOSBox-X 0.83.20 Release Notes
Release Date: November 30, 2021
Please report any issues in our issue tracker.
Also, make sure to check out our Wiki guide.
New in This Version
1. Notable New Features
-
Support for Pentium II CPU type and other CPU improvements
The Pentium 2 CPU type is now supported in DOSBox-X! It is the fastest CPU type currently supported, and you can set “cputype=pentium_ii” (or check the option in the “CPU” menu) to enable it. Some Pentium 2 level CPU types (such as AMD K6 200 MHz and AMD K6-2 300 MHz) are now added to the “Emulate CPU speed” menu group. There are also improvements in other CPU types, from 8086 to Pentium MMX.
-
Support for DCGA and Toshiba J-3100 system types
DCGA is the video mode used by the Olivetti M24, AT&T 6300 and Toshiba T3100, which is now supported. There is a DCGA command to enter this mode from any VGA mode. Also, the Japanese J-3100 system type is supported, and you can enable it by setting “dosv=jp” and “j3100=on” (or “dosv=jp” and “j3100=manual” and then use DCGA command to enter it manually). Enter the VGA command to go back to the standard mode.
-
Support for changing serial and parallel port options at run-time
You can now view or change the settings of serial and parallel ports (COM1-COM9, LPT1-LPT9) while DOSBox-X is running via the new SERIAL and PARALLEL commands. Enter the command without a parameter to view the current port settings, or specify a port number to change its setting. Type “SERIAL /?” and “PARALLEL /?” and the [serial] and [parallel] sections of the config file for more information about using these commands. Commands like “config -set serial?=…” and “config -set parallel?=…” will also call these two commands automatically.
-
Added new DOS commands: COMP, DISKCOPY, EDLIN, FC, FILES, PRINT, SHUTDOWN
Most of these commands are standard DOS commands in some DOS versions, which are now supported in DOSBox-X’s internal DOS shell. For example, you can enter “PRINT filename” to send the specified file to the printing device. SHUTDOWN command can be used to restart or shut down DOS, and it makes use of the APM support supported by DOSBox-X.
-
Much improved support for swapping disks/CDs (from either menu or command-line)
The functions for swapping disks/CDs are much improved in this version, including support for changing floppy images with drive number (0 or 1) only, improved support for changing CD images while a Windows 9x guest system is running, as well as a new IMGSWAP command to swap disk/CD images. For the IMGSWAP command, you can for example enter the command “IMGSWAP D” to swap D: drive to the next swap position, and “IMGSWAP A 3” to swap A: drive to the 3nd swap position.
-
Much improved DBCS support for Chinese/Japanese/Korean languages
Support for Chinese/Japanese/Korean languages once again saw significant improvements, such as much improved auto-detection of box-drawing characters, support for ChinaSea (中國海字集) and Big5-2003 extension of the original Big5-1984 charset for Traditional Chinese TTF output (set “chinasea=true” in [ttf] section, or toggle it from menu), support for selecting files containing CJK characters in the file browse dialog boxes, and so on. Thanks for the feedbacks from Chinese- and Japanese-speaking users.
-
Improved support for Direct3D pixel shaders
You can now load more Direct3D pixel shaders from the menu when using the Direct3D output. DOSBox-X will now display a confirmation message while trying to load a Direct3D pixel shader which may not be needed or may have undesired effect, and several Direct3D pixel shaders (such as GS2x.fx, CRT-geom-blend.fx and CRT-geom-curved.fx) are fixed to work in DOSBox-X’s Direct3D output.
-
Improved support for running guest systems
Support for running guest systems have been improved, including both DOS guest systems and a non-DOS guest OS like Windows NT. For example, code is added to further ensure DOS kernel resources are unmounted and deallocated before booting a guest OS, and the INT 13h AH=16h call is added to detect disk change. You can also boot into a DOS guest system when DOS/V is enabled.
-
Support for unit testing based on Google Test framework
For developers, unit tests based on the Google Test framework (using gTest and gMock) are supported to ensure code stability. There is a command-line option “-tests” of the DOSBox-X executable to launch the unit tests. Please feel free to add more unit tests to the code to test more aspects of the emulator.
2. Notable Usability Improvements
-
TrueType font selection page in Windows installer to select a default font for TTF output
There is now a TrueType font selection page in the Windows installer for new DOSBox-X installations, allowing users to select a TTF/TTC/OTF font for the TrueType font output when it is enabled. TTF fonts including the Sarasa Gothic, Consolas, Courier New, and Nouveau IBM fonts can be selected directly, or you can also use a custom TTF/TTC/OTF font for DOSBox-X’s TrueType font output.
-
Message boxes to display saved file names for screenshots and audio recording
For screenshot and MIDI/OPL recording, DOSBox-X will now display a message box showing the saved file name when the recording has been completed, in case the user wants to know where the recording has been saved. The full file paths will also be recorded in the DOSBox-X logging file.
-
Allows to display the current mouse capture status with CAPMOUSE command
The CAPMOUSE command without a parameter now shows the current status of the mouse capture, so that you can check whether the mouse is currently captured/released with a command.
-
Allows to automatically restart DOSBox-X to apply new settings
Improvements are made to the CONFIG -set command so that when an option cannot changed at run-time, DOSBox-X may ask whether to restart itself to apply the new setting. The “machine” option for changing the emulated machine type is such an example. Also, options provided in the command “config -set” are now case-insensitive as in DOS.
-
Allows to disable the rounded window corners in Windows 11
DOSBox-X is now adding support for Windows 11, and its rounded window corners will be disabled by default in favor of sqaure window corners for the emulator. You can disable the square corner enforcement with the config option “forcesquarecorner” in [sdl] section of the DOSBox-X configuration.
-
Allows to auto-mount individual drives silently on Windows
You can now let DOSBox-X automatically mount individual Windows drives as DOSBox-X drives silently, by setting “mountwarning = false” in [dos] section of the DOSBox-X configuration. Any warning messages will be silenced when you try to switch the DOS drive (e.g. D:) within DOSBox-X in such case.
3. Bugfixes and Other Improvements
There are also many bugfixes and other improvements, such as fixing issues that had occurred in the previous release (such as display glitches in the game “Continuing adventures of Cyberbox” and a bug which may lead to crash when trying to print documents), as well as other improvements (such as improved PC-98 emulation and separate floppy/hard drive I/O delays) to make DOSBox-X work better. Please see the full changelogs below for more information.
4. Full Changelog In This Version
- Implemented support for Pentium II cputype (with the setting “cputype=pentium_ii” in [cpu] section), and added Pentium II SYSENTER/SYSEXIT instructions to normal core and debugger disassembler. The two instructions are supported for Pentium II cputype. CPUID for Pentium II will now report stepping 3 and model 3 which is a minimum requirement for OSes to attempt to use SYSENTER/SYSEXIT. Silencing for RDMSR/WRMSR and SYSENTER/SYSEXIT debug messages is removed while CPU “debug spew” is silenced by default. MSRs related to Intel microcode are added because both Linux and Windows ME probe those MSRs if Pentium II emulation reports stepping 3 model 3. The microcode MSRs are silently ignored. Moreover, the MSR register 0x0000001B has been added to Pentium II emulation. DOSBox-X does not emulate a local APIC but Windows ME assumes that MSR is present and reads/writes it on startup if DOSBox-X reports itself as a Pentium II. (joncampbell123)
- Added support for DCGA and Toshiba J-3100 emulation modes by importing code from DOSVAXJ3 by nanshiki. The J-3100 emulation mode can be enabled with the option “dosv=jp” along with a non-off setting of “j3100” option in [dosv] section. For example, with “j3100=on” or “j3100=auto” (and “dosv=jp”) J-3100 system will be enabled and activated at start. With “j3100=manual” (and “dosv=jp”) J-3100 system will be enabled and not activated at start, but there is now a DCGA command to enter DCGA (either English or J-3100 DCGA, depending on if J-3100 is enabled) mode from other video modes. (nanshiki & Wengier)
- Added support for unit tests based on Google Test framework (gTest/gMock) to ensure code stability. Unit tests can be started with command-line option “-tests” in the debug builds. Some unit tests are ported from DOSBox Staging. (Wengier)
- Added SERIAL and PARALLEL commands to view/change the current configuration of serial/parallel ports. Type “SERIAL /?” and “PARALLEL /?” for further info about the two commands. Commands like “config -set serial?=…” and “config -set parallel?=…” will also auto-call these commands. (sduensin & Wengier)
- Added IMGSWAP command to swap disks for drives. e.g. “IMGSWAP D” to swap C: drive to the next swap position, and “IMGSWAP A 3” to swap A: drive to the 3nd swap position. (Wengier)
- Added DOS commands including COMP, DISKCOPY, EDLIN, FC, FILES, PRINT, and SHUTDOWN (most from FreeDOS) to the built-in Z: drive. Updated or recompiled EDIT and EDLIN commands to support LFNs. (Wengier)
- The CAPMOUSE command without a parameter now shows whether the mouse is captured/released. (Wengier)
- The command “config -set” is now case-insensitive for property names. Also, if an option cannot be changed at run-time, DOSBox-X will ask whether to restart itself to apply the new setting. (Wengier)
- Do not read real-mode data areas from mouse event handling if running a protected mode guest OS like Windows NT, and disable INT 33h functions when DOS kernel is shut down to boot into a guest OS. Moving mouse while Windows NT is running should no longer cause page faults and crashes. (joncampbell123)
- The setting “mountwarning = false” will now silence more warning messages during mounting. (Wengier)
- The code page setting of “country” option will now be ignored for PC-98, JEGA and DOS/V modes. These modes will enforce the desired code page. (Wengier)
- Added support for loading the ASC16/ASCFONT.15/ ASC24/ASCFONT.24? font files from the UCDOS/ETen Chinese DOS systems for the options “fontxsbcs”, “fontxsbcs16” and “fontxdbcs24” in [dosv] section of the config file for DOS/V systems. (Wengier)
- Improved auto-detection of box-drawing characters when using DBCS code pages. (Wengier)
- Applied UTF-8 conversions to file browse dialog boxes for selecting files containing Unicode characters (e.g. CJK characters). (Wengier)
- For screenshot and MIDI/OPL recording, DOSBox-X will now display a message box showing the saved file name when the recording has been completed. The full paths will also be logged. (Wengier)
- Added confirmation message while trying to load a Direct3D pixel shader which may not be needed or may have undesired effect. (Wengier)
- Added warning message if DOS/V or Japanese PC-98/AX machine type is selected and a language file with an incompatible code page is specified. (Wengier)
- Added “AMD K6 166 MHz”, “AMD K6 200 MHz” and “AMD K6-2 300 MHz” menu options within the menu group “Emulate CPU speed” (under “CPU”). (Wengier)
- Added a TrueType font selection page into Windows installer, which will show when TrueType font (TTF) output is selected for new installations. (Wengier)
- Added MMX instruction PSHUFW and added typecasts to some MMX instructions in case compilers cannot properly shift uint64_t by uint8_t otherwise. Most Pentium-level MMX instructions (such as MOVD, MOVQ, and EMMS) are added to the debugger disassembler and support for the disassembler to represent MMX registers. (joncampbell123)
- Added code to normal core to flush paging TLB whenever handing a non-recursive guest page fault. The guest OS will likely update the page tables to resolve the fault. The Linux kernel will constantly get “stuck” whenever you run a command without this change. (joncampbell123)
- Added code to make sure DOS kernel drives and drive letters have been unmounted and deallocated before booting a guest OS or shutting down DOSBox-X (joncampbell123).
- Added ability to change floppy images with drive number (0 or 1) only. (Wengier)
- Added INT 13h AH=16h, detect disk change. This can be controlled by config option “int 13 disk change detect” (in [dos] section) in case any older OS can not handle it. INT 13h AH=15h will report a floppy drive with change line support if enabled. MS-DOS seems to work just fine with it. (joncampbell123)
- Added menu item “Enable extended Chinese character set” in “Video” => “TTF options” to toggle setting for the Simplified Chinese (GBK extension) and Traditional Chinese (ChinaSea extension). (Wengier)
- Added config option “chinasea” (in [ttf] section) which when set to “true” allows ChinaSea (中國海字集) and Big5-2003 extension of the original Big5-1984 charset for Traditional Chinese TTF output. This requires the use of a TTF/OTF font containing such extended characters to correctly render them; the included SarasaGothicFixed TTF font is updated to support such characters.Certain Traditional Chinese DOS software like the Hyper Editor 5.03 (漢書5) makes use of ChinaSea characters. Also moved “gbk” config option from [dosv] to [ttf] section. (Wengier)
- Added config option “forcesquarecorner” (in [sdl] section) which when set to “true” will force to disable rounded corners on Windows 11. (Wengier)
- Added code to INT 18h emulation (IBM PC mode) to jump to ROM BASIC if the user provided an IBM ROM BASIC image to load. (joncampbell123)
- Added config option “ibm rom basic” in [dosbox] section which allows users to load a ROM image containing IBM PC ROM BASIC, for disk images and MS-DOS setups that need it. (joncampbell123)
- Added stub IBM ROM BASIC points in the BIOS area so that when BASIC(A).COM from MS-DOS 1.x and 2.x are run, a polite message is displayed instead of invalid code and crashes. (joncampbell123)
- 8086 and 80186 CPU types no longer check segment limits. (joncampbell123 & Allofich)
- Put in undocumented behavior in opcode 0x8e for 8086 and 80186. (Allofich)
- Made 8086 treat opcodes C0,C1,C8,C9,F1 as aliases of C2,C3,CA,CB,F0, and opcodes 0x60-0x6F as aliases of opcodes 0x70-0x7F. (Allofich)
- Adjusted multiple-prefix bug for 8086/286 to only apply when REP or REPZ is used. (Allofich)
- Fixed 0x0F opcode being valid on 80186 core when it should be invalid. (Allofich)
- Fixed CGA modes to always use a character height of 8, rather than reading it from address 485h. Fixes corrupt graphics in the PC Booter version of Apple Panic. (Allofich)
- Fixed underflow when INT 13 AH=2 called for sector 0. (Allofich)
- Fixed infinite loop when trying to run a 32-bit program with the 8086 CPU type. (Allofich)
- Fixed INT 13h emulation to no longer call the DOS kernel “DriveManager” if the DOS kernel has been shutdown. This fixes memory corruption issues in the guest OS system run by the BOOT command that can occur when the “swap disks” command is used in the emulator. (joncampbell123)
- Fixed DTA memory leak from FAT driver if FAT drive was mounted when booting into a guest OS. (joncampbell123)
- Fixed a crash on unmount that occurs if IMGMOUNT is used to mount multiple floppy disk images to a drive letter. (joncampbell123)
- Fixed possible crash with printing. (jamesbond3142)
- Fixed possible freeze when shutting down Windows 9x after changing a CD image from the menu. (Wengier)
- Fixed the default U.S. keyboard layout for the HX-DOS build. (Wengier)
- Fixed copying full-screen or multi-line text from a DBCS codepage in TTF output or PC98 mode. (Wengier)
- Fixed possible crash at start with getsysfont=true when a font may not be obtained on some Chinese Windows systems. (Wengier)
- Fixed TTF color issue with some DOS GUI programs by initializing the color scheme when with default COLORS= setting in EGA or VGA mode. (Wengier)
- Fixed some Direct3D pixel shaders not working (such as GS2x and CRT-geom-blend). (Wengier & depaljas)
- Fixed config option windowposition=x,y not working in Linux/macOS SDL1 builds. (Wengier)
- Fixed copying files from the virtual drive Z: not working when using the 4DOS shell. (Wengier)
- Fixed some issues in MORE command. (Wengier)
- Fixed “DIR>NUL” freeze/crash when only disk or CD images are mounted. (nanshiki)
- Fixed BIOS screen when resetting the machine with a non-TTF output and DOS/V mode enabled. (Wengier)
- Fixed the key `/~ not working when IME is enabled on a non-Japanese keyboard. (Wengier)
- Fixed display glitches in the game “Continuing adventures of Cyberbox”. (Wengier)
- Fixed unusable joystick with config options like joy1response1 set to certain values. (Baderian)
- Make memory B0000-B7FFF unmapped for the CGA emulation. Fixes “Backgammon 5.0” detecting that an MDA is also present when using CGA. (Allofich)
- Make floppy I/O delay separately configurable from hard drive delay, and make it slower than before by default. It is adjustable via the “floppy drive data rate limit” config option. (Allofich)
- Always return bit 6 of port 61h as set for PC and as clear for PCjr and Tandy. Allows Zaxxon to load in PC mode. (Allofich)
- Video emulation for PC-98 mode (for 400-line modes) is now 16:10 instead of 4:3. 480-line PC-98 modes are still 4:3. (joncampbell123)
- PC-98 EGC emulation: Add generic ope_xx handler for the remaining block of undefined/undocumented EGC ROPs. This fixes “Atomic Punker” which uses EGC ROP 0xBE for sprite rendering. (joncampbell123)
- Don’t run mouse setup code if there is no emulated mouse. (Allofich)
- Integrated commits from mainline (Allofich)
- Add proper opl3 handling of the waveform select to dbopl.
- Correct disassembly of some FPU instructions.