Thanks, the latest version works much better with Adlib Tracker and most games that I tried. No more missing notes. Hocus Pocus works with the music set to "Adlib" but not "Sound Blaster" and SBVGM player only works when specifying -opl3388 on the command line which I think is because the Sound Blaster mode writes to the other set of FM ports which are not trapped yet.
Oh and it also works well enough to play Adlib without lagging on a 1.6 ghz Atom netbook running Windows ME. I've had a few crashes trying to get that working though but probably most of that is just WinME being unhappy with existing at all.
stanwebber wrote on Today, 14:11:
installed alpha 2 using the nuked-opl3-fast engine. voplsrv idles just fine until music is actually played in a windows dos prompt, but then it continues to consume resources even after exiting. cpu utilization is roughly 30% on my p3 850mhz. i'll try out the new alpha 3, but maybe this wasn't addressed yet?
you patched sbemul...maybe you can answer this question: why is sbemul restricted to the microsoft gs wavetable sw synth? it's obviously redirecting traffic to the windows midi mapper since changing to something other than the microsoft gs wavetable sw synth renders midi mute until you switch it back. to work around this i currently use vdmsound for win9x which redirects midi at the specified port to any device in the windows midi mapper. vdmsound also has adlib emulation, but is horribly buggy so i disable everything except mpu-401 emulation which is rock solid.
Sbemul was written before DirectMusic so it uses the MidiOut API and it only plays to the Default Device. It also doesn't support timestamps which is why the tempo goes ropey when things lag a bit. I tried to disassemble it with Ghidra but didn't get very far. It's not necessarily true that it will only play to the GS Wavetable Synth; on sound cards with a hardware OPL but using WDM drivers, it will route MIDI to the real OPL (but then it's using the FatMan patch set so doesn't always sound like you would expect, and nothing else can use the hardware OPL).
I was able to get VDMSound for Windows 98 to work with at least the newer EmuAdlib and EmuSbCompat from the 2.10 version and I've put it up here: https://github.com/andrew-hoffman/vdmsound
To make more improvements I would need to disassemble or replace the port-trapping VxD though and that was again my sticking point. I'm not very familiar with x86 Assembly and haven't had much time to learn lately.