diff options
-rw-r--r-- | scumm/sound.cpp | 20 | ||||
-rw-r--r-- | simon/vga.cpp | 6 |
2 files changed, 20 insertions, 6 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp index 34cbd2b045..096a8310f1 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -486,6 +486,26 @@ void Sound::playSound(int soundID) { return; } + if ((_scumm->_features & GF_AMIGA) && (_scumm->_version == 3)) + { + // experimental support for Indy3 Amiga sound effects + if (READ_BE_UINT16(ptr + 26) == 0x00FF) // looped sound + // TODO: support looping sounds + // ptr + 14 seems to be looping duration + flags = 0; + else if (READ_BE_UINT16(ptr + 26) == 0x0001) // nonlooped sound + flags = 0; // + else if (READ_BE_UINT16(ptr + 26) == 0x0101) // background music + // TODO: support music + return; + else + debug(3,"Unknown sound type detected!"); + size = READ_BE_UINT16(ptr + 12); + rate = 11000; + _scumm->_mixer->playRaw(NULL, ptr + 28, size, rate, flags, soundID); + return; + } + if (_scumm->_features & GF_OLD_BUNDLE) { //TODO: support maniac v1 sounds if ((_scumm->_version == 1) && (_scumm->_gameId == GID_MANIAC)) diff --git a/simon/vga.cpp b/simon/vga.cpp index 4c58c164e9..a828273ed5 100644 --- a/simon/vga.cpp +++ b/simon/vga.cpp @@ -1122,12 +1122,6 @@ void SimonEngine::vc_23_set_sprite_priority() { uint16 pri = vc_read_next_word(); VgaSprite bak; - if (vsp->id == 0) { - if (_debugMode) - warning("tried to set pri for unknown id %d", _vga_cur_sprite_id); - return; - } - memcpy(&bak, vsp, sizeof(bak)); bak.priority = pri; bak.unk6 |= 0x8000; |