From 70f512003e590ce382807715b1cf42d6bc413b63 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 16 Sep 2025 03:05:27 -0500 Subject: [PATCH] OPN: fix wrong getGain in ExtCh --- src/engine/platform/fmshared_OPN.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/engine/platform/fmshared_OPN.h b/src/engine/platform/fmshared_OPN.h index cd1bef62f..2b301dd6a 100644 --- a/src/engine/platform/fmshared_OPN.h +++ b/src/engine/platform/fmshared_OPN.h @@ -214,6 +214,13 @@ class DivPlatformOPN: public DivPlatformFMBase { return DivPlatformFMBase::mapVelocity(ch,vel); } virtual float getGain(int ch, int vol) { + if (extSys) { + if (ch>=extChanOffs+4) { + ch-=4; + } else if (ch>=extChanOffs) { + ch=extChanOffs; + } + } if (vol==0) return 0; if (ch==csmChan) return 1; if (ch==adpcmBChanOffs) return (float)vol/255.0;