VOGONS


Speed Affected Sound Blasters

Topic actions

First post, by TrashPanda

User metadata
Rank l33t
Rank
l33t

Is there a list of which Sound Blaster cards are affected by the speed of the machine eg which ones are best used for pre Pentium CPUs and which are good for Pentium and above?

Asking this mostly out of curiosity and wondering if this speed issue affects AWE32/64 Gold cards or if Creative got their shit together and fixed this issue after a certain model.

I got curious about this mainly because I have a SB16 2230 with both DAC chips 1748A 1745A (I think they are DACS) and thought that it would be interesting to put this into a P2 rig ..then I remember this issue and I have yet to find a list of cards that suffer from it.

Reply 1 of 29, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

From my experience, speed affected chips are OPL2 and OPL3.
With a fast CPU, some software has problems like not detecting the chip, or generating a blast of static.
On the software side, the solution is to add delays before writes to OPL registers.

On the hardware side, the solution seems to be CQM...
Sound Blaster: From best to worst

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 2 of 29, by TrashPanda

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2022-07-30, 12:52:
From my experience, speed affected chips are OPL2 and OPL3. With a fast CPU, some software has problems like not detecting the c […]
Show full quote

From my experience, speed affected chips are OPL2 and OPL3.
With a fast CPU, some software has problems like not detecting the chip, or generating a blast of static.
On the software side, the solution is to add delays before writes to OPL registers.

On the hardware side, the solution seems to be CQM...
Sound Blaster: From best to worst

hmmm

Is all OPL3 affected by this or is it more related to the way the software is programmed ?

Reply 3 of 29, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
TrashPanda wrote on 2022-07-30, 13:05:

Is all OPL3 affected by this or is it more related to the way the software is programmed ?

The OPL3 core used by PCI Yamaha YMF7x4 cards is not affected by CPU speed, provided that the game itself isn't speed sensitive.

I ran Doom and Duke3D playing OPL3 music on an AthlonXP 1700+ using that card and had no issues.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 4 of 29, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
TrashPanda wrote on 2022-07-30, 13:05:

Is all OPL3 affected by this or is it more related to the way the software is programmed ?

I don't know which side is guilty here - hardware or software.

There's plenty of software that uses OPL with delays - so no problems with fast CPUs.
Many earlier titles, however, don't do delays, and exhibit problems when run on fast CPUs and genuine discrete YM262.
Disabling caches usually helps here.
My favourite game for testing this is "Tunnels of Armageddon".

On the other hand, the problems with genuine discrete YM262 don't show up with CQM.

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 5 of 29, by rasz_pl

User metadata
Rank l33t
Rank
l33t

https://www.fit.vutbr.cz/~arnost/opl/opl3.html
>Unlike Adlib (OPL2), OPL3 doesn't need delay between register writes. With OPL2 you had to wait 3.3 us after index register write and another 23 us after data register write. On the contrary OPL3 doesn't need (almost) any delay after index register write and only 0.28 us after data register write. This means you can neglect the delays and considerably speed up your music driver. But using reasonable delays will certainly do no harm.

0.28 us is ~3.5MHz, Fastest ISA bus transaction possible is 2 cycles, and at 8MHz thats 2x125 ns = 0.25 us. Close, maybe a timer inserting optional 1 waitstate would be preferable after all.

Definitely hardware fault. Proper implementer would look at fmax of OPL2 and incorporate wait states insertion (I/O Channel Ready pin) for all the I/O targeting this chip. Afaik Adlib folks were clueless (Martin Prevel - music academia) and outsourced whole design (like later failed adlib gold), they simply didnt know any better. Creative on the other hand was straight up incompetent as evidenced by all of their bugs/blunders over the years (too many to list individually, Sound Blaster 16 Bugs and Deficiencies Summary Sound Blaster: From best to worst) and some questionable design decisions
- special sbpro "High-Speed" modes vs later sb16 incompatibility, incompetence or cost cutting, maybe both
- sampling rate in Intel 8051 clock ticks
- absolute lack of any regard for fidelity up to 1997!
- the whole single-cycle DMA garbage
- reusing ISA DMA in the first place instead of implementing bus mastering

