all repos — mgba @ 84f93c39b94fa37683125d8eb80dea61e6058869

mGBA Game Boy Advance Emulator

GB Audio: Fix deserializing audio channels 2 and 3
Vicki Pfau vi@endrift.com
Mon, 10 Aug 2020 22:06:43 -0700
commit

84f93c39b94fa37683125d8eb80dea61e6058869

parent

c38ee0ff09dd4b8e568f91ca5a087d25523b811e

2 files changed, 3 insertions(+), 2 deletions(-)

jump to
M CHANGESCHANGES

@@ -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:
M src/gb/io.csrc/gb/io.c

@@ -707,14 +707,14 @@ gb->audio.ch1.control.frequency |= GBAudioRegisterControlGetFrequency(gb->memory.io[REG_NR14] << 8);

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);