I just needed a break from chasing the endless Win 3.1 protected-mode bugs, so I started a side project focused on music playback: an experimental OPL synthesizer that I can eventually plug directly into Daveemu’s SoundBlaster/AdLib paths.
daveemu_opl_play is currently a standalone executable, and I kept it intentionally separate for now. It already supports drag-and-drop MIDI playback (.mid / .midi) and has two rendering modes:
classic (original OPL-style synthesis path)enhanced_synth (richer MIDI-style path built for quality and expressiveness)The classic mode is the straightforward baseline:
The enhanced mode is intentionally heavier:
In practice it means I can push the tone much further, but at a CPU cost. On my i9-10850K it can do stable live playback today, which is promising, but I still need profiling and optimization before I can embed this path directly into Daveemu.
If you want to hear it, the newest demo is on my channel:
https://youtu.be/Qz9nQNrje5A
This is a command-line demo path, so no dedicated screenshot is attached for this one. Technically, this is also where I am experimenting with math-heavy operators for quality:
sin, pow, exp, exp2, and related phase-domain operations for stable tone shapingI am deliberately not exposing implementation internals here, but this gives you the idea: richer math, richer transitions, and a much larger palette for FM-like character at the price of more CPU.
While I was there, I still spent the last days on the Win 3.1 protected-mode TTF issue in WRITE.EXE. For now, there is still no visible progress.
Current notes from the investigation show that:
WIN WRITE C:\WINDOWS\README.WRI and there is no fix yetThis investigation is detailed but unresolved, and I probably need to pause it for a while and come back with fresh perspective.
I also fixed a few annoying regressions in the meanwhile:
DEFRAG.EXE caused corrupted screen output

There is still a long list of smaller and bigger tasks in Daveemu. I’m continuing in order:
Thanks for sticking with this project with me. It has been a marathon, and I’ll need a lot of patience and CPU time.