sb16 had Asic state machine automagically handling DMA transfers so there was no reason for not to implementing automagic OPL3 wait states.

Open Source AT&T Globalyst/NCR/FIC 486-GAC-2 proprietary Cache Module reproduction

Reply 6 of 29, by TrashPanda

User metadata
Rank l33t
Rank
l33t

I have a number of sound cards with OPL3 so perhaps it might be worth testing them to see what their limits are.

Might throw the results in a google doc so others can use that data and add to it with their own.

I’m sure I’m not the only tech head curious about this issue.

Reply 8 of 29, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t

There also games like Descent where OPL3 music sometimes plays back too slowly on SB16 cards with genuine YMF262-M chips. It even happens on AWE64 cards with CQM. More info here: AdLib music slowdowns

I'm not sure if this behavior is CPU related or not, but it doesn't occur on a PCI Yamaha YMF744 card.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 9 of 29, by AppleSauce

User metadata
Rank Oldbie
Rank
Oldbie
images (13).jpeg
Filename
images (13).jpeg
File size
49.98 KiB
Views
1222 views
File license
Public domain
Creative_Sound_Blaster_Pro_2.jpg
Filename
Creative_Sound_Blaster_Pro_2.jpg
File size
800 KiB
Views
1222 views
File license
Public domain

I dunno if its true or not but there does appear to be a difference between some cards , you can see one of them is missing a crystal.

Reply 10 of 29, by TrashPanda

User metadata
Rank l33t
Rank
l33t
AppleSauce wrote on 2022-07-31, 08:19:

images (13).jpeg
Creative_Sound_Blaster_Pro_2.jpg

I dunno if its true or not but there does appear to be a difference between some cards , you can see one of them is missing a crystal.

Yeah, the Two cards I have both have three oscillator crystals on them with the larger 43Mhz crystal connected to the ISA bus, so perhaps I have the later fixed revisions. I didn't include the SB32 and AWE64 I have since they dont have OPL3, but might include them as extra data.

Reply 11 of 29, by DerBaum

User metadata
Rank Oldbie
Rank
Oldbie

On the CT1600 you can find the differences in versions on the white lable on the back.
"IBACT-SBP2P" and "IBACT-SBP2P5" for example.

sbp2p5.JPG
Filename
sbp2p5.JPG
File size
11.12 KiB
Views
1174 views
File license
CC-BY-4.0
sbp2p.JPG
Filename
sbp2p.JPG
File size
17.99 KiB
Views
1174 views
File license
CC-BY-4.0

EDIT: Ok thats a little bit contra productive... I just saw that the "SBP2P" exists with and without crystal... 🤷‍♂️

FCKGW-RHQQ2

Reply 12 of 29, by gerwin

User metadata
Rank l33t
Rank
l33t
AppleSauce wrote on 2022-07-31, 08:19:

I dunno if its true or not but there does appear to be a difference between some cards , you can see one of them is missing a crystal.

The earlier SBPro2 cards take the 14,3 MHz clock signal from the ISA bus. Revision 05 and later cards have their own oscillator for that. (The revision assumed to be the first two digits of that 6-digit silk-screening. Bottom-left of the photos )
I was confronted with that when trying to repair one, here: Sound Blaster Pro 2 and SB 16's dying on me

--> ISA Soundcard Overview // Doom MBF 2.04 // SetMul

Reply 13 of 29, by TrashPanda

User metadata
Rank l33t
Rank
l33t
gerwin wrote on 2022-07-31, 14:44:
AppleSauce wrote on 2022-07-31, 08:19:

I dunno if its true or not but there does appear to be a difference between some cards , you can see one of them is missing a crystal.

The earlier SBPro2 cards take the 14,3 MHz clock signal from the ISA bus. Revision 05 and later cards have their own oscillator for that. (The revision assumed to be the first two digits of that 6-digit silk-screening. Bottom-left of the photos )
I was confronted with that when trying to repair one, here: Sound Blaster Pro 2 and SB 16's dying on me

