VOGONS


First post, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

When the SB Pro 1 is selected as the sound card, I have noticed that when the game is only using Adlib, the sound only comes out of one speaker. In every other implementation, the sound comes out of both speakers. I thought this was a "feature" of the original card, so I complained about it here:

http://queststudios.com/smf/index.php?topic=2 … 76.msg28838#new

Apparently, the real hardware does not act in this way.

Reply 1 of 11, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Yeh dunno how it actually does it, i think you can also setup the mixer to mix the first opl2 to both channels. Effectively making it a single opl2 output.

Reply 2 of 11, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

In both the SB Pro 1 and SB Pro 2, the FM synthesizer chip(s) are interfaced with the same Bus Controller Chip. This chip obviously must direct data from the Adlib or pre-Sound Blaster Pro I/O ports (388/389, 2x8/2x9) to both OPL2 chips in the SB Pro 1. I am not sure whether the Bus Controller Chip or the OPL3 itself does the dual mono function in the SB Pro 2 and SB 16.

Reply 3 of 11, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Yeh that would mean that if you wanna address them individually you'll have to access them through the 0x220 range of ports. Hard to really find some dual opl2 supporting games.

Reply 4 of 11, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I have been able to confirm only one: Ultima Underworld.

Reply 5 of 11, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Ha indeed it's in stereo, hadn't noticed that before 😀 Just weird how it's handling the writes to 0x388 adlib range then though. They must be either replicated to both chips when writing to that range or it's doing something with the mixer.
If you write to 0x220-0x223 you can address both chips individually, but then writiting to 0x228-0x229 would have to be replicated to both chips again.
As for the opl3 you can't run that in dual mono mode since as soon as you switch from opl2 to opl3 mode on the chip you have to program channels to output their sounds to left/middle/right else you won't even hear anything. You can also program the opl3 in the full 0x388-0x38b range so that's different as well.

Reply 6 of 11, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

The two OPL2 chips in the SB Pro are hardwired to the left and right channels. Outputting the same data to both at the same time is the only way to ensure that the chips are in sync and you can hear the same output out of each sound channel. This is easy to do, the Bus Interface Controller would just make sure both chips are enabled when the data on the bus is from the Adlib/SB ports.

The OPL3 has two sets of registers. The data cannot be sent twice, once to each set, when sending Adlib data to the OPL3 chips. This would not work because the channels would be out of sync and as you say, the stereo function is not done in this manner. I would guess that either the OPL3 default is for center sound output or, less likely, Creative Labs programs the chip in someway to set the sound channels to center by default.

The former is more likely because Yamaha wanted to ensure OPL2 compatibility. No OPL2 music would come out of the card if the programmer had to set the channel registers, registers that did not exist on the device he was programming! The OPL2 is a mono device and has no such registers. Defaulting to center would prevent customers from complaining that their music only came out of the left or right speaker! Plus, the mixer chip's stereo bit only affects digitized sound output and Creative Labs used the same bus interface chip on the Pro 1 and Pro 2.

Reply 7 of 11, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Oh well as far as playing back games that actually support sbpro1 goes it should be fine so far. If you playback regular games your actually wasting cpu cycles by having 2 opl2's chips do the same work 😀
There have to be more games though that actually support it though. It's probably also hard to figure out if they really do stereo output instead of just playing back opl3 data where it'll end up on different speakers either way.

Wonder if i should also record dual opl2 data as just opl3 in the dro format, can just tweak the data to include the correct stereo bits when it's being written so it sounds correctly when playing back on the opl3.

Reply 8 of 11, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

If you use SB Pro for your sound card, you should expect that it will require twice the CPU power for sound emulation, so slow machines should stick with an SB 1/2 or try the direct hardware options of the unofficial builds.

There are other games that have been confirmed to support a dual OPL2 setup, (Sierra SCI1 games), but they all use the Pro Audio Spectrum driver. They do not use the chips any more than an single OPL2 chip, but merely direct sounds to the left or right chip. I am almost positive that Ultima Underworld does the same.

Wonder if i should also record dual opl2 data as just opl3 in the dro format, can just tweak the data to include the correct stereo bits when it's being written so it sounds correctly when playing back on the opl3.

That may work just fine, but that assumes that the music is not using features found on dual OPL2 chips that would not be found on an OPL3 chip. (Timers, percussion instruments.) A hypothetical game may push both chips to their maximum.

Last edited by Great Hierophant on 2008-11-06, 18:43. Edited 1 time in total.

Reply 9 of 11, by dh4rm4

User metadata
Rank Oldbie
Rank
Oldbie

I think Strike Commander also supports the dual OPL2. Actually, I also remember that happening (the adlib FM coming from one channel) on my REV 1 SB Pro (CT1330) from my first CL Multimedia Kit.

Reply 10 of 11, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

That may work just fine, but that assumes that the music is not using features found on dual OPL2 chips that would not be found on an OPL3 chip. (Timers, percussion instruments.) A hypothetical game may push both chips to their maximum.

Well the stereo bits of the opl3 shouldn't interfere with opl2 playback, but a player might just as well set those bits i guess, doesn't really matter either way. Not that there'll be that many dual opl2 recordings 😀

See if i can add some extra logging messages when programs access the second opl without first enabling opl3 mode or any special opl3 operator modes. That would at least provide some indication that they really wanna do dual opl2.

Reply 11 of 11, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
dh4rm4 wrote:

I think Strike Commander also supports the dual OPL2. Actually, I also remember that happening (the adlib FM coming from one channel) on my REV 1 SB Pro (CT1330) from my first CL Multimedia Kit.

I checked my Sound Blaster Pro 1, Sound Blaster 16 (CT1750) and Pro Audio Spectrum (dual OPL2) and they all output Adlib music out of both speakers. Maybe I have a rev 2 card.