[Scummvm-git-logs] scummvm master -> 17173f6dacd7591b237b6f03b9d5c8f21d3d6335

sluicebox 22204938+sluicebox at users.noreply.github.com
Thu Oct 31 17:56:28 CET 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:
17173f6dac SCI32: Fix KQ7 extra ambrosia


Commit: 17173f6dacd7591b237b6f03b9d5c8f21d3d6335
    https://github.com/scummvm/scummvm/commit/17173f6dacd7591b237b6f03b9d5c8f21d3d6335
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2019-10-31T09:54:35-07:00

Commit Message:
SCI32: Fix KQ7 extra ambrosia

Fixes bug #9790

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 255d8dd..0f3f126 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -4634,10 +4634,32 @@ static const uint16 kq7PragmaFailSpinPatch[] = {
 	PATCH_END
 };
 
+// Room 6100 creates an extra ambrosia, usually floating in upper left of the
+//  screen, due to an off by one error. The script's local arrays contain four
+//  ambrosia coordinates but the loop that accesses them iterates five times.
+//
+// Applies to: All versions
+// Responsible method: rm6100:init
+// Fixes bug #9790
+static const uint16 kq7ExtraAmbrosiaSignature[] = {
+	SIG_MAGICDWORD,
+	0x8d, 0x00,                 // lst 00
+	0x35, 0x04,                 // ldi 04
+	0x24,                       // le?
+	SIG_END
+};
+
+static const uint16 kq7ExtraAmbrosiaPatch[] = {
+	PATCH_ADDTOOFFSET(+4),
+	0x22,                       // lt?
+	PATCH_END
+};
+
 //          script, description,                                      signature                                 patch
 static const SciScriptPatcherEntry kq7Signatures[] = {
 	{  true,     0, "disable video benchmarking",                  1, kq7BenchmarkSignature,                    kq7BenchmarkPatch },
 	{  true,     0, "remove hardcoded spin loop",                  1, kq7PragmaFailSpinSignature,               kq7PragmaFailSpinPatch },
+	{  true,  6100, "fix extra ambrosia",                          1, kq7ExtraAmbrosiaSignature,                kq7ExtraAmbrosiaPatch },
 	{  true,    31, "enable subtitles (1/3)",                      1, kq7SubtitleFixSignature1,                 kq7SubtitleFixPatch1 },
 	{  true, 64928, "enable subtitles (2/3)",                      1, kq7SubtitleFixSignature2,                 kq7SubtitleFixPatch2 },
 	{  true, 64928, "enable subtitles (3/3)",                      1, kq7SubtitleFixSignature3,                 kq7SubtitleFixPatch3 },





More information about the Scummvm-git-logs mailing list