polpo / picogus

Emulation of ISA sound cards on Raspberry Pi Pico (GUS, Adlib, MPU-401, Tandy, CMS)
GNU General Public License v2.0
518 stars 34 forks source link

GUS Emulation - Sound Effects in some games, but no Music. Other games crash #23

Open mikboy018 opened 7 months ago

mikboy018 commented 7 months ago

So I ordered a couple of the 2.0 models, and put one in a 486, with another in a Pentium 2. They're both giving me similar interesting results, in that I can't get any GUS music to work. I'm pretty sure the hardware is fine, as MPU-401 worked great for Day of the Tentacle, X-Com, and Loom on my old 486. The ultimate talkie edition of monkey island 1 had some problematic music, but since that isn't really official, I don't think its as big a deal as GUS Music for me.

For GUS, I've tried Rise of the Triad (Shareware and Dark War), Raptor, Tyrian, and Jazz Jackrabbit (+ both Holiday Hare 94 and 95).

For Rise of the Triad:

For Raptor (full and shareware):

For Tyrian:

For Jazz Jackrabbit (HH94/HH95/CD):

I don't know the chipset of the 486 off-hand, but the Pentium 2 is a a socket 1 / ASUS P2L97 (intel 440lx chipset).

Anything else I should try/you'd like to know? I'm pretty new to GUS, so I'm not sure if I missed a step. I did run on both with the latest picogus release and the ultrasnd drivers/patches from the wiki.

I know this was tested heavily with demos, not sure where to go about getting one, but I'd be happy to try/post results. I can stream from either system with a little work, so video/audio capture is possible, too.

mikboy018 commented 7 months ago

Of note, this was the first time my 486 ran Day of the Tentacle without softMPU for my MT-32... I used to get memory errors, but that is no longer an issue!

deepthaw commented 7 months ago

What version of Tyrian? I've been able to run Tyrian 2000 pretty well perfectly using ULTRAMID and the Gravis MIDI option in game.

mikboy018 commented 7 months ago

Shareware (from an old demo disk I had as a kid) and Tyrian 2000 (from GoG)

polpo commented 7 months ago

I've used Tyrian 2000 from GoG for most of my testing, so that's a known good setup.

@mikboy018 if your PSRAM is bad/marginal, that would affect GUS playback but none of the other modes. Could you run GUSDRAM to test the emulated GUS ram? http://cd.textfiles.com/pdos9606/SOUND/GRAVIS/MISC/GUSDRAM.ZIP

