[Scummvm-git-logs] scummvm master -> e96f022cfdf0bca276fc304c098260419ccd870c

eriktorbjorn noreply at scummvm.org
Thu Feb 20 18:42:38 UTC 2025


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:
e96f022cfd SCUMM: Fix audio pops at the end of Sega CD MI1 (bug #15369)


Commit: e96f022cfdf0bca276fc304c098260419ccd870c
    https://github.com/scummvm/scummvm/commit/e96f022cfdf0bca276fc304c098260419ccd870c
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2025-02-20T19:40:26+01:00

Commit Message:
SCUMM: Fix audio pops at the end of Sega CD MI1 (bug #15369)

A error in how the size of the audio data was calculated meant that the
last eight bytes were never decrypted. As far as I can tell, this bug
was there for more than twenty years! Other than the encryption, the
sound resources appear to be identical to the VGA CD ones.

Changed paths:
    engines/scumm/sound.cpp


diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 3fb7b6e2050..52846a66784 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -272,7 +272,12 @@ void Sound::triggerSound(int soundID) {
 		// 80 80 80 80 80 80 80 80  |........|
 		// 80 80 80 80 80 80 80 80  |........|
 
-		size = READ_BE_UINT32(ptr + 4) - 27;
+		// Skip to the VOC header, and adjust the size. Note that while
+		// ptr points to the beginning of the resource, 'size' refers
+		// to the size of the SBL data. That is why there it an eight
+		// byte difference. See bug #15369.
+
+		size = READ_BE_UINT32(ptr + 4) - 19;
 		ptr += 27;
 
 		// Fingolfin says: after eyeballing a single SEGA




More information about the Scummvm-git-logs mailing list