Can we infer from this that the newer revisions with on board crystals should have less issues related to CPU speed or will it still be a matter of that even with the onboard crystals the software itself must also be speed aware for OPL to be unaffected ?

This is a really interesting subject from a learning standpoint.

Reply 14 of 29, by rasz_pl

User metadata
Rank l33t
Rank
l33t
TrashPanda wrote on 2022-07-31, 15:22:

Can we infer from this that the newer revisions with on board crystals should have less issues related to CPU speed or will it still be a matter of that even with the onboard crystals the software itself must also be speed aware for OPL to be unaffected ?

no, some later motherboard simply omitted this clock signal because almost nothing (apart from SB and some very early VGA cards) ever used it. Its for compatibility with later/cheap motherboards. Has nothing to do with OPL.

I dont know where AppleSauce got this idea of "fixed" SB OPL2 speed sensitivity.

Open Source AT&T Globalyst/NCR/FIC 486-GAC-2 proprietary Cache Module reproduction

Reply 15 of 29, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Ah yes, the annoying ~14.4 MHz OSC clock signal..

http://www.os2museum.com/wp/the-isa-osc-mystery/

The cheap CGA used it, too, to get its timings.
It was never reliable, sadly. And it was noisy. 😔

Edit: Since we already have the these cheaply made -5v voltage regulator boards (ISA) for ATX PSU owners..:

What about making a little ISA card with a PLL or DDS driven oscillator that provides a clean OSC signal to the ISA bus?
Or alternatively, use a real crystal oscillator with a crystal oven and a buffer?
Someone just needs to cut the real OSC on the mainboard to make this work. 😀

Edit: Good news. 14.31818 MHz crystals and crystal oscillators still exist.
One question remains, however: Sine or square? What is the OSC pin supposed to carry?
If it's meant as a source for another oscillator, wouldn't sine be favorable?
But if it's meant as a source for a frequency divider, wouldn't square be favorable?

Edit: Txpo fixed.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 16 of 29, by mkarcher

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2022-07-31, 18:39:

Sine or square? What is the OSC pin supposed to carry?

Square wave, 50% duty cycle, TTL level.

But this signal should be fine on most boards. 14.318MHz is so common that it is commonly used as the reference clock for the CPU/PCI/AGP clock syntesizer chips, so most mainboards do have a perfect 14.318 crystal and a freuqency synthesizer that outputs this reference frequency in the required form. I would have expected ISA slots to have disappeared long before the 14.318 MHz clock (which is also used as base clock for the 8254 programmable interval timer) went away. Of course I do believe you that there are some odd boards with a bad OSC signal, but that should be a small minority.

Reply 17 of 29, by AppleSauce

User metadata
Rank Oldbie
Rank
Oldbie
rasz_pl wrote on 2022-07-31, 17:22:
TrashPanda wrote on 2022-07-31, 15:22:

Can we infer from this that the newer revisions with on board crystals should have less issues related to CPU speed or will it still be a matter of that even with the onboard crystals the software itself must also be speed aware for OPL to be unaffected ?

no, some later motherboard simply omitted this clock signal because almost nothing (apart from SB and some very early VGA cards) ever used it. Its for compatibility with later/cheap motherboards. Has nothing to do with OPL.

I dont know where AppleSauce got this idea of "fixed" SB OPL2 speed sensitivity.

I think I found the post about it where I got the idea , I guess I may have misread it or gotten confused.

CT1600 (Sound Blaster Pro 2.0) - Issues

Reply 18 of 29, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

CPU: Pentium MMX 166
card: Mozart-16 with YMF262-M
software: Tunnels of Armageddon

The game usually fails to detect Adlib, and uses PC Speaker instead.
Sometimes it does find Adlib, but the sound is heavily distorted, pretty much a blast of static.

The problems disappear after "setmul l1d".

No such problems with a card based on OPTi 82C931.

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 19 of 29, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Does this affect the PAS16, too?
I'm asking, because..

a) I used my PAS16 in several Windows 98 PCs, Pentium 75 and higher, but don't remember any OPL3 issues.

b) The PAS16 used the OPL3 address 388/89h as control port for itself, so it's a bit special.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//