I test all PicoGUSes before I send them out using CapaMOD - can you download this (https://polpo.org/picogus/cmodtest.zip) and run cmod strshine.s3m and let me know how it plays?

mikboy018 commented 7 months ago

Thanks!

Ran both cmod & gusdram on the Pentium 2, as well as the 486.

In both cases, cmod froze, and gusdram reported no issues (photos attached).

pentium2 486

mikboy018 commented 7 months ago

Ok update for the 486: working great (if no other cards present).

I pulled the Aztech Sound Galaxy Washington out, and audio just worked in Jazz Jackrabbit. It's jumper was set to 220, and my ultrasnd variable was set to 240,3,3,5,5 as to not conflict. On this system, BLASTER was set to A220 I7 D1.

IMG_20231128_202929

Here is a shot of the autoexec.bat, in case that is useful.

IMG_20231128_204935

The Pentium 2 also has a 2nd soundcard, a Creative SB32... think it also conflicts?

polpo commented 7 months ago

Your autoexec.bat looks OK to me - doesn’t look like anything should conflict. This is feeling like a DMA issue to me given the behavior you’ve described so far. Thanks for all of the detail you’ve given, it’s really helpful!

I have a board with a 440LX chipset and an AWE64 which should be pretty similar to your SB32… I’ll try to see if I can replicate the issue with that and the PicoGUS in the same system.

mikboy018 commented 7 months ago

Nice! Looking forward to seeing what you find on your end.

I did identify my 486 motherboard... link here (well, it's 'unidentified' here, but at least it has some detail)

polpo commented 7 months ago

Well, I pulled my 440LX chipset motherboard (which I had never tested before) out of storage and all of the caps on the board are bad and it won't boot. I've ordered new capacitors so I can hopefully get that board working. In the meantime I tested the PicoGUS on a 430FX board, alongside an AWE64 as well as a Media Vision Jazz16. With the PicoGUS on port 240, IRQ 5 and DMA 3, and the AWE64 or Jazz16 on port 220, IRQ 7, and DMA 1, I've encountered no issues in Raptor, Tyrian, or Jazz Jackrabbit running in GUS mode. I'll get out a 440BX system I have and test on that as well.

Just to make sure... are the jumpers on your PicoGUS set to match the DMA/IRQ in your ULTRASND variable? With your variable, IRQ 5 should be set and there should be caps on the two DMA jumpers marked 3. Some people have been tripped up by this since on a real GUS, the base address is set with jumpers and DMA/IRQ are set via software, and on PicoGUS, the base address is set via software and DMA/IRQ are set with jumpers.

mikboy018 commented 7 months ago

Forward progress!

Raptor (Shareware) is working on the P2. I was using Phil's Computer Lab's MS-DOS mode made easy, and had been updating both autoexec.bat for windows and for the *.pif he created. What I didn't look at was Windows Device Manager, which set the SB32 to IRQ 5 anyway...

I disabled PNP OS in the Bios, Manually set my IRQ/DMA, and it's working now!

mikboy018 commented 7 months ago

I don't know a lot about GUS's, but should this be able to do music and sfx at the same time?

setting error on my end

deepthaw commented 7 months ago

I think most games that support GUS can do sound and music simultaneously on it. It’s all the same thing to the GUS so it can’t even tell the difference.

On Thu, Nov 30, 2023 at 7:36 PM, Mike Boyer @.***(mailto:On Thu, Nov 30, 2023 at 7:36 PM, Mike Boyer < wrote:

I don't know a lot about GUS's, but should this be able to do music and sfx at the same time?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

mikboy018 commented 7 months ago

I'm good to close this, unless we want to try some things to see about compatibility with that symphony chip... happy to try stuff/test that as needed.

I mainly have it in the 486 to serve as an MPU-401 card, and it does that well, looking through my launch settings, even monkey island 1 (ultimate talkie) is working.

In any case, thanks for the help!

polpo commented 7 months ago

I'm glad you've sorted things out! I haven't really used Win9x's MS-DOS mode so I hadn't thought about how that'd change your SB32's settings.

An IRQ conflict definitely explains the issues - for example in Jazz Jackrabbit, the GUS's timer IRQ drives the music playback while sound effects are triggered by the game independently of the music playback routine.

How are things on the 486? Is there still a conflict when you have the Aztech card installed?

mikboy018 commented 7 months ago

There are still conflicts on the 486. It wasn't one of the 'compatible' chipsets, but it seems like its the exact same issue. My autoexec.bat settings are set to that picture I took above.

I could try different IRQ/DMA combinations to see what works. That system doesn't have much in the way of BIOS settings I can modify.

mikboy018 commented 7 months ago

Looks like the intel configuration utility might be a good option

Will try this first. https://www.vogons.org/viewtopic.php?t=58009

mikboy018 commented 7 months ago

ICU worked to a degree.

I can't disable LPT from the BIOS like I could with the 486, so instead of setting the IRQ to 5 or 7, I went with ICU's suggested default 9(2), and Jazz Jackrabbit worked perfectly.

I went to try Raptor and Tyrian, and Raptor gave no sound. For Tyrian, I didn't attempt, as ULTRAMID threw the following error:

configuration file not found in ${ULTRADIR}/midi directory

Going to do a fresh reinstall of everything in C:\ultrasnd tomorrow, as that path is set right (autoexec.bat below) IMG_20231203_021042

cmodtest also hangs on loading strshine.s3m

mikboy018 commented 7 months ago

No luck yet with Ultramid.

Disabling the Aztech (Sound Blaster Compatible) within ICU, & updating its IRQ to 7 in Autoexec.bat allows SCUMM games to use my Aztech for voice, and the picoGUS as an MPU-401 -- which was my real intended use case on this system. It's a bonus I can play Jazz Jackrabbit on it, especially this time of year.

Games working great: picoGUS only: Jazz/HH94/HH95 (GoG Copy) picoGUS (MPU-401): X-Com picoGUS + Aztech: Any SCUMM games (including talkies) Aztech only: Halloween Harry

Games not yet working: Raptor (No sound at all from picoGUS, sfx from Aztech does work -- but not music) Tyrian (Ultramid not yet working)

Honestly, I'd play raptor/tyrian on the Pentium 2 anyway, so I'm pretty happy with how this is going. Both cards are working great, but I definitely have some resource conflicts to figure out on the old 486.