aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/sound.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 9a7f3e4b49..3ea0aea0be 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -1415,6 +1415,9 @@ void Sound::playBundleSound(char *sound, PlayingSoundHandle *handle) {
if (bits == 8) {
_scumm->_mixer->playRaw(handle, final, size, rate, SoundMixer::FLAG_UNSIGNED | SoundMixer::FLAG_AUTOFREE);
} else if (bits == 16) {
+ // FIXME: For some weird reasons, sometimes we get an odd size, even though
+ // the data is supposed to be in 16 bit format... that makes no sense...
+ size &= ~1;
_scumm->_mixer->playRaw(handle, final, size, rate, SoundMixer::FLAG_16BITS | SoundMixer::FLAG_AUTOFREE);
} else {
warning("Sound::playBundleSound() to do more options to playRaw...");