Skip to content

Instantly share code, notes, and snippets.

@luke10x
Last active March 11, 2026 16:11
Show Gist options
  • Select an option

  • Save luke10x/38ec28eee6c580ec5ec4caa0c64736e6 to your computer and use it in GitHub Desktop.

Select an option

Save luke10x/38ec28eee6c580ec5ec4caa0c64736e6 to your computer and use it in GitHub Desktop.
Summary of the YM2612 emulation thread

Below is the second document you requested. It is written to sit next to thread.md and focuses on the main personalities and their roles in the thread.

I emphasised who drove discoveries, who debated implementation details, and who mostly asked questions. This makes it easier later to cross-link discussions when building research notes.

thread-users.md

Thread: “New Documentation: An authoritative reference on the YM2612” Source: https://gendev.spritesmind.net/forum/viewtopic.php?t=386

This document lists notable participants in the thread and summarises their technical contributions, expertise areas, and typical behaviour within the discussion.

The thread evolved into a collaborative reverse-engineering effort, and several participants became well-known figures in Mega Drive hardware research and emulator development.

Major contributors

Nemesis

Role: Thread creator and primary researcher

Expertise • Sega Mega Drive hardware • YM2612 reverse engineering • emulator accuracy • low-level chip behaviour

Key contributions • Posted the original Yamaha documentation that started the thread. • Led the translation and interpretation effort. • Performed hardware testing and reverse engineering of the YM2612. • Provided detailed explanations of: • FM operator behaviour • internal timing • register behaviour • algorithm routing • His research is widely referenced by emulator developers. 

Characteristics • Highly technical posts. • Long analytical explanations. • Often corrected misconceptions about FM synthesis and chip behaviour.

Influence Arguably the most important figure in the thread. Many later YM2612 emulator cores and research papers reference his work.

TmEE

Role: Hardware enthusiast and practical experimenter

Expertise • Mega Drive sound drivers • YM2612 programming • hardware experiments

Key contributions • Implemented custom sound engines for the Mega Drive. • Shared experiments with YM2612 programming and music playback. • Provided insight into real-world behaviour when writing Z80 drivers.

Characteristics • Informal and energetic tone. • Often described pushing the chip to extremes. • Focused on practical programming rather than theory.

Influence Important contributor for driver writers and musicians working directly with the chip.

Stef

Role: SGDK developer and experienced Mega Drive programmer

Expertise • Genesis programming • Z80 / sound driver architecture • toolchain design

Key contributions • Provided explanations related to: • sound driver integration • programming practices • Genesis development workflow. • Often clarified how YM2612 behaviour interacts with game engines and development tools.

Characteristics • Concise and pragmatic responses. • Focused on usable engineering guidance rather than theoretical discussion.

Charles MacDonald

Role: Hardware documentation authority

Expertise • Sega console hardware • Mega Drive system architecture • documentation

Key contributions • Provided historical hardware insights. • Clarified documentation inconsistencies. • Shared references to other technical documents.

Characteristics • Precise and authoritative tone. • Frequently cited external documentation sources.

Eke-Eke

Role: Emulator developer

Expertise • Genesis Plus GX emulator • hardware accuracy • console audio/video emulation

Key contributions • Participated in discussions on: • correct chip behaviour • emulator accuracy • timing details.

Characteristics • Focused on how discoveries affect emulator implementations.

Secondary contributors

These users contributed technical information but were less central to the thread.

Shiru

Role: Retro sound developer

Expertise • chiptune tools • tracker software • retro audio programming

Contributions • Provided insight from the perspective of music tool development.

KanedaFr

Role: Driver and tracker developer

Expertise • Z80 sound drivers • Mega Drive music trackers

Contributions • Discussed sound driver implementation details. • Shared knowledge about YM2610 vs YM2612 differences.

vbt

Role: Community participant and developer

Expertise • general Mega Drive development

Contributions • Provided technical discussion and references. • Helped connect topics across multiple threads.

Minor participants

The thread also includes many users who: • asked clarification questions • requested explanations of FM synthesis • discussed emulator behaviour • shared test results

These participants helped steer the conversation but did not drive major discoveries.

Contributor archetypes in the thread

Over time, participants fell into several informal roles:

Reverse engineers • Nemesis • later contributors analysing chip behaviour

Focus: uncovering undocumented behaviour.

Emulator developers • Eke-Eke • others implementing YM2612 cores

Focus: translating research into accurate emulation.

Hardware experimenters • TmEE

Focus: testing behaviour on real Mega Drive hardware.

Toolchain developers • Stef • tracker developers

Focus: making practical tools for musicians and game developers.

Influence outside the thread

Research originating in this discussion influenced: • emulator projects • FPGA implementations • YM2612 documentation • Mega Drive development tools

Many modern YM2612 implementations reference findings from this community research. 

If you want, I can also generate a third file that becomes extremely useful when studying this thread:

thread-topics.md

It would catalogue things like: • operator routing debates • envelope generator discoveries • DAC distortion analysis • CSM mode behaviour • timer formulas

That thread contains about 20 separate technical sub-topics, and mapping them makes the whole thing far easier to navigate.

Below is a structured Markdown document (thread.md) summarising the key events and technical developments in the long SpritesMind thread. I focused on the timeline of discoveries, debates, and technical clarifications, because that thread evolved over years and effectively became a community reverse-engineering project of the YM2612. Later you can build thread-users.md with cross-references to usernames.

thread.md

Thread: “New Documentation: An authoritative reference on the YM2612” Source: https://gendev.spritesmind.net/forum/viewtopic.php?t=386

This thread became one of the central technical references for the Sega Mega Drive / Genesis YM2612 FM chip. Over time it grew into a collaborative reverse-engineering effort, correcting Sega’s documentation and establishing practical behaviour for emulators and hardware programmers. 

Timeline of notable events

2008 — Thread creation and discovery of Yamaha documentation

Event: A previously unavailable 67-page Yamaha programming/technical reference for an OPN-family chip is shared publicly for the first time.

Details • The document is in Japanese. • It is technically for YM2608, but closely related to the YM2612 used in the Mega Drive. • Participants begin comparing chip variants in the OPN family: • YM2203 (OPN) • YM2608 (OPNA) • YM2610 (OPNB) • YM2612 (OPN2) • YM3438 (CMOS version of YM2612) • YMF288 (OPN3) 

Impact • Kickstarts a long effort to translate, interpret, and verify the manual. • Establishes the thread as a research hub for YM2612 behaviour.

2008–2009 — Translation and interpretation phase

Event: Community members begin analysing the Japanese document and extracting usable information.

Focus areas • FM synthesis operator structure. • Envelope behaviour. • Register functions. • Differences between OPN family chips.

Impact • The thread becomes a living supplement to official documentation, which many users note is incomplete or inaccurate.

2009–2010 — Corrections to Sega documentation

Event: Users identify errors in Sega’s official YM2612 documentation.

Example findings • Operator algorithm diagrams are incorrect in Sega’s manuals. • Operators 2 and 3 are swapped in some diagrams. • Timer formulas and frequency calculations are inaccurate.

Example correction noted in later summaries of the research: • Timer A and B timing formulas derived from real hardware tests and code examples. 

Impact • The thread becomes the primary reference for emulator developers.

2010–2011 — Emulator accuracy discussions

Event: Developers of emulators and tools reference the thread when implementing YM2612 cores.

Topics discussed • Accuracy of different FM cores: • Gens • MAME • VOPM • TFM Maker • Advice to design sound engines around register-level access.

Impact • The thread becomes widely referenced in emulator projects and research discussions. 

2011–2013 — Hardware behaviour exploration

Event: Discussion expands beyond documentation to real-chip quirks and electrical behaviour.

Key topics include: • DAC behaviour and distortion characteristics. • Internal table sizes (log-sin and attenuation tables). • Envelope generator edge cases. • CSM (Composite Sine Mode). • SSG-EG behaviour.

These insights are used to improve emulators and music tools.

2013–2015 — Reverse-engineering details consolidated

Event: Participants aggregate discoveries into clearer explanations.

Examples: • Internal bit widths of lookup tables. • Envelope timing behaviour. • Detailed register interactions.

These findings help emulator developers match real hardware sound more closely.

2016 onward — Canonical reference status

Event: The thread becomes widely cited by: • emulator developers • sound chip researchers • Mega Drive homebrew developers • documentation projects

Modern YM2612 research articles and emulator guides cite this thread as a primary source of low-level technical details. 

Major technical themes in the thread

  1. Reverse-engineering the YM2612

Participants collectively: • tested real hardware • compared emulator behaviour • corrected official documentation

  1. OPN chip family comparison

Frequent comparisons between:

Chip Notes YM2203 Early OPN chip YM2608 Extended OPN (ADPCM etc.) YM2610 Used in Neo-Geo YM2612 Mega Drive chip YM3438 CMOS YM2612 variant YMF288 Later derivative

These comparisons help infer missing behaviour in YM2612.

  1. Emulator implementation guidance

The thread provides insight for developers writing YM2612 cores: • register interface • timer behaviour • DAC quirks • operator routing • envelope implementation

  1. Correction of Sega technical manuals

One of the thread’s major outcomes is identifying numerous inaccuracies in official Sega docs, including: • operator algorithms • timer formulas • incomplete behaviour descriptions.

Why the thread matters

This thread effectively became the de facto technical reference for the YM2612, widely cited by emulator authors and Mega Drive developers. 

It combines: • translated Yamaha documentation • reverse engineering • hardware testing • emulator development experience.

If you want, I can also next produce thread-users.md containing: • profiles of the most influential participants (Nemesis, TmEE, Stef, Shiru, etc.) • their expertise areas (emulation, FM synthesis, hardware analysis) • characteristic posting styles and contributions • crosslinks back into thread.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment