From f7f8688e8d7463081e4b1e17fc7fac6b70c91911 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 24 Aug 2020 01:19:45 -0700 Subject: [PATCH] GB Audio: Fix deserializing while audio was disabled (fixes #1305) --- CHANGES | 1 + src/gb/io.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index e00e67ae6..d49b10060 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ Emulation fixes: - GB Audio: Fix initial sweep state - GB Audio: Fix deserializing audio channels 2 and 3 + - GB Audio: Fix deserializing while audio was disabled (fixes mgba.io/i/1305) - GBA Audio: Fix deserializing SOUNDCNT_L - GBA Audio: Fix stereo in XQ audio - GBA Audio: Fix volume/mute in XQ audio (fixes mgba.io/i/1864) diff --git a/src/gb/io.c b/src/gb/io.c index facaf4bf0..535e0995a 100644 --- a/src/gb/io.c +++ b/src/gb/io.c @@ -697,7 +697,8 @@ void GBIODeserialize(struct GB* gb, const struct GBSerializedState* state) { memcpy(gb->memory.io, state->io, GB_SIZE_IO); gb->memory.ie = state->ie; - if (GBAudioEnableGetEnable(*gb->audio.nr52)) { + gb->audio.enable = GBAudioEnableGetEnable(*gb->audio.nr52); + if (gb->audio.enable) { GBIOWrite(gb, REG_NR10, gb->memory.io[REG_NR10]); GBIOWrite(gb, REG_NR11, gb->memory.io[REG_NR11]); GBIOWrite(gb, REG_NR12, gb->memory.io[REG_NR12]);