aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/resource.cpp')
-rw-r--r--engines/sci/resource.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 9a4a49a01c..f6121bd951 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -1942,7 +1942,15 @@ int SoundResource::getChannelFilterMask(int hardwareMask) {
switch (_soundVersion) {
case SCI_VERSION_0_EARLY:
- channelMask = 0xFFFF;
+ data++; // Skip over digital sample flag
+ for (int channelNr = 0; channelNr < 16; channelNr++) {
+ channelMask = channelMask >> 1;
+ if (*data & hardwareMask) {
+ // this Channel is supposed to get played for hardware
+ channelMask |= 0x8000;
+ }
+ data++;
+ }
break;
case SCI_VERSION_0_LATE: