[Scummvm-git-logs] scummvm master -> 9306135a6a648cca999003f77d33c384ea2a5504

sluicebox 22204938+sluicebox at users.noreply.github.com
Mon Sep 2 10:39:59 CEST 2019


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:
9306135a6a SCI: Fix LONGBOW Amiga Fulk rescue


Commit: 9306135a6a648cca999003f77d33c384ea2a5504
    https://github.com/scummvm/scummvm/commit/9306135a6a648cca999003f77d33c384ea2a5504
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-09-02T01:38:44-07:00

Commit Message:
SCI: Fix LONGBOW Amiga Fulk rescue

Fixes bug #11137

Changed paths:
    engines/sci/engine/script_patches.cpp


diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 6979a5a..3dcbae1 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -4884,6 +4884,36 @@ static const uint16 longbowPatchGreenManForestSweepFix[] = {
 	PATCH_END
 };
 
+// After rescuing Fulk in the Amiga version, rescueOfFulk stores the boat speed
+//  in a temporary variable during one state and expects it to still be there in
+//  a later state, which only worked by accident in Sierra's interpreter. This
+//  Amiga tweak was made so that on slower machines the boat would animate after
+//  Fulk and Robin leave the screen. We fix this by using the script's register
+//  property for storage instead of a temporary variable.
+//
+// Applies to: English Amiga Floppy
+// Responsible method: rescueOfFulk:changeState
+// Fixes bug: #11137
+static const uint16 longbowSignatureAmigaFulkRescue[] = {
+	SIG_MAGICDWORD,
+	0xa5, 0x00,                     // sat 00
+	0x89, 0x57,                     // lsg 87
+	SIG_ADDTOOFFSET(+10),
+	0x8d, 0x00,                     // lst 00
+	SIG_ADDTOOFFSET(+635),
+	0x8d, 0x00,                     // lst 00
+	SIG_END
+};
+
+static const uint16 longbowPatchAmigaFulkRescue[] = {
+	0x65, 0x1a,                     // aTop register
+	PATCH_ADDTOOFFSET(+12),
+	0x67, 0x1a,                     // pTos register
+	PATCH_ADDTOOFFSET(+635),
+	0x67, 0x1a,                     // pTos register
+	PATCH_END
+};
+
 //          script, description,                                      signature                                patch
 static const SciScriptPatcherEntry longbowSignatures[] = {
 	{  true,   140, "green man riddles and forest sweep fix",      1, longbowSignatureGreenManForestSweepFix,  longbowPatchGreenManForestSweepFix },
@@ -4896,6 +4926,7 @@ static const SciScriptPatcherEntry longbowSignatures[] = {
 	{  true,   320, "day 8 archer pathfinding workaround",         1, longbowSignatureArcherPathfinding,       longbowPatchArcherPathfinding },
 	{  true,   350, "day 9 cobbler hut fix",                      10, longbowSignatureCobblerHut,              longbowPatchCobblerHut },
 	{  true,   530, "amiga pub fix",                               1, longbowSignatureAmigaPubFix,             longbowPatchAmigaPubFix },
+	{  true,   600, "amiga fulk rescue fix",                       1, longbowSignatureAmigaFulkRescue,         longbowPatchAmigaFulkRescue },
 	SCI_SIGNATUREENTRY_TERMINATOR
 };
 





More information about the Scummvm-git-logs mailing list