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

Freezing with System Shock 1, Descent (And various other games) #45

Open AhmedAbdulFaisal opened 1 month ago

AhmedAbdulFaisal commented 1 month ago

System Shock

I am trying to run System Shock 1 with the picogus and it oftentimes freezes up, forcing me to reboot my computer. This is a game which utilizes a bat file (shockgus.bat) to actually load the patches before playing. The card works fine for other games like DOOM, Epic Pinball, and Jazz Jackrabbit with no freezes.

When I use the Soundblaster 2.0 firmware and delete the SET commands (With blaster variables) it detects fine within the setup program and the main menu, but it freezes up when I load up a game. Sometimes when using the GUS version of the card it will lock up after a while of playing around. In both cases the system eventually locks up. If I set up Soundblaster as both in the install menu the game will run up until I change volume or just keep on playing - it will also end up freezing or seriously lagging.

I don't know if it's a resource conflict, I have a networking card which is disabled within the autoexec sometimes and it has no issues when working with other games (for instance, IPX-multiplayer DOOM). I'm guessing it's some sort of issue with System Shock and the Gravis Ultrasound, would it be a good idea to install another sound card just for this game?

Here are my specs:

Video Card: Trio64v Motherboard: Supermicro P5StE (American Megatrends, Intel 430HX) CPU: Pentium 133 (non-mmx) Sound Card: PicoGUS configured at IRQ5, Port 240, IRQ 5 and DMA 1 Networking Card: 3COM Etherlink Combo ISA card

My Autoexec for the ultrasound is:

SET ULTRASND=240,1,1,5,5 (Now changed to IRQ 7) SET ULTRADIR=C:\ULTRASND C:\PICOGUS\PGUSINIT.EXE

My soundblaster is set at 220 with IRQ 7 and DMA 1. It works fine with other games (With no 32 in)

Descent

The card also seems to freeze on Descent, same specs and I did some trial and error with other cards pulled in and out. Descent appears to crash on level 3 after a few seconds, giving a dump error starting with:

USE32, byte granular limit, FFFFFFFF, base 0, acc CF93 (error continues with similar messages until it ends with a C:\Descent>)

AUTOEXEC SET ULTRASND=240,1,1,5,5 SET ULTRADIR=C:\ULTRASND C:\PICOGUS\PGUSINIT.EXE prompt $p$g path c:\dos;

CONFIG.SYS DEVICE=C:\dos\himem.sys DEVICE=C:\DOS\EMM386.EXE DOS=HIGH BUFFERS = 30 files = 30

I'm guessing this is because the game runs out of memory with the Gravis Ultrasound, I did try a clean bootdisk (shown above) and it gives the same problem. Not sure what's up here, happens with and without the soundblaster 32 and 3com card inside. The card also seems to exhibit the same issues on other levels, some more frequently, and other levels have their instruments removed (Level 1 of Descent has no strings during the main part of the song). I have tried switching DMAs and addresses to no avail.

EDIT: Upon opening descent's MIDI files, I find that they crash at around the same areas using a midi player, so I'm curious if this is a descent issue and not a card issue. If anyone has a legitimate gravis card and wants to try out various levels lmk

Other Games

Other games like TIE fighter, ROTT, and TES: Arena will work for a bit but then freeze, I have two cards set up, the SB32 is for a gamepad controller and AWE32 support when I'd like it, nothing much.

Soundblaster 32 at 220H, IRQ 5, DMA 0, 5 PicoGUS as 240H, IRQ 7, DMA 1 PicoGUS SB at 220H, IRQ7, DMA 1 (Yes I am aware of the conflict with the SB32)

I'm guessing this is just because those games are dodgy with GUS support (Which is understandable) but I'll just list them here. I would like confirmation on TES and TIE because those aren't on the compatibility list. These games still have issues without the SB32 installed as well, with some exceptions (Descent and ROTT have perfect SB accuracy)