Hi James
thanks for all your help!
mixer settings: since I am using the device in a driverless mode the mixer settings are just "write 0 to register 0"
void resetmixer(struct soundcard *sc) {
uint16_t base = sc->baseaddr;
outb(0,base+4); // register 0
outb(0,base+5); // register 0
}
I am using https://pdos.csail.mit.edu/6.828/2011/reading … oundBlaster.pdf as a reference. I have also followed the instructions there to reset the DSP and that works. (Incidentally there are a few oddities, which I put down to me not fully RTFMing when the FM is not available. I also read a yamaha datasheet which didn't tell me very much. I have searched for docs all over the internet for an "official" way to reset the OPL3 on the SB16 and failed. The other major omission in the docs is some sort of timing diagram i.e. how rapidly one can set different OPL3 registers. With modern fast computers this can be rather important. The test computer is a cyrix pentium at 166MHz by the way. But I don't think this is the problem.)
I just tried loading the official sb driver for this particular board with the correct parameters for it. When playing a wave file afterwards, there is no problem with L/R and both channels are equally loud, so the output amplifier paths are all working. (That answers another of your questions.) However, even after loading this driver with the correct parameters the problem is still there using the OPL3. What's more, with all the official drivers loaded I can run one of the standard "playmidi" programs that play a midi file through the OPL3 device. The result is massively weaker sound on one channel than the other, so the problem doesn't appear to be my software at all.
I do not get these problems with other cards I have available to test (an ISAPnP OPL3-SA3 card that needs a driver before I can access the OPL3 ports, an ES1869 PnP virtual card that is on the motherboard)
I just checked the jumpers near the speaker-out port. They seem to be exactly as in your photo. A connection between pins 2 and 3 ( out of 1,2,3,4,5 counting upwards from the bottom ) in the group of 5 nearest the port and the two pins just next to this are connected by another jumper.
To me, unless I missed something, this is pointing to a HW issue between the OPL and the mixer/amplifier...
Richard