aboutsummaryrefslogtreecommitdiff
path: root/engines/cine
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cine')
-rw-r--r--engines/cine/sound.cpp7
-rw-r--r--engines/cine/unpack.cpp2
2 files changed, 7 insertions, 2 deletions
diff --git a/engines/cine/sound.cpp b/engines/cine/sound.cpp
index 73add512e8..00b7d27663 100644
--- a/engines/cine/sound.cpp
+++ b/engines/cine/sound.cpp
@@ -798,12 +798,17 @@ void PaulaSound::loadMusic(const char *name) {
void PaulaSound::playMusic() {
_mixer->stopHandle(_moduleHandle);
if (_moduleStream) {
- _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_moduleHandle, _moduleStream);
+ _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_moduleHandle, _moduleStream, -1, 255, 0, false);
}
}
void PaulaSound::stopMusic() {
_mixer->stopHandle(_moduleHandle);
+
+ _mixer->pauseAll(true);
+
+ for(int i = 0;i < NUM_CHANNELS;i++)
+ _soundChannelsTable[i].data = 0;
}
void PaulaSound::fadeOutMusic() {
diff --git a/engines/cine/unpack.cpp b/engines/cine/unpack.cpp
index 254b09313e..4409af4b07 100644
--- a/engines/cine/unpack.cpp
+++ b/engines/cine/unpack.cpp
@@ -116,7 +116,7 @@ bool delphineUnpack(byte *dst, const byte *src, int len) {
unpackHelper2(&uc, 12);
}
}
- } while (uc.datasize > 0);
+ } while (uc.datasize > 0 && uc.src >= src - 4);
return uc.crc == 0;
}