Changelog
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 thismtweakmode 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//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 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 (AranVin...