From 659a16a489c7f133a16fc56d3dbff25b20dc913d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 5 Feb 2025 04:10:16 -0500 Subject: [PATCH] C64: PCM chan osc, part 2 issue #2349 --- src/engine/dispatchContainer.cpp | 2 ++ src/engine/platform/c64.cpp | 12 ++++++++++-- src/engine/platform/c64.h | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/engine/dispatchContainer.cpp b/src/engine/dispatchContainer.cpp index e4e21da69..fa39aec22 100644 --- a/src/engine/dispatchContainer.cpp +++ b/src/engine/dispatchContainer.cpp @@ -339,6 +339,7 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do ((DivPlatformC64*)dispatch)->setCoreQuality(eng->getConfInt("dsidQuality",3)); } ((DivPlatformC64*)dispatch)->setChipModel(true); + ((DivPlatformC64*)dispatch)->setSoftPCM(sys==DIV_SYSTEM_C64_PCM); break; case DIV_SYSTEM_C64_8580: dispatch=new DivPlatformC64; @@ -350,6 +351,7 @@ void DivDispatchContainer::init(DivSystem sys, DivEngine* eng, int chanCount, do ((DivPlatformC64*)dispatch)->setCoreQuality(eng->getConfInt("dsidQuality",3)); } ((DivPlatformC64*)dispatch)->setChipModel(false); + ((DivPlatformC64*)dispatch)->setSoftPCM(false); break; case DIV_SYSTEM_YM2151: dispatch=new DivPlatformArcade; diff --git a/src/engine/platform/c64.cpp b/src/engine/platform/c64.cpp index 2c0205501..4ea8b6e62 100644 --- a/src/engine/platform/c64.cpp +++ b/src/engine/platform/c64.cpp @@ -69,7 +69,9 @@ short DivPlatformC64::runFakeFilter(unsigned char ch, int in) { if (!(regPool[0x17]&(1<