Reverse Engineered Yamaha OPL3 FM Synthesizer in an FPGA playing Descent
July 27, 2015 · Posted in Uncategorized
The OPL3 was a popular FM synthesis chip used in most PCs in the 90s. See https://en.wikipedia.org/wiki/Yamaha_…
OPL3 FPGA code written entirely in SystemVerilog RTL. Music is played back via a port of imfplay from DOS to the ARM Cortex CPU on the Zynq FPGA (running bare metal C++). Music is stored in DRO format captured by running the original games in DOSBox (its essentially register dumps of the OPL3 every 1ms). This particular song is from Doom level 1.
See my github page at:
https://github.com/gtaylormb/opl3_fpga
The 4 LEDs are connected to the first 4 (of 18) channel key on registers.

