== Chocolate Doom hardware OPL support notes == Chocolate Doom is able to play MIDI music as it sounds in Vanilla Doom with an OPL chip (as found in the Yamaha Adlib card, the Sound Blaster and its clones). Most modern computers do not include an OPL chip any more, as CPUs are fast enough to do decent software MIDI synthesis. For this reason, a software OPL emulator is included as a substitute. However, no software emulator sounds exactly like a real (hardware) OPL chip, so if you do have a sound card with hardware OPL, here's how to configure Chocolate Doom to use it. === Sound cards with OPL chips === If you have an ISA sound card, it almost certainly includes an OPL chip. Modern computers don't have slots for ISA cards though, so you must be running a pretty old machine. If you have a PCI sound card, you probably don't have an OPL chip. However, there are some exceptions to this. The following cards are known to include "legacy" OPL support: * C-Media CMI8738 (*) * Forte Media FM801 * Cards based on the Yamaha YMF724 (*) Other cards that apparently have OPL support but have not been tested: * S3 SonicVibes * AZTech PCI 168 (AZT 3328 chipset) * ESS Solo-1 sound cards (ES1938, ES1946, ES1969 chipset) * Conexant Riptide Audio/Modem combo cards * Cards based on the Crystal Semiconductors CS4281 * Cards based on the Avance Logic ALS300 * Cards based on the Avance Logic ALS4000 If you desperately want hardware OPL music, you may be able to find one of these cards for sale cheap on eBay. For the cards listed above with (*) next to them, OPL support is disabled by default and must be explictly enabled in software. If your machine is not a PC, you don't have an OPL chip, and you will have to use the software OPL. === Operating System support === If you're certain that you have a sound card with hardware OPL, you may need to take extra steps to configure your operating system to allow access to it. To do hardware OPL, Chocolate Doom must access the chip directly, which is usually not possible in modern operating systems unless you are running as the superuser (root/Administrator). === Windows 9x === If you're running Windows 95, 98 or Me, there is no need to configure anything. Windows allows direct access to the OPL chip. You can confirm that hardware OPL is working by checking for this message in stdout.txt: OPL_Init: Using driver 'Win32'. === Windows NT (including 2000, XP and later) === If you're running an NT-based system, it is not possible to directly access the OPL chip, even when running as Administrator. Fortunately, it is possible to use the "ioperm.sys" driver developed for Cygwin: http://openwince.sourceforge.net/ioperm/ It is not necessary to have Cygwin installed to use this. Copy the ioperm.sys file into the same directory as the Chocolate Doom executable and it should be automatically loaded. You can confirm that hardware OPL is working by checking for this message in stdout.txt: OPL_Init: Using driver 'Win32'. === Linux === If you are using a system based on the Linux kernel, you can access the OPL chip directly, but you must be running as root. You can confirm that hardware OPL is working, by checking for this message on startup: OPL_Init: Using driver 'Linux'. If you are using one of the PCI cards in the list above with a (*) next to it, you may need to manually enable FM legacy support. Add the following to your /etc/modprobe.conf file to do this: options snd-ymfpci fm_port=0x388 options snd-cmipci fm_port=0x388 === OpenBSD/NetBSD === You must be running as root to access the hardware OPL directly. You can confirm that hadware OPL is working by checking for this message on startup: OPL_Init: Using driver 'OpenBSD'. === FreeBSD === There is no native OPL backend for FreeBSD yet. Sorry! # vim: tw=70