[Scummvm-git-logs] scummvm master -> 8144e3e69d3cc5ab5f3ea46309fe192849c7d152

sluicebox noreply at scummvm.org
Mon Jan 6 07:09:45 UTC 2025


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

Summary:
52be58799e AGI: Update picture comments
8144e3e69d SCI: Fix KQ4 Amiga sound signals


Commit: 52be58799e7446ab6c07091542228ed563dfd069
    https://github.com/scummvm/scummvm/commit/52be58799e7446ab6c07091542228ed563dfd069
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-01-05T23:08:59-08:00

Commit Message:
AGI: Update picture comments

Changed paths:
    engines/agi/preagi/picture_mickey_winnie.cpp
    engines/agi/preagi/picture_troll.cpp


diff --git a/engines/agi/preagi/picture_mickey_winnie.cpp b/engines/agi/preagi/picture_mickey_winnie.cpp
index 2f994dbe0fb..3b4a372d735 100644
--- a/engines/agi/preagi/picture_mickey_winnie.cpp
+++ b/engines/agi/preagi/picture_mickey_winnie.cpp
@@ -59,7 +59,7 @@ namespace Agi {
 // TODO: There are extremely minor inaccuracies in several Winnie pictures.
 // The F1 opcode's effects are not fully understood, and it creates subtle
 // discrepancies. It may be related to dithering. However, so few pictures
-// contain F3, and even fewer are effected by ignoring it or not, and only
+// contain F3, and even fewer are affected by ignoring it or not, and only
 // by a few pixels, that it doesn't matter except for completeness.
 // See: picture 34 door handles (Rabbit's kitchen)
 
@@ -293,7 +293,7 @@ bool PictureMgr_Mickey_Winnie::getNextXCoordinate(byte &x) {
 		return false;
 	}
 
-	if (_isDosOrAmiga) { // TODO: is this check in A2/C64/CoCo?
+	if (_isDosOrAmiga) {
 		if (x >= _width) { // 140
 			debugC(kDebugLevelPictures, "clipping %c from %d to %d", 'x', x, _width - 1);
 			x = _width - 1; // 139
@@ -313,7 +313,7 @@ bool PictureMgr_Mickey_Winnie::getNextYCoordinate(byte &y) {
 		return false;
 	}
 
-	if (_isDosOrAmiga) { // TODO: is this check in A2/C64/CoCo?
+	if (_isDosOrAmiga) {
 		// note that this is a different clip than for the x coordinate
 		if (y > _height) { // 159
 			debugC(kDebugLevelPictures, "clipping %c from %d to %d", 'y', y, _height);
diff --git a/engines/agi/preagi/picture_troll.cpp b/engines/agi/preagi/picture_troll.cpp
index d71e93110c3..1681873981f 100644
--- a/engines/agi/preagi/picture_troll.cpp
+++ b/engines/agi/preagi/picture_troll.cpp
@@ -35,7 +35,7 @@ namespace Agi {
 //
 // 1. The F3 opcode can dynamically act as a no-op or terminator (FF).
 //    This allows pictures to have an optional set of instructions for
-//	  drawing or hiding a room's object or the king's crown.
+//    drawing or hiding a room's object or the king's crown.
 //
 // 2. A custom flood fill technique is used for drawing the Troll over
 //    room pictures. Normally, flood fill requires an empty (white) area.


Commit: 8144e3e69d3cc5ab5f3ea46309fe192849c7d152
    https://github.com/scummvm/scummvm/commit/8144e3e69d3cc5ab5f3ea46309fe192849c7d152
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2025-01-05T23:08:59-08:00

Commit Message:
SCI: Fix KQ4 Amiga sound signals

Fixes bug #15660

Limits the workaround for KQ4 broken signals to just the introduction.
We now know that it's the only sound that requires this, and that the
Amiga version added signal 127 to almost every sound.

See: 08b9c26752174a247d5aa06da7b498c818def1a7

Thanks to @athrxx for locating behavior in Amiga driver disassembly
Thanks to @prietveld for reporting

Changed paths:
    engines/sci/sound/midiparser_sci.cpp


diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp
index 468e3e5e88b..4f04bb3e2d3 100644
--- a/engines/sci/sound/midiparser_sci.cpp
+++ b/engines/sci/sound/midiparser_sci.cpp
@@ -729,12 +729,16 @@ bool MidiParser_SCI::processEvent(const EventInfo &info, bool fireEvents) {
 			if (info.basic.param1 == kSetSignalLoop) {
 				_loopTick = _position._playTick;
 				// kSetSignalLoop (127) is not passed on to scripts, except in SCI_VERSION_0_EARLY.
-				// We also pass it to all versions of KQ4 because the scripts expect this. Sierra didn't
-				// update them when they changed the driver behavior. Introduction script 222 waits
-				// on signal 127 in sound 106 to start the game, causing later versions to wait forever.
+				// We also pass it to all versions of KQ4 when playing the introduction sound,
+				// because the KQ4 scripts expect it, and Sierra did not update the scripts when
+				// they changed the driver behavior. Script 222 waits on signal 127 in sound 106
+				// to start the game, causing later versions to wait forever.
 				// Now the introduction correctly ends when the music does in all versions.
-				if (_soundVersion > SCI_VERSION_0_EARLY && g_sci->getGameId() != GID_KQ4) {
-					return true;
+				// We must only apply this to sound 106, because Amiga adds signal 127 to others.
+				if (_soundVersion > SCI_VERSION_0_EARLY) {
+					if (!(g_sci->getGameId() == GID_KQ4 && _pSnd->resourceId == 106)) {
+						return true;
+					}
 				}
 			}
 




More information about the Scummvm-git-logs mailing list