DOSEmu includes a rudimentary SB emulator known as SBEmu. Under Linux it mainly uses the OSS Lite driver. The emulator is split up into 3 parts. Each part also has a generic driver and an architecure specific driver. The parts are SB, FM and MPU-401 emulations.
Currently it supports a large number of the DSP commands and should be capable of being identified by most programs. If you find one that doesn't detect it the feel free to send me copy of the debug trace (use the Sound and hardware debug flags only.) If you do, please remember to tell me what version of DOSEmu you've got and the application you are trying. (Ideally, send the details and log as a bug report using 'submit-bug-report' as this includes lots of relevant information about your system.).
The FM emulation is currently the least complete. In fact, in all production versions of DOSEmu it consists only of stub code. There is a patch to the 0.67.3.0 (development code) which adds support for the timers on the OPL2 chip.
The MPU-401 emulation is currently provided using a separate daemon called 'midid' (supplied). This has some support for OSS Lite, the Ultra driver and a null driver. Of these the Ultra driver has the most complete support.
Currently only the Linux driver is implemented. A stub NetBSD has been implemented, but, since I don't have a working copy of NetBSD it hasn't been completed (or maintained). An out of date copy of the driver specification is available.
The following patches are currently available:
|
FM Timers & DMA Auto-Init support |
|||
|---|---|---|---|
| Patch Against: | 0.67.3.0 | Included In: | None |
| This patch adds support for the OPL/2 timers. These are used to detect the presence of the OPL chip. All other OPL commands will be ignored. The DMA controller is updated to allow AUTO-INIT mode to function. There are also some fixes to the DSP including honouring the blocksize command (needed for Auto-Init modes). | |||