[Scummvm-git-logs] scummvm master -> 1f1a013549b2efaae33487a29ebf152e1fc35913
sev-
noreply at scummvm.org
Sun Nov 5 21:10:55 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1f1a013549 SCUMM: Change heuristic for identifying Indy 3 Mac sound (bug #14663)
Commit: 1f1a013549b2efaae33487a29ebf152e1fc35913
https://github.com/scummvm/scummvm/commit/1f1a013549b2efaae33487a29ebf152e1fc35913
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2023-11-05T22:10:52+01:00
Commit Message:
SCUMM: Change heuristic for identifying Indy 3 Mac sound (bug #14663)
Instead of trying to identify it by looking for a value expected to be
the same for all sound effects (which turns out to not be as reliable as
hoped), look for a value that appears to be the same in all music.
This fixes a missing sound effect when pouring liquids, e.g. when
filling the beer stein in the castle Brunwald kitchen, or pouring liquid
on the Venice catacomb torch to loosen it.
Changed paths:
engines/scumm/sound.cpp
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 9fc23198c51..94e4215f756 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -529,13 +529,18 @@ void Sound::triggerSound(int soundID) {
warning("Scumm::Sound::triggerSound: encountered audio resource with chunk type 'SOUN' and sound type %d", type);
}
}
- else if ((_vm->_game.platform == Common::kPlatformMacintosh) && (_vm->_game.id == GID_INDY3) && READ_BE_UINT16(ptr + 8) == 0x1C) {
+ else if ((_vm->_game.platform == Common::kPlatformMacintosh) && (_vm->_game.id == GID_INDY3) && ptr[4] != 0x7F) {
// Sound format as used in Indy3 EGA Mac.
// It seems to be closely related to the Amiga format, see player_v3a.cpp
+ //
+ // We assume that if byte 5 is 0x7F, it's music because that's
+ // where the priority of the track is stored, and it's always
+ // that value. See player_v2.cpp
+ //
// The following is known:
// offset 0, 16 LE: total size
// offset 2-7: ?
- // offset 8, 16BE: offset to sound data (0x1C = 28 -> header size 28?)
+ // offset 8, 16BE: offset to sound data (usually 0x1C = 28 -> header size 28?)
// offset 10-11: ? another offset, maybe related to looping?
// offset 12, 16BE: size of sound data
// offset 14-15: ? often the same as 12-13: maybe loop size/end?
More information about the Scummvm-git-logs
mailing list