OPL3.play preview for Atari ST and up


29.12.2023 So, this is last update in this year really ;). USB replay issues were fixed on both PC and Atari (Atari version is still off, some tunes are still replaying, this time, little too fast). Good thing that it is uniform behaviour on Atari target for all devices. Added one tune to test pack and reuploaded recordings of OPL2 tunes and added OPL3 ones. Some portions of text are no longer actual, so they were striked through. I’ve added some notes about new possible developments.

02.01.2024 Added video footage from OPL3LPT connected to Atari Falcon 030. Audio recorded directly from OPL3LPT. OPL3 only tunes by Naruto and Superjet Spade.

As I wrote drivers for several OPL2/3 (YM3812 / YM262-M) devices I’ve realised that I have no possibility to replay any existing OPL2/3 music. There are several formats: VGM, VGZ (zipped VGM), DRO, IMF. During one / two long evenings I’ve managed to port OPL2.play from Maarten Janssen’s ArduinoOPL2 project, which originally supposed to target Arduino / Rasperry Pi devices equipped with Opl3 Duo! or OPL2 Audio Board.

I’ve made more small improvements to it since then and all the opl chip writes are using my library, which uses common interface to talk to different OPL2/3 devices via drivers. We only need to choose device on startup, be it Serdaco’s OPL2LPT, OPL3LPT, Retrowave OPL3 Express, soon OPL3 Duo!/OPL2 Audio Board and dedicated ST FM cartridges (I hope)..

Additionally I’ve unlocked OPL3 data support in VGM player (OPL3 commands weren’t handled) and added ‘fake’ OPL3 chip detection test (,which still imho doesn’t sound right on all my devices). All of those changes resulted in player ‘rebranding’. In general player at the moment is good enough for rough tests, but timing is far from perfect due to using delays in code, not actual timers and there are still unresolved issues like slowness on USB OPL3 Express (present on both Atari / PC (Windows) at least).

I’ve prepared 5 tunes for OPL2 test replay (from Tyrian, Strike Force, Eye of Beholder 2, Dune + one more and recorded audio output. For OPL3 I’ve made second pack (also 5 tunes, mix of Doom, Ultima Underworld II, Hexen). Testing was on PC (Win10 + OPL3 Express), Atari Falcon 030 (TOS 4.04, DFB1x booster + Serdaco’s OPL2LPT, OPL3LPT, RetroWave OPL3 Express via NetUSBee). Serdaco’s OPL2LPT, OPL3LPT needs special adapter on Atari‘s.

Speaking of adapter I’ve found an issue with original design, which prevents OPL3LPT working on plain STs. OPL2/3 switch ground was incorrectly connected. PCB and schematics were updated.

OPL3 Express works with LightingST USB too, but I didn’t record output, because it’s similar/comparable to both PC / F030. Also OPL3LPT/OPL2LPT output is the same on plain STs as on F030. Due to lack of wires on ST OPL3LPT cannot be used in full, but it has one advatage over plain OPL2LPT – writes to it are faster. OPL3 Duo! and OPL2 Audio board records are missing, plainly because drivers for both of devices aren’t yet tested / functional. Audio was recorded directly from devices and wasn’t ‘doctored’ in any way. I’ve originally thought about recording videos, but I couldn’t quickly resolve grabbing video output from Atari Falcon, so screenshots should be enough. All recordings can be grabbed here.

Due to nature of my setup recordings aren’t very clean, but are good enough to illustrate what to expect. Maybe i will do better next time.


Yes … Those LEDs burn out eyes.

OPL2 tunes sample:


OPL2 tunes sample:

OPL3 tunes sample:

OPL3 Express (Atari)

OPL2 tunes sample:

OPL3 tunes sample:

OPL3 Express (PC/Windows)

OPL2 tunes sample:

OPL3 tunes sample:

Atari Falcon 030 with OPL3LPT OPL3/YM262 only demos:


So what next? USB drivers need more attention due to issues on both Atari and PC (as you can hear output isn’t up to par with opl2/3lpt, still I have doubts that something will come out of this). Opl3 Duo!/OPL2 Audio board drivers are in a pipeline (along with two kinds of simple adapters). I will update this post if they will be available. I still have plans to design dedicated OPL2/3 ST cartridge and provide drivers for it. I’m also considering designing/building SPI / non-SPI adapters and drivers for extended STe / Jagpad ports and maybe (?) FireBee support (it has parallel port).

From the software side there’s alot to do, more tests, fix OPL3 support in player (right now OPL3 tunes aren’t sounding properly), player timing code needs to be reworked to offer better playback, improve api for easier YM chips management. Probably it would be cool to provide replay code for existing OPL trackers (Furnace/Adlib/OpenMPT/RAD).

Right away driver interface could be used in game ports, which use Adlib sound. There is also possibility to load instrument banks and map them to MIDI instrument table to replay music (in a way many games have done in the past).

That’s all. See you on next update… Probably next year..

O wpisie