From 38e8327f0d7d48c0133f8b0740895596cdcf6b75 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 30 Apr 2024 13:41:33 -0500 Subject: [PATCH] OPL: fix OPL3-L rate when using YMF262-LLE issue #1802 --- src/engine/platform/opl.cpp | 6 +++++- src/engine/platform/opl.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 679a65462..c0c93a1fb 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -2461,7 +2461,11 @@ void DivPlatformOPL::setFlags(const DivConfig& flags) { switch (flags.getInt("chipType",0)) { case 1: // YMF289B chipFreqBase=32768*684; - rate=chipClock/768; + if (emuCore==2) { + rate=chipClock/684; + } else { + rate=chipClock/768; + } chipRateBase=chipClock/684; downsample=true; totalOutputs=2; // Stereo output only diff --git a/src/engine/platform/opl.h b/src/engine/platform/opl.h index 5f2fd7d28..e76aae834 100644 --- a/src/engine/platform/opl.h +++ b/src/engine/platform/opl.h @@ -82,6 +82,7 @@ class DivPlatformOPL: public DivDispatch { bool lastSH2; bool lastSY; bool waitingBusy; + int downsamplerStep; unsigned char* adpcmBMem; size_t adpcmBMemLen;