Yet another release with more working games.
I've spent a while trying to find out how to play the 7 Redbook tracks from the Warcraft: Orcs & Humans cd, as the game only seems to offer MIDI and FM Synth for music. Well, it's just how it is, the music is there but the DOS version doesn't use it.
Still, the game exposed an issue with DPMI memory reporting: uCDD reported zero unlocked pages despite available RAM, causing a false insufficient-memory error, which is now fixed.
I also got the following games working:
Alien Logic: It worked without changes.
Inferno: It had a DPMI resize compatibility issue. uCDD always relocated blocks, while its DOS4GVM runtime retained pointers based on the previous address and crashed. Added in-place growth when adjacent space is free, retaining relocation as a fallback. It also requested unsupported C2h unsigned 8-bit single-cycle playback which I hadn't seen in any game yet; I've now implemented the C0h/C2h family.
Quarantine: It just worked with the previous version.
Quarantine II: Same!
SuperKarts: Seven-byte CD request headers were rejected; added compatibility handling. Its custom IRQ0 handler also stops advancing BIOS ticks, which could disable uCDD's CD-refill fallback after the second PLAY; that fallback now uses the audio clock.
The Horde: This was massive, there were FOUR driver problems.
* its 40h/FFh DSP IRQ probe produced a nominal 1 MHz rate that uCDD's parser rejected
* 16-bit playback through 8-bit DMA1 was incorrectly handled
* low-rate PCM used sample holding, adding unwanted high-frequency images
* repeated retrace hints could postpone refills until the CD queue starved.
Fixed the rate handling, DMA byte/word accounting and IRQ status, added PCM interpolation, and added the urgent refill deadline.
I don't know how to play this game (weird mouse controls), but it seems to work now. Got into a fight with some monsters and they destroyed my village while my character was groggy from spinning around.
Warcraft II: The same DPMI memory-reporting defect as Warcraft I prevented launch. It also supplies a four-byte count for larger, fixed-size MSCDEX control buffers. uCDD's validation rejected those requests, preventing CD music. Known controls now use their required size.
That's it for 0.9.3d which can be downloaded here: https://github.com/vorvek/uCDD/releases/tag/v0.9.3d
I hope I get some extra time this week to continue going down the list of games. Everything pre-1995 should already be working, but 95-97 are the biggest chunk of the list.