First post, by sdz
It does exactly what the title says, Virtual OPL3 FM for Windows 98/ME.
How it works:
VOPL3.VXD (ring-0 port trap -> ring buffer) -> VOPLSRV.EXE (drains the buffer, Nuked OPL3 -> waveOut -> KMIXER). It works alongside Microsoft's SBEMUL.SYS.
Installation:
run INSTALL.BAT. It does the following:
-makes a backup of SBEMUL.SYS, patches SBEMUL.SYS to stop binding to 388-38B ports and bind to 2A0-2A3 instead (hopefully these are unused). This is needed because SBEMUL only grabs those ports to fake AdLib detection, without doing any sort of FM emulation. If those ports are claimed before SBEMUL, it breaks digital audio as well.
-copies VOPL3.VXD to C:\WINDOWS\SYSTEM
-copies VOPLSRV.EXE to C:\VOPL3
-registers the VOPL3.VXD and VOPLSRV.EXE to they're loaded/start automatically at boot/login.
How to use:
After installation, set the game to use AdLib for music and Sound Blaster for sound effects. You will get OPL3 music via VOPL3 and digital sound effects via SBEMUL.
Github:
Soon, need to do some cleanup first.
Credits:
-nukeykt's Nuked-OPL3 https://github.com/nukeykt/Nuked-OPL3 - the actual OPL3 emulator inside VOPLSRV.EXE
-JHRobotics's vdmdisp9x https://github.com/JHRobotics/vmdisp9x - VxD glue (vmm.h io32.h code32.h) and for figuring out how to build an actually working VxD
-onethirdxcubed's WDMHDA https://github.com/andrew-hoffman/WDMHDA/releases -without which this project wouldn’t have made sense to me
-Anthropic's Fable 5 - helped a lot
This is very much an alpha release, so any testing is appreciated.
Currently tested on:
Dell Precision M4800 with coreboot/SeaBIOS, running Windows 98 SE with WDMHDA
VirtualBox VM running Windows 98 SE with WDMHDA
So far, it has only been tested with HDA + WDMHDA, but it is not intended to be limited to that setup.