From 32cdd81919ba0aee534210791907ba999c79e9bf Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 22 Sep 2022 00:01:23 -0500 Subject: [PATCH] OPL: fix chan osc in 4-op mode --- src/engine/platform/opl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 2dd6d1dcf..e1ad92f5f 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1421,6 +1421,15 @@ DivMacroInt* DivPlatformOPL::getChanMacroInt(int ch) { DivDispatchOscBuffer* DivPlatformOPL::getOscBuffer(int ch) { if (ch>=18) return NULL; + if (oplType==3 && ch<12) { + if (chan[ch&(~1)].fourOp) { + if (ch&1) { + return oscBuf[ch-1]; + } else { + return oscBuf[ch+1]; + } + } + } return oscBuf[ch]; }