# HG changeset patch # User Michael Pavone # Date 1455959478 28800 # Node ID f1a8124ad881bdf1c0b37b849087222b58718aa0 # Parent 01fb50390b27db632770cca91f0f433a6eb9cf5a Fix register to operator mapping for channel 3 special mode and actually get it right this time diff -r 01fb50390b27 -r f1a8124ad881 ym2612.c --- a/ym2612.c Thu Feb 18 21:28:33 2016 -0800 +++ b/ym2612.c Sat Feb 20 01:11:18 2016 -0800 @@ -595,7 +595,10 @@ uint32_t inc, detune; if (chan_num == 2 && context->ch3_mode && (op < (2*4 + 3))) { //supplemental fnum registers are in a different order than normal slot paramters - int index = (op-2*4) ^ 2; + int index = op-2*4; + if (index < 2) { + index ^= 1; + } inc = context->ch3_supp[index].fnum; if (channel->pms) { inc = inc * 2 + lfo_pm_table[(inc & 0x7F0) * 16 + channel->pms + context->lfo_pm_step];