diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/scumm/player_appleII.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/scumm/player_appleII.cpp b/engines/scumm/player_appleII.cpp index c5f60cd700..b83bb22871 100644 --- a/engines/scumm/player_appleII.cpp +++ b/engines/scumm/player_appleII.cpp @@ -272,19 +272,21 @@ void Player_AppleII::_soundFunc4(byte param0, byte param1, byte param2) { // D1A while (true) { --updateRemain1; - if (updateRemain1 == 0) { - updateRemain1 = updateInterval1; - speakerShiftReg ^= bitmask1; - } - --updateRemain2; + if (updateRemain2 == 0) { updateRemain2 = updateInterval2; + // use only first voice's data (bitmask1) if both voices are triggered if (updateRemain1 != 0) { speakerShiftReg ^= bitmask2; } } + if (updateRemain1 == 0) { + updateRemain1 = updateInterval1; + speakerShiftReg ^= bitmask1; + } + if (speakerShiftReg & 0x1) speakerToggle(); speakerShiftReg >>= 1; |