Skip to content

YMF271: new OPX core - #158

Merged
ValleyBell merged 1 commit into
ValleyBell:masterfrom
superctr:ymf271-opx
Aug 27, 2026
Merged

YMF271: new OPX core#158
ValleyBell merged 1 commit into
ValleyBell:masterfrom
superctr:ymf271-opx

Conversation

@superctr

Copy link
Copy Markdown
Contributor

Replaces the MAME-derived YMF271 core with a new implementation written from the datasheet and application manual and calibrated against real hardware recordings (Jaleco MS32, Seibu SPI, PS Arcade 95 titles).

  • OPM-style log-sin/exp operator pipeline with detune, rate key scaling, per-slot LFO (rate table 2-6-2, PMS/AMS depths) and the 7 internal waveforms
  • all sync modes (4op / 2x2op / 3op+PCM / PCM) with register broadcast to the voice's slots, F-number latch, End flags cleared on status read
  • AccOn modelled as a saturating accumulator
  • external PCM: 8-bit and packed 12-bit samples, linear interpolation, Fs divider, external key code, looping and End flags
  • timers, external memory window

Compile with YMF271_OPX_DEBUG for a debugging interface (ymf271_opx.h: state snapshots, group solo / slot mute, key-on dump via environment variables).

AI disclosure: Claude Fable 5

Replaces the MAME-derived YMF271 core with a new implementation written
from the datasheet and application manual and calibrated against real
hardware recordings (Jaleco MS32, Seibu SPI, PS Arcade 95 titles).

- OPM-style log-sin/exp operator pipeline with detune, rate key scaling,
  per-slot LFO (rate table 2-6-2, PMS/AMS depths) and the 7 internal
  waveforms
- all sync modes (4op / 2x2op / 3op+PCM / PCM) with register broadcast to
  the voice's slots, F-number latch, End flags cleared on status read
- AccOn modelled as a saturating accumulator
- external PCM: 8-bit and packed 12-bit samples, linear interpolation,
  Fs divider, external key code, looping and End flags
- timers, external memory window

Compile with YMF271_OPX_DEBUG for a debugging interface (ymf271_opx.h:
state snapshots, group solo / slot mute, key-on dump via environment
variables).

AI disclosure: Claude Fable 5
@ValleyBell

Copy link
Copy Markdown
Owner

Huge thanks!

@ValleyBell
ValleyBell merged commit e41ca80 into ValleyBell:master Aug 27, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants