From 2923eb62653d483c9a4d892743d27b780637fbe3 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 25 Dec 2022 05:04:32 -0500 Subject: [PATCH] SegaPCM: fix per-chan osc when muted --- src/engine/platform/segapcm.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index 30d3b804..ccc9f48b 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -45,6 +45,8 @@ void DivPlatformSegaPCM::acquire(short* bufL, short* bufR, size_t start, size_t oscBuf[i]->data[oscBuf[i]->needle++]=s->data8[chan[i].pcm.pos>>8]*(chan[i].chVolL+chan[i].chVolR)>>1; pcmL+=(s->data8[chan[i].pcm.pos>>8]*chan[i].chVolL); pcmR+=(s->data8[chan[i].pcm.pos>>8]*chan[i].chVolR); + } else { + oscBuf[i]->data[oscBuf[i]->needle++]=0; } chan[i].pcm.pos+=chan[i].pcm.freq; if (s->isLoopable() && chan[i].pcm.pos>=((unsigned int)s->loopEnd<<8)) {