VOGONS


Reply 20 of 37, by dr_st

User metadata
Rank l33t
Rank
l33t

Yes, I don't think the bug exists in DOSBox either. "Ultra" sounded the same before and after the patch. I'll wait till I'm back to my real DOS machine to try the fix.

Thank you, stargo!

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 21 of 37, by elianda

User metadata
Rank l33t
Rank
l33t

Thats simply because Dosbox returns as DSP version 4.5 which is <= 5.00 and thus does not apply for this issue.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 23 of 37, by stargo

User metadata
Rank Newbie
Rank
Newbie

No SB16 card intentionally returns 5.x.

The code looks fine at a cursory glance, only the timeout of 65535 loops could be a problem (which would lead to the carry bit set to indicate an error and then later to also take the fallback path). But 65535 in instructions also take quite some time which should be enough for the SB DSP to return its version and set the ready-bit.

In emulation the emulated soundcard would return its version instantly and set the ready-bit, so maybe it actually is that part of the code (0x2261-0x2269) that is to blame.

Btw, the DMA-controller annotation (I assume generated by IDA?) is wrong, it's just a simple IN of the read-buffer status port of the soundcard, no DMA involved.

Reply 24 of 37, by jaZz_KCS

User metadata
Rank Oldbie
Rank
Oldbie

This is great. One should put together all the three patches (and more if applicable) and make a nice SB16 patchpack for all games using this flawed DSP checking routine)
I was about to try out whether this also happens on the CT1740, but I guess, since it's a code error, I can happily skip that.

Reply 25 of 37, by adi88

User metadata
Rank Newbie
Rank
Newbie

Hello,

Sorry for the necropost. I stumbled across this thread after I tried to play Jazz Jackrabbit using an ESS AudioDrive ES1869 (in Windows 98 SE - MS DOS mode)
This card has great sound in most games, but in Jazz, no matter if I select Ultra quality sound or not, the sound will play at very low bitrate with crackling noises.

Does anyone know how I could apply stargo's patch (which apparently fixes this issue)?

Thanks.

Reply 27 of 37, by keropi

User metadata
Rank l33t++
Rank
l33t++
adi88 wrote on 2020-11-13, 06:53:

Anyone? 🙁

here you go, attached is the patched Jazz Jackrabbit driver according to stargo's info
tell us if it also worked for you 😀

Attachments

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 28 of 37, by keropi

User metadata
Rank l33t++
Rank
l33t++

and here is the patched driver for Epic Pinball based on stargo's info here: Re: SB16 issues with Jazz Jackrabbit, Epic Pinball

Attachments

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 29 of 37, by adi88

User metadata
Rank Newbie
Rank
Newbie

Thank you very much, keropi! That was very kind of you 😀
Unfortunately, yeah... didn't work with my ESS AudioDrive. Tried selecting Sound Blaster Pro 2, Sound Blaster 16, Compatible sound blaster...
Sound Blaster 16 seems to give the "best" sound, although it's still muffled with weird crackling noises.
However, I just realized that if I start Jazz multiple times, one in five tries will give much better results (sound still a bit muffled, but without crackling noises). Buggy game 😀
(just in case anyone is wondering, I'm testing it on an AMD K6-2+ downclocked to 200 MHz)

Reply 30 of 37, by keropi

User metadata
Rank l33t++
Rank
l33t++

hmm
do you also use a HIGH DMA with the ESS1869? if not try and assign one (if supported that is, I have no idea...)

🎵Link to buy a PCMIDI mpu
🎧Orpheus soundcard project
💻WTB Amstrad PC7486SLC-33 system

Reply 32 of 37, by adi88

User metadata
Rank Newbie
Rank
Newbie

Just tested with a real SB16 (CT2290 / CT1703-TBS DAC). Set the following environment variable and initialized the card with diagnose /s:
SET BLASTER=A220 I5 D1 H5 P330 T6

A great card, with beautiful, crystal clear sound in most games... but not Jazz Jackrabbit 😁
In Jazz it's even worse than the ESS 1868/1689. More crackling & worse muffled sound.

I then tested with a Yamaha YMF718 card, and this one gives the best results in Jazz BY FAR. Very loud, clear sound, no crackling.

I give up... this game is a pain 😀 I don't understand how it doesn't work well with a real SB16...

Reply 33 of 37, by adi88

User metadata
Rank Newbie
Rank
Newbie

Well... did more testing and it turns out that the sound issues with this game are caused by speed sensitivity, and some cards are more speed sensitive than others.
The SB16 needs an even slower CPU. I had already decreased the K6-2+ speed to 200 MHz, but it isn't enough. After I disabled the L1 cache, sound started working properly (however, the game doesn't run well anymore 😁 )
Apparently, when using an SB16, this game probably only runs and sounds well with a very early Pentium...

Last edited by adi88 on 2020-11-13, 12:41. Edited 1 time in total.

Reply 34 of 37, by thepirategamerboy12

User metadata
Rank Member
Rank
Member

I've tried Epic Pinball on my 486 with an SB16 a number of times and even on the maximum quality setting it still doesn't sound that great. Weirdly though, on an Athlon XP 2400+ with an SB Live 5.1 card using its SB16 compatibility it sounds excellent.

Reply 35 of 37, by adi88

User metadata
Rank Newbie
Rank
Newbie

So, in case anyone has the same issue on a SS7 PC, these are roughly the steps to get good sound in Jazz Jackrabbit (with a SB16 or an ESS AudioDrive 186x):

  1. Replace the MDRV004D.MUS file in the Jazz Jackrabbit folder with the one provided by keropi a few posts above (thanks again!)
  2. Decrease your CPU speed as much as possible (but not too much, otherwise Jazz Jackrabbit will run slow). The idea is to get less than 200 FPS in 3DBench 1.0c :
    a. Disable the BIOS "External cache" option
    b1. If you have a K6-2/3+ CPU, run "setmul 2 l2d" (this will set the multiplier to 2x for a 200 MHz effective speed and also disable the CPU internal L2 cache). If your particular system is still too fast, you might consider dropping the FSB speed to 66 MHz. In my case this was not required.
    b2. If you have a normal K6-2, you will need to play with the jumpers/DIP switches: set the multiplier as low as possible, but I don't think you can set it to 2x, because the K6-2 CPUs will interpret it as 6x. You can also decrease the FSB to 66MHz.

In my case, after dropping the 3DBench 1.0c score to less than 200 FPS, both the SB16 and the ESS AudioDrive started sounding very good.
However, I should point out that the Yamaha YMF718 still sounds much better in my opinion, and doesn't need anything special, it just works out of the box.

Last edited by adi88 on 2020-11-13, 14:21. Edited 1 time in total.

Reply 36 of 37, by bloodem

User metadata
Rank Member
Rank
Member

Yeah... been through this myself many times. I confirm that Jazz Jackrabbit is a weird speed sensitive game when it comes to sound.

thepirategamerboy12 wrote on 2020-11-13, 12:41:

I've tried Epic Pinball on my 486 with an SB16 a number of times and even on the maximum quality setting it still doesn't sound that great. Weirdly though, on an Athlon XP 2400+ with an SB Live 5.1 card using its SB16 compatibility it sounds excellent.

Yep, I confirm! Even weirder, I actually have some Core 2 Duo PCs with Audigy 2 ZS cards (which probably have very similar emulation to the one on the SB Live 5.1). And not only do those work and sound perfectly in Jazz Jackrabbit (without tuning the CPU speed at all!), but they somehow bypass even the Turbo Pascal "divided by 0" error in games such as Monkey Island (and Jazz), without applying the TPPatch. I swear, if Creative had used a real OPL3 chip instead of that crappy FM emulation, the Audigy 2 ZS would have been as close as possible to a perfect DOS/Win98 sound card 😀

2 x Socket 3 / 3 x Socket 7 / 4 x SuperSocket 7 / 4 x Slot 1 / 2 x Slot A / 5 x Socket 370
3 x Socket A / 1 x Socket 478 / 2 x Socket 754 / 3 x Socket 939 / 2 x LGA775 / 1 x LGA1155
Current rig: AM4 - Ryzen 5 3600X
Backup rig: LGA1151 - Core i7 7700k