Redirect Adlib music to actual OPL2 or OPL3 hardware (OPL2LPT, OPL3LPT, RetroWave OPL3)
In addition to the option of emulating FM synthesis in software, it might be nice to have an option to instead redirect FM music to an alternative device with an actual OPL2 or OPL3 synthesizer.
So SBEMU (or sbemu-x) would emulate an Adlib (Gold) or a Sound Blaster Pro 2 card, and would then redirect the FM music to a a device such as:
- OPL2LPT
- OPL3LPT
- RetroWave OPL3
A PCI sound card with actual OPL3 compatibility, such as the ESS Solo-1 (useful when installed in a more modern motherboard through a PCI->PCIe adapter, since the OPLx chip would have to be reached through a non-legacy I/O port, due to a lack of "subtractive decode" support)
Reasons why this might be useful:
- It's cool from a retro perspective, allowing as much use of "original hardware" as possible, using emulation only as a minimal layer where absolutely necessary
- On some older/slower post-ISA systems or retro laptops without integrated sound cards, redirecting to actual hardware would have a noticeably lower overhead than emulating an FM synthesizer in software
- For the purists (even though the Nuked-OPL3 project has already managed to reach a "perfect" level of emulation, albeit at the expense of even higher CPU utilization)
By rearchitecting the sbemu-x project to be modular, it would be possible to add both more emulated devices (for instance Gravis Ultrasound emulation) and support for more "backend drivers", which could either be emulators or redirectors to hardware such as the types listed above.
Thoughts?
Originally posted by @volkertb in https://github.com/sbemu-x/sbemu-x/issues/6
There's a further multi-post discussion there, which I didn't copy here. Maybe @volkertb, @thp, @xan1242, @hjnijlunsing can copy the parts they consider relevant.