Hi, sorry for intrusion. But from what I remember, a pure AdLib clone (OPL2) listenes to port 388h/389h only. Unlike SB1/SB2 clones, which also have OPL2 accessible via their ports in addition.
So this makes me wonder if the OPL3 simply can't be told/tricked to ignore these legacy addresses and use the Sound Blaster ports only.
If I'm not mistaken, a real SB Pro 2 or SB16 card has OPL3 -in addition to center/mono audio at AdLib's legacy ports- at SB base+offset.
So that's 220+something or 240+something, simplified. So if done correctly, in a perfect world, programs expecting a Sound Blaster will try the SB addresses first,
whereas a legacy game will find OPL2 at AdLib's 388h/389h. Anyway.. A lot of "ifs", I know. 😅
Edit: Some typos fixed.
Edit: These are just some thoughts of mine. I don't mean to discourage anyone. I know that such projects are.. challenging.
If there wasn't so much to wire up, I'd also encourage to make that OPL2 pin software-controlled (in theory, not really feasible here).
Say by using a simple address decoder, a DOS utility and a flip-flop. A relay or an optoinsulator+pull up/down resistor would then connect/disconnect the pin.
I know, that's very simplified and must look very naive to an advanced electrican.. 😊
Edit: Or just add a tiny on/off push-type switch at the back off the card that goes to the OPL2 chip and it's corresponding pin on PCB ?
I'm not sure if that's possible, due to the lenght of the wire (picks up noise ?).
Also, a reed relay switch perhaps could be used instead of a normal switch, to avoid the need for drilling a hole ?
- Just attach a little magnet at the back of the MD card to turn on/off the OPL2.
Edit@Zalog I could be wrong, but you don't have to necessarily disable that OPL2. At least on the hardware side, nothing should break because of this.
Except for the CMS logic thing, I see no issue. But since the CMS in on another card, the danger should be low.
Normally, if you have two same chips, OPL2 or OPL3, in the system, they should play in sync to each other.
That's because they are write-only devices (they only listen to their ports, write no data back)..
If you inter-mix OPL2 and OPL3, worst thing that should happen: The game in question goes silly during auto-detect phase.
Or, you will hear noise comming out of one of each chips (the OPL2, likely, since it doesn't support the OPL3 features such as 4-OP mode).
The excepion to this is the seldomly used YMF289. It can also be read back and uses 44,1KHz samplinng..
https://en.wikipedia.org/wiki/Yamaha_YMF262#Yamaha_YMF289
"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//