Baron-von-Riedesel / VSBHDA

Sound Blaster emulation for DOS
57 stars 3 forks source link

VSBHDA16 and Jazz Jack Rabbit #13

Open hjnijlunsing opened 2 months ago

hjnijlunsing commented 2 months ago

Running vsbhda16 /VOL8 /O1 results in: "No Sound Card Found"

Running vsbhda16 /VOL8 works with Jazz Jack Rabbit with Music (and external speakers connected to the headphone jack); Enabling Sound FX causes Jazz Jack Rabbit to quit with:

Jazz Jack Rabbit is patched (https://www.jazz2online.com/articles/17/jj1-on-your-fast-computer/) in order to avoid this error during startup: Runtime error 200 at 0009:37F2

Update: Changing IRQ to 7 also enables SoundFX; the /O? parameter issue still remains Update 2: Seems that internal speakers work automagically anyway without the /O1 parameter

Baron-von-Riedesel commented 2 months ago

Running vsbhda16 /VOL8 /O1 results in: "No Sound Card Found"

This msg is a bit misleading. It may occur because vsbhda couldn't find a path from the "speaker" widget to a DAC.

One reason for this may be because the codec reports multiple "speaker" widgets. Currently there's no way to "select" a certain "speaker", vsbhda just uses the first (non-digital) speaker that it finds.

Runtime error 216 at 50FE:1BFA

Error 216 is a "general protection fault",

Jazz Jack Rabbit is patched in order to avoid this error during startup: Runtime error 200 at 0009:37F2

Actually, there's code in vsbhda16 to cure this error, so it should run with the "unpatched" version.

hjnijlunsing commented 2 months ago

This msg is a bit misleading. It may occur because vsbhda couldn't find a path from the "speaker" widget to a DAC.

That's interesting since this only seems to happen in the 16 bit version; the 32 bit version works fine with /O1

Actually, there's code in vsbhda16 to cure this error, so it should run with the "unpatched" version.

Thanks! I was unaware of that; before testing I first wanted to ensure it worked 'vanilla' (w/o VSBHDA) ;-)

Baron-von-Riedesel commented 2 months ago

That's interesting since this only seems to happen in the 16 bit version; the 32 bit version works fine with /O1

That's very strange. Running both variants with trace logs activated should then give a good hint what's the difference.