aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/scumm/player_appleII.cpp12
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;