[Scummvm-git-logs] scummvm master -> 595d70889a636061d1d4b4eb659190fb0766f15d

sluicebox noreply at scummvm.org
Sun Apr 14 19:04:38 UTC 2024


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:
595d70889a SCI: Add Betrayed Alliance Book 2 Demo detection and workarounds


Commit: 595d70889a636061d1d4b4eb659190fb0766f15d
    https://github.com/scummvm/scummvm/commit/595d70889a636061d1d4b4eb659190fb0766f15d
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-04-14T12:02:58-07:00

Commit Message:
SCI: Add Betrayed Alliance Book 2 Demo detection and workarounds

Changed paths:
    engines/sci/detection_tables.h
    engines/sci/engine/kernel_tables.h
    engines/sci/engine/workarounds.cpp
    engines/sci/engine/workarounds.h


diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 7d94dae663e..6afbc9d3335 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -6366,6 +6366,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 	FANMADE("Betrayed Alliance 1.1", "bb776e42e93f8b98006d6481fb73a588", 4080, "ad7bcfa11f914f23ddbe32723700391e", 2391020),
 	FANMADE("Betrayed Alliance 1.2", "ade9f8124dae2e6aced8b5bfc0f54411", 4200, "4599d184348e8dfa99a1804f41966177", 2498493), // original version
 	FANMADE("Betrayed Alliance 1.2", "30431334d821d23e584d6f4c0a3d5b61", 4206, "42e3a857f589eef8a8567b86b71f7fb9", 2503541), // "stealth updated" version
+	FANMADE("Betrayed Alliance Book 2 Demo 1.0", "b5b21ca4d1ad3c576e9776bf96845656", 4524, "57150380af9bf05b07851177e01c5066", 3309884),
 	FANMADE("Bluntman and Chronic (Politically Correct Version)", "c3ef9fa6c7c5fb840078bf28d87c7f8b", 1362, "441636a9f6f86710844868fded868ee7", 596688),
 	FANMADE("Cascade Quest", "c94efc10d18c040b6e22a1dc6d3adfe1", 3468, "8ada33dfa945f81531e5508240b573de", 1432195),
 	FANMADE("Circus Quest", "35871f6b4e1df56af4113c0203a0b223", 630, "7d6f97d7935d8733f488d4cb74315e5b", 279627),
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 3474703c9d4..b5dc5943192 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -646,7 +646,7 @@ static SciKernelMapEntry s_kernelMap[] = {
 	{ MAP_CALL(AddToEnd),          SIG_EVERYWHERE,           "ln",                    NULL,            NULL },
 	{ MAP_CALL(AddToFront),        SIG_EVERYWHERE,           "ln",                    NULL,            NULL },
 	{ MAP_CALL(AddToPic),          SIG_EVERYWHERE,           "[il](iiiiii)",          NULL,            NULL },
-	{ MAP_CALL(Animate),           SIG_EVERYWHERE,           "(l0)(i)",               NULL,            NULL },
+	{ MAP_CALL(Animate),           SIG_EVERYWHERE,           "(l0)(i)",               NULL,            kAnimate_workarounds },
 	{ MAP_CALL(AssertPalette),     SIG_EVERYWHERE,           "i",                     NULL,            NULL },
 	{ MAP_CALL(AvoidPath),         SIG_EVERYWHERE,           "ii(.*)",                NULL,            NULL },
 	{ MAP_CALL(BaseSetter),        SIG_SCI16, SIGFOR_ALL,    "o",                     NULL,            NULL },
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index 3d329796b2d..00dec7f783c 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -552,6 +552,13 @@ const SciWorkaroundEntry kAbs_workarounds[] = {
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
+//    gameID,           room,script,lvl,          object-name, method-name, local-call-signature, index-range,   workaround
+const SciWorkaroundEntry kAnimate_workarounds[] = {
+	{ GID_FANMADE,        -1,    76,  0,              "rm076", "init",                   nullptr,     0,     0, { WORKAROUND_FAKE,  0 } }, // Betrayed Alliance Book 2 Demo: when starting game, script passes stale accumulator (8) instead of list
+	{ GID_FANMADE,        -1,    76,  0,         "RoomScript", "changeState",            nullptr,     0,     0, { WORKAROUND_FAKE,  0 } }, // Betrayed Alliance Book 2 Demo: when starting game, script passes stale accumulator (theMusic object) instead of list
+	SCI_WORKAROUNDENTRY_TERMINATOR
+};
+
 //    gameID,           room,script,lvl,          object-name, method-name, local-call-signature, index-range,   workaround
 const SciWorkaroundEntry kArraySetElements_workarounds[] = {
 	{ GID_GK1,           302, 64918,  0,                "Str", "callKernel",             nullptr,     0,     0, { WORKAROUND_FAKE, 0 } }, // when erasing a letter on the wall in St Louis Cemetery
diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h
index 5821051a756..13772593b76 100644
--- a/engines/sci/engine/workarounds.h
+++ b/engines/sci/engine/workarounds.h
@@ -63,6 +63,7 @@ extern const SciWorkaroundEntry arithmeticWorkarounds[];
 extern const SciWorkaroundEntry uninitializedReadWorkarounds[];
 extern const SciWorkaroundEntry uninitializedReadForParamWorkarounds[];
 extern const SciWorkaroundEntry kAbs_workarounds[];
+extern const SciWorkaroundEntry kAnimate_workarounds[];
 extern const SciWorkaroundEntry kCelHigh_workarounds[];
 extern const SciWorkaroundEntry kCelWide_workarounds[];
 extern const SciWorkaroundEntry kDeviceInfo_workarounds[];




More information about the Scummvm-git-logs mailing list