ChipsSound & audioFM synthesis › Yamaha YM3812 (OPL2)

Yamaha YM3812 (OPL2)

1985

Yamaha's OPL2 FM synthesizer, the sound engine of the AdLib and early Sound Blaster PC audio cards.

Reference & documentation

External technical references for programming Yamaha YM3812 (OPL2) and for writing emulators.

ResourceTypeNotes
Yamaha YM3812 OPL2 Application Manual (LSI-2438124) ↗DatasheetPrimary Yamaha manual: registers, block diagrams, timing
Yamaha YM3812 datasheet (ardent-tool) ↗DatasheetAlternate scanned YM3812 datasheet copy
AdLib/Sound Blaster FM chips: timers and interrupts ↗Interrupt listTimer 1/2 registers and IRQ status byte
OPL chip register reference - Shikadi ModdingWiki ↗Memory mapFull register/operator-to-channel mapping tables
Yamaha YM3812 Datasheet (PDF) ↗PinoutPin assignments and electrical timing specs
YM3812 - VGMPF Wiki ↗PinoutPinout diagram, manual PDF, die photos
Programming the AdLib/Sound Blaster FM Music Chips (Jeffrey S. Lee) ↗ProgrammingCanonical OPL2 register-by-register programming bible
ArduinoOPL2 In-Depth OPL2 Guide ↗ProgrammingDetailed FM operator and register programming
Testing YM3812 register-write timing on the C64 ↗ReferenceMeasured address/data write cycle timing analysis
YM3812 Register Basics - Things Made Simple ↗ReferenceRegister walkthrough with printable bit charts
ymfm - Yamaha FM sound cores (OPM) ↗SourceBSD-licensed MAME OPM core, readable C++14
nukeykt YM3812-LLE ↗SourceTransistor-level emulator from YM3812 die shot