From 7dc575d01e0ecd086f99c647687337a03485a3d9 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 16 Apr 2016 14:08:30 +0300 Subject: [PATCH] Fixed a bug where audio channel 3 was playing silently instead of being muted. --- Core/apu.c | 3 +++ Core/gb.h | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/apu.c b/Core/apu.c index 49930b4..d49f0c1 100644 --- a/Core/apu.c +++ b/Core/apu.c @@ -361,6 +361,9 @@ void apu_write(GB_gameboy_t *gb, unsigned char reg, unsigned char value) break; case GB_IO_NR32: gb->apu.wave_shift = ((value >> 5) + 3) & 3; + if (gb->apu.wave_shift == 3) { + gb->apu.wave_shift = 4; + } break; case GB_IO_NR43: { diff --git a/Core/gb.h b/Core/gb.h index 9140da8..f4214bf 100644 --- a/Core/gb.h +++ b/Core/gb.h @@ -57,7 +57,6 @@ enum { GB_IO_NR31 = 0x1b, // Channel 3 Sound Length GB_IO_NR32 = 0x1c, // Channel 3 Select output level (R/W) GB_IO_NR33 = 0x1d, // Channel 3 Frequency's lower data (W) - GB_IO_NR34 = 0x1e, // Channel 3 Frequency's higher data (R/W) /* Missing */