VOGONS


First post, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Alright guys I'm at loss there and can't figure what's happening. I'm running an AWE32 on my Win98 rig and I'm having sound issues in DOS mode.

- It is setup as a220 i7 d1 h5.
- as it's non PnP, I have reserved irq 7 and dma 1 and 5 in bios
- it works 100% flawlessly in native Win98
- in DOS, diagnose.exe auto-detects all settings fine and all playback tests are fine
- most games will work fine, be it in auto-detect or manual settings, but some games and software will emit garbage. I'm not saying distorted sound, I'm saying proper noise and garbage, making the original music unrecognizable.

Affected games are:
- Day of the Tentacle, Monkey Island, Indy3 output garbage, even specifying command line arguments to force Sound Blaster and settings
- Lot of Sierra games, where game gives an "unable to initialize audio hardware" error when launching (PQ3, SQ3, LSL5...). Others do work (Iceman, LSL6..)
- Duke3D, Heretic, Doom2 all work fine whatever Sound Blaster option I select...

Don't know if that helps, but Impulse Tracker works fine, both in SB16 (220/1/5) mode and AWE32 (620h) mode. FT2 works fine too.

A more interesting bit (maybe?) is Adlib Tracker 2 : by default it gives garbage sounds when I run it. I contacted the author about it, and he said to try to change a setting, but he thought that was weird for an AWE32. The setting in question is:

opl_latency=0         ; OPLx register writes latency:
; [0] opl3-optimized (recommended)
; [1] 3.3 + 23 æs (use in case of troubles only)

By default it's 0, and I get the garbage sound. I did set it to 1...and it works. I don't know if that may help identifying the issue?

So yeah that's about it. I'm having a hard time understanding and finding any consistency or logical explanation at this stage, and hopefully one of you hardware gurus can help me figure it out and hopefully fix it for good, I hope! I love that card 🙁 cheers

Reply 1 of 11, by jesolo

User metadata
Rank l33t
Rank
l33t

What is your system specifications?
You need to load Aweutil with the /EM:GM parameter when trying to run real mode GM DOS games. Otherwise, use the /s parameter to initialise the audio hardware under DOS.

Take note that Sierra did release AWE32 patches for some of their older games.

The "cannot initialise audio hardware" error is due to your hardware being too fast for those games - try to slow down your system with some slow down utilities.

Reply 2 of 11, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Thanks - it's a korean P3 Tualatin 1.4GHz w/ slotket on a P3B-F. I do call aweutil /s in my DOS batch.

Ok didn't think about the computer speed, in any case i'm not really expecting to run sierra games on that build (I have a 486 with MT-32 for that 😉 ). This is definitely a late DOS and Win9x build and I just used games I had on the hard-drive to try and figure out what was happening and debug, when I realized some things were wrong...

Reply 3 of 11, by mkarcher

User metadata
Rank l33t
Rank
l33t

If adding latency to the OPL3 Register writes helps, the first thing to check is the ISA bus clock or the I/O recovery time. The OPL3 chip needs some time after a data write to be ready for the next access. The most common way to create this delay is repeatedly reading the OPL3 status register. If the ISA bus is severely overclocked, status reads may be way faster than expected and do not create the expected delay.

Reply 5 of 11, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2020-08-07, 21:30:

If adding latency to the OPL3 Register writes helps, the first thing to check is the ISA bus clock or the I/O recovery time. The OPL3 chip needs some time after a data write to be ready for the next access. The most common way to create this delay is repeatedly reading the OPL3 status register. If the ISA bus is severely overclocked, status reads may be way faster than expected and do not create the expected delay.

Damn, right on the money! Good job dude, I owe you a cold one!

So..it's a Slot1 ASUS P3B-F with a slotket and a Tualatin P3. The FSB is set to 133MHz and PCI to 33MHz. The FSB/AGP ratio is either 1/1 or 2/3, so running 2/3 I knew the AGP port would be overclocked to 89MHz and some cards didn't like that (I got a Voodoo3 3000 that's fine with it tho), but I never read anything about the ISA clock and don't even know how to check it's bus clock. Is that related? I did try to slow down FSB to default 66MHz and it didn't make a difference.

But in the BIOS I did find 16-bit and 8-bit I/O Recovery Time, with description "This is the timing for 8/16-bit ISA cards. 1 BUSCLK is recommended". Very interesting! Never heard about those settings before.
For 16-bit choices are 1-2-3-4 bus clocks, for 8-bit 1-2-3-4-5-6-7-8.

I tried several combinations and ended up with 4 and 8 respectively (so basically max for both) and Adlib Tracker 2 is now happy with the OPL latency at 0, and games that didn't work properly before are now fixed! Woohoo!

So far with my limited tests I haven't found any problem running those settings, any side effect or potential problem I should be aware of?

Thanks a whole lot again - Vogons experts delivering as usual! 😁

Reply 7 of 11, by Oetker

User metadata
Rank Oldbie
Rank
Oldbie

Interesting, however I'd be curious to know if the default recovery times work if you slow down your cpu with a tool such as Throttle. That would maybe clarify if it's the fsb or the net cpu speed that's the problem, and might allow you to fix problematic games without changing a global setting in the bios.

Also, what kind of opl chip does your card use? Genuine/integrated/cqm?

Reply 8 of 11, by mkarcher

User metadata
Rank l33t
Rank
l33t
Boohyaka wrote on 2020-08-07, 22:29:
Damn, right on the money! Good job dude, I owe you a cold one! […]
Show full quote

Damn, right on the money! Good job dude, I owe you a cold one!

So..it's a Slot1 ASUS P3B-F with a slotket and a Tualatin P3. The FSB is set to 133MHz and PCI to 33MHz. The FSB/AGP ratio is either 1/1 or 2/3, so running 2/3 I knew the AGP port would be overclocked to 89MHz and some cards didn't like that (I got a Voodoo3 3000 that's fine with it tho), but I never read anything about the ISA clock and don't even know how to check it's bus clock. Is that related? I did try to slow down FSB to default 66MHz and it didn't make a difference.

But in the BIOS I did find 16-bit and 8-bit I/O Recovery Time, with description "This is the timing for 8/16-bit ISA cards. 1 BUSCLK is recommended". Very interesting! Never heard about those settings before.
For 16-bit choices are 1-2-3-4 bus clocks, for 8-bit 1-2-3-4-5-6-7-8.

I tried several combinations and ended up with 4 and 8 respectively (so basically max for both) and Adlib Tracker 2 is now happy with the OPL latency at 0, and games that didn't work properly before are now fixed! Woohoo!

Adlib/OPL3 interfacing is (usually) done with 8-bit I/O only. You should not need to increase 16-bit I/O recovery time. I/O recovery time only applies to ISA peripherals (this includes onboard I/O), so recovery time slows down accesses to ISA cards (doesn't really matter for the AWE32) and to onboard peripherals on the multi-I/O chip. Extra wait states can slow down or increase CPU load for printing, for example. The serial port is slow enough that wait states should not matter, and the floppy disc controller only gets a couple of command bytes using I/O, so you should be fine there, too.

ISA clock (als called AT BUS clock) should usually be PCICLK/4, so if you run PCI at FSB/4 to get 33MHz, ISA would be fine at 8MHz. One Wait State (1 BUSCLK recovery time) for 8-bit I/O is a quite optimistic timing, though. 8 BUSCLK surely helps, but sounds excessive. My first attempt to configure your system would be: 16-bit: 1 BUSCLK, 8-bit 4 BUSCLK. As you already tried different stuff, maybe you already know better.

Reply 9 of 11, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie
640K!enough wrote on 2020-08-08, 02:29:

Be aware, though, that some ISA cards will start behaving badly if the I/O recovery time is set too high. In some cases, the GUS PnP has this problem.

Yep at least now I know where to look first if I see any (or most probably hear) new problems 😀

Oetker wrote on 2020-08-08, 06:55:

Interesting, however I'd be curious to know if the default recovery times work if you slow down your cpu with a tool such as Throttle. That would maybe clarify if it's the fsb or the net cpu speed that's the problem, and might allow you to fix problematic games without changing a global setting in the bios.

Also, what kind of opl chip does your card use? Genuine/integrated/cqm?

As said I first tried to reset FSB to default 66MHz and CPU to 700MHz, and the problem was still happening with default 1 and 1 recovery times. Out of curiosity I now tried with a proper Slot1 P3-400 I had laying around and same problem happens.
CT3900 have a CT1747 fully integrated OPL3.

mkarcher wrote on 2020-08-08, 07:45:

ISA clock (als called AT BUS clock) should usually be PCICLK/4, so if you run PCI at FSB/4 to get 33MHz, ISA would be fine at 8MHz. One Wait State (1 BUSCLK recovery time) for 8-bit I/O is a quite optimistic timing, though. 8 BUSCLK surely helps, but sounds excessive. My first attempt to configure your system would be: 16-bit: 1 BUSCLK, 8-bit 4 BUSCLK. As you already tried different stuff, maybe you already know better.

Thanks for the additional info and you're of course right, the 16-bit setting seems to make no difference. Unfortunately, 1/4 it definitely doesn't work, still full garbage, same with 1/5. 1/6 starts to sound better, but still way off, but at least you can somewhat recognize the tune 😁 1/7 is almost perfect but not 100%, and 1/8 sounds perfect as far as I can tell so that's what I'm running now. Maybe non-multiple of 4 sound off in any case?

Reply 10 of 11, by Oetker

User metadata
Rank Oldbie
Rank
Oldbie
Boohyaka wrote on 2020-08-08, 09:11:

As said I first tried to reset FSB to default 66MHz and CPU to 700MHz, and the problem was still happening with default 1 and 1 recovery times. Out of curiosity I now tried with a proper Slot1 P3-400 I had laying around and same problem happens.
CT3900 have a CT1747 fully integrated OPL3.

Interesting, from what I remember the CT1747 on an SB16 was, out of the OPL3 cards I've tried, the most speed resilient. My P3-550 was actually too fast for some games with a genuine OPL3.