diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 2c005ee90..d84265530 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -25,7 +25,7 @@ #define rWrite(a,v) if (!skipRegisterWrites) {pendingWrites[a]=v;} #define immWrite(a,v) if (!skipRegisterWrites) {writes.emplace(a,v); if (dumpWrites) {addWrite(a,v);} } -#define CHIP_FREQBASE 9440540 +#define CHIP_FREQBASE chipFreqBase // N = invalid #define N 255 @@ -456,9 +456,11 @@ int DivPlatformOPL::dispatch(DivCommand c) { chan[c.chan].outVol=chan[c.chan].vol; } if (chan[c.chan].insChanged) { - int ops=(slots[3][c.chan]!=255 && ins->fm.ops==4)?4:2; + int ops=(slots[3][c.chan]!=255 && ins->fm.ops==4 && oplType==3)?4:2; for (int i=0; i