jmarsh wrote on 2024-07-26, 04:00:
Shreddoc wrote on 2024-07-26, 02:18:
Both games appear to have a, dare-I-say-it, slightly cobbled together GUS implementation. As was sometimes the style, at the time. Having, for GUS in particular, a spaghetti of batch files to evoke custom use of (certain versions and functions of) Gravis's Ultrasound software.
This is entirely speculation on my part : but I suspect that might be the root of those games' issue with the PicoGUS's GUS mode.
Games that relied on ultramid were definitely the majority - however most of them had a static library version built into their sound drivers. Some of them would still show telltale signs of loading patches into memory on startup. It was a lot simpler than writing GUS output from scratch; you didn't have to know a thing about the hardware since ultramid provides API functions (via a software interrupt) for both music playback (by passing MIDI messages) and digital audio.
So if a game is using a batch file to load ultramid before it runs, it's really not any different from the big name games of the time e.g. Descent, Duke3d, later versions of Doom (after they dropped their own GUS implementation), etc.
Focusing on X-COM :
It does load MIDI patches, and that in itself is no issue, as can be verified separately at the command line. I can't pinpoint exactly what the game is doing in order to cause its PicoGUS crash. It happens within the first few notes of intro music played. It is perhaps, or not, notable that the game includes both its own ULTRASND directory, as well as a sound subsystem in the form of the ./SOUND/SNDSTART.EXE and SNDEND.EXE (along with e.g. MUSIC.COM and VECTOR.COM) which are called during the games run process. Perhaps some elements of those are doing something less-common which the PicoGUS does not like.
The games README.TXT (for v1.4, October 1996) also implies that the Ultrasound support has undergone a late addition or revision, and that certain version-y uncertainties warranted a vague mention : "* Gravis UltraSound cards should now play new music and sound effects. Although it is not absolutely necessary, we strongly recommend that you obtain the latest drivers from Gravis for your UltraSound card.", though whether that has bearing on the PicoGUS crash is a <shrug>.
Supporter of PicoGUS, PicoMEM, mt32-pi, WavetablePi, Throttle Blaster, Voltage Blaster, GBS-Control, GP2040-CE, RetroNAS.