DOSBox-X 2024.03.01 Release Notes
Release Date: March 1, 2024
Please report any issues in our issue tracker.
Also, make sure to check out our Wiki guide.
New in This Version
- 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 SVGA 15/16/24/32bpp display modes because of a design where the VGA drawing code 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 tweakmode=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/joncampbell123/dosbox-x/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 (Issue #4162)(Yogi-baer)
- 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
- 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 more
- Fix 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 (AranVink)
- Fix floppy images lock bug (maxpat78)
- Fix type of return value at bool MountFat() (jg1uaa)
- Fix VHD geometry bugs by performing MBR analysis (maxpat78)
- Change maximum number of joystick buttons allowed by the mapper (mattcaron)
- Enable Win9x support on a Pentium3 PC (crazii)
- Add PC98 image extensions in file open dialogs (maron2000)
- Fix input in configuration tool (SDL2) (maron2000)
- Reduce warnings by replacing sOffset (use offsetof) (jg1uaa)
- Fix LFN functions (nanshiki, SmileTheory)
- Fixed a bug in which 2 extra bytes were copied to the buffer (ax=714eh,714fh).
- Fixed wrong value of date/time etc. in file information (ax=714eh,714fh,71a6h).
- Fixed date/time conversion to be correct (ax=71a7h)
- Report correct file size on win32 when file is open (ax=71a6h).
- Fix C++11 uncompliant codes (midi_alsa.h, gamelink.cpp) (maron2000)
- Consider function key display in MORE command (PC-98) (maron2000)
- Add support for J-3100 video mode 75h (nanshiki)
- Reflect drawing status bit of GDC status I/O port (PC-98) (nanshiki)
- Re-enable top line dimming when focus is lost in fullscreen (TTF mode) (maron2000)
- Fix PC98 mouse counter value range to unsigned value (0-255) (nanshiki)
- Added function for int DCh cl=10h ah=0Ah to 0Eh (nanshiki)
- Added escape sequences (ESC[0J ESC[1J ESC[0K ESC[1K ESC[2K ESC[nL) (nanshiki)
- Fixed behavior of Kanji character output at the right edge of screen (nanshiki)
- Fixed Media ID was being written to an incorrect location in DPB (nanshiki)
- Refined version info (maron2000)
- Added PC-98 NEC mouse functions in INT33h (nanshiki)
- Bump Nuked-OPL3 code to commit 730f8c2 (13 Nov. 2023) (maron2000)
- Enabled OPL pass-through code (oplmode=hardware)(dbjh)
- Fixed crash on startup due to SDLnet library linked externally (macOS) (maron2000)
- Changed PC-98 floppy boot behavior when Drive 2 is mounted before Drive 1(maron2000)
- Added Human68k ver.1.0&2.0 floppy disk support (maron2000)
- Fixed attribute copy behavior of FreeDOS XCOPY.exe to match genuine DOS (maron2000)
- Added Russian translation (Lartenik)
- Fixed COPY/XCOPY command fails to recognize 2GB+ free disk space (maron2000)
- Enable FONTX2 files in PC-98 mode (nanshiki)
- Fix codepage switching when loading lang files (maron2000)
- Add missing quotation marks in vcxproj (bredbored)
- Fixed BPB detection of PC-98 floppies (maron2000)
- Changed sequence to boot with drive numbers when booting from image (maron2000)
- Added force JIS (JP106) keyboard layout option in PC-98 mode (maron2000)
- PC-98: Enable mounting partitions with non-genuine IPL entry names (maron2000)
- Added support for XDF disk format (maron2000)
- Added ESFM emulation (ESFMu v1.2 core) (Kagamiin)
- Added support for ESS “ESFM” sound synthesis (oplemu=esfmu, oplmode=esfm) (Kagamiin)
- Added experimental/WIP support for the ESS ES1688 sblaster type (sbtype=ess1688) (Kagamiin)
- Delete obsolete information regarding “INTRO SPECIAL” option (maron2000)