[Scummvm-git-logs] scummvm master -> 45f81efd1770c867eb8dcc05b587eca7fb2f1a5e

AndywinXp noreply at scummvm.org
Mon Jul 14 08:47:42 UTC 2025


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
45f81efd17 SCUMM: DIMUSE: Make COMI xor flag handling more robust


Commit: 45f81efd1770c867eb8dcc05b587eca7fb2f1a5e
    https://github.com/scummvm/scummvm/commit/45f81efd1770c867eb8dcc05b587eca7fb2f1a5e
Author: AndywinXp (andywinxp at gmail.com)
Date: 2025-07-14T10:47:35+02:00

Commit Message:
SCUMM: DIMUSE: Make COMI xor flag handling more robust

Changed paths:
    engines/scumm/imuse_digi/dimuse_scripts.cpp
    engines/scumm/imuse_digi/dimuse_waveout.cpp


diff --git a/engines/scumm/imuse_digi/dimuse_scripts.cpp b/engines/scumm/imuse_digi/dimuse_scripts.cpp
index 41a12ffb159..8022cb19aa6 100644
--- a/engines/scumm/imuse_digi/dimuse_scripts.cpp
+++ b/engines/scumm/imuse_digi/dimuse_scripts.cpp
@@ -761,9 +761,8 @@ void IMuseDigital::playComiMusic(const char *songName, const imuseComiTable *tab
 	// This flag is not set in the original,
 	// but since we're not using DirectSound and this is pretty much timing related
 	// please see IMuseDigital::waveOutWrite() for more context...
-	_mutex->lock();
+	Common::StackLock lock(*_mutex);
 	_waveOutXorTrigger = 1;
-	_mutex->unlock();
 
 	if ((songName != nullptr) && (attribPos != 0)) {
 		if (table->attribPos != 0)
diff --git a/engines/scumm/imuse_digi/dimuse_waveout.cpp b/engines/scumm/imuse_digi/dimuse_waveout.cpp
index 61230d9e2ad..91a2e124f87 100644
--- a/engines/scumm/imuse_digi/dimuse_waveout.cpp
+++ b/engines/scumm/imuse_digi/dimuse_waveout.cpp
@@ -98,7 +98,7 @@ void IMuseDigital::waveOutWrite(uint8 **audioData, int &feedSize, int &sampleRat
 	//
 	// We're not using DirectSound, so recreate this I could either simulate the
 	// play cursor handling shenanigans, or I could just do exactly what I have done :-)
-	if (_vm->_game.id == GID_CMI && _waveOutXorTrigger == 1) {
+	if (_vm->_game.id == GID_CMI && _waveOutXorTrigger != 0) {
 		_waveOutXorTrigger = 0;
 		return;
 	}




More information about the Scummvm-git-logs mailing list