[Scummvm-git-logs] scummvm master -> 358bab41c3e9be8c63bd270b9b26560f5277e15f

mduggan noreply at scummvm.org
Sun Nov 9 06:12:22 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:
358bab41c3 DGDS: Don't crash trying adlib sound in beamish demo


Commit: 358bab41c3e9be8c63bd270b9b26560f5277e15f
    https://github.com/scummvm/scummvm/commit/358bab41c3e9be8c63bd270b9b26560f5277e15f
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2025-11-09T17:12:05+11:00

Commit Message:
DGDS: Don't crash trying adlib sound in beamish demo

The Willy Beamish interactive demo contains a basically blank section for the
adlib patch data.  Instead of crashing, just log a warning and don't play any
sound in this case.

Fixes #16313.

Changed paths:
    engines/dgds/sound/drivers/adlib.cpp


diff --git a/engines/dgds/sound/drivers/adlib.cpp b/engines/dgds/sound/drivers/adlib.cpp
index ad4001a5650..6f096974398 100644
--- a/engines/dgds/sound/drivers/adlib.cpp
+++ b/engines/dgds/sound/drivers/adlib.cpp
@@ -810,7 +810,7 @@ void MidiDriver_AdLib::playSwitch(bool play) {
 bool MidiDriver_AdLib::loadResource(const SciSpan<const byte> &data) {
 	const uint32 size = data.size();
 	if (size != 1344 && size != 2690 && size != 5382) {
-		error("ADLIB: Unsupported patch format (%u bytes)", size);
+		warning("ADLIB: Unsupported patch format (%u bytes)", size);
 		return false;
 	}
 
@@ -859,6 +859,14 @@ int MidiPlayer_AdLib::open() {
 	if (res) {
 		ok = static_cast<MidiDriver_AdLib *>(_driver)->loadResource(*res);
 		delete res;
+
+		// WORKAROUND: The Willy Beamish interactive demo has empty Adlib patch
+		// data. Ignore the failure there.
+		const DgdsEngine *engine = DgdsEngine::getInstance();
+		if (!ok && engine->getGameId() == GID_WILLY && engine->isDemo()) {
+			warning("No ADLIB sound available for Willy Beamish demo");
+			ok = true;
+		}
 	} else {
 		// Early SCI0 games have the sound bank embedded in the AdLib driver
 




More information about the Scummvm-git-logs mailing list