From 1bc8bc87461dbcfa71c192c193061da9a97c2586 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 7 Mar 2022 23:23:18 -0500 Subject: [PATCH] OPL: proper frequency on OPL1/2 --- src/engine/platform/opl.cpp | 10 +++++++--- src/engine/platform/opl.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 2c005ee9..d8426553 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