diff options
Diffstat (limited to 'engines/sci/resource.cpp')
-rw-r--r-- | engines/sci/resource.cpp | 10 |
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: |