Fix clipping crackles in Super Real Darwin (and possibly other games) when interpolation = 3

This commit is contained in:
dinkc64 2014-04-06 06:49:18 +00:00
parent 312ef8b9e9
commit 514224ab31
2 changed files with 8 additions and 4 deletions

View File

@ -224,8 +224,10 @@ static void YM2203UpdateResample(INT16* pSoundBuf, INT32 nSegmentEnd)
nTotalRightSample = BURN_SND_CLIP(nTotalRightSample); nTotalRightSample = BURN_SND_CLIP(nTotalRightSample);
if (bYM2203AddSignal) { if (bYM2203AddSignal) {
pSoundBuf[i + 0] += nTotalLeftSample; //pSoundBuf[i + 0] += nTotalLeftSample;
pSoundBuf[i + 1] += nTotalRightSample; //pSoundBuf[i + 1] += nTotalRightSample;
pSoundBuf[i + 0] = BURN_SND_CLIP(pSoundBuf[i + 0] + nTotalLeftSample);
pSoundBuf[i + 1] = BURN_SND_CLIP(pSoundBuf[i + 1] + nTotalRightSample);
} else { } else {
pSoundBuf[i + 0] = nTotalLeftSample; pSoundBuf[i + 0] = nTotalLeftSample;
pSoundBuf[i + 1] = nTotalRightSample; pSoundBuf[i + 1] = nTotalRightSample;

View File

@ -395,8 +395,10 @@ static void YM3812UpdateResample(INT16* pSoundBuf, INT32 nSegmentEnd)
nTotalRightSample = BURN_SND_CLIP(nTotalRightSample); nTotalRightSample = BURN_SND_CLIP(nTotalRightSample);
if (bYM3812AddSignal) { if (bYM3812AddSignal) {
pSoundBuf[i + 0] += nTotalLeftSample; //pSoundBuf[i + 0] += nTotalLeftSample;
pSoundBuf[i + 1] += nTotalRightSample; //pSoundBuf[i + 1] += nTotalRightSample;
pSoundBuf[i + 0] = BURN_SND_CLIP(pSoundBuf[i + 0] + nTotalLeftSample);
pSoundBuf[i + 1] = BURN_SND_CLIP(pSoundBuf[i + 1] + nTotalRightSample);
} else { } else {
pSoundBuf[i + 0] = nTotalLeftSample; pSoundBuf[i + 0] = nTotalLeftSample;
pSoundBuf[i + 1] = nTotalRightSample; pSoundBuf[i + 1] = nTotalRightSample;