[Scummvm-git-logs] scummvm master -> 29337ef0d4688a82c2f0ce694a188eecb0ff2989

AndywinXp noreply at scummvm.org
Sun Nov 19 22:02:22 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:
29337ef0d4 SCUMM: HE/SOUND: Fix bug #13102


Commit: 29337ef0d4688a82c2f0ce694a188eecb0ff2989
    https://github.com/scummvm/scummvm/commit/29337ef0d4688a82c2f0ce694a188eecb0ff2989
Author: AndywinXp (andywinxp at gmail.com)
Date: 2023-11-19T23:02:15+01:00

Commit Message:
SCUMM: HE/SOUND: Fix bug #13102

This was also happening in the original. It is caused by the
presence of a SRFS header block which gets played as audio
data.

Changed paths:
    engines/scumm/he/mixer_he.cpp


diff --git a/engines/scumm/he/mixer_he.cpp b/engines/scumm/he/mixer_he.cpp
index a26dbaf047f..a7751b92cff 100644
--- a/engines/scumm/he/mixer_he.cpp
+++ b/engines/scumm/he/mixer_he.cpp
@@ -766,6 +766,15 @@ bool HEMixer::mixerStartSpoolingChannel(
 
 		_mixerChannels[channel].lastReadPosition += initialReadCount;
 
+		// Freddi Fish 4 has some unhandled headers inside its spooled
+		// music files which were leftovers from the development process.
+		// These are 32 bytes blocks, so we can just skip them... (#13102)
+		if (READ_BE_UINT32(data) == MKTAG('S', 'R', 'F', 'S')) {
+			sampleFileIOHandle.seek(_mixerChannels[channel].initialSpoolingFileOffset, SEEK_SET);
+			sampleFileIOHandle.seek(32, SEEK_CUR);
+			sampleFileIOHandle.read(data, initialReadCount);
+		}
+
 		byte *dataTmp = data;
 		int rampUpSampleCount = 64;
 		for (int i = 0; i < rampUpSampleCount; i++) {




More information about the Scummvm-git-logs mailing list