214c048 / 02-07-2024
DOSBox-X
Accuracy
Performance
Features
DOSBox-X is a free and cross-platform DOS emulator for running DOS games and programs. Started as a fork of the DOSBox project, it retains compatibility with the wide base of DOS games and DOS gaming DOSBox was designed for. But it's also a platform for running DOS applications, including emulating the environments to run Windows 3.x, 9x and ME and software written for those versions of Windows. DOSBox-X aims to be a complete DOS emulation package that is both fully-featured and easy to use, covering all pre-2000 DOS and Windows 9x based system scenarios.
While they have made efforts to maintain and improve the emulation accuracy of the hardware and many more ways to configure the DOS virtual machine, they also try to strike a balance between emulation quality, speed, and usability, including improving the out-of-the-box experience for new users who want to run DOS programs or games, as well as implementing emulation that is accurate enough to make retro-programming possible with confidence the program will run properly on actual hardware.
...
Installation instructions available here
Primary Wiki is located here
Most Recent Changes
--214c048--
Correct Hercules InColor memory emulation. Read and write planar behavior was incorrect due to a misunderstanding of available documentation. (joncampbell123).
Hercules/MDA and InColor integration broke the Hercules blend mode render, fix the render so that adjacent lit pixels are brighter again. (joncampbell123).
Fix "VRD" debugger command bug that didn't properly render out the rest of the VGA display frame. (joncampbell123).
Fixed debugger mapper shortcut bug where entering the debugger completes the 1 ms "tick" early, effectively jumping emulator time up to start of the next ms. This might explain the mysterious cases where a program always fails to work unless you are debugging it. (joncampbell123).
Added debugger command "VRT" which resumes running the guest until vertical retrace. Added for programmers who wish to write something to screen and then see it show up. (joncampbell123).
Fix IMGMOUNT, when mounting FAT disk images, to provide the DPB the actual media id byte instead of assuming 0xF8 or 0xF0. INT AH=1Ch should now report the proper media id byte for any floppy format, instead of always reporting 0xF0 (1.44MB floppy). (joncampbell123).
Allow BOOT to load and execute the boot sector of a guest OS even if memory size is too small (in IBM PC emulation, less than 32KB of RAM). MS-DOS 1.x of course will crash if you try that because of the assumptions made in the boot sector, but it's there if you are feeling adventurous or are in an experimental mood (joncampbell123).
If memsize is 4KB, place the COMMAND.COM PSP segment in the private UMB area instead of the normal MCB allocation chain (joncampbell123).
DOS kernel will always allocate kernel memory from private UMB area if memory size < 16KB, in order to continue to work (joncampbell123).
DOS kernel will allocate from segment 0x60 instead of 0x70 if the memory size is less than 64KB. (joncampbell123).
files= and fcbs= default value now automatically scales according to available conventional memory (640KB or lower) in order for memsize 64KB or lower to free up or memory and run properly. (joncampbell123).
dosbox.conf files= and fcbs= settings have been changed to allow "0" as a value to mean choose a reasonable default. (joncampbell123).
Fix bug where DOS kernel crashes on startup because of the initial stack pointer set by BIOS startup that points past available memory when memsize is 64KB or less. (joncampbell123).
If minimum mcb free is not set and memory size is less than 256KB, automatically set minimum mcb free to minimum mcb segment, in order to release more available memory within the limited space (joncampbell123).
Do not enable XMS emulation if system memory size is 1MB or less. (joncampbell123)
DOS drive cache: When listing a directory, defer the filename sort until the entire list is built. This improves directory listing performance in directories with many files. (joncampbell123).
NT 10h, if instructed, will now use the video parameter table to set standard VGA modes instead of internal logic. (joncampbell123). Removed erroneous VGA display compensation code for certain EGA/VGA registers that really only caused incorrect display of the EGA 640x350 4-color mode. (joncampbell123).
Corrected EGA and VGA video parameter tables by copying the parameters from actual IBM EGA VGA ROM BIOS images. They should be 100% correct now. (joncampbell123).
Corrected register values and video rendering of machine=EGA 640x350 mode when emulating 64KB of RAM. This should fix rendering and display issues with EGA 640x350 4-color emulation. Also corrected INT 10h character printing functions to filter the color attribute value for 640x350 4-color mode so the DOS prompt does not have alternating colors, in the same manner the real IBM EGA BIOS does. (joncampbell123).
Fix BIOS screen to use CGA 640x200 2-color mode if machine=ega with less than 128KB of video ram, or machine=ega200, instead of showing a garbled 640x350 display. (joncampbell123).
Fix memory buffer overrun with machine=ega that can occur with 640x350 mode and less than 256KB of video RAM. (joncampbell123).
The DOSBox clipboard API (via INT 2Fh) is now disabled by default, because some programs use it's presence to detect whether they are running under Windows. This fixes a program where Norton Desktop 1.0 does not use it's "graphical" text UI elements because it thinks it's running within a Windows DOS box. (joncampbell123).
Remove unnecessary and useless Win32 fcntl() on some memory typecast to int which is causing a segfault whenever a ZIP file is mounted as a drive with an overlay filesystem atop it. (joncampbell123)
Update caption control feature to use equivalent APIs on Mac OS. (joncampbell123)
Add dosbox.conf and menu option to control whether the DOSBox-X window
can be seen in screen captures in Windows 7/8/10/11. Windows 11 "Recall" is very concerning and users might not want their DOS gaming to be part of it's memory. (joncampbell123).
Correct EGA switch readback from port 3C2h to reflect a value of 0x8 instead of 0x9 when machine=ega200 (joncampbell123).
Correct BIOS data area value that holds the "EGA switches" to reflect 200-line EGA "emulation" when machine=ega200. Value 0x08 instead of 0x09 (joncampbell123).
Correct mode parameters for CGA 640x200 2-color mode when using machine=ega200 so that it displays correctly. (joncampbell123)
DOS kernel: Remove fixed hacks for SFT and dynamically allocate the second SFT table for the last N - 5 file handles. Add code to zero SFT table memory to ensure that random data doesn't cause issues. Windows 3.1 is still perfectly fine with it, so the SFT table update and cleanup is complete. (joncampbell123).
DOS kernel: Move the magic "CON" strings into the first SFT and mimic the 5 default open file handles that every DOS process starts with: CON CON CON AUX PRN. Windows 3.1 is still happy with it, which is good. (joncampbell123).
DOS kernel: Put the CON driver somewhere else because allowing it to overlap the SFT is messy. Fix SFT generation to match the way that MS-DOS 5.0 does it where the first table is always 5 entries and the
second table is always N - 5 entries. Cleanup the DOS memory allocation a bit. So far, Windows 3.1 doesn't have a problem with it. (joncampbell123).
DOS kernel: Interrupt handler IRET was accidentally placed within the SFT table, move it up to resolve the conflict. (joncampbell123).
Local DOS drive support: On Windows, if the guest is attempting to create a hidden file, make sure to call the right APIs to create a hidden file on the host. Not only is this needed to create a hidden file, but if the guest tries to create a hidden file and the file already exists as a hidden file, the file creation needs to succeed. Fix for "Facts of Life" by Witan because the demo creates a hidden WITAN.92 every time it is run (joncampbell123).
XMS: Add dosbox.conf option to XMS driver to switch on flat real mode when a) the XMS driver initializes and/or b) when the XMS driver is called on to move/copy memory. (joncampbell123).
INT 21h: If a DOS program frees a memory block, and then resizes the freed memory block, reassign ownership of that block to the program as if allocated. This is apparently canonical MS-DOS behavior. Added dosbox.conf option to control whether resizing a freed block silently assigns ownership (default setting) or whether it returns an error. DOS resize memory function for the most part DID assign ownership but not in the case where the size of the MCB was exactly the size requested to resize to. (joncampbell123).
Sound Blaster: Fix bug where "force autoinit" prevented Sound Blaster playback from working at all, fix for "Jump" by Public NMI (joncampbell123).
Debugger UI now shows PIC_FullIndex() and whether or not the CPU is in the HLT state. Single stepping does not do anything when the CPU is in the HLT state, so at least let the user know (joncampbell123).
Keyboard controller (IBM PC): Cancel the IRQ signal upon reading I/O port 60h. The reason for the IRQ, the pending data, was just read, so now there is no point in keeping the IRQ signal up. This fixes Escape key problems with "Cronologia" by Cascada that causes part 3 "Time" to immediately exit and continue to the credits. Part 1 and 2 are not affected by the pending IRQ because those parts mask IRQ 1 and poll the keyboard controller directly. (joncampbell123).
Fix complexity test code to determine when Odd/Even mode is enabled in all cases and to resolve a problem with garbled scrolling text in the "Vectorballs" part of "Unreal" (joncampbell123).
M_EGA display mode now applies CRTC BYTE/WORD/DWORD shift to display start address, same as M_VGA, to ensure correct display when demos and games set the CRTC to non-BYTE modes. This fixes page flipping flickering during the "Vectorballs" part of "Unreal" by Future Crew. (joncampbell123).
Update Configuration GUI to use radio buttons for selection, meaning the
circular buttons that resemble those in Windows, not the check boxes.
The GUI toolkit had them all along, the Configuration GUI was using
check boxes for that for some reason. (joncampbell123).
Linux ALSA MIDI output: Any attempt to send RESET or other Fx commands
to the ALSA library causes a segfault in the ALSA library. Revise the
code to send without crashing. (joncampbell123).
Linux ALSA MIDI output: Add code to list and enumerate the MIDI sequencer
devices available so the user can use it to determine what magic numbers
to put into the midiconfig setting, especially if the user wants to send
MIDI to an external synthesizer. (joncampbell123).
Suddenly Mac OS 14 and XCode consider the "id" and "int" datatypes
different and assigning or returning one to the other is now a compiler
error. Add typecast to enable compile on latest XCode. (joncampbell123)
INT 33 mouse emulation: Add dosbox.conf options to force a specific
coordinate system for the DOS game with respect to host/guest mouse
cursor integration (getting the DOS cursor to match the host cursor
within the window). Add dosbox.conf option where additional adjustments
are available. The maximum x/y and max-adjust options are ideal for
Lemmings 2, which uses INT 33h in a way that confuses the automatic
range detection code used to synchronize cursor position and therefore
needs this option, and the first Lemmings as well. (joncampbell123).
PIT timer: Fix restart_counter(), the delay computation was completely
backwards. This is particularly important where it concerns programs
that use the PIT to detect the rate at which the Pentium time stamp
(RDTSC) advances as the previous code caused wildly inaccurate measurements
and bad timing (GRUB bootloader, the Microsoft CD-ROM boot "press a key
to boot from CD" message). (joncampbell123).
IDE: Make sure to set feature/error register to 0x01 when the guest
soft or hard resets the IDE devices through the controller. The Linux
kernel uses a soft/hard reset on startup to detect PATA devices and
if it does not see the correct value after reset, it will either ignore
the device or complain about diagnostic failure and cautiously talk to
the primary IDE hard drive while ignoring any ATAPI CD-ROM emulation.
This allows the Linux kernel to boot and see the CD-ROM drive. (joncampbell123).
IDE: Do not clear registers unnecessarily when finishing IDENTIFY DEVICE.
The BOOT command now supports El Torito "no emulation" booting from a
CD-ROM drive, which is needed to boot install CDs for Windows XP, Linux,
etc. or Linux-based live CDs. Note that at this time, BOOT only supports
"no emulation" and IMGMOUNT only supports "floppy emulation" (joncampbell123).
INT 13h extensions: If a read was interrupted by an error, update the
block transfer count so the caller knows (joncampbell123).
DOS: Move version parsing farther up, so that the initial DOS version
can affect memory layout and tables as needed. (joncampbell123)
DOS DPB and FAT driver: If the DOS version is 4.0 or higher, write a
DOS 4.0+ compatible DPB structure (as DOSBox-X already has been doing
since forking from DOSBox). If the DOS version is lower than 4.0,
write an MS-DOS 3.30 compatible DPB structure. This allows Popful Mail
to run without getting into an infinite loop scanning the DPB linked list
when [dos] section ver=3 30 (MS-DOS 3.30), aside from the fact that the
game will also run without this change if you set ver=4 0 since the game
appears to be aware of the change in structure between MS-DOS 3.30 and
MS-DOS 4.0, though for whatever reason the game refuses to run on
MS-DOS 5.0 or higher. (joncampbell123).
IDE: Silently ignore SET FEATURES command 0x03. Any negative response
to feature 0x03 causes the Linux kernel to reject the IDE device.
(joncampbell123)
Add support for PIT timer 0 mode 4. Linux kernel 6.1.29 compiled in
"tickless" mode uses mode 4 instead of mode 0 as a delay timeout. Prior
to this fix, the Linux kernel would switch into tickless mode and then
nothing would happen because IRQ 0 would never fire again. See also Linux
kernel source code, drivers/clocksource/i8253.c function pit_set_oneshot()
to see what I mean. (joncampbell123)
Windows 95 S3 driver behavior suggests that S3 16-color VESA modes
0x202 to 0x208 are NOT planar modes, but packed modes. Change modes to
M_PACKED4 and update modelist building to allow that range even if the
dosbox.conf is configured not to list 4bpp packed VESA modes. This fixes
Windows 95 S3 driver 16-color modes 800x600, 1024x768, 1280x1024.
Noted: Windows 95 is the last version of Windows to support 4bpp packed.
Windows 98 and higher refuses to support it and the Display settings
will not allow you to select any 16-color mode other than the stock
VGA 640x480 16-color planar mode. (joncampbell123)
Add --load-seg option to BOOT in case any PC-98 game boot floppy expects
to be loaded somewhere other than the default. PC-98 game "Private School
Adventure" will crash if loaded to segment 0x1FC0 but runs fine if booted
with --load-seg 0x0FC0 instead. (joncampbell123)
Add dosbox.conf option to direct the EMS page frame segment, in a limited
fashion, though only effective for PC-98 mode. PC-98 segment is still
0xD000 by default, but apparently there are games that require the EMS
page frame to exist at 0xC000. For these games, you can now set under the
[dos] section "ems frame=C000". (joncampbell123)
Restored libslirp support for 32-bit MinGW CI builds which was temporarily
dropped in 2024.03.01 release. Also since MinGW plans to gradually phase
out 32-bit support, added code to manually build on our own. (maron2000)
Fixed build errors of Windows installers. Windows Vista support for standard
installer is dropped to fix this issue. Vista users can either use the XP
installer or portable builds instead. (maron2000)
Fixed compile error of speexdsp/fftwrap.c on gcc-14 (maron2000)
PC-98: Fixed US keyboard support for tilde (Shift+grave) key (maron2000)
Fixed DOSBox-X freezed when codepages regarding EGA18.CPX were set (maron2000)
Fixed CUE sheets of GOG games were rejected. Still requires "-t iso" or
"-t cdrom" option for uncommon file extensions except ".CUE". (maron2000)
Added loongarch64 support (donmor)
Disable FP exceptions in a portable way (xry111, donmor)
Added "*.ccd" in file open dialog (maron2000)
Added CI builds for ARM mac (maron2000)
Bump tinyfiledialogs to ver 3.17.4 (maron2000)
Obtain geometry info of non-standard sized floppy from BPB (maron2000)
PC-98: Implemented int 18h ah=47h,48h,49h (nanshiki)
Added breakpoint type "Freeze memory" (Enmet)
Implemented seeking in MSCDEX
(Imported from dosbox-staging/dosbox-staging#3516 authored by weirddan455)
Fixed built-in COPY command failed to obtain free space when reported DOS
version is set to 7.1 (maron2000)
Fixed some file extensions in the filter list were ignored in the file open
dialogs (maron2000)
Fixed mounting a non-FAT VHD image (maxpat78)
Fixed VHD geometry detection (maxpat78)
Fixed issue that IMGSWAP command did not work for CD drives. (maron2000)
Fixed loaded language file unexpectedly changes on launch. (maron2000)
Fixed reported size issues in builtin DIR command (maxpat78)
Added missing language file in Windows standard & XP installers. (maron2000)
Fixed a bug in IME character display on macOS Sonoma (nanshiki)
Fixed build errors of SDL1 code when built with gcc-14 (maron2000)
Fixed static link errors of libslirp >= 4.8.0 (maron2000)
PC-98: Added MEM command for PC-98 mode (maron2000)
--199aa35--
If an empty CD-ROM drive is attached to IDE emulation, return "Medium Not Present" instead of a read error, when asked to read. (joncampbell123).
Add "empty drive" CD-ROM image type "IMGMOUNT e: empty -t iso" as a way to emulate an empty CD-ROM drive with no disc in the drive. (joncampbell123).
Add "empty drive" floppy image type "IMGMOUNT 0 empty -t floppy -fs none" as a way to emulate a floppy drive with no disk in the drive. (joncampbell123).
Video debug overlay: Fix mouse integration misalignment when the video debug overlay is enabled while Windows is running (joncampbell123).
Video debug overlay: Fix segfault when enabled with 15/16bpp SVGA modes. (joncampbell123).
Video debug overlay: Fix bug where video debug failed to appear in SVGA15/16/24/32bpp display modes because of a design where the VGA drawingncode points directly at video RAM except when drawing the hardware cursor.
One symptom was that the video debug info on the side failed to appear at all, unless running in Windows and only within the vertical range of the mouse cursor. (joncampbell123).Video debug overlay: Do not bother showing the Attribute Controller palette in 15/16/24/32bpp SVGA modes because it doesn't matter there and is not involved with how anything is displayed. (joncampbell123).
Video debug overlay: Fix debug info text to appear for 15/16/24/32bpp SVGA modes. (joncampbell123).
BOOT --bios no longer triggers a system reset VM event, but instead just jumps to the new BIOS image after DOS kernel shutdown. This is needed for hardware and resources to stay as they were when running the BIOS i.e. keeping any IDE devices configured within the DOS kernel intact so that the BIOS can find and use them. Prior to this change, all hardware was fully
reset and unmapped prior to running the BIOS which made IDE emulation unusable with BIOS images. (joncampbell123).BOOT --bios no longer immediately loads the new BIOS into memory, but instead loads and stores the image to a temporary buffer. The ROM image does not actually get mapped in until the DOS kernel and everything else has had a chance to shut down fully. (joncampbell123).
Fix BOOT --bios not to try to load PC-98 ITF firmware unless actually running in PC-98 mode (joncampbell123).
Write PC-98 keyboard translation table (non-shifted) in ROM BIOS and set the keyboard translation table pointer in the BIOS data area for "Nut Berry". This Nut Berry game also assumes lookup and translation tables exist at specific locations in the ROM BIOS, so put those tables there. The shift state table in BIOS has also been added, though at the moment, the tables
are incomplete. (joncampbell123). MegaZeux from the MS-DOS days had a 256-color tweakmode that worked on some
popular SVGA chipsets of it's time though on others it does nothing but halve the display resolution of text mode. The basic idea is that it makes the VGA card latch two 4-bit outputs of the VGA text mode into one 8-bit value, thus, 256 colors possible. Add support for this. However I am not sure whether this
tweakmode is supported by S3 chipsets, so it is OFF by default and you will need to add "enable supermegazeux weakmode=true" to the [video] section of
your dosbox.conf to enable it. (joncampbell123).Undo the "no partition offset" change. DOOM II for PC-9821 requires it to work else the page flipping fails and sprites and rendering flickers as you play. (joncampbell123).
Allow text layer to appear in PC-98 256-color mode. Even though I was unable to enable it on real hardware, "Shamat, The Holy Circlet" requires having the text layer visible on top of 640x400 256-color mode for the introductory scrolling text to appear on screen. So for now, just allow it. (joncampbell123).
The reason some PC-9821 games have been giving bad PITCH values (double the correct value) to the GDC in 256-color mode has been determined. They read port 9A0h to determine if the GDC is running at 5MHz or not. That port 9A0h index was not implemented and therefore gave the game the impression it was running at 5MHz when it was not, therefore the doubled PITCH value. This fix corrects the squeezed 256-color mode and allows it to appear properly. (joncampbell123).
IMGMOUNT: If the file extension is HDI, assume a hard disk image even if the image file is small enough to qualify as a floppy disk image. There is an HDI image of PC-98 game "D.O. Doki Doki Disk 8" that is 2.2MB, small enough
to be mistaken as a 2.88MB IBM PC floppy disk and therefore fail to mount as an HDI image, this change fixes it. (joncampbell123, maron2000).Emulate PEGC PC-98 linear framebuffer at both 0xF00000-0xF7FFFF (at 15MB memory mark) but also make it appear at top of memory below BIOS (normally at 0xFFF00000-0xFFF7FFFF). Some 32-bit PC-9821 CD-ROM MS-DOS games assume the top of memory alias and will fail to show anything on screen without it (unless, alternatively, the memalias setting is set to emulate 24 address lines like a 386SX). Now to figure out why these same games are programming a GDC PITCH value that's double what it should be... (joncampbell123).
PC-98 GDC scan offset no longer pays attention to scan offset of data partition in 256-color mode. Required to help fix broken 256-color graphics for some PC-98 CD-ROM games. (joncampbell123).
Refuse to enable ISA 15MB-16MB memory hole if memalias is set to 24 bits or less. Not only is it redundant to do that but it also causes the BIOS to immediately crash on startup. (joncampbell123).
IDE ATAPI CD-ROM emulation: In PC-98 mode when emulating a NEC CD-ROM drive, also limit sector reads to one CD-ROM sector per DRQ because the MS-DOS driver assumes that behavior. The driver will stall and error out if it requests a
multi-sector read and the drive does NOT limit transfers to one sector at a time per IDE data transfer. This is in line with my experience writing the DOSLIB IDE testing program and laptops from the 1990s with IDE ATAPI CD-ROM
drives, so it's understandable. (joncampbell123).The reason the CD-ROM driver in PC-98 game HDI images refused to talk to our IDE CD-ROM emulation is... (drumroll) we didn't report ourself as an NEC CD-ROM drive when given the MMC INQUIRY command. Yes, really. The OAK CD-ROM
driver in these HDI images really does care whether or the drive is an NEC brand drive. What a stupid reason not to talk to a CD-ROM drive. Add code to default to "NEC" "CD-ROM DRIVE" as the INQUIRY result if running in PC-98 mode.
(joncampbell123).Add basic rudimentary support for CloneCD (*.ccd *.img) images. It might not work with more complex arrangements but it is enough for most CD-ROM PC-98
games so far. (joncampbell123).libpng supports the pHYs PNG chunk which describes the pixel aspect ratio of the PNG image. libpng 1.6 has it, use it. Programs that support the information
like FFMPEG will then display the PNG image with the correct aspect ratio. (joncampbell123). [https://github.com//issues/4754]PC-98 mode: There is a 302KHz timer behind I/O ports 5Ch/5Eh that some MS-DOS drivers depend on for timing, particularly a popular IDE CD-ROM device driver in many PC-98 game HDI images. This change allows the driver to time out after about 5-10 seconds instead of an infinite hang. (joncampbell123)
Fix INT 10h to keep hardware CRTC I/O port synchronized with BIOS DATA area copy so that other parts of INT 10h called by SetVideoMode do not accidentally talk to the wrong I/O ports. This fixes corrupted INT 10 Mode F display (640x350 monochrome graphics mode). (joncampbell123).
Add DOS Int21 0x5D 0x00 - remote server call
Inspired by FeeDOS inthndlr.c With this change it is possible use a plain dosbox-x to install and run Windows for Workgroups V3.11 as an IPX server on the pcap ne2000 interface offering a host directory for read and persistent write access to an
MSDOS machine running a WfW 3.11 IPX network client.
Please don't forget mounting with -nocachedir
(Issue #4162)(Yogi-baer)Fix missing keystroke SDLK_LESS on DE keyboard on Raspbian OS (Yogi-baer)
Fix crash when loading a language file without existing menu item "ttf_extcharset" (Yogi-baer)
Change ISA memory hole 512kb option from boolean to true/false/auto. (joncampbell123)
Add ISA memory hole 15mb option, make it true/false/auto.
Auto means off for IBM compatible mode and on for PC-9821 compatible mode. This should allow some DOS games that depend on the linear framebuffer to work properly even if memsize=16 or higher. (joncampbell123)MIDI: set minimum sysex delay when enabled (mistydemeo)
International support in LABEL, COPY, DEL builtin commands (maxpat)
Fix palette setting bugs due to SETCOLOR fix in 2023.10.06 release. (maron2000)
Graphical glitches in Ultima VI(#4507), Chessmaster 3000(#4510), Wizardry VII(#4534)
Crash Sid Meyer's Civilization I (#4511)
TTF color settings regarding 'colors' option (#4579, #3318) and some moreFix crash when mounting floppy/ISO images with no extension (maron2000)
Fix Intel macOS CI builds crashed on startup due to missing dylibs
(Issue #4438)(maron2000)Fix TTF mode didn't switch to graphics mode on certain types of machines
such as tandy/pcjr.(Issue #4559)(maron2000)Fix crash on switching to fullscreen when output=opengl (Intel macOS) (maron2000)
Update DXCapture shell command to support /O for OPL capture (AranVin...
--f719635--
Add "VRD" debugger command to force redraw of the VGA screen.
Add VGA debug set commands to force a video start address and another
to clear all debug settings.Add "PITSYNC" option to VFRCRATE command. "VFRCRATE PITSYNC ON"
directs the system timer interrupt to synchronize tick rate with
vertical refresh rate of VGA emulation if the game or demo set
the timer tick rate to a value close enough to vertical refresh.
This is intended for games or demos that use the system timer for
a vsync interrupt.IMGMAKE: Fix bug where if -bat was specified, the generated .bat
file would attempt to mount the .bat file, not the disk image.IMGMAKE: If -nofs and -bat was specified, the generated .bat file
will refer to "IMGMAKE 2" instead of "IMGMAKE C"DOS FAT driver: When the guest sends in a new BIOS Parameter Block,
recalculate the disk locations and FAT type properly instead of
assuming that FORMAT.COM is using the same format already present.DOS FAT driver: If the partition is unformatted and looks as if
freshly written by FDISK, then instead of failing to mount, mount
the partition instead as an unformatted partition and fail file
I/O until a BPB is set and the partition formatted by FORMAT.COM.
This matches MS-DOS behavior and it makes it possible to mount an
image, FDISK it, restart, FORMAT.COM the unformatted partition,
and end up with a working drive letter (just like MS-DOS). So far
verified against MS-DOS 6.22 and Windows 98 versions of FDISK,
FORMAT, SYS, and SCANDISK.DOS FAT driver: Add options -o sectoff and -o sectlen to make it
possible to manually specify the start and length of a partition.
Future code will use this internally as well.IMGMOUNT: Allow *: as a drive letter to mean automatically pick a
drive letter.Fix debugger to use toupper(), but only for ASCII range ncurses
keycodes.Timer PIT: If the guest writes the counter value while the counter
gate is off, make sure the counter read back is the same value
written regardless of gate status. Prior code returned the stale
latched value of the counter as it was prior to shutting off the
gate and writing the counter, causing timing issues.Fix restoring minimized window on TTF output (Issue #4248) (maron2000)
Fix macos crash on launch when output=surface or auto (SDL2) (maron2000)
Update in-tree SDL2 library to ver 2.28.2 (maron2000)
Updated build tool for MinGW lowend builds required for the updated SDL2
library. As a result, MinGW lowend builds are now able to enable debugger
features. (maron2000)Debugger RUN and RUNWATCH commands were broken, fix. Make sure debugger
shortcut triggers execution to stop whether in RUN or RUNWATCH mode.Fix SETCOLORS command didn't change color when output=ttf.(Issue #4503)
Also fixed the values reported were wrong. (maron2000)BIOS CMOS date/time functions will now idle the CPU 4 times after reading
or setting the clock to allow interrupts, CPU time, and RTC clock ticks
to proceed normally. This fixes "Pizza Tycoon" and allows it to continue
past the initial logo. (joncampbell123)Fix segfault when mounting hard disk images with no file extension
(joncampbell123).
--33c5415--
Disable by default message confirmation after snapshot and AVI video
capture, but leave the option there for those who want to enable it (joncampbell123).Remove "LOG: Logging output has been disabled." output when -nolog
is specified on the command line (joncampbell123).Fix stuck Ins key problems by fixing a typo in src/ints/bios_keyboard.cpp.
The code is supposed to clear the "Ins key down" flag, but instead cleared
all bits EXCEPT "Ins key down" (joncampbell123).NE2000 macaddr default is now "random", which instructs the NE2000
hardware at startup to pick a random MAC address. (joncampbell123).IPX: If NE2000 and IPX are enabled, and an IPX tunneling connection is
active, and the user boots a guest OS, switch on a mode where all IPX
packets going to and coming from the guest are re-routed through the
IPX tunnel instead of to the NE2000 ethernet backend. This feature
makes it possible to play IPX-based games in a guest OS like MS-DOS
and Windows 95. (joncampbell123).IPX: Add extension to server to allow clients to register their own
MAC address instead of using the default MAC address given by their
IP address and port number. The extension is designed so that if DOSBox-X
is a client to another DOSBox fork's IPX tunneling server, it will
be ignored and DOSBox-X will get the usual MAC address instead. This
extension is required for guest OSes to be able to use the IPX protocol
through the NE2000 card given upcoming code changes as they normally
use the network card MAC address when picking an IPX address because
the IPX interface is not available once booted into a guest OS. (joncampbell123).IPX client: If both IPX and NE2000 emulation are enabled, IPX emulation
will use the NE2000 card's MAC address instead. It will use the IPX
server DOSBox-X extension to try. If it doesn't work, then the normal
MAC address assignment is accepted without complaint. (joncampbell123).NE2000: Add "nothing" backend. It receives nothing and send packets go
nowhere. If no other backend is available, this backend is a fallback
so that at least the NE2000 emulation can work. The other purpose of
a nothing callback is to give NE2000 something to talk to for those
who wish to use the upcoming IPX packet redirection to link DOS and
Windows games over the IPX client or server connection to other
instances of DOSBox. (joncampbell123)Added record function to capture NE2000 network traffic to a
pcap/Wireshark file in the capture directory. (joncampbell123)Fixed bug where guest VM reset causes the CMOS to stop ticking for
exactly the amount of time it was running before reset. (joncampbell123)Added alarm interrupt function to RTC CMOS emulation (joncampbell123)
Reverted DOS to using the BIOS_DATA tick count for time and the cached
copy of date it keeps internally, rather than always calling INT 1Ah.
It turns out that is how DOS actually behaves, which is also why it is
possible for the DOS and CMOS RTC to diverge. Fix CMOS emulation to
allow get/set time and to run in emulation time, not real time, though
the clock starts from the host time. (joncampbell123)Fixed VHD disk image calculation of footer position and, thus, of newly
allocated block position. (maxpat78)Enhanced Dynamic and Differencing VHD support #4273 (maxpat78)
Imported IBM Music Feature Card support from DOSBox Staging. (Allofich)
Fix IMGMAKE large size image error on MinGW builds (maron2000)
Set usescancodes=true when non-US keyboards are detected. (Linux / MacOS
builds) (maron2000)Fix day of week detection (INT 21h function 0x2Ah). (maron2000)
Refine KEYB and CHCP command (maron2000)
Use segment descriptor's big flag (if present) when disassembling code in
the debugger code view (cimarronm)Add decoding of rdmsr/wrmsr instructions to disassembler (cimarronm)
Fix disassembly for far jmp/call decoding (cimarronm)
Fix memory limits on expand-down segment descriptors (cimarronm)
Bump tinyfiledialog to ver 3.13.3 (maron2000)
Fix mouse column limit on text mode (issue #4353) (maron2000)
Fix Blocek launching failure (issue #4385) (maron2000)
Bump in-tree FreeType library to ver 2.13.1 (maron2000)
Enable debugger function for MinGW builds (maron2000)
--932012c--
IMGMAKE will choose LBA partition types for 2GB or larger disk
images, but the user can also use -chs and -lba options to override
that choice. The CHS or LBA partition types do matter because it
affects which version of INT 13h is used by Windows 98/ME to boot up
and, if drive C: is in compatibility mode, at all times. (joncampbell123)PC-98 256-color mode will also trigger the auto mode of "render on
demand" for performance reasons because per-scanline raster effects
are very unlikely in that case, as will MDA and Hercules machine
types. (joncampbell123)When the DOS IDLE API is enabled (by default), limit STI+HLT to
occur on INT 28h only once after any call to read the CON device
or call to BIOS INT 16h to read the keyboard. This fixes stalls
and sluggish input problems with programs that like to call INT 28h
often like the Pacific C compiler PPD IDE interface. (joncampbell123).Hercules InColor machine type: Fixed attribute and RAMFONT handling
of 48K RAMFONT mode and added planar text rendering. (joncampbell123).Write BIOS data area fields for number of rows, char height, etc.
for MCGA machine type in addition to EGA/VGA machine types because
IBM technical references suggest it's there for MCGA as well.
This also resolves an issue where with the MCGA machine type, INT 10h
failed to print any text to screen whatsoever. (joncampbell123).Render on demand (Staging calls it "lazy rendering") now defaults
to "auto" and allows an "auto" setting. The auto setting will
turn it off for standard VGA modes and will turn it on for SVGA
modes where per scanline raster effects are very unlikely to
occur. This may provide a performance boost for DOS games in SVGA
modes and the Windows desktop (joncampbell123).CGA 320x200 4-color mode is now rendered using the M_EGA render
code for EGA/VGA machine types to better reflect real hardware.
(joncampbell123).Fix bug where setting doublescan=false for anything other than
the VGA machine type would break CGA graphics modes.
(joncampbell123).Fix video debug overlay calculations of source video mode for
CGA graphics modes. (joncampbell123).CGA 640x200 2-color mode and MCGA 640x480 2-color mode are no
longer rendered as M_CGA2 for EGA/VGA machine types. The reason
is that at the hardware level they are really just IBM standard
tweaked versions of the EGA/VGA 16-color modes with additional
bits for the interleave emulation and can be properly emulated
with the M_EGA renderer. M_CGA2 is still used for the CGA and
MCGA machine types for those modes. The DCGA DOS/V mode has been
carefully made into it's own render mode instead of part of the
M_CGA2 case. (joncampbell123).Fixed refcount -1 error and abort when multiple floppies are
attached to a floppy drive and the "Swap floppy" mapper shortcut
is used at least once (joncampbell123).Hercules palette selection now provides a "dark gray" color
mapping to match the green, amber, or gray palette selection of
the user (joncampbell123)Fix Hercules vs MDA attribute handling of "dark gray" background
color when hardware blink is disabled. (joncampbell123)Added RAMFONT emulation to Hercules Plus machine type, fixed code
to allow Hercules Plus text mode to draw farther than the first 4KB
of RAM if RAMFONT enabled. (joncampbell123)DOS kernel: Fix programming mistake that allocated perhaps a bit
too much DOS kernel memory for the "List of Lists" info block.
Fix the sizes of the info block and other structures to make sure
specific kernel structures are placed at fixed addresses because
later Microsoft software for MS-DOS checks those values.
(joncampbell123)Serial port: Add multiplier: setting as requested to enable
faster than 115200 baud rates. (joncampbell123)Fix mistakes in CPUID emulation that threw a #UD exception for
specific cases where EAX was not recognized by particular CPU
types. (joncampbell123)Fix RTC clock emulation to correctly signal IRQ8 interrupt for
both periodic tick and update-ended events. Prior to this fix,
only periodic tick events were reported even if the bit was set
to enable update-ended. (joncampbell123)Fix serial and AUX PS/2 mouse emulation to not send relative
motion unless mouse captured, to make it consistent with the
BIOS PS/2 mouse emulation (joncampbell123)FAT driver: Major performance boost is possible by eliminating
unnecessary code that re-reads the entire directory when looking
up or changing one particular directory entry. (joncampbell123).CMOS registers: Fix code to allow getting and setting time,
fix year vs century registers to work properly. (joncampbell123).BIOS INT 1Ah: Fix functions to get and set time and date
instead of faking on read and ignoring set. Use the CMOS
registers. (joncampbell123).DOS INT 21h: Fix date and time functions to call the BIOS for
time instead of trying to fake it only at the DOS level. This
includes allowing INT 21h to change the date/time using the
BIOS. (joncampbell123).DOS shell: Make TIME actually use INT 21h to set time instead of
directly modifying the BIOS timer tick count in the BDA.
(joncampbell123).Increased PIC event queue size, there are corner cases especially
with Windows XP that can occasionally overrun the queue.
(joncampbell123).Updated IBM PC keyboard emulation to correctly encode Pause and
Print Screen key scan codes when shift, alt, and ctrl are held
down. This makes it possible to type "Alt+SysRq" for programs
that expect it, including SoftICE. (joncampbell123).NE2000 emulation: Looking at recent Bochs source code, ne2k.cc
appears to have downgraded the "IMR write, reserved bit set"
message from BX_PANIC to BX_ERROR. Update the same in DOSBox-X
so that Windows 2000 no longer crashes the emulator with E_Exit()
when probing the NE2000 hardware. (joncampbell123).INT 33h mouse services: Add "Get General Driver Information"
function for Microsoft Word 5.5 (joncampbell123).INT 33h mouse services: Render cursorType == 2 (graphics cursor)
as if text cursorType == 0 if the current mode is text mode.
Microsoft Word 5.5 always calls functions to set text AND graphics
cursor regardless of whether the actual mode is graphics or not.
This fix allows the cursor to show correctly as the block cursor
it wanted in text mode instead of a moving hardware blinking cursor.
(joncampbell123).Fixed S3 XGA emulation bitmap rendering to correctly handle
8/16/32-bit pixel transfer I/O and update comments to reflect
the 32-bit byte aligned transfer mode of the Trio chipset.
This fixes incorrectly drawn radio buttons and 16x16 icons
in Windows NT 3.5, Windows NT 3.51, Windows NT 4.0, and
Windows 2000. (joncampbell123).Fixed keyboard emulation so that upon the keyboard reset command
FFh, the keyboard does the reset process and THEN sends back
bytes 0xAA (power on/reset OK) and 0x00 (interface self-test).
This resolves the issue where Windows NT 3.1 pauses at startup and
does not resume booting until you press a key on the keyboard.
This also resolves the issue where Windows NT 3.5 keyboard and
mouse input stops working completely if you press a key on the
keyboard. (joncampbell123).Add Hercules InColor emulation of MDA vs CGA attribute select,
and make sure it obeys the blink setting (joncampbell123)Change Hercules/MDA text output to render 9 pixels per char
if the char9 setting is on, to match the 9x14 character cell
that those cards emit to the screen. The user can always turn
it back off to get the 8x14 text they're probably accustomed
to in other DOSBox forks. (joncampbell123)Render output fixed to never double pixels vertically on render
if the machine type is emulating VGA and the Doublescan option
is enabled, in order to help resolve SVGA text mode issues
reported by ThomasKjoernes (joncampbell123)Add InColor CRTC registers and add code to emulate the planar
bitplane operations. Microsoft Flight Simulator 3.0 renders
correctly now. (joncampbell123)Update Hercules InColor code to render the same 64-color EGA
palette as machine=ega. (joncampbell123)Correct machine=hercules text rendering flaw that prevented
the bright attribute (bit 3/7) from working, making all text
output the same normal brightness. (joncampbell123)Add expected data structures and signatures to VGA ROM BIOS at
C000:0000 if machine type selects ATI emulation (joncampbell123).Add ATI machine types, which at this time, is just a placeholder
for development to go in that direction over time for those
machine types. (joncampbell123)Added "machine=hercules_plus" and "machine=hercules_incolor" as
stubs to be developed on going forward to emulate the HGC+ and
InColor cards. Note that InColor will require the MCH_HERC case
to generate 64-color EGA-like output going forward even if the
documented stratup state still emulates the MDA-like monochrome
attributes. (joncampbell123)SDL2: Stop checking for compiler flags that make it an error to
declare variables after statements in a function or any other
terrible sins that would offend old C89 standard compilers.
DOSBox-X is never going to compile for a C standard that old.
Furthermore this check is preventing compilation on ARM-based
Macbooks for some reason, though not Intel based Macbooks.
--10add44--
"mount -t overlay" will now print a message on the console to
let you know if the act of mounting the overlay replaced a
previous overlay mount. Overlay mounts cannot be stacked in
DOSBox-X (and probably most DOSBox forks that support overlays)
and the user should understand that. (joncampbell123).Remove kludges from DOS path resolution to handle drive paths
that refer to drive @ (at sign). Note that in ASCII the at sign
is one code below capital "A". Windows 95 FORMAT.COM due to
another issue was asking for "@:\WINBOOT.SYS" and sometimes
causing a segfault in DOS path resolution due to an uninitialized
drive index. The fix for the other issue removes the need for this
kludge. In it's place a message will be logged to your log file if
anything attempts to access files on drive "@:" because it likely
means a failure to determine the drive index properly. (joncampbell123).In addition to reporting the "boot drive" via INT 21h AX=3305h, also
write boot drive in the "List of Lists" structure. Windows 95
FORMAT.COM reads the boot drive from the LoL and does not do any
error checking if that value is out of range (such as if it was
never set and the byte value is zero). Failure to set this field
will result in FORMAT.COM attempting to access "@:\WINBOOT.SYS"
and "@:\IO.SYS" and failing. (joncampbell123).Add dosbox.conf option to set a fixed RTDSC tick rate to use at
all times during emulation instead of the CPU cycle count
(joncampbell123).Fix RDTSC to maintain a monotonic increasing count even if the
CPU cycles count changes, and better handle timestamp writes
through WRMSR (joncampbell123).FAT filesystem driver: Instead of searching from cluster 0 every
time a new cluster is to be allocated, keep track of the search
to help reduce slowdowns on fairly large filesystems when many
files are copied onto it (joncampbell123)Page Up/Down vs Roll Down/Up was in the wrong order, switch order
to correct it. (joncampbell123)Fix 'pc98 force ibm keyboard layout' was always forced to be 'true'
for left & right bracket keys on US keyboards. (maron2000)Fix dynamic_nodhfpu FPU stack bugs, the same bugs that once plagued
dynrec. dynamic_x86 never seemed to have the same problem because
in reality the DH FPU case was normally used, to hit this bug you
had to use core=dynamic_nodhfpu. Also fix dynamic x86 DH FPU code
never to restore from DH case if the DH FPU code was never enabled,
which periodically caused FPU state to dissapear. (joncampbell123).Add dosbox.conf option to control the MSCDEX.EXE device name when
emulating a CD-ROM drive (joncampbell123).Wengier coded this nice text-only DOSBox-X logo for the TTF output.
Fix border alignment issues and make the text logo the default and
only option for MDA and Hercules machine types at boot.
(joncampbell123).Add -print-ticks command line option, which enables code to print
both SDL_GetTicks() and emulator time once a second to the console
and the log file. This may help in tracking down bugs related to
long term laptop suspend or suspension of the process in general.
(joncampbell123).PC-98: Ignore INT 18h AH=0Ch (enable text layer) in 256-color mode.
Real hardware doesn't seem to let you turn on the text layer in
256-color mode, though I am not certain if this is a restriction
imposed by the BIOS or by the hardware. This fixes possible cases
where Sim City 2000 in 256-color mode reveals garbage text data at
the bottom of the screen if it is there when it starts. This doesn't
fix the issue where Sim City 2000 cannot set 640x480 256-color mode
properly unless your display is already set to 31Khz hsync because that
is evidently a bug in the game, not DOSBox-X. (joncampbell123).PC-98 256-color mode: Fix "Active Display Words" value set by INT 18h
to 40, not 80, for graphics layer. This has no apparent effect on
games but it does fix the sometimes erroneous graphics layer width
in the video debug display. Neko Project II source code seems to
indicate the 31KHz hsync mode is programmed that way even if 256-color
mode. This should not break anything since the GDC doesn't let you
read back the "SYNC" reset parameters anyway--this isn't VGA hardware,
after all. (joncampbell123).IPX emulation was broken because it set up the virtual file, IRQ
and interrupt handler way too early, which the BIOS startup would
then overwrite with the default BIOS IRQ handler. IPX emulation
should work now, at least multiplayer DOOM. (joncampbell123)Added debug menu and dosbox.conf option to show debug information
at the bottom of the screen when enabled. This debug information
reflects the video state at the start of active display. It can be
used to see in real time the state of the palette, display offset,
display stride, and other useful information. It is rendered into
the frame on purpose so that it appears as part of the picture
when you take a screenshot or record a video to AVI or MTS for
later review. (joncampbell123)Dynamic core: Fix serious bug in dynrec dynamic core where calls
to handle x86 FPU instructions erronously passed the entire
FPU status word instead of passing only the FPU stack pointer.
The result of this error was that floating point was erratic,
buggy, and often caused memory corruption in DOSBox-X eventually
leading to a crash. It should now be possible to properly run
DOS games on dynrec based systems, including ARM-based M1 Macbooks,
that use the FPU. (joncampbell123)Debugger: When entering debugger interface, force dynamic core
to flush it's state so that the debugger can show the correct
state to the user when they use the "FPU" command to see it.
(joncampbell123).VGA emulation: Automatically ignore odd/even mode if "Chain 4"
mode is enabled in the sequencer (normally enabled only for
256-color mode). Some games accidentally set odd/even mode
in 256-color mode and yet apparently worked just fine on real
hardware. Without this change, such games will display distorted
graphics. It makes logical sense "Chain 4" would take priority
over odd/even mode. Note: If a game uses 256-color unchained mode
AND foolishly enables odd/even mode, then the resulting distorted
graphics are probably accurate to what would happen on real
hardware, but then programmers would have caught their mistake
and fixed it so that is very unlikely to occur. This helps to fix
"Seal: Magic Eye" although some remaining visual artifacts in the
game can only be resolved by setting machine=svga_et4000
(joncampbell123).Set usescancodes=true when non-US keyboards are detected
(Windows builds) (maron2000)For long double without using x86 FPU, the code still calls the
fstcw instruction and can enable FPU exceptions that crash the
emulator, therefore mask off all exception bits to stop that.
(joncampbell123)Added code to mouse emulation to control how often the mouse
reports events through the interrupt. Added dosbox.conf option
to allow the user to force a report rate, which can be used to
force a lower than normal report rate for games that cannot
proprly handle higher ones. Allow PS/2 mouse emulation, if
rate not set by user, to control report rate. (joncampbell123).Add code to COMMAND.COM to flush keyboard input before running
the command given by the user, and flush again when the command
returns. Added option to dosbox.conf to enable/disable this
function (joncampbell123)Fix bug where Tandy mode ignored the "allow more than 640kb"
setting.Fix INT13h AH=02 broken conditional branch which prevents
installer of game "Inherit the Earth: Quest for the Orb"
to obtain free space of hard drive (maron2000)qcow2 image support: Make image able to be mounted by
drive letters (experimental) (maron2000)VHD image support: Make file name check for .vhd extension
to be case insensitive (maron2000)VHD image support: Fix auto-detection of geometry (maron2000)
Sound Blaster: Added code to periodically check the user's
settings regarding recording source selection and listening.
This should allow the user to change those settings on the
fly. (joncampbell123).Sound Blaster: Added options to control whether the generated
recording source is audible through the speakers, and what
generated audio to send to the client. Options are: silence,
hiss, and a 1KHz test tone. (joncampbell123).Sound Blaster: If the DSP is recording rather than playing,
then send audio to the guest at the recording sample rate
containing some form of generated audio. Default is silence.
This ALSO satisfies the Creative driver CTSB16.SYS when it
does the DMA test at startup. (joncampbell123).Sound Blaster: Fixed code to properly recognize when the
guest wants to record audio, including through SB16
commands. Prior to this fix, all SB16 Bxh-Cxh commands
were handled as if playback even if the command would
instead trigger recording. (joncampbell123).Sound Blaster: Add missing update of "last DMA callback"
timestamp that is needed for when the guest pauses DMA
during playback or recording. (joncampbell123).VHD image support: If the VHD image is not a fixed type,
say so in the log (previously it said nothing) and say
what kind of image was mounted (joncampbell123).Added INT 13h AH=44h Extended Verify to satisfy any disk
utilities that might u...
--0.8.42--
Fill in PC-98 BIOS data area byte value indicating
CPU type (whether 8086, 286, 386 or higher)
(Wengier), fill it in at startup (joncampbell123).CHOICE now supports breaking and errors on end of
file or pipe instead of freezing DOSBox-X. (Jookia)Fixed debugger commands parsing numbers wrong. (Jookia)
Fixed DIR crashing on volumes with more than
999,999,999,999 bytes of free space. (Jookia)Switched to year.month.patch versioning (Jookia)
Fix NE2000 panicking if packets are queued too fast.
(kcgen, Jookia)Fix ISO image format detection to support pure
UDF formatted images, meaning that the image
lacks any ISO 9660 features and contains only
UDF. (joncampbell123).Added support for UDF filesystem to ISO image
handling. It is enabled by default if emulating
MS-DOS 7.10 (aka Windows 98) or higher.
(joncampbell123).Added code to detect Rock Ridge according to the
System Use Sharing Protocol standard, and to
read the SUSP entries correctly for the alternate
name, if enabled. (joncampbell123)Updated ISO MSCDEX drive emulation to scan the
available volumes in the ISO image rather than
assume the first volume, which makes Joilet
support possible if long filenames are enabled
and the DOS version is 7.0 or higher. (joncampbell123).Add IMGMOUNT -o option for ISO filesystem support
to enable/disable Joliet extensions, which is a
Microsoft extension to ISO 9660 where long names
encoded using Unicode UCS-16 exist as a supplementary
volume in the ISO image and are used by Windows 95
and higher to support long filenames on CD-ROM.
Added support for reading the Joliet volume and
providing them for both the 8.3 and long filename
APIs in DOS. (joncampbell123).Add IMGMOUNT -o option for ISO filesystem support
to enable/disable Rock Ridge long filename support.
The option is -o rr=1 to enable and -o rr=0 to
disable. (joncampbell123).Fixed 8.3 name generations on ISO drives with Rock
Ridge extension. The ISO drives can be refreshed
via RESCAN command like other drives. (Wengier)SDL_Net support is available for HX-DOS builds,
similar to other builds. Packet driver is needed
for network capability in DOS. (Wengier)Fixed line endings when copying to shared clipboard
(e.g. CLIP$) in non-Windows platforms. (Wengier)Fixed problems with SDL1 Windows builds in which
the user had to type the Fullscreen mapper shortcut
twice. It seems a SDL1 library function that is
used to indicate ignoring or adding a class of
events also liked to flush the event queue. This
is called on mode change. This caused lost
keystrokes, leaving the mapper the impression that
those keys were still held down. (joncampbell123).Fixed PC-98 mode MS-DOS 7/Windows 9x boot disk's
80386 CPU check. (Wengier)Added support for auto-converting non-image drives
(such as mounted local drives) to disk images, so
that they will be visible when booting into guest
systems. A config option "convertdrivefat" (in
[dosbox] section) is added to toggle this setting,
or you can toggle via BOOT command's -convertfat
(or -convertfatro option for read-only access) and
-noconvertfat options. There're also config options
"convert fat free space" (in [dosbox] section) and
"drive z convert fat" (in [dos] section) to control
free space (in MB; 0 means read-only) and whether
to also convert virtual drive Z:. Much of the code
is imported from DOSBox Pure, with added support
for PC-98 HDI and code page conversions. (Wengier)Added menu option "Save to disk image" (under drive
letter in "Drive" menu) to save a mounted non-FAT
drive to selected disk image (IMG/HDI). (Wengier)Added the "Limit disk transfer speed" menu group
(under "DOS") to toggle the hard & floppy disk data
rate function. Also moved "Quick launch program..."
menu from "DOS" menu to "Main" menu. (Wengier)Added code pages 856 (Hebrew) and 859 (Latin 9) for
the guest-to-host code page conversions. (Wengier)Added config option to allow create of temporary
devices for piping operations when a temporary DOS
path is not available. (Wengier)Added support for ATAPI raw sector reading with
READ CD command. (schellingb)Report bad sectors recorded in raw CD images as
ATAPI read errors. (schellingb)You can use CONFIG -set langcp=... to change the
current language along with the embedded code page,
or CHCP nnn:... to specify a language file as well,
e.g. "CHCP 932:" or "CHCP 932:ja_JP" for Japanese
code page and language file. Also improved -langcp
option for SBCS code pages, and Windows installer
will additionally set keyboard layouts for the
selected languages. (Wengier)Changed menu option "Restart DOSBox-X with language
file..." to "Load language file..." for loading
language files without rebooting DOSBox-X, unless
a guest system is currently running. (Wengier)Imported the more recent MBR code from FreeDOS to
avoid the "boot menu" as in older code. (Wengier)When changing TTF font, DOSBox-X will try to show
the number of missing characters in the new TTF
font (if any). (Wengier)Fixed color becoming darker after changing TTF font
multiples times in TTF output. (Wengier)Fixed display of individual/total file sizes with
DIR command when they are very large. (Wengier)Fixed non-US code page conversions for mounted FAT
drives. (Wengier)Fixed incorrect message displays in Configuration
Tool and Mapper Editor when booting into guest
systems with language files. (Wengier)Fixed possible "Path not found" bug when switching
to code page 950 from another code page. (Wengier)Fixed creating directories may not work properly
for overlay drives on Windows systems. (Wengier)Fixed -set and -get options of CONFIG command when
there are spaces in property names, without having
to prepend the section names. For example, command
CONFIG -get "synchronize time" is supported just
as CONFIG -get "dosbox synchronize time". Similar
for -SET option when launching DOSBox-X. (Wengier)
--0.84.1--
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).
--0.84.0--
CMOS century register now aliased to register
32h and 37h to appease Windows 2000, which assumes
the century is stored there and will complain
about invalid date/time otherwise (joncampbell123).Treat IDE command E7h (FLUSH CACHE) as a no-op
so that the common use of it from Windows 2000
doesn't spam your log file (joncampbell123).BIOS: At post, if DOS kernel was active and the
DOS Shell was still running, initiate a proper
system reset event. Some software, including the
WINNT.EXE install program for Windows NT, like to
restart the system by JMPing to the BIOS POST
entry point. Prior to this fix, doing that from a
DOS program caused instability with mounted images
and the DOS shell due to recursion. (joncampbell123).Fix FPU implementation for aarch64 cores (cimarronm)
Fixed INT 10h and DAC palette mapping to resolve
incorrect colors with Hercules graphics mode when
a game calls INT 10h to set video mode after setting
it up. This resolves the incorrect blue on black
color map for Grand Prix by Accolade (joncampbell123).Add recursive mkdir_p() directory creation so that
overlay filesystem support can correctly create
a subdirectory of any depth, instead of only one
level deep from an existing directory on disk.
(joncampbell123)Add "isapnpport" option to dosbox.conf to control
whether the ISA Plug & Play I/O port is presented
to the guest. Setting is "true", "false", or "auto".
"auto" means to enable if PnP BIOS is enabled.
Previously this port was always present even if
the PnP BIOS was not. Some operating systems,
including Windows NT/2000/XP, will enumerate ISA
Plug & Play hardware by themselves whether or not
the PnP BIOS is present. (joncampbell123)Fix FPU operations using the top of stack on
32-bit VS builds (cimarronm)Add IDE ATAPI command MECHANISM STATUS for
Windows NT 4.0 because that system seems
to want to know if your CD-ROM drive is a
CD changer (joncampbell123)IDE Plug & Play resource descriptor changed to use
2-byte structure for listing IRQ resource instead of
3 bytes. This (for some reason) fixes problems with
the IDE driver in Windows NT 4.0, Windows 2000, and
Windows XP and allows them to boot properly.
(joncampbell123)INT 13h extensions function 48h is supposed to
return physical geometry, not the logical geometry
normally returned by function 08h. This means for
IDE devices, to return the geometry the IDE controller
is using. (joncampbell123)Enhanced the Mapper Editor interface. The Mapper UI
has been greatly improved. (aybe)Add IDE ATAPI command MECHANISM STATUS for Windows
NT 4.0 because that system seems to want to know if
your CD-ROM drive is a CD changer. (joncampbell123)Fix IDE devices to start up with the drive ready
bit set for OSes that expect it when probing IDE
devices. This allows the Linux kernel to see IDE
ATA drives emulated by DOSBox-X. (joncampbell123)Fix IDE ATAPI emulation to correctly handle CD
READ across one or more DRQ block transfers. Use
block size given by guest in consideration of DRQ
block size, which allows ATAPI CD-ROM emulation to
work properly with the Linux kernel. (joncampbell123)Add debug command to show PC-98 color palettes.
Corrected typo. (joncampbell123)Add support for PC-98 monochrome graphics mode.
(joncampbell123)IDE emulation now handles implementation events per
IDE device instead of per IDE controller, which
may resolve IDE controller issues with some guests.
(joncampbell123)Added PC-98 GDC drawing commands, which is
based on Neko Project II source code (nanshiki)Added PC-98 LIO BIOS interface, which is based on
Neko Project II source code (nanshiki)INT 21h AH=31h Terminate And Stay Resident: If the
program called INT 21h to free its own PSP segment,
reassign the block back to the program as allocated
and then resize as expected. Needed for PC-98 game
"Yu No" in which PLAY6.EXE, one of the resident
drivers used for music, does just that. (joncampbell123)Add a hack to enable read access to port 0xa460 on PC-98 which
returns Sound ID to detect the sound board available.
Note that the current hack returns Sound ID of PC-9801-86 board
regardless of the board selected to emulate. (maron2000)Adds WINCHECK to list of programs which should not
return a valid installation check for WinOldAp
(AX=1700h/int2fh) so it doesn't mistakenly believe
Windows is running (cimarronm)Add minimal support for IDE SET FEATURES command EFh.
(joncampbell123)Fix CMPXCHG8B to change only the ZF flag, instead of
changing ZF with other flags in an undefined state
afterwards. This fixes problems with the Windows 2000
kernel booting up and cputype=pentium (though I am
unable to get past the INACCESSIBLE_BOOT_DEVICE error).
(joncampbell123)Updates XADD instruction to set appropriate flags
(cimarronm)Updates to FPU to handle opcode size prefix (66h)
on FSTENV/FLDENV/FSAVE/FRSTOR instructions (cimarronm)Update FLD constant FPU instructions to more
accurately match FPU implementations (cimarronm)Fixed dynamic_dynrec being displayed as dynamic_x86
in menu, and PREFETCH instruction breakage in the
dynamic core. (Jookia)Fixed crash if no dynamic cores available (Jookia)
Fixed TTF mode breaking a guest not running the
DOS kernel. (Jookia)Fix DBCS table initialization on reset and
restart (cimarronm)Fixed some guest systems may not work as expected
in non-TTF outputs. (Wengier)Fixed IME input not working in MinGW builds, and
FluidSynth in MinGW-lowend builds. (Wengier)Fixed resizable OpenGL Voodoo window not working
properly on Windows in previous version. (Wengier)Fixed commands "CHOICE /N /C:123" and "MIXER /GUI"
not working properly in previous version. (Wengier)Integrated commits from mainline (Allofich)Disable leading directory validity check in
DOS_FindDevice.
--0.83.25--
XGA: Do not register XGA I/O ports unless emulating
S3 chipset (such as machine=svga_s3) (joncampbell123)Menu options "Force scaler" and "Print text screen"
can now be assigned to keyboard shortcuts from the
Mapper Editor. (Wengier)Allowed to boot from Toshiba DOS image file for the
Toshiba J-3100 emulation. (nanshiki)Default S3 machine types now support XGA/SXGA VText
in DOS/V, in addition to svga_et4000. (nanshiki)Added "j3100backcolor" and "j300textcolor" config
options (in [dosv] section) to specify background
and text colors in J-3100 mode. (nanshiki)Added config option "aspect_ratio" (in [render]
section) which when set will force the specified
aspect ratio (e.g. 16:9 or 3:2) in the aspect ratio
correction mode (i.e. aspect=true). A menu group
"Aspect ratio" is added to "Video" menu for users
to select or set an aspect ratio, including an
original ratio option. (Wengier)Added config option "show recorded filename" (in
[dosbox] section) which when set to true (default)
will show message boxes with recorded filenames
when making audio or video captures. (Wengier)Added config option "allow quit after warning" (in
[dosbox] section) which when set to false DOSBox-X
will disallow the quit option after displaying a
warning message. (Wengier)Added config option "turbo last second" (in [cpu]
section) which allows to stop the Turbo function
after specified number of seconds. (Wengier)Updated FLAC, MP3, and WAV decoder libraries to the
latest versions (v0.12.38, v0.6.32, and v0.13.6)
respectively; per David Reid). (Wengier)Added support for upper case characters (A-Z) for
AUTOTYPE command. (kcgen)Added /T option for CHOICE command to set a default
choice as in DOS, e.g. CHOICE /T:Y,3 (Wengier)Added Korean language option in Windows installer.
Also, language option page will be shown regardless
of the output option selected. (Wengier)Add stub INT 10h handler at F000:F065 if
machine=vgaonly and using a VGA ROM BIOS image.
The IBM VGA ROM BIOS image points INT 42h at that
fixed address and calls it for any function it does
not understand. (joncampbell123)Set int33 event status bit 8 when passing absolute
mouse coordinates, which is useful in emulation or
virtualization environments where the mouse may be
integrated with the host cursor. (javispedro)Added support for Pentium Pro hinting NOPs and
related multi-byte NOPs. (Jookia)Updated HX DOS Extender to latest version 2.19 for
HX-DOS builds. (Wengier)DOSBox-X returns 1 instead of 0 when E_Exit occurs
or unit tests fail. (Wengier)Fixed built-in IPX and Modem emulation unavailable
in MinGW builds. (Wengier)Fixed -machine command-line option (as listed by
"INTRO USAGE" command) not working. (Wengier)Fixed lockup in classic Jumpman. (maron2000)
Fixed color in some modes under x86-64 macOS SDL2
builds. (myon98)Fixed extra INT 10h call during BIOS screen. The
extra call caused crashes when combined with a ROM
image of the stock IBM VGA BIOS. (joncampbell123)Fixed fscale FPU operation and updated FPU status
word. Also fixed FPU stack value log messages on
x86-based builds. (cimarronm)Fixed bug that OpenGL Voodoo window may not appear
correctly if the DOSBox-X window was previously in
full-screen mode in some builds. DOSBox-X will now
ensure a switch to window mode (or maximized window
mode) in this case. Also fixed some menu options
including rebooting DOSBox-X while Voodoo emulation
is currently active. (Wengier)Fixed crash when switching to dynamic_rec core from
menu when dynamic_x86 is also available. Also fixed
the dynamic_rec core may not be displayed correctly
in the menu when a language file is used. (Wengier)Fixed Windows resource information. (Wengier)
Fixed a buffer overflow when launching a program.
(Jookia)Fixed bug where DOS IOCTL would call device control
channel on devices which did not advertise support
for IOCTL. (cimarronm)Clean up of DOS device and attribute flag usage
(cimarronm)Integrated commits from mainline (Allofich)Use real pointer with font data for reading
characters. Also ignore page number for modes with
only one page.
--0.83.24--
PC-98: Search for FONT.ROM in resources directory
in addition to the working directory. (bsdf)Add S3 Vision964 and Vision968, based on existing
support for the Vision864/868 chips (rderooy).APM BIOS: When the guest calls the APM BIOS to go
into suspend or standby mode, emulate a suspended
or standby mode. Spacebar resumes the guest machine.
Blank the display (if VGA/SVGA machine type) upon
suspend/standby and unblank upon leaving it.
(joncampbell123)APM BIOS: Add dosbox-x.conf option to control
whether the power button triggers a suspend or
standby event. (joncampbell123)APM BIOS: Add power button mapper event, tie
power button to APM BIOS, return power button as
APM suspend event, add code to APM BIOS to handle
suspend and resume events. Windows 98 no longer
complains about the inability to suspend or go to
standby. (joncampbell123)APM BIOS: Limit debug logging of APM BIOS function
AH=05h (CPU IDLE) because Windows 98 likes to call
that function way too often. Once a millisecond, in
fact! The log spam makes it difficult to see
anything important scroll by while debugging.
(joncampbell123).Revise S3 Trio64 XGA line drawing code to
add comments, and obey the "skip last pixel" bit
so that the Windows drivers can better draw polygon
line segments. This fixes broken XOR polylines in
Windows 3.1 and Microsoft Word 2.0. (joncampbell123)Add S3 ViRGE accelerated XGA line drawing function.
Windows 3.1 through Windows 98 can now draw lines
with hardware acceleration. (joncampbell123)Merge code to help preserve long filename when
older program writes/overwrites the 8.3 filename.Change "fpu" config setting to an enumeration
that still accepts true and false, but now also
accepts auto, 287, and 387. It is now possible to
specify fpu=287 and cputype=386 to emulate a 386
paired with a 287 chip as is said to be how early
386 Compaq systems were wired, for example.
(joncampbell123)3Dfx Voodoo window is now resizable when using OpenGL
mode, in addition to software mode. (kekko & Wengier)Menu options "CJK: Switch between DBCS/SBCS modes",
CJK: Auto-detect box-drawing characters", and "Reset
color scheme" (in "Video" -> "TTF options") are now
assignable in Mapper Editor. (Wengier)The "colors" config setting now allows a leading
"+" character to stay the specified color scheme when
switching from another output. (Wengier)SETCOLOR command allows a syntax like "SETCOLOR 1 +"
to return the specified color number to the preset
value (as specified by "colors" setting). (Wengier)When using TTF output, DOSBox-X will dim the topmost
line when the window is inactive in full-screen or
menuless mode as in vDosPlus. (emendelson)IMGMOUNT command now accepts wildcards, such as
"IMGMOUNT A disk*.img" to mount image files matching
the given pattern. (Wengier)Added CuteMouse wheel mouse extension so that DOS
programs such as DOS Navigator 2 can make use of it.
It is enabled when mouse wheel movement conversion is
currently disabled. (FeralChild & Wengier)Implemented basic support for VMware mouse protocol
so that when used together with e.g. the VMware mouse
driver for Windows 3.x, the mouse will be seamlessly
integrated with the host system, and can enter/exit
the DOSBox-X window without having to capture/release
the mouse. Config option "vmware" is added (in [dos]
section) which allows to disable VMware mouse guest
integration. (FeralChild, Wengier, joncampbell123)When country number is not specified and cannot be
obtained from system, DOSBox-X will try to map the
keyboard layout to country number. The country list
is also extended. (Wengier & FeralChild)Added "-nolog" command-line option to disable logging
output completely, and "Disable logging output" menu
option in "Debug" menu to toggle this. (Wengier)Updated EGA?.CPX and KEYBOARD.SYS/KEYBRD?.SYS to the
latest version from FreeDOS. The CPX files now appear
in CPI directory of Z drive, which can be replaced by
files provided by the user. (FeralChild & Wengier)Fix lockup when printing in dBase IV. (Wengier)
Fix crash/restart when running Wing Commander with
EMS memory enabled. (grapeli)Fix possible buffer overflow issue that may happen
in certain conditions. (maron2000)Fix NewWadTool 1.3 unable to play music by ensuring
that periodic timer interrupt is triggered on every
cmos_timerevent. (cimarronm)Fix handling of some DOS file I/O device drivers that
expect a pre-filled input-buffer on READ function and
also do not like to be called for every single byte
in that buffer may not work correctly. (leecher1337)Fix FPU emulation to use 8087 FENI/FDISI behavior
when cputype=8086 or cputype=80186. (joncampbell123)Fix FPU emulation to correctly emulate 80287 -/+inf
compare behavior even if compiled for x86 targets
where C_FPU_X86 uses the host FPU. (joncampbell123)Fix audio speech stuttering issue in SpaceQuest 4
v1.3 using Sound Blaster. (grapeli & rderooy)Fix issue with Lemmings palette swapping not working
properly. (maron20000 & grapeli)Updated MT32emu to version 2.6.1. (maron20000)
Updated DOSMID to version 0.9.6. (Wengier)
Integrated commits from mainline (Allofich)Indicate in BIOS memory when keyboard ACK received.
Fixes Soko-ban Revenge.
Fix execution of small COM programs on PCjr machine
type.
--0.83.23--
Fixed XGA accelerated rendering for ViRGE emulation
and 24 bits/pixel display modes. Since Windows drivers
insist on 24bpp, this is necessary for
"Truecolor (24-bit)" to display and render correctly.dosbox.conf option "vesa vbe 1.2 modes are 32bpp" is
now "true" "false" or "auto", where "auto" determines
this setting based on which S3 chipset is being
emulated. It seems the Windows drivers for ViRGE
chipsets require 24bpp for truecolor modes, in fact,
they do not even offer 32bpp as an option. Since
the Windows 3.1/95/98 drivers use VESA BIOS calls to
set video modes, this implies that the VESA BIOS on
ViRGE cards are also making the base modes 24bpp rather
than 32bpp. Note that the Windows drivers for older S3
chipsets are perfectly happy to use 32bpp unless you
select "16.7 million colors (1 Meg)" in Windows 3.1,
which is the only option in those drivers to offer
24bpp. To avoid grief with DOSBox-X users, "auto"
is the default setting.Added basic S3 ViRGE XGA acceleration. It's enough for
90% of the GDI functions in Windows 3.1 so far.Fixed S3 rectangle XGA accelerated pattern blit, when
using display memory as the pattern mask source, to
follow S3 Trio32/Trio64 documentation, instead of the
DOSBox SVN educated guess, to resolve some edge cases
where the wrong color is chosen to draw filled rectangles
in Windows 3.1. This fixes the "basement" in Microsoft
Creative Writer so that clicking around no longer leaves
white boxes on the screen.Extend 256-color foreground/background color behavior
from S3 86c928 to Vision864 and Vision868 as Windows
95 behavior suggests they handle the hardware cursor
the same way in 256-color mode.Extend "divide cursor X position by bytes per pixel"
behavior from S3 86c928 to Vision864 and Vision868
emulation as well, based on Windows 3.1 video driver
behavior.Gravis Ultrasound: Most I/O registers except port 3x4
are intended for 8-bit I/O. If 16-bit I/O occurs to
such registers, handle as two 8-bit I/O cycles. I
found something in the Demoscene (1997 demo "Atlantis,
Deep Like A Sea") that uses a 16-bit I/O write to write
current channel and register select in one write.
Prior to this fix, there was no music other than quiet
popping noises in DOSBox-X.Sound Blaster: Fixed DSP command 0x48 (Set DSP block
transfer size) to accept block size as BYTES as
standardized by Creative and convert to SAMPLES
internally. This fixes stuttering voices in Freddy
Pharkas when sbtype=sb16. (joncampbell123)Avoid crashes due to assertion failure when media
keys are pressed (maron2000)Fix CD audio playback failure (cue + mp3) when
trying to play from pregap sectors. (maron2000)Change default value of mt32.rate to 48kHz to match
default value of mt32.analog option. (maron2000)Fix a buffer overflow issue in dos.cpp (maron2000)-
--0.83.22--
Added Pentium 3 Processor Serial Number emulation.
Serial number can be set from dosbox-x.conf or not
set, in which case it will act as if disabled by the
BIOS. (joncampbell123).Added Pentium III cputype, added SSE register set,
added SSE instructions to debugger disassembler,
added some initial SSE instructions. (joncampbell123)Added some MSRs expected by Linux, Windows, and
tools like CPU-Z to make them happy. (joncampbell123)Added FXSAVE/FXRSTOR which makes Linux happy with
Pentium III emulation. (joncampbell123)Allow WRMSR to set time stamp counter, as it is known
though undocumented a standard since the Pentium
(joncampbell123).Added debugger command to show global and per-voice
status of the Gravis Ultrasound emulation. May come
in handy for programmers who wish to write their own
GUS routines, and for Trixter who brought up the
subject of determining whether a program plays music
with the GUS or treats it like a dumb sound card.
(joncampbell123).Added debugger command to show SSE register file, and
to set SSE register contents. (joncampbell123)Added debugger command to show MMX register file, and
to set MMX register contents. (joncampbell123)Added support for expressions within parenthesis in
debugger expression handling. (joncampbell123)Added & (AND), ^ (XOR), and | (OR) operators, and
<< and >> bit shift operators to debugger expression
handling. (joncampbell123)Added multiply (*) and divide (/) operators to debugger
expression handling. Order of operations applies, so
given mixed addition and multiplication, the multiply
is done first then the result is added. Also added
support for the modulo (%) operator to the debugger
expression handling. (joncampbell123)Revised debugger expression handling to correctly
parse arithmetic operators with order of operations
in mind. Prior to this fix, consecutive subtraction
would cause seemingly illogical results, for example
"10-1-1-1" would yield "9" instead of "7" because
subtraction was handled in the wrong order. This fix
also makes mixed addition and subtraction possible.
NOTICE: Remember that all numbers going in and
coming out of the expression handler are hexadecimal,
NOT decimal! (joncampbell123)Fixed simple expression handling in the debugger.
Revised hexadecimal vs register parsing so that
hexadecimal numbers that happen to start with
the name of certain CPU flag registers does not
cause confusing results. Prior to this fix,
hexadecimal numbers like "dfe" or "af0" were
impossible to enter without leading zeros or
quotes because the parser would confuse the
first digits with the DF and AF bits of the FLAGS
register. (joncampbell123)Added menu options "AMD Athlon 600MHz" and "Pentium
III 866MHz EB" within the group "Emulate CPU speed"
(under "CPU") for CPU speeds to emulate. (Wengier)Added support for archive, hidden, system attributes
on mounted local and overlay drives for non-Windows
platforms by using special file(s). (Wengier)Added config option "special operation file prefix"
(in [dos] section) to speciay an alterantive file
prefix for DOSBox-X's special operations on mounted
local and overlay drives. (Wengier)Added code page 3021 for the MIK character set used
by the Bulgarian language (as in FreeDOS). (Wengier)Added language file for the Brazilian Portuguese,
available from Windows installer. (altiereslima)For piping (|), DOSBox-X will now also try C: drive
as a temporary piping path if current directory is
read-only and the environment variable %TEMP% (or
%TMP%) is not set. (Wengier)For clipboard copy, CR+LF will now be used instead
of LF on Windows for better compatibility. (Wengier)Disk images are automatically mounted as read-only
(instead of failing) now if the image files are
read-only and the users do not explicitly specify
read-only mode for the disk images. (Wengier)The default value of config option "autofixwarning"
(in [dos] section) is now "false", and it is now
changeable via CONFIG command. (Wengier)The default output for Linux SDL1 builds is changed
from opengl to surface, unlike Linux SDL2 builds
whose default output remains opengl. (Wengier)Native Windows menus is supported in Windows SDL2
builds just like Windows SDL1 builds. It is possible
to force SDL-drawn menus for both Windows SDL1 and
SDL2 builds at compile time. (Wengier)Setting "windowposition" to "-" in the configuration
will leave DOSBox-X window position as is instead of
a specific position or being centered. (Wengier)For printing, the SarasaGothicFixed TTF font will
also be searched for DBCS code pages. (Wengier)Added config option "showdbcsnodosv" (in the [dosv]
section) which when set to true enables rendering of
Chinese/Japanese/Korean characters for DBCS code
pages in non-DOS/V, non-PC98, and non-TTF mode.
Video capturing started from TTF output will enable
DBCS characters when possible. (Wengier)Changing DBCS code pages is supported for standard
modes (i.e. non-DOS/V, non-PC98 and non-TTF modes)
using CHCP command. (Wengier)Fixed issues with certain DBCS characters for the
DOS/V system. (Wengier)Fixed slow blinking text in TTF output. (Wengier)
Fixed copying box drawing characters to clipboard
not working in non-TTF JEGA mode. (Wengier)Fixed background for the Configuration Tool when
the TTF output is active. (Wengier)Fixed DBCS characters not showing up when capturing
screenshots in TTF CJK mode, or they do not show up
properly in the Configuration Tool when "autodbcs"
is set to "false" in the configuration. (Wengier)Fixed media keys presses by ignoring these keys in
Windows SDL1 builds. (maron2000)Fixed IOCTL & ASPI interfaces for mounting physical
CD drives on the Windows platform. (Wengier)Fixed the issue of loading scalers in the previous
version. A message box will only show up if you
append "prompt" to the scaler option. (Wengier)
--0.83.21--
Improved clipboard copying & pasting for different
code pages including box-drawing characters in DBCS
code pages. Also, for the J-3100 mode, the selected
text will now be highlighted when you try to select
text for copying. (Wengier)Improved IME support for Chinese/Japanese/Korean
languages on Windows builds. (Wengier)Pausing the emulation will automatically release
the mouse and prevent mouse capture. (Wengier)For Configuration Tool, a "..." button is added to
properties which have limited numbers of values so
that when clicking their possible values will be
shown in a new dialog and can be selected directly.
Also, more settings will be applied immediately when
modified from the Configuration Tool. (Wengier)For Windows SDL1 builds, DOSBox-X will now try to
prevent the Windows menus from separating into more
than one lines due to small window width. (Wengier)If a scaler as specified in the config may not work
as expected and if not forced, DOSBox-X will show a
a message box asking whether to load it. (Wengier)Config option "pixelshader" now allows a shader file
name without the .fx extension, or a shader file in
the current directory. (Wengier)Added support for ENET reliable UDP as an option for
modem and null-modem emulation. You can enable it
with "sock:1" option for modems/null-modems that are
connected with serial ports (COM1-COM9), such as
"serial1=modem listenport:5000 sock:1" for COM1 to
listen to port 5000 with reliable ENET UDP instead
of TCP connection. The feature is ported from DOSBox
Staging. (sduensin, GranMinigun, kcgen, Wengier)Added new command-line option "-o" for providing
command-line option(s) if programs(s) are specified
to start when you launch DOSBox-X. An example:
dosbox-x program.exe -o "opt1 opt2". (Wengier)Added special properties to CONFIG command including
"cd", "date", "errorlevel", "random", "time", and
"lastmount" so that commands like "CONFIG -GET cd"
and "CONFIG -GET errorlevel" will get current DOS
directory and ERRORLEVEL value. The returned value
will also be saved to %CONFIG% variable. (Wengier)Added "Enter Debugger Command" button to "DOSBox-X
logging output" and "Code overview" windows (from
"Debug" menu") for users to enter some debugger
command(s) and see the result. (Wengier)Added debugger commands DATE and TIME to view or
change DOSBox-X's internal date and time, using the
same date and time formats as the shell DATE and
TIME commands, e.g. "TIME 10:11:12". (Wengier)Added config option "badcommandhandler" (in [dos]
section) which allows to specify a custom error
handler program before error message "Bad command
or file name" shows up in the DOS shell. (Wengier)Added config option "stop turbo on key" (in [cpu]
section) which allows to automatically stop the
Turbo (fast forward) mode when a keyboard input
has been detected. (Wengier)Added config option "fat32setversion" (in [dos]
section) which controls whether DOSBox-X should
automatically set reported DOS version to 7.0/7.10
when it's less than 7.0/7.10 and mounting LBA/FAT32
disk images is requested. It defaults to "ask" so
that DOSBox-X will ask in this case. (Wengier)Added config option "j3100colorscroll" (in [dosv]
section) which defaults to "false" and allows the
J-3100 version of SimCity and VGA version of the
Toshiba Windows 3.1 to run, whereas CGA/EGA version
of the latter requires a "true" setting. (nanshiki)Added config options (in "ethernet, slirp" section)
"tcp_port_forwards" and "tcp_port_forwards" for port
forwarding when using the Slirp backend. (kcgen)Added code pages 737 (Greek) and 775 (Baltic) for
the guest-to-host code page conversions. (Wengier)Added UTF8 and UTF16 commands to convert UTF-8 and
UTF-16 text to view in the current code page. For
example, the command "UTF8 < UTF8TEXT.TXT" will
output converted text UTF8TEXT.TXT in the current
code page, and for UTF16 command there are optional
/BE & /LE options to specify endianness. (Wengier)Added support for DBCS characters located in UNC
network paths of the form \COMPUTER\FOLDER\FILE
on the Windows platform. (Wengier)Added hidden code page 951 for Big5-HKSCS encoding
or Big5 Unicode-At-On (Big5-UAO) encoding. Config
option "uao" is added in [ttf] section so that if
set to "true" code page 951 will use the Big5-UAO
encoding instead of the Big-HKSCS encoding, the
latter being the default for CP951. If ChinaSea is
enabled, ChinaSea characters will be used instead
of original characters in these encodings. (Wengier)Added -nl option for MOUNT command to automatically
find the next available drive letter to mount if
the specified drive is already mounted. This allows
multiple directories to be mounted when DOSBox-X
starts with multiple [name] arguments. (Wengier)Added HISTORY command to display or clear command-
line history for the internal DOS shell. (Wengier)Added ASSOC command to view/change file extension
associations. You can define a command or program
to open a file with a specific file extension, e.g.
"assoc .txt=edit" to open .TXT files with the EDIT
command when entering the .TXT file name from the
DOS command line. Wildcards are allowed, such as
"assoc .*=dir", although in such case exceptions
including "assoc .com=com", "assoc .exe=exe", and
"assoc .bat=bat" are probably desired. (Wengier)Commands CHOICE and COUNTRY are external commands
that appear on the Z drive (Z:/DOS/CHOICE.COM and
Z:/SYSTEM/COUNTRY.COM respectively) now rather than
internal shell commands. COUNTRY command now also
affacts thousand and decimal separators. (Wengier)The internal Virtual Drive Z: can now be rescanned
just like mounted local drives. (Wengier)You can now change most config options in [printer]
section of the configuration for the virtual printer
with CONFIG -set commands. (Wengier)Added missing ChinaSea characters in code page 950
with ChinaSea/Big5-2003 extension enabled. (Wengier)Added support for Bash-shell completion for DOSBox-X
on non-Windows platforms. (rderooy & FeignInt)Improved DBCS support for DOS commands including
ATTRIB, ECHO, TYPE, MORE, and TRUENAME. (Wengier)Improved checking of segment limits. (joncampbell123)
Mac OS X builds from now on will use an in-tree tool
to replace dylib references in all executable files.
XCode install_name_tool is no longer used, it became
a hypocondriac and is sitting in the corner screaming
about link edit data that doesn't fill a __LINKEDIT
segment. It is once again possible to make Mac OS X
ARM releases and to use dylib files from Brew doing
so. (joncampbell123)Fix IPL1 partition choice debug message to actually
show the partition index chosen, not the -partidx
option variable, which if not given by the user, is
-1 and was reported as a very large unsigned
number. (joncampbell123)Fixed command-line options -starttool & -startmapper
not showing messages from specified language file
for Configuration Tool and Mapper Editor. (Wengier)Fixed an issue with RENDER_Reset function while
loading previously saved states. (yetmorecode)Fixed E_Exit "RET from illegal descriptor type 0"
when running DirectX diagnostic program (dxdiag)
from a guest Windows 98 system. (Wengier)Fixed "parallel?=file openwith:xxx" not working if
a file name is not provided. (Wengier)Fixed crash in the following config combination:
output=ttf, machine=pc98, dosvfunc=true. (Wengier)Fixed Disney sound source connecting to parallel
port not working in the previous version. (Wengier)Fixed NET command from Windows for Workgroups 3.11
not working from the internal DOS shell. (Wengier)Fixed MODE command options like "rate" and "delay"
not working if entered in upper cases. (Wengier)Fixed command-line parameters (when launching
DOSBox-X) containing Chinese characters in code page
950 not working in Windows SDL2 builds. (Wengier)Integrated commits from mainline (Allofich)Improve BIOS FDD motor timeout counter, most
notably for earlier PCs. Fixes a Chinese variant
of Space Harrier.
--0.83.20--
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 D: 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.
--0.83.19--
Reorganized the "List network interfaces" and "List
printer devices" dialogs (under the "Help" menu) to
allow the use of scroll bars. (Wengier)Added menu option "Reset TTF color scheme" to reset
the current color scheme for TTF output. (Wengier)Added config option "righttoleft" in [TTF] section
which when set to "true" will cause DOSBox-X to
display text from right to left (instead of left to
right) for the TTF output. It can also be toggled
from the menu ("Video" => "TTF options" => "Display
text from right to left"). (Wengier)Added config option "vga fill active memory" which
when set to "true" will fill inactive video memory
regions with RAM rather than mapping them as empty.
This allows the ETen Chinese DOS system (倚天中文系統)
3.5/2000 (e.g. ET16V and ET24VA) to run. (Wengier)Added config option "middle_unlock" ([sdl] section)
to control whether to unlock the mouse with middle
mouse button click. (Wengier)Added config option "dosvfunc" in [ttf] section to
support DOS/V applications when country information
is set to Japan in TTF output. (nanshiki)Added "VTEXT" command to view or change the current
V-text mode for the DOS/V emulation. Also improved
the font support for 24-pixel font DOS/V mode, such
as supporting HZK24? fonts for Simplified Chinese
DOS/V mode and STDFONT.24 from ETen Chinese system
for Traditional Chinese DOS/V mode. If a Chinese
font is specified via "fontxdbcs", "fontxdbcs14" or
"fontxdbcs24" options, it will be loaded before
system font even with "getsysfont=true". (Wengier)Commands like 80x25, 80x43, ... now use internal
function for better compatibility with the TrueType
font (TTF) output. (Wengier)MODE command without a parameter will now print the
current lines/columns instead of usage. (Wengier)INTVEC debugger command now correctly outputs
addresses when in protected mode. (Allofich)Fix horizontal lines in the debugger window being
rendered as unrelated characters in some code
pages. (Allofich)INT 21 AX=4B03 now sets AX to 0000 like MS-DOS
does. Fixes missing music in "聊齋誌異之幽谷傳奇"
(Liáozhāi zhì yì zhī yōugǔ chuánqí) (Allofich)Use 0x1E to 0x3E for the keyboard buffer of the CGA
machine, which fixes the controls locking up in the
PC booter version of Apple Panic. (Allofich)Allowed machine types "pcjr_composite" and
"pcjr_composite2", similar to "cga_composite" and
"cga_composite2", instead of having to switch the
composite type manually. (Wengier)If machine is PCjr, place PC BIOS reset code at
F000:0043 to match that of the real BIOS.Fix PCjr NMI handler to load DS with segment 0x0040.
Fixes crashes in SHAMUS. (Allofich)Fix PCjr NMI handler to use 8086-level instructions
when loading DS with segment 0x0040 so that it
works properly with cputype=8086.Remove useless check for signed divide quotient
of 0x80/0x8000/etc. (the result was -0x80/0x8000/etc
anyway. Add code to check specifically for these
values after signed divide if cputype=8086 and
trigger divide overflow exception, to match behavior
described for the 8086 processor.Modify exception handling so that for cputype=8086
the return address for an exception handler points
at instruction after fault location.Fix IDIV instruction incorrectly raising a divide
error exception for some borderline values. Fixes
Microsoft Flight Simulator. (Allofich)IBM PC BIOS emulation fixed to place key pieces of
code and entry points at fixed legacy locations
required by some older DOS games, instead of
by dynamic allocation. Added code to BIOS allocation
to reserve F000:E000 or higher for fixed allocation
and force dynamic allocation below that address to
prevent further conflicts should others submit
pull requests for additional fixed locations. This
fixes some games like "聊齋誌異之幽谷傳奇" (Liáozhāi
zhì yì zhī yōugǔ chuánqí) which appear to assume
some of these fixed BIOS addresses and will
crash if they are wrong.Added tool EMSMAGIC.COM as alternative EMS manager,
which can be dynamically installed or uninstalled
with the setting ems=false. (Wengier)If a program is provided in the command-line when
launching DOSBox-X, it will now be executed after
any commands in the [autoexec] section by default.
A command-line option "-prerun" is added to force
the program run before any commands in [autoexec]
section like before. (Wengier)Added auto-detection for single-wide DBCS-encoded
characters for the TTF output (non-PC98). (Wengier)Improved the menu option "Restart DOSBox-X with
language file..." (under "Main") for switching
between DBCS languages. (Wengier)Disabled the Alt+F4 key for closing the DOSBox-X
window in MinGW SDL2 builds. (Wengier)Fixed program or config file containing Unicode
characters passed from command-line when launching
DOSBox-X in Windows SDL2 builds. (Wengier)Fixed issue with DELETE key in PC-98 mode. (Wengier)
Fixed COLORS config option (in [ttf] section) not
working in the previous version. (Wengier)Fixed issues after resetting the virtual machine
when using DBCS language files. (Wengier)Fixed some issues related to system IME support for
CJK (Chinese/Japanese/Korean) languages, for both
Windows SDL1 and SDL2 builds. (nanshiki & Wengier)Fixed bugs in the region memory allocator C++ class
that claimed the entire free block even if the
size wanted was smaller. Added field to remember if
the allocated block was allocated for fixed or
dynamically allocated memory. Cleaned up allocator
code and removed redundancy.Fix SELINFO command not showing output correctly
in the debugger window. (Allofich)Better CMOS register B and C emulation. (Allofich)
Integrated commits from mainline (Allofich)Support for DMF floppy disk images.
Zero-out DX in EXEC overlay command.
Improve stack check for wrap-around cases.
Change to misc_output for SVGA_S3Trio.
--0.83.18--
Cleaned up and more accurately worded CMOS-related
log messages. (Allofich)Fixed the names of virtual files and files on mounted
FAT drive images being logged as "(null)". (Allofich)Fixed packed structure alignment problem with MSVC
(Microsoft C++) builds regarding some disk image
formats. These problems prevented VS2019 builds from
mounting hard disk images. (Allofich)REP STOSB will correctly move one byte if one byte
remains to be processed aka CX == 1, this is needed
for FD98.COM self clearing code to work properly. (Nanshiki)Fixed ANSI ESC [6n escape handling to correctly
report cursor position as 1-based count, not 0-based
count (Nanshiki)PC-98 INT DCh emulation fixed to better represent the
function key shortcuts as real DOS does (Nanshiki)Emulator fix for HX-DOS builds (Wengier)
Integrated commits from mainline (Allofich)Fix the return value of register al from INT10 ah=0x0F
for non EGA/VGA machines.
--0.83.17--
Added FISTTP instruction to experimental cputype (LBi)
Updated debugger to support and decode fisttp, fcomi,
fcomip, fucomi, fucomip (LBi)Added cputype=experimental, which is the same as the
highest CPU emulation level but with additional
instructions from newer processors that do not exist
in the era emulated by DOSBox-X i.e. FISTTP which is
an SSE3 Pentium 4 instruction. (joncampbell123)Added support for 286/386 call gates to JMP
instruction (joncampbell123)Added -bd option to IMGMOUNT to allow mounting
partitions from a hard disk image mounted as an
INT 13h hard disk. is the numeric value the
hard disk image was mounted to. In this way, it
becomes possible to mount any or all partitions
in a hard disk image. WARNING: To safely mount
multiple partitions, use -o partidx= to specify
each partition you mount by index. (joncampbell123)If a drive has no volume label, and user runs
LABEL without specifying one, do not ask whether
or not to delete the volume label because there
is in fact no volume label to delete. (joncampbell123)Added FreeDOS utilities DEFRAG, FORMAT, FDISK,
CHKDSK, and SYS to the built-in Z drive. KERNEL.SYS
is not provided so that the user can provide what
they consider the best version of the FreeDOS kernel
to format with if they use FORMAT /S (joncampbell123)INT 29h routes output through ANSI.SYS driver in
both IBM PC and PC-98 mode, unless ansi.sys=false
is set in the config setting. (joncampbell123)Integrated commits from mainline (Allofich)Fix regression in r4444: Hercules machine type
cursor translation.
Remove redundant signature for ET4K that is now
done in video BIOS.
Implement mouse driver function 0x27, fixes
Alive - Behind the Moon.
Add log message for unusual cases where an
executable unsafely places its initial stack outside
the memory block.
--0.83.16--
Release notes for this version:
https://dosbox-x.com/release-0.83.16.htmlAdded support for extended MS-DOS partitions that
reside in extended partitions. These partitions
can be manually mounted using -o partidx=n where
n is 4 or larger. To assist in partition indexes,
the FAT driver will also print the partition
table to your log file and console when asked to
print debug information. (joncampbell123)Added dosbox-x.conf options to control VESA BIOS
window size and window granularity. This allows
DOS development to test VESA BIOS support against
SVGA cards that use window sizes and/or window
granularity other than 64KB including older SVGA
hardware by Paradise and Cirrus. Note that use
of these options is intended solely for DOS
development and will break S3 drivers that do not
use the VESA BIOS extensions. (joncampbell123)Fixed VESA BIOS S3 modelist to match the VBE 1.2
standard modelist properly, including the addition
of modes 0x119-0x11B. (joncampbell123)Added machine=vesa_oldvbe10 to emulate a VESA
BIOS that follows version 1.0 of the standard.
Specifically, in version 1.0, mode information
like XResolution was OPTIONAL and the VESA BIOS
was allowed not to fill it in since you could
assume the information from the standard video
mode number you applied. This setting emulates
a VESA BIOS that does NOT provide this information,
for testing purposes. Also, machine=vesa_oldvbe is
fixed to never report a LFB, since that was not yet
defined for VBE 1.2. (joncampbell123)Reorganized Windows installation to 2 installers
installing 32-bit and 64-bit DOSBox-X binaries,
for WinXP+ (all) and Vista+ 64-bit respectively,
reducing the sizes of installers significantly
while adding the SarasaGothicFixed TTF font and
a language selection page for choosing existing
language translations (with new language files
for French and Traditional Chinese). (Wengier)DOSBox-X will now search for more paths (such as
user config directory and "languages" subfolder)
for loading language files before failing, and
on Linux and macOS platforms will also search for
additional directories such as /Library/Fonts/
(Linux) or /Library/Fonts/ (macOS) for TrueType
fonts when using the TTF output. (Wengier)DOSBox-X will try to load the SarasaGothicFixed
TTF font when no external TTF font is specified
and a CJK code page detected at start. (Wengier)Added Shift+Tab shortcut in Debugger to switch to
previous window complimenting existing function of
Tab switching to the next window. (cimarronm)LH/LOADHIGH command can now load programs into UMB
memory if it is available. Also added "shellhigh"
config option to decide whether to load builtin
command shell to UMB memory (with default setting
of "auto", it is enabled if reported DOS version
is at least 7, similar to MS-DOS 7+). (cimarronm)HELP command is now an external command appearing
on Z drive rather than an internal shell command
(it is never a DOS internal command). (Wengier)Command-line options -eraseconf and -erasemapper
will now erase loaded config file and mapper file
respectively and continue, whereas -resetconf and
-resetmapper will erase user config file or user
mapper file and exit as before. (Wengier)Added menu group "3dfx" in "Video" menu to toggle
the low-level Voodoo card emulation and high-level
Glide emulation at run-time. (Wengier)Added menu options "Restart DOSBox-X instance" and
"Restart DOSBox-X with language file" in "Main"
menu to reboot the current DOSBox-X instance or
reboot the DOSBox-X instance with the specified
language file automatically. (Wengier)Added menu options "Show code overview" and "Show
logging text" in "Debug" menu to show the overview
of the current code and the output of DOSBox-X's
current logging text in debug builds. (Wengier)Added config option "customcodepage" in the [dos]
section to allow a custom code page, in the format
"customcodepage=nnn,codepagefile" in TrueType font
(TTF) output. CHCP command also supports additional
parameter to specify a code page file. Also added
builtin support for code pages 1250-1258. (Wengier)Added config option "transparency" in [sdl] section
to change the DOSBox-X window transparency (from 0
to 90, low to high transparency) on the Linux/macOS
SDL2 and Windows platforms. (Wengier)Added config option "hidenonpresentable" in [dos]
section to toggle whether to filter out file names
on local drives that are non-representative in
current code page. (Wengier)Added config options "pc-98 try font rom" and
"pc-98 anex86 font" for the PC-98 emulation to
customize the font file to load. If former option
is set to "false", then DOSbox-X will not try to
load FONT.ROM first for PC-98, and latter option
specifies an Anex86-compatible font to load for
PC-98 (before trying FREECG98.BMP). (Wengier)Added support for composite support for PCjr mode
by porting patch from NewRisingSun. (Wengier)Non-Japanese DOS/V systems will now use 19-pixel
VGA fonts rather than 16-pixel VGA fonts for SBCS
characters to look better. (Wengier)You can now also load HZK14/HZK16 font files (for
14- and 16-pixel height) and STDFONT.15 font file
via the "fontxdbcs" and "fontxdbcs14" options for
Simplified Chinese DOS/V (dosv=cn) and Traditional
Chinese DOS/V (dosv=tw) emulations. (Wengier)Improved the DOS/V font acquisition function on
the Linux platform (both SDL1 & SDL2), such as
adding support for 14-pixel height fonts (used by
Configuration Tool & Mapper Editor), and enhancing
support for Chinese characters acquisition (e.g.
WenQuanYi support for the Traditional Chinese). A
config option "getsysfont" is added which when set
to "false" will disable the font acquisition on
Windows and Linux platforms. (Wengier & nanshiki)Implemented support for inputing CJK characters
on Linux SDL1 builds using Linux system IMEs. Code
imported from SDL-IM-plus by nanshiki and confirmed
to work on Linux/X11 platform by him.Added support for inputing Japanese and Korean
characters using system input method (IME) using
the default "windib" video driver in Windows SDL1
build (in addition to "directx" driver). (nanshiki)Fixed CJK characters not showing correctly for the
SDL-drawn menu with OpenGL outputs if "language"
config option is used instead of -lang command-line
option. Thank nanshiki for catching this. (Wengier)Fixed setting "machine=amstrad" cause DOSBox-X to
crash on non-Windows platforms. (cimarronm)Fixed bug related to DBCS vector table. (nanshiki)
Fixed running e.g. built-in DEBUG command from a
drive other than Z may not work. (cimarronm)Fixed the command "FOR %I ..." not working when
executed from the command line. (Wengier)For audio/video recording, DOSBox-X will display
a message box showing the saved file name when the
recording has been completed. (Wengier)Mapper Editor will try to show the actual mod keys
for mod1/mod2/mod3 when clicked. (Wengier)Removed the special DOS function at Int21h/AH=2B/
CX=0x4442h/DX=0x2D58h in favor of the DOSBox-X
Integration Device at I/O ports 28h-2Bh which works
for both integrated DOS and guest OS environments.Enabled MT-32 emulation on ARM-based Mac OS X
builds (joncampbell123)For Configuration Tool, ensure mouse coordinates
are adjusted accordingly with forced scaler. (aybe)Fixed a bug in the Int21/AH=36h (get disk space)
function for returning very large CX values, and
that non-zero values are returned when the free
space is 0 on mounted local drives. (Wengier)Fixed "FILES" always fixed to 200 as reported by
the "DOSINFO" tool, in spite of "files" setting in
[config] section of the config file. (Wengier)Refined the handling of international keyboards and
fixed some issues in version 0.83.15. (maron2000)Fixed initialization order that prevented Bochs
port E9h emulation from working. (joncampbell123)Fixed menu options in system menu not working in
Windows SDL1 builds with "windib" driver. (Wengier)Fixed issue that the mouse cursor not showing in
the game "Power Dolls". (Wengier)Fixed non-English accents may not show correctly
with a SBCS code page in TrueType Font (TTF) output
(introduced in version 0.83.15). (Wengier)Fixed line endings for SBCS language files such as
English and Spanish translations. (Wengier)Fixed resetting the TTF screen when exiting from
Configuration Tool or Mapper Editor when TrueType
font (TTF) output is active. (Wengier)Fixed the option "drive z expand path" not working
if Virtual Drive Z: has been moved to a different
drive letter (e.g. Drive Y:). (Wengier)
--0.83.15--
Additional release notes: https://dosbox-x.com/release-0.83.15.html
Enhanced the network redirector functions for the
Windows platform, so that you can for example list,
open, write, copy, and execute files in UNC network
paths in the form \COMPUTER\FOLDER directly when
network redirector function is enabled and secure
mode is disabled on Windows systems. (Wengier)MOUNT command followed by a drive letter only will
show the current status of the drive, or show that
the drive is not mounted if so. You can make the
message shorter with the -q option, and filter out
non-local drives with "-o local" option. (Wengier)Added NE2000.COM (packet driver for NE2000 network
card) which will appear in Z:\SYSTEM directory when
NE2000 networking feature is enabled. (Wengier)Added /H option to TRUENAME command to return the
full filename on the host system for a specified
file/directory on a mounted local drive. (Wengier)Added option "starttranspath" which if set to true
will automatically translath all paths in command-
line to host system paths when starting programs to
run on the host system. You can also toggle this
function dynamically from the drop-down menu ("DOS"
=> "Host system applications" => "Translate paths
to host system paths". (Wengier)Added option "drive z expand path" which when set
to true (default) will automatically expand %PATH%
environment variable to include the subdirectories
on the Z drive when only the Z:\ path is specified
for compatibility purposes. (Wengier)Added option "turbo" in [cpu] section to enable
Turbo (Fast Forward) mode at start. You can also
change it from the command-line via CONFIG command
(e.g. "config -set turbo=true"). (Wengier)Added value "quiet" to "log console" config option
to only log DOS console outputs. (Wengier)Added menu command to spawn a new instance of
DOSBox-X to Mac OS X builds to work around the
singular app instance model the Finder tends to
prefer, so that users can run multiple instances
if they wish. (joncampbell123)MacOS builds will once again have Fluidsynth,
libslirp, and FFMPEG support from revised .app
building code. For best results support is enabled
at compile time only if Brew is installed along
with Brew builds of those packages. (joncampbell123)MacOS coreaudio MIDI support will continue with
the default soundfont rather than giving up
if it cannot select the custom soundfont specified
in the config file. (joncampbell123)Fixed MacOS bug where coremidi would attempt
MIDI output even if no MIDI destinations are
available, which is apparently the case on
Big Sur. (joncampbell123)The names of advanced config options will now be
listed in the common config reference file (i.e.
dosbox-x.reference.conf) too. Several previously
advanced options are now common options. (Wengier)Command "CONFIG -L" will now list the global config
file for DOSBox-X (if any). (Wengier)There is now a special DOS function for DOSBox-X at
Int21h/AH=2B/CX=0x4442h('DB')/DX=0x2D58h('-X'), as
follows: AL=0h (DOSBox-X installation check), AL=1h
(SDL version check), AL=2h (platform check), AL=3h
(machine type check), and AL=4h (DOSBox-X version
check). For example, you can get installed DOSBox-X
version by calling the function Int21h/AX=2B04h/CX=
0x4442h/DX=0x2D58h in your program - AL and AH will
become 0, and BX will return the DOSBox-X version
number after "0." (e.g. BH=83, BL=15). (Wengier)It is now possible to translate text for graphical
Configuration Tool and Mapper Editor interfaces.
The sizes and/or positions of some buttons in these
interfaces are adjusted accordingly too. (Wengier)Config option "usescancodes=auto" now implies false
for PC-98 mode in SDL1 builds. (Wengier)Config option "pc-98 force ibm keyboard layout" now
defaults to "auto", which implies "true" if a U.S.
keyboard layout is detected and implies "false"
otherwise. Also fixed some input keys for the PC-98
mode. (Wengier & maron2000)For PC-98 mode, if both FONT.ROM and FREECG98.BMP
are not found in the directory, then DOSBox-X will
now use internal Japanese font (also used by DOS/V
and JEGA systems) and the built-in 8x16 SBCS font
pre-generated from FREECG98.BMP. (Wengier)Added DBCS awareness support for special characters
"" and "|" in Chinese/Japanese/Korean code pages
so that they will be treated properly as trailing
bytes of double-byte characters. (Wengier)Improved handling of clipboard copy/paste involving
DBCS characters with TrueType font (TTF) output in
standard mode. The clipboard copy/paste feature is
also supported in DOS/V and JEGA modes. (Wengier)The config option ttf.halfwidthkana (now in [ttf]
section) will enable low ASCII boxing characters
for the TrueType font (TTF) output too. This option
is now enabled by default for JP mode, and printing
these characters is also supported. (Wengier)Added support for showing Chinese/Japanese/Korean
characters in the SDL-drawn menu (in addition to
characters in different SBCS code pages) and the
Configuration Tool interface (so e.g. DOS command
help will show correctly for these languages). You
can change the DBCS font used by Configuration Tool
interface via fontxdbcs14 config option. (Wengier)Added support for inputing DBCS characters using
system input method (IME) in Windows SDL1 build.
Chinese (Simplified and Traditional) IMEs may work
with the default video setting and a Chinese code
page or Chinese DOS/V mode. Japanese & Korean IMEs
may require DirectX mode for the SDL1 library (set
option "videodriver" to "directx" in [sdl] section
for this). There is a new config option "ime" in
[dosbox] section to control it. When set to "auto"
(default), it is enabled for Windows SDL1 builds
only if DOSBox-X is started with a CJK code page or
in PC-98, JEGA or DOS/V mode. (Wengier)Added support for Japanese EGA mode (machine=jega)
by adopting code from DOSVAXJ3. As with DOS/V, you
can optionally set the SBCS and DBCS fonts with
fontxsbcs, fontxdbcs (and fontxsbcs19, fontxdbcs24,
etc) options in [dosv] section of config file, or
the default fonts will be used for them. (Wengier)Added support for DOS/V (Japanese mode) by adopting
code from DOSVAXJ3. Also added support for Chinese
and Korean DOS/V modes. Set option "dosv" to "jp",
"chs" (or "cn"), "cht" (or "tw"), or "ko" in [dosv]
section of the config file to enable DOS/V mode for
different CJK languages. There are now also various
font-related (and V-text screen mode) options added
in [dosv] section for the DOS/V support. For the
Simplified Chinese (code page 936), you can also
enable GBK extension of the standard GB2312 charset
with "gbk" option for Simplified Chinese DOS/V and
the TrueType font (TTF) output. (Wengier)Added support for codepage conversion of file names
in "drivez" folder (for customization of Virtual
Drive Z:) so that they will appear properly on this
drive according to the code page set. (Wengier)Improved support for DBCS (double-byte) characters
on mounted FAT drives with Chinese/Japanese/Korean
codepages (932/936/949/950). (Wengier)The "Unexpected control character" error message
which may appear when executing certain batch files
is now a debug message (belong to the "misc" type)
instead of showing to the DOS console output.Added "videodriver" config option in [sdl] section
to force a video driver (such as windib/windows,
x11, dummy) for the SDL library to use. The video
driver "directx" has been enabled for Windows SDL1
builds (without certain functions). (Wengier)There is a now a [ttf] section in the config file,
and TTF-related config options are moved/renamed
from [render] section to this section (previous
config options "ttf.*" in [render] section become(with "ttf." dropped) in [ttf] section). Windows
installer will also automatically transfer previous
TTF options to the new [ttf] section. (Wengier)When setting to "auto", config option "allow lmsw
to exit protected mode" will be active for Pentium+
CPUs instead of 486+ CPUs. (Wengier)Fixed a bug which may lead to crash when pasting
text via the DOS clipboard API (e.g. the 4DOS CLIP:
device) in non-Windows platforms. (Wengier)Fixed the possible freeze when output was switched
from TrueType font (TTF) output and you tried to
reset the virtual machine. (Wengier)Fixed non-representative filenames on local drives
in current code page causing memory corruption for
e.g. Windows 3.1 Setup on non-Windows platforms.
These entries will no longer appear to DOS guest
system in incompatible code pages. (Wengier)
--0.83.14--
Added support for directories on the Z drive, so
there is no need to put all files/programs on the
root directory of Z drive any more. Only one-level
directories are currently supported. There are now
six directories on the Z drive by default, namely
4DOS, BIN, DEBUG, DOS, SYSTEM, TEXTUTIL. Most files
that previously appeared on the root directory of
Z drive are now categorized into directories, with
addition of some files/programs, such as additional
4DOS files, text utilities in TEXTUTIL directory
and TITLE command to change window title. (Wengier)You can now specify a command shell located on a
mounted local drive via SHELL= command in [config]
section of config file after the drive is properly
mounted via INSTALL= command. (Wengier)Extended START command to Linux and macOS systems.
It's disabled by default just like on Windows host
systems, but can be enabled by setting "startcmd"
to "true" or with the -hostrun command-line option
(replacing -winrun command-line option). (Wengier)CHCP command in the TrueType font (TTF) output now
allows code page 932, 936, 949, and 950 to display
Chinese, Japanese and Korean characters and file
names with DBCS support enabled in non-PC98 mode.
By default DOSBox-X will enable DBCS characters and
auto-detection for box-drawing characters in these
code pages, and these can be disabled by setting
new options "ttf.autodbcs" and "ttf.autoboxdraw" to
"false". There is also option "ttf.halfwidthkana"
to enable half-width Katakana in Japanese non-PC98
machines. KEYB command (and "keyboardlayout" config
option) also accept "jp", "ko", "cn", "tw", "hk",
"zh" as key layout names for code pages. (Wengier)Added support for printing Chinese/Japanese/Korean
DBCS (double-byte) characters when these code pages
are active, which by default ("auto") is enabled for
the TTF output, but can be enable or disabled for
all outputs by setting option "printdbcs" to "true"
or "false" in [printer] section. (Wengier)Added ability to toggle between Shift-JIS (or Kanji)
and graphical modes using Ctrl+F4 key (or ESC )3 and
ESC )0 escape sequences) in the PC-98 mode. There
is now also an indication of graphical mode in the
function row. (nmlgc)Added the "usesystemcursor" config option (in [sdl]
section) which when set to true will use host system
mouse cursor instead of drawing a DOS mouse cursor
when the mouse is not locked. (Wengier)When opening "Save..." or "Save Language File..."
dialogs in the Configuration Tool, the new dialogs
will now automatically be in focus. For the language
file, the name of the current language file will be
filled and modifiable. Pressing ENTER key saves the
config or language file, and pressing ESC key will
close these dialog boxes. (Wengier)Command "CONFIG -wl" will show the name of language
file being written to (if there is a language file
loaded then "CONFIG -wl" alone will write to it),
and command "CONFIG -ln" will show current language
name (if any), or you can use command "CONFIG -ln
<lang_name> -wl <lang_file>" to specify a language
name when writting to a language file. (Wengier)Added special properties to CONFIG command such as
"hostos", "programdir", "workdir", "configdir", and
"userconfigdir" so that commands like "CONFIG -GET
hostos" and "CONFIG -GET workdir" will get the host
system OS and DOSBox-X working directory. (Wengier)If a config option can only be changed at run-time,
"CONFIG -set" will now show such a message. You can
use "CONFIG -setf" to bypass, but the setting won't
take effect in the current session. (Wengier)SETCOLOR command can now change the text-mode color
schemes in outputs rather than the TrueType font
output too (VGA mode only). (Wengier)Added support for new TTF word processor type "FE"
for FastEdit, a new DOS text editor with functions
to view and change text styles. (Wengier)Added "ttf.wpfg" config option in [render] section
which can optionally specify a foreground color
(0-7) for the TTF output, similar to "ttf.wpbg" for
the background color in the TTF output. (Wengier)Added "ttf.printfont" config option in [render]
section which when set to true (default) will force
to use the current TrueType font (set via ttf.font)
for printing too when using TTF output. (Wengier)Added additional options to the "mouse_wheel_key"
config option to allow conversion of mouse wheel
movements into Ctrl+up/down arrow (option 4), Ctrl+
left/right arrows (option 5), Ctrl+PgUp/PgDn keys
(option 6), and Ctrl+W/Z as used by WordStar & EDIT
(option 7) . More menu options are added to "Mouse
wheel movements" menu group as well. (Wengier)Added menu option "Print text screen" (under "DOS")
to print current DOS text screen, if the printer
feature has been enabled. (Wengier)Added menu options "Display TTF blinking cursor",
"CJK: Switch DBCS/SBCS mode", "CJK: Auto-detect
box-drawing characters" and "CJK: Allow half-width
Japanese Katahana" under "Video" => "TTF options"
menu group to toggle the TTF options ttf.blinkc,
ttf.autodbcs, ttf.autoboxdraw and ttf.halfwidthkana
in [render] section of the config file. (Wengier)Support for UTF-8 encoded language files. Specify
a DOS code page with "country" option in [config]
section of the config file. Windows SDL1 menu and
macOS menu are now also compatible with Unicode
language files and characters. Also improved code
page compatibility for text in the SDL drawn menu
and the Configuration Tool. (Wengier)Cleaned up the welcome banner messages and other
messages involving boxdrawing characters for easier
translations into certain languages. (Wengier)Command-line option -silent now implies -nomenu,
SDL_AUDIODRIVER=dummy and will disable all sound-
related config option as well. (Wengier)Command-line option -fastlaunch will now suppress
messages by "automountall=true" option. Also added
value "quiet" to "automountall" config option to
auto-mount all Windows drives quietly. (Wengier)Added default value "auto" to "backend" option in
[ne2000] section of the configuration which will
automatically select slirp backend if available,
then pcap backend if available. (Wengier)Improved handling of Ctrl+C/Ctrl+Break for shell-
based DOS programs. (Wengier)Setting "irq" to "0" in [sblaster] section of the
config file will use the default IRQ number for the
sound card type. Also fixed "irq=-1", "dma=-1" and
"hdma=-1" not working as desired. (Wengier)Option "dpi aware=auto" now defaults to "true" when
full-screen mode is requested when DOSBox-X starts
in Windows SDL1 builds. (Wengier)The return value of AL in Int21/AX=0Eh is no longer
fixed. The game Jurassic Park may run after moving
Z drive to a different letter (e.g. E:). (Wengier)Added "Change current floppy image..." and "Change
current CD image..." menu options to change the
currently active floppy disk image(s) on drive A: &
B: and ISO/CUE image(s) on CD drives respectively.
This makes it possible to change the active floppy
disk and/or CD images while a guest system (e.g.
Windows 9x) is currently running. (Wengier)Added "Restart DOSBox-X with config file..." menu
option to start DOSBox-X with the specified config
file automatically from the menu. (Wengier)Added "Refresh rate..." menu option (under "Video")
to set the video refresh rate. (Wengier)Added "Enable A20 gate" menu option (under "DOS")
to enable or disable the A20 gate. (Wengier)Added "maximize" config option in [sdl] section to
automatically maximize the DOSBox-X window at start
(SDL2 and Windows SDL1 builds only). (Wengier)Added "allow lmsw to exit protected mode" config
option in [cpu] section to control whether the LMSW
instruction allows the guest to clear the PE bit
(leave protected mode).Added "debuggerrun" config option in [log] section
to set the run mode when DOSBox-X Debugger starts.
You can now also switch them from the menu ("Debug"
=> "Debugger option: ..."), including "debugger",
"normal" and "watch", the later two corresponding
to debugger commands "RUN" and "RUNWATCH". Also,
the built-in DEBUGBOX command without a parameter
will start the DOSBox-X debugger. (Wengier)Debugger interface now accepts the '0' key as a
command to single-step in case F11 isn't an option.
If you are using XFCE's Terminal emulator, this is
helpful because Terminal app takes F11 for itself."Debug" menu is now a top-level menu for debugging
builds (for non-debugging builds there is "Logging
console" menu group under "Help"). Also added more
debug options including "Generate NMI interrupt"
and "Hook INT 2Fh calls" under this menu. (Wengier)Fixed /S and /F option (date/time-synchronization
ON/OFF) of DATE command not working. (Wengier)Fixed aspect=true not working properly for some
screen modes such as machine=ega. (Wengier)Fixed the mouse not automatically captured when
DOSBox-X starts with the settings fullscreen=true
and autolock=true. (Wengier)Fixed inputs in the Configuration Tool when the
Configuration Tool is scaled. (Wengier)Fixed keys may not work after loading a saved state
for the game Buck Rogers. (Wengier)Fixed Windows detection for the game "Tex Murphy:
Under a Killing Moon". (Wengier)Fixed serial ports 5-9 may not be usable with real
serial ports (directserial). (vkbaf & Wengier)Fixed issues related to screen dimensions in TTF
output in CGA/EGA modes since 0.83.12. (Wengier)Updated Windows installer to use the latest Inno
Setup 6, allowing features such as administrative
install mode via /ALLUSERS option. (Wengier)Integrated SVN commits (Allofich)r4443: Improve detection of Paradise SVGA in some
installers with additional signature.
r4453: Improve bittest instructions to wrap more
correctly.
r4454: Enable A20 routines in BIOS.
r4456: The numeric keypad can now be used to
navigate the debugger when Num Lock is off.
--0.83.13--
DOSBox-X can now resolve file paths in its config
options that include environment variables on non-
Windows platforms (e.g. ${HOME}..) as well. A new
config option "resolve config path" (in [dosbox]
section) is added to control path resolving in the
config file (e.g. to resolve tildes only by setting
to "tilde", or disable all path resolving). (Wengier)System menu text in Windows builds now match the text
in the drop-down menus to be translatable by language
files and is compatible with Unicode. (Wengier)The error "Access Denied" is returned instead of
"File not found" for files opened exclusively in
another program on mounted local drives. (Wengier)S386C928 hardware cursor fixed to divide X coordinate
by bytes per pixel indicated in the control register
to match apparent Windows 3.1/95 behavior. Cursor
now tracks host properly even in highcolor/truecolor
modes.Added support for the RetroWave OPL3 hardware player.
Set "oplemu=retrowave_opl3" in [sblaster] section of
the config file to use it. Config options including
"retrowave_bus", "retrowave_spi_cs", "retrowave_port"
are added to adjust its settings. (ClassicOldSong)Added support for S386C928 hardware cursor color
selection in 256-color mode, which is different
from later cards.S3 XGA "BYTE SWP" fixed only to byte swap if the
transfer is 16-bit wide. This fixes the dither
pattern drawn by Windows 95/98 when you select
"Shutdown" from the Start menu.IMGMAKE command is now disabled in the secure mode,
similar to commands like IMGMOUNT. (Wengier)Added config options "working directory option" and
"working directory default" in [dosbox] section of
the config file to provide various options for the
users to control DOSBox-X's working directory. For
example, DOSBox-X can use the primary config file
directory or the DOSBox-X program directory as its
working directory. You can view the DOSBox-X'safe
working directory with CONFIG -L command. DOSBox-X
is also able to save the working directory that a
user selects to global config files. (Wengier)DOSBox-X will now also try to read the config file
named dosbox-x.conf in the user config directory
when searching for config files at start.Added new command-line options -promptfolder and
-nopromptfolder which will cause the folder prompt
dialogs to show or not to show at startup.Mac OS X builds will prompt the user to select a
folder at startup if run from the Finder (or from
the root directory). The folder selected will then
become the current working directory of DOSBox-X.
This makes it possible to start DOSBox-X with a
config file of your choice and to control where
the capture, save states and other files go.Fixed Tseng ET4000 640x480 256-color SVGA mode
when using the ET4000.BIN VGA BIOS, or Windows 98.Added segment limit checks in Normal core for
MOVSB/MOVSW/MOVSD and STOSB/STOSW/STOSD, which is
needed for DOSBox-X to work with the Windows 3.1
S3 86C928 display drivers that use segment limit
exceptions to fake a linear framebuffer.Added S3 XGA "byte swap" emulation, needed for
correct menu/titlebar display in Windows 3.1 when
using the S3 86C928 driver.Added YUV (YUY2) overlay to S3 Trio64V+ card
emulation. Tested with XingMPEG under Windows 3.1
and ActiveMovie under Windows 98.Added machine types for 5 different variations of
S3 chipset: Vision864, Vision868, Trio32, Trio64,
and (experimental) Trio64V+, ViRGE, ViRGE/VX, and
S3 86C928.Removed second PCI BAR for S3 MMIO register space.
S3 datasheets do not show a second BAR. Windows 95
is perfectly happy without it.S3 SVGA XGA emulation BlitRect now supports
COLOR_CMP. DirectX-based Windows 95 games are now
able to blit in 256-color mode with a transparent
color key value.ANSI.SYS emulaion now supports the "Device Status
Report" escape when asked through code 6 (report
cursor position)Fixed RAM mapping bugs related to MDA/CGA/Hercules
emulation and the "allow more than 640kb" option,
that failed to map RAM as expected, and because of
that, easily triggered a "corrupt MCB chain" error
message.Worked around the mounting issue for disk or CD
image files with LaunchBox, by allowing a mounting
command-line with single quotes like IMGMOUNT D
'X:\FILES\DOS.IMG' on Windows systems. (Wengier)Restored Pentium MMX emulation code for the dynamic
x86 core to that of version 0.83.11 for better
compatibility with some Windows 9x games. (Wengier)Added "compresssaveparts" config option (in the
[dosbox] section) which when set to false will not
compress the components in saved states. (Wengier)When the current reported DOS version is less than
7.x and the user tries to mount a LBA or FAT32 disk
image, DOSBox-X will now show a message to ask if
the user wants it to set the required DOS version
automatically and proceed. (Wengier)DOSBox-X will now show the folder mounted after
mounting to a drive from the menu. (Wengier)Fixed MOUNT and IMGMOUNT commands unable to mount
directories or image files that contain non-ASCII
characters in the code page on Windows. (Wengier)Fixed CapsLock may not work properly in Windows
SDL1 builds when -fs option is used. (Wengier)Fixed the cycle information on the title bar when
the Turbo mode is enabled. (Wengier)Fixed that some games using the DOS4GW Extender
may not work due to swap file issue. (Wengier)Fixed that the clipboard copy and paste may not
work when the current code page is 808 or 872
and you are using Windows. (Wengier)Fixed the handling of the "Save & Restart" button
in Configuration Tool when using Direct3D output
in Windows SDL2 builds. (Wengier)Fixed incorrect display issue when using TrueType
font (TTF) output with customized screen dimension
when fastbioslogo=true is set. (Wengier)Fixed CD audio not looping for individual tracks
in games like Alien Trilogy. (kcgen)The command "MIXER /LISTMIDI" now lists the ROM
directory/files and sound fonts for MT32, Synth
and FluidSynth MIDI device when active. (Wengier)Debugger "DOS XMS" command will only list handles
that are allocated, or with nonzero address or
nonzero size, to avoid showing irrelevant
information. (joncampbell123)Added LOADFIX -EMS option to allocate/free
EMS (expanded memory). (joncampbell123)LOADFIX -D -XMS will free all XMS blocks
allocated by LOADFIX -XMS. (joncampbell123)LOADFIX -A will not allocate memory unless there
is memory below 64KB to fill. (joncampbell123)INT 15h PS/2 mouse functions now clear pending
PS/2 mouse interrupt as part of the BIOS call.
This should resolve unresponsive mouse issues
with Windows 3.1. (joncampbell123)Add config option "mt32.model" in the [midi]
section to force a MT-32 model to use. (Wengier)Updated the MUNT MT-32 library to the latest
version 2.5.0. (Wengier)Updated FLAC decoder library to the latest version
(0.12.29 by David Reid). (Wengier)Integrated SVN commits (Allofich)r4436, r4437: Rewrite store integer instructions
to check if the result fits.(vogons 78127)
r4447: Attribute Controller port alias on EGA
machine. Fixes EGA display of older Super Pac-Man
release.
--0.83.13beta--
Mac OS X builds will prompt the user to select a
folder at startup if run from the Finder (or from
the root directory). The folder selected will then
become the current working directory of DOSBox-X.
This makes it possible to start DOSBox-X with a
config file of your choice and to control where
the capture, save states and other files go.
Fixed Tseng ET4000 640x480 256-color SVGA mode
when using the ET4000.BIN VGA BIOS, or Windows 98.
Added segment limit checks in Normal core for
MOVSB/MOVSW/MOVSD and STOSB/STOSW/STOSD, which is
needed for DOSBox-X to work with the Windows 3.1
S3 86C928 display drivers that use segment limit
exceptions to fake a linear framebuffer.
Added S3 XGA "byte swap" emulation, needed for
correct menu/titlebar display in Windows 3.1 when
using the S3 86C928 driver.
Added YUV (YUY2) overlay to S3 Trio64V+ card
emulation. Tested with XingMPEG under Windows 3.1
and ActiveMovie under Windows 98.
Added machine types for 5 different variations of
S3 chipset: Vision864, Vision868, Trio32, Trio64,
and (experimental) Trio64V+, ViRGE, ViRGE/VX, and
S3 86C928.
Removed second PCI BAR for S3 MMIO register space.
S3 datasheets do not show a second BAR. Windows 95
is perfectly happy without it.
S3 SVGA XGA emulation BlitRect now supports
COLOR_CMP. DirectX-based Windows 95 games are now
able to blit in 256-color mode with a transparent
color key value.
ANSI.SYS emulaion now supports the "Device Status
Report" escape when asked through code 6 (report
cursor position)
Fixed RAM mapping bugs related to MDA/CGA/Hercules
emulation and the "allow more than 640kb" option,
that failed to map RAM as expected, and because of
that, easily triggered a "corrupt MCB chain" error
message.
Worked around the mounting issue for disk or CD
image files with LaunchBox, by allowing a mounting
command-line with single quotes like IMGMOUNT D
'X:\FILES\DOS.IMG' on Windows systems. (Wengier)
Restored Pentium MMX emulation code for the dynamic
x86 core to that of version 0.83.11 for better
compatibility with some Windows 9x games. (Wengier)
Added "compresssaveparts" config option (in the
[dosbox] section) which when set to false will not
compress the components in saved states. (Wengier)
When the current reported DOS version is less than
7.x and the user tries to mount a LBA or FAT32 disk
image, DOSBox-X will now show a message to ask if
the user wants it to set the required DOS version
automatically and proceed. (Wengier)
DOSBox-X will now show the folder mounted after
mounting to a drive from the menu. (Wengier)
Fixed MOUNT and IMGMOUNT commands unable to mount
directories or image files that contain non-ASCII
characters in the code page on Windows. (Wengier)
Fixed the cycle information on the title bar when
the Turbo mode is enabled. (Wengier)
Fixed that some games using the DOS4GW Extender
may not work due to swap file issue. (Wengier)
Fixed that the clipboard copy and paste may not
work when the current code page is 808 or 872
and you are using Windows. (Wengier)
The command "MIXER /LISTMIDI" now lists the ROM
directory/files and sound fonts for MT32, Synth
and FluidSynth MIDI device when active. (Wengier)
Debugger "DOS XMS" command will only list handles
that are allocated, or with nonzero address or
nonzero size, to avoid showing irrelevant
information. (joncampbell123)
Added LOADFIX -EMS option to allocate/free
EMS (expanded memory). (joncampbell123)
LOADFIX -D -XMS will free all XMS blocks
allocated by LOADFIX -XMS. (joncampbell123)
LOADFIX -A will not allocate memory unless there
is memory below 64KB to fill. (joncampbell123)
INT 15h PS/2 mouse functions now clear pending
PS/2 mouse interrupt as part of the BIOS call.
This should resolve unresponsive mouse issues
with Windows 3.1. (joncampbell123)
Add config option "mt32.model" in the [midi]
section to force a MT-32 model to use. (Wengier)
Updated the MUNT MT-32 library to the latest
version 2.5.0. (Wengier)
Updated FLAC decoder library to the latest version
(0.12.29 by David Reid). (Wengier)
--0.83.12--
You can also see the release notes Release Notes.
Tandy graphics emulation fixed to accept 8 bits
for vertical total and vertical display CRTC
registers, which is needed for the tweaked
graphics mode used by Math Rabbit to display
correctly.
INT 10h will no longer fill in three fields in
the BIOS data area (video CTL, char height, and
video switches) unless the machine type is
EGA or VGA. Those fields do not exist otherwise.
Certain games like Mindscape's "Road Runner" game
require those fields to be zero as part of it's
Tandy detection routine.
PCjr mode will omit the reserved graphics RAM
MCB block, and will subtract 16KB from the top
at the BIOS level, if emulating 128KB system
memory or less.
You can now run PCjr mode with as little as
128KB of RAM. Removed 256KB minimum check from
DOS kernel. Certain games (Mickey's Space
Adventure) require memsizekb=128 and memsize=0
in PCjr mode or else it will not work correctly
due to how the game locates video system memory.Fixed Tandy mode to place video memory at the
top of conventional memory and allow running
Tandy mode with a memsizekb setting as low as
64KB, though 256KB or higher is recommended.
Added Tandy "real memory size" field in the
BIOS data area.
Tandy emulation updated to subtract 16KB from
top of conventional memory, which fixes some
games and follows DOSBox SVN behavior and real
hardware according to others on the Vogons forums.
Fixed bug that limited Tandy mode to 624KB of
conventional memory. 32KB of video RAM is taken
from top of memory, losing half of the 32KB
breaks games that write to the system RAM instead
of B800:0000 segment and causes half the graphics
to not render.
CD-ROM image emulation now supports ISO images
that are 2GB or larger, 32-bit integer size limit
has been lifted.
Increased upper limit of "prebuffer" config option
(in [mixer] section) from 100 to 250. It is still
recommended to set a value less than 100. (Wengier)
Added scrollbar buttons to the Configuration Tool,
so that the scrollbars better resemble the style of
the Windows 3.1 scrollbars.
The help window for the Configuration Tool will now
display possible and default values for the config
options in addition to the descriptions. (Wengier)
Updated the MMX patch code by kekko. (Wengier)
MIXER command now supports the /GUI option to show
a popup window to display the mixer information.
Also improved its /LISTMIDI option which will show
the name of the current MIDI handler and you can
optionally specify a MIDI handler name (win32/alsa)
to show the information for this handler. (Wengier)
Improved the compatibility of AUTOTYPE command with
games like Asterix & Obelix. (Wengier)
The config options ttf.wpbg, ttf.bold, ttf.italic,
ttf.underline, ttf.strikeout, and ttf.char512 can
now be modified dynamically with CONFIG -SET ...
commands, e.g. CONFIG -SET ttf.wpbg=2. (Wengier)
The minimal value for the ttf.ptsize config option
has been decreased from 10 to 9. (Wengier)
Added menu item "Save logging as..." (under "Help"
-> "Debugging options") to save the current logging
content to the specified file. (Wengier)
Added slirp backend support for the NE2000 network
feature (in addition to the existing pcap backend).
There are config sections named [ethernet, slirp]
and [ethernet, pcap] now to set the options for the
slirp and pcap backends respectively. Please refer
to the networking guide in the DOSBox-X Wiki for
more information about the backends. (Jookia)
FAT driver can now support PC-98 HDI images with
partitions that start at any physical sector even
if the start is not a multiple of the ratio of
logical to physical sector size. This allows the
HDI image of Dragon Knight 4 to mount.
Control character 7 (BEEP) is now allowed while
executing batch files without warnings. (Wengier)
With the setting "core=auto" DOSBox-X now updates
the menu in the "CPU core" menu group automatically
between "Normal core" and "Dynamic core" to reflect
the CPU core which is currently in use. (Wengier)
Fixed Windows 95/98 installation failures caused by
FAT driver and DOS API changes in previous version.
Fixed well-intended but erroneous fall through case
in the INT15 handler that prevented 3rd party mouse
drivers from detecting the PS/2 mouse.
Fixed the color issue with the Configuration Tool
in the macOS SDL1 build. (ant_222)
Fixed switching ttf.cols, ttf.lins, and ttf.font
options dynamically in full-screen mode. (Wengier)
Fixed menu options "Increase TTF font size" and
"Decrease TTF font size" (both under "Video" =>
"TTF options") not working (but keyboard shortcuts
and those in the system menu work). (Wengier)
Fixed setting option "ttf.wp=xy3" or "ttf.wp=xy4"
not working (but "ttf.wp=xy" did work). (Wengier)
Fixed preview function in WordStar not working for
TrueType font output in previous version. (Wengier)
Fixed the issue that caused Windows 3.x group file
corruption on hard disk image files. (SnikoLoft)
Integrated SVN commits (Allofich)r4416: Added ability to start and stop avi
recording, and to start keymapper, from config.
r4405: Smarter clearing of the dynrec cache.
--0.83.11--
Added support for the clipboard device (CLIP$) and
DOS clipboard API on non-Windows systems (they were
previously only supported on the Windows platform).
In Linux SDL1 build only read access is supported
whereas both read and write access are supported in
all other builds. Also, selecting and copying text
to the host clipboard using a mouse button or arrow
key is now supported in macOS SDL1 build. (Wengier)
Added "Paste Clipboard" button to the AUTOEXEC.BAT,
CONFIG.SYS and 4DOS.INI sections in Configuration
Tool for pasting clipboard contents. (Wengier)
Windows SDL2 builds now use same clipboard pasting
method as Windows SDL1 builds by default instead of
the BIOS keyboard function. The method is now also
available for Linux and macOS (both SDL1 and SDL2)
builds (although it is disabled by default on these
platforms). A menu option "Use BIOS function for
keyboard pasting" is added to the "Shared clipboard
functions" menu group (under "Main") to use BIOS
function for the clipboard pasting instead of the
keystroke method. Make sure this option is disabled
if pasting clipboad text into Windows 3.x/9x apps
(e.g. Notepad & Write) is desired. This setting can
be changed with "clip_paste_bios" config option in
in [sdl] section of the config file too. (Wengier)
With the config option "startcmd=true" or command-
line option -winrun, Windows applications can now
be launched from within a DOS program or from the
4DOS shell in addition to built-in shell. (Wengier)
Added the "disable graphical splash" config option
in [dosbox] section which when set will cause a
text-mode BIOS splash screen to be always displayed
at startup instead of the graphical one. If the
TrueType font (TTF) output is enabled the text-
mode BIOS screen is used automatically. (Wengier)
Added a simple BIOS Setup Utlity, which will show
a summary of the current system configuration and
allow users to change the date and time. Press Del
key at the BIOS boot screen to enter. (Wengier)
Added config option "showbasic" in [sdl] section
which when set to false will hide DOSBox-X version
number and running speed in the titlebar. (Wengier)
Added experimental option to load a VGA BIOS ROM
image and execute it, instead of our own INT 10h
emulation. If enabled, it will load the specific
ROM file into C000:0000. If not specified, it
will choose based on machine type. VGA BIOS ROM
images (e.g. et4000.bin for Tseng ET4000 emulation)
can be dumped from real hardware or downloaded from
the PCem ROMs collection. It can be set with config
option "vga bios rom image" in [video] section.
Improved handling for file- and record-locking
for non-Windows platforms. Portions of the code
are adopted from DOSEmu. (Wengier)
Improved handling for the setting "ansi.sys=false",
such as fixing the welcome screen messup in this
case and allowing the use of a custom ANSI TSR
(such as NNANSI.COM) instead. (Wengier & stu)
You can now press Ctrl+C or Ctrl+Break to break
from long outputs from commands like TYPE, MORE,
COPY, DIR /S, and ATTRIB /S. (Wengier)
Renamed MEM.COM to MEM.EXE to match DOS. (Wengier)
Rewrote built-in TREE command instead of the one
from FreeDOS to support long filenames. (Wengier)
DELTREE is now an external command appearing on
drive Z: as DELTREE.EXE instead of a builtin shell
command, since it is an external command in a real
DOS system. (Wengier)
Added REPLACE command to replace files, resembling
the MS-DOS counterpart. This command is compiled
with long filename support. (Wengier)
Added PUSHD and POPD commands so that you can store
the current directory and changes to the specified
directory (optionally also the current drive), then
changes the directory/drive back. PUSHD command
without arguments show stored path(s). (Wengier)
Added COLOR command to change current foreground
and background colors. It usage is similar to the
same-named command in the Windows command prompt.
For example, command "COLOR fc" produces light red
on bright white; COLOR without an argument restores
the original color. (Wengier)
Added CHCP command to view the current code page,
or change the current code page for the TrueType
font (TTF) output. Supported code pages include:
437, 808, 850, 852, 853, 855, 857, 858, 860, 861,
862, 863, 864, 865, 866, 869, 872, and 874. You can
now also set the code page for TTF output via the
optional second parameter of the "country" option
in [config] section of the configuration. (Wengier)
Added function to automatically save states in the
specified time interval (in seconds). You can also
specify a save slot or start and end save slots to
be used. For example, "autosave=10 11-20" will set
a 10-second time interval for auto-saving, and the
save slots used will be between 11 and 20. If no
save slot is specified, then the current save slot
will be used for auto-saving. Putting a minus sign
before time interval causes the auto-saving function
to not be activated at start. You can optionally
also specify up to 9 program names for this feature,
e.g. "autosave=10 11-20 EDIT:21-30 EDITOR:35" will
cause program "EDIT" to use save slots 21-30, and
"EDITOR" to use save slot 35, and other programs to
use save slots 11-20. Added a menu option "Auto-save
settings..." to manage the auto-saving feature at
run-time. A menu option "Enable auto-saving state"
is added to the "Save/load options" menu group under
"Capture" to toggle auto-saving when the function is
enabled. Likewise, a menu option "Select last auto-
saved slot" is added to the "Select save slot" menu
group (also under "Capture") to switch to the last
auto-saved slot (if any). (Wengier)
The Configuration Tool windows are now scalable, so
that they will no longer look very small in e.g.
full-screen or High DPI modes. (ant_222)
If the -defaultdir option is the only or the last
command-line option and no parameter is specified,
then directory of the primary config file (if any)
becomes the DOSBox-X default directory. (Wengier)
You can now change the current output dynamically
with CONFIG command, e.g. "CONFIG -set output=ttf"
and "CONFIG -set output=default". (Wengier)
The command "KEYB US" will return the DOS codepage
to 437 if current codepage is different. (Wengier)
The setting "output=default" will enable the OpenGL
output for Linux systems if possible. (Wengier)
Fixed the CGA/MCGA/MDA/Hercules-specfic shortcut
function buttons in Mapper Editor, and the screen
colors after exiting from Mapper Editor when using
these machine types in Direct3D output (SDL1 build).
Also fixed the messages in the welcome banner for
these machine types to inform users the new default
shortcuts (Ctrl(+Shift)+[F7/F8]). (Wengier)
Fixed DOS Int21/AH=0x5a "Create temporary file"
function not generating unique files. (Wengier)
Fixed that the current drive goes back to Z drive
when combined unmounts & mounts are used. (Wengier)
Fixed PC-98 keyboard handling of CTRL+A through
CTRL+Z. CTRL+C now works correctly in PC-98 mode.
Fixed crash of Free Pascal compiler with dynamic
core and setting "use dynamic core with paging on =
auto" introduced in the previous version. (Wengier)
Fixed launching Windows programs when the working
directory has no 8.3 filename entry. (Wengier)
Fixed issues with full-screen switch in some cases
when the TrueType font output is enabled. (Wengier)
Fixed an issue in MinGW builds that no data will be
sent to the OPL3Duo board. (DhrBaksteen)
Fixed screen flickering when hovering over the menu
with Direct3D output in the Windows SDL2 build that
was introduced in the last version. (Wengier)
Fixed mounting disk/CD images with long paths from
the "Drive" menu may not work properly. (Wengier)
Fixed that the "Save" button in Configuration Tool
did not save config file in last version. (Wengier)
Integrated SVN commits (Allofich)r4346: Fix a long-standing crash that occurred
when disconnecting a second joystick after
partially mapping it.
r4344: Add F8 to toggle printable characters on
and off in the debugger.
r4340: Fix behavior when main memory allocation
fails.
r4336: Correct an oversight of r4186 when floppy
disks are mounted.
r4330: some big endian improvements and drive_fat
fixes. (jmarsh)
r4320: Report Q-Channel track number in BCD,
meaning it is not converted to binary by the
CD-ROM device driver. Fixes the CD-Player feature
of DOS Navigator 1.51 when playing past track 15.
r4318: Add LOGC debug command to log cs:ip only.
--0.82.10--
You can also see the Release Notes
The Windows key(s) in Windows and the Command key(s)
in macOS will now be displayed as the "Windows" and
"Command" keys instead of the "super" and the "meta"
keys in SDL1 builds just like SDL2 builds. (Wengier)
Cursor blinking rate for TrueType font (TTF) output
can now be customized with the ttf.blinkc option.
Set an integer between 1 (fastest) and 7 (slowest)
to change TTF cursor blinking rate, or setting it to
0 for no cursor (or false for non-blinking cursor as
in previous versions), with the default value being
6 on PC-98 systems and 4 elsewhere. (Wengier)
Fixed parallel port emulation to allow MDA port 3BCh
to work properly.
Enhanced the printer function on Windows platforms
to allow printer names to be specified in [printer]
section via the "device" option for direct printing
to the selected device. If left empty, then Windows
Print dialog will always be shown, or specifying "-"
will cause it to show only once (unless the user
clicks "Cancel"). Under "Help" menu there is now a
menu option "List Printer Devices" to list printer
devices on Windows, and the parallel port LPT1 now
defaults to the printer on all platforms. (Wengier)
The dynamic_x86 CPU core can now handle page faults
non-recursively, so you can now run the dynamic_x86
core with Windows 9x/ME without crashes, although
this may slightly decrease the performance, and it
may be disabled by setting the config option "use
dynamic core with paging on" in [cpu] section to
"false"; the default value of this option has been
changed to "auto" which will enable/disable itself
based on whether the 386 paging and a guest system
has been enabled. Also fixed incorrect behavior for
handling trap flags in the dynamic core and updated
the MMX code for improved performance. (koolkdev)
Added support for Direct3D output on Windows SDL2
builds just like Windows SDL1 builds to become the
default output in all Windows builds. (Wengier)
DOSBox-X now natively supports the pixel-perfect
scaling! Set the option "output=openglpp" in [sdl]
section of the config file to enable this output.
Alternatively, the output can be selected from the
menu ("Video" => "Output" => "OpenGL perfect") at
run-time. It is recommended to set config options
and "aspect=true" (whenever the emulated display
has an aspect ratio of 4:3) and "doublescan=false"
for openglpp output. Also, with high DPI displays
(e.g. on Windows 7+ with DPI scaling enabled) it
works better with full-screen mode and the setting
"dpi aware=true". It was implemented by ant_222
(patch author) with some code cleanups by Wengier.
Updated the Windows installer to add a page for
new users to select a video system output to use -
the default output (Direct3D), OpenGL with pixel-
perfect scaling (openglpp or "OpenGL perfect") for
improved image quality, and the TrueType font (TTF)
output for text-mode DOS applications. (Wengier)
You can now supply a ZIP/7Z file as a parameter to
DOSBox-X directly so that it will be mounted as C:
drive when DOSBox-X starts. (Wengier)
Added overlay support for mounting PhysFS drives
so that you can specify a write location when you
mounted a ZIP/7Z archive by adopting an old patch.
For example, command "MOUNT C C:\DIR -T OVERLAY"
will specify path C:\DIR(\C_DRIVE) as the write
location after mounting C: drive as a PhysFS drive
with a command like "MOUNT FILES.ZIP". (Wengier)
Added ability to resolve file paths that include
environment variables on Windows or tildes (~) on
other platforms for various options in the config
file, such as language and mapper file paths, MT32
ROM & FluidSynth soundfont paths, [config] section
options as well as file outputs for the printing
and serial/parallel port functions. (Wengier)
Added calculator for DOS (EVAL.EXE), which appears
on Z drive and can calculate both simple (such as
sin(0) and cos(0)) and many advanced mathematical
expressions in either command-line mode and or the
interactive mode. (Wengier)
Added support for standard (VGA/EGA/CGA) and mono
mode dual-screen setup by porting the patch. You
can now start DOSBox-X with the option -display2
followed by a color (white, green, amber) to enable
this feature on debug builds. (Wengier)
You can now translate texts in DOSBox-X's drop-down
menus. The message files as written by the config
tool (CLI or GUI) will contain the menu texts for
translations from the English language. (Wengier)
Added "file access tries" config option (in [dos]
section) so that if a positive integer is provided
(e.g. 1 or 3) DOSBox-X will try to read/write/lock
files on mounted local drives for the specified
number of times before failing on Windows builds.
It is especially useful for networked DOS database
applications that require record locking. (Wengier)
Added "bannercolortheme" config option (in [dosbox]
section) so that users can change the background
color theme of the welcome banner from the default
blue color when DOSBox-X starts. (Wengier)
Added "pcaptimeout" config option (in the [ne2000]
section) to specify a read timeout value for pcap
in milliseconds, or default value (-1 on Windows
or 3000 otherwise) will be used. (Wengier & Jookia)
Added "Save & Restart" button to the Configuration
Tool's "Save" option for saving the config file and
then automatically restarting DOSBox-X with this
saved configuration. Command-line options -wcboot,
-wcdboot and -wcpboot are added to CONFIG command
which resemble -wc, -wcd, and -wcp options but will
reboot DOSBox-X after writing configfile. Command-
line option -bc (-bootconf) is also added to reboot
with specified config file (or the primary loaded
config file if not specified) directly. (Wengier)
The config option ttf.font will now search for TTF
fonts in the directory as specified by the fontpath
option in [printer] section too. (Wengier)
Added special properties to CONFIG command such as
"screenwidth", "screenheight", "windowwidth", and
"windowheight" so that commands like "CONFIG -GET
screenwidth" and "CONFIG -GET screenheight" will
get the current screen width and height. (Wengier)
BOOT command without a parameter will now try to
boot the current drive if possible. (Wengier)
You can now change properties such as "fullscreen",
"glshader" and "windowposition" dynamically with
CONFIG command. For example, command "config -set
fullscreen=true" and "config -set windowposition="
will now switch on the full-screen mode and center
the window position respectively. For TrueType font
output, you can now also change the TTF font, the
number of rows and columns on the TTF screen, and
the word processor for TTF dynamically using CONFIG
command, e.g. "config -set ttf.font=test", "config
-set ttf.lins=30", "config -set ttf.cols=100" and
"config -set ttf.wp=wp". The limits for the options
ttf.cols and ttf.lins are increased too. (Wengier)
Implemented the DOS network redirector functions so
that the host name can be reported to DOS programs,
unless the secure mode is enabled. You may need to
set either the option ipx=true in [ipx] section or
the option ne2000=true in [ne2000] section. Also
added config option "network redirector" to [dos]
section which if set to false disables the network
redirector even with IPX/NE2000 enabled. (Wengier)
Fixed an issue that the DOSBox-X window size may be
incorrect when restoring from a maximized window in
the SDL2 builds. (Wengier)
Fixed that the menu option "Select OpenGL (GLSL)
shader.." not working properly sometimes. (Wengier)
Fixed Ctrl+C not working in GNU ed. (Wengier)
Fixed large ISO images (>2GB) unable to be mounted
using IMGMOUNT command. (Wengier)
Fixed build failure on Gentoo Linux. (fonic)
3dfx games can now work with the Glide passthrough
feature when a guest system (guest DOS or Windows
9x) is currently running. The default setting for
config option "keep private area on boot" in [dos]
section is changed from "false" to "auto". (Wengier)
Improved the speed of the Voodoo hardware emulation
for running games like Tomb Raider 3dfx. (Wengier)
Improved OPL3Duo support, such as adding a buffer
thread to get rid of slowdowns & breakups in audio
playback when using the board. (DhrBaksteen)
Updated the Tiny File Dialog library to the latest
version v3.8.5, which fixes issues such as the
compatibility problem with Windows XP. (Wengier)
Updated FLAC, MP3, and WAV CD-DA decoder libraries
to the latest versions (0.12.28, 0.6.26 and 0.12.18
respectively; per David Reid). (Wengier)
Integrated SVN commits (Allofich & Wengier)r4426: Emulate debug register 6 during trap flag
emulation (and normal int 1). Fixes 544 (jmarsh)
r4401: Improve xchg to handle unwritable memory
better for core_dyn_x86.
r4399: Finish up and add LOOP_NE and LOOP_E for
core_dyn_x86.
r4393: Remove video page check when drawing
internal mouse pointer, as the BIOS current page
is not updated in some cases. Fixes QQP games: Lost
Admiral, Conquered Kingdoms, and Solitaire's
Journey. Also be a bit smarter about enabling
autolock, supporting more cases where the mouse
is used for input without resetting it.
r4392: Improve capturing of Zeliard and fix a
few percussion-related capturing problems as well.
r4310: Improve PMAKE on big endian machines and
fix some bugs. Fixes bug in 16 -> 15 bit color
conversion.
r4309: Copy working directory when mounting an
overlay.
r4307: Refinement of SoundBlaster checks, so no
IRQ is raised when not in autodma mode.