James-F wrote:@Jepael
To confirm the theory that all FM data that goes into I/O Base+8 routed automatically to 388 I need you expertise.
Can y […]
Show full quote
@Jepael
To confirm the theory that all FM data that goes into I/O Base+8 routed automatically to 388 I need you expertise.
Can you write a tiny program that sends a FM tone to Base+8 to test this, similar to the opl440.com we already have?
EDIT:
Warcraft 2 setup.exe with the old SB choice confirms that 220+8 will not automatically send to 388, do we need further confirmation?
Can I assume most older games send both to Base+8 and 388 as a safety measure, or just to 388?
Yes the OPL440.COM only writes to 388h/389h. I can change the port to something else if you want, like 228h/229h.
But saying that write to 2x8h goes to 3x8h does not make sense, nor games writing to both ports just as a safety measure.
If you have two SB cards, one at baseport 220h and one at baseport 240h, the other card will decode FM port 228h to its OPL chip, and the other card will decode FM port 248h to its OPL chip. So writing to 228h will only go to one card, and 248h will only go to the other card.
But because both cards decode 388h FM baseport, if a game writes to 388h address, both OPL chips on both SB cards get the same write.
There is a problem though, because two cards are at the 388h address, and thus reading the OPL status port will make both OPL chips to drive their status to ISA bus. Most likely there is some glue logic in between but still. What if a game has a timer running on the 228h card and it triggers status port bits to go high, and the 248h card does not have timers running and status port bits are low. Well, with TTL logic chips, the logic low level is stronger than logic high level. So maybe OPL chip detect routines fail to detect the OPL chip.