diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index fdaa7ad2b..f048af2c0 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -2533,7 +2533,8 @@ int DivPlatformOPL::dispatch(DivCommand c) { break; case DIV_CMD_PRE_PORTA: if (!chan[c.chan].inPorta && c.value && !parent->song.brokenPortaArp && chan[c.chan].std.arp.will && !NEW_ARP_STRAT) { - chan[c.chan].baseFreq=(c.chan==adpcmChan)?(NOTE_ADPCMB(chan[c.chan].note)):(NOTE_FREQUENCY(chan[c.chan].note)); + chan[c.chan].baseFreq=(PCM_CHECK(c.chan))?NOTE_PCM(chan[c.chan].note): + ((c.chan==adpcmChan)?(NOTE_ADPCMB(chan[c.chan].note)):(NOTE_FREQUENCY(chan[c.chan].note))); } chan[c.chan].inPorta=c.value; break;