Skip to content

Commit

Permalink
More accurate audio mixing in AGB mode, fixes #555
Browse files Browse the repository at this point in the history
  • Loading branch information
LIJI32 committed Dec 15, 2023
1 parent fcf31be commit c7c2d08
Showing 1 changed file with 4 additions and 12 deletions.
16 changes: 4 additions & 12 deletions Core/apu.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,11 @@ static void update_sample(GB_gameboy_t *gb, GB_channel_t index, int8_t value, un
GB_sample_t output;
uint8_t bias = agb_bias_for_channel(gb, index);

if (gb->io_registers[GB_IO_NR51] & (1 << index)) {
output.right = (0xF - value * 2 + bias) * right_volume;
}
else {
output.right = 0xF * right_volume;
}
bool right = gb->io_registers[GB_IO_NR51] & (1 << index);
bool left = gb->io_registers[GB_IO_NR51] & (0x10 << index);

if (gb->io_registers[GB_IO_NR51] & (0x10 << index)) {
output.left = (0xF - value * 2 + bias) * left_volume;
}
else {
output.left = 0xF * left_volume;
}
output.right = (0xF - (right? value : 7) * 2 + bias) * right_volume;
output.left = (0xF - (left? value : 7) * 2 + bias) * left_volume;

if (unlikely(gb->apu_output.channel_muted[index])) {
output.left = output.right = 0;
Expand Down

0 comments on commit c7c2d08

Please sign in to comment.