From 6d53c44422fad289cef0ed67bbebb25433c4e8bf Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 22 Jun 2019 23:15:43 -0700 Subject: [PATCH] GB Audio: Sample inactive channels (fixes #1455, fixes #1456) --- CHANGES | 1 + src/gb/audio.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 0fed364fe..5b4a414a9 100644 --- a/CHANGES +++ b/CHANGES @@ -26,6 +26,7 @@ Emulation fixes: - GBA Video: Fix wrapped sprite mosaic clamping (fixes mgba.io/i/1432) - GBA Memory: Fix STM to VRAM (fixes mgba.io/i/1430) - GB Audio: Only reset channel 3 sample in DMG mode + - GB Audio: Sample inactive channels (fixes mgba.io/i/1455, mgba.io/i/1456) Other fixes: - Qt: Fix some Qt display driver race conditions - Core: Improved lockstep driver reliability (Le Hoang Quyen) diff --git a/src/gb/audio.c b/src/gb/audio.c index 01e66802b..633739c00 100644 --- a/src/gb/audio.c +++ b/src/gb/audio.c @@ -598,7 +598,7 @@ void GBAudioSamplePSG(struct GBAudio* audio, int16_t* left, int16_t* right) { int sampleLeft = dcOffset; int sampleRight = dcOffset; - if (audio->playingCh1 && !audio->forceDisableCh[0]) { + if (!audio->forceDisableCh[0]) { if (audio->ch1Left) { sampleLeft += audio->ch1.sample; } @@ -608,7 +608,7 @@ void GBAudioSamplePSG(struct GBAudio* audio, int16_t* left, int16_t* right) { } } - if (audio->playingCh2 && !audio->forceDisableCh[1]) { + if (!audio->forceDisableCh[1]) { if (audio->ch2Left) { sampleLeft += audio->ch2.sample; } @@ -618,7 +618,7 @@ void GBAudioSamplePSG(struct GBAudio* audio, int16_t* left, int16_t* right) { } } - if (audio->playingCh3 && !audio->forceDisableCh[2]) { + if (!audio->forceDisableCh[2]) { if (audio->ch3Left) { sampleLeft += audio->ch3.sample; } @@ -628,7 +628,7 @@ void GBAudioSamplePSG(struct GBAudio* audio, int16_t* left, int16_t* right) { } } - if (audio->playingCh4 && !audio->forceDisableCh[3]) { + if (!audio->forceDisableCh[3]) { int8_t sample = _coalesceNoiseChannel(&audio->ch4); if (audio->ch4Left) { sampleLeft += sample;