diff --git a/CHANGES b/CHANGES index cb016fe55..731425e6d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ 0.8.4: (Future) Emulation fixes: - GB Audio: Fix initial sweep state + - GB Audio: Fix deserializing audio channels 2 and 3 - GBA Audio: Fix deserializing SOUNDCNT_L - GBA Video: Invalidate map cache when modifying BGCNT (fixes mgba.io/i/1846) Other fixes: diff --git a/src/gb/io.c b/src/gb/io.c index 32d15c470..facaf4bf0 100644 --- a/src/gb/io.c +++ b/src/gb/io.c @@ -707,14 +707,14 @@ void GBIODeserialize(struct GB* gb, const struct GBSerializedState* state) { gb->audio.ch1.control.stop = GBAudioRegisterControlGetStop(gb->memory.io[REG_NR14] << 8); GBIOWrite(gb, REG_NR21, gb->memory.io[REG_NR21]); GBIOWrite(gb, REG_NR22, gb->memory.io[REG_NR22]); - GBIOWrite(gb, REG_NR22, gb->memory.io[REG_NR23]); + GBIOWrite(gb, REG_NR23, gb->memory.io[REG_NR23]); gb->audio.ch2.control.frequency &= 0xFF; gb->audio.ch2.control.frequency |= GBAudioRegisterControlGetFrequency(gb->memory.io[REG_NR24] << 8); gb->audio.ch2.control.stop = GBAudioRegisterControlGetStop(gb->memory.io[REG_NR24] << 8); GBIOWrite(gb, REG_NR30, gb->memory.io[REG_NR30]); GBIOWrite(gb, REG_NR31, gb->memory.io[REG_NR31]); GBIOWrite(gb, REG_NR32, gb->memory.io[REG_NR32]); - GBIOWrite(gb, REG_NR32, gb->memory.io[REG_NR33]); + GBIOWrite(gb, REG_NR33, gb->memory.io[REG_NR33]); gb->audio.ch3.rate &= 0xFF; gb->audio.ch3.rate |= GBAudioRegisterControlGetRate(gb->memory.io[REG_NR34] << 8); gb->audio.ch3.stop = GBAudioRegisterControlGetStop(gb->memory.io[REG_NR34] << 8);