diff --git a/CHANGES b/CHANGES index 7ca402699..71f5f4fa8 100644 --- a/CHANGES +++ b/CHANGES @@ -21,6 +21,7 @@ Emulation fixes: - GBA: Fix timing advancing too quickly in rare cases - 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) - GBA BIOS: Implement dummy sound driver calls - GBA BIOS: Improve HLE BIOS timing - GBA BIOS: Fix reloading video registers after reset (fixes mgba.io/i/1808) diff --git a/src/gba/extra/audio-mixer.c b/src/gba/extra/audio-mixer.c index db1448b86..fe9ed6901 100644 --- a/src/gba/extra/audio-mixer.c +++ b/src/gba/extra/audio-mixer.c @@ -289,6 +289,8 @@ void _mp2kStep(struct GBAAudioMixer* mixer) { CircleBufferRead16(&mixer->activeTracks[track].buffer, &value); sample.right += value; } + sample.left = (sample.left * mixer->p->masterVolume) >> 8; + sample.right = (sample.right * mixer->p->masterVolume) >> 8; if (mixer->p->externalMixing) { blip_add_delta(mixer->p->psg.left, mixer->p->clock + i * interval, sample.left - mixer->last.left); blip_add_delta(mixer->p->psg.right, mixer->p->clock + i * interval, sample.right - mixer->last.right);