[Scummvm-git-logs] scummvm master -> b60a6a717bdb1f7b0ee7894aa21effcbcd173158
sluicebox
22204938+sluicebox at users.noreply.github.com
Thu May 13 22:13:03 UTC 2021
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:
b60a6a717b SCI: Fix SQ4 easter egg lockup in software store
Commit: b60a6a717bdb1f7b0ee7894aa21effcbcd173158
https://github.com/scummvm/scummvm/commit/b60a6a717bdb1f7b0ee7894aa21effcbcd173158
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-05-13T16:10:24-06:00
Commit Message:
SCI: Fix SQ4 easter egg lockup in software store
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 7713062fef..c18e1c8297 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -19260,6 +19260,38 @@ static const uint16 sq4FloppyPatchSoftwareClerkMessage[] = {
PATCH_END
};
+// Floppy versions have two easter eggs in the software store which can lockup
+// the game if run at the same time. One is activated by smelling an area in
+// the upper left of room 397 and the other by tasting the same area on the
+// right side. Both eggs are room scripts and the latter can interrupt the
+// former and prevent the player from regaining control.
+//
+// We fix this as Sierra did in the English Amiga version by switching the
+// taste easter egg from a room script to an ego script.
+//
+// Applies to: English PC Floppy, German PC Floppy, Macintosh, PC-98
+// Responsible method: box:doVerb
+static const uint16 sq4FloppySignatureSoftwareStoreEasterEggs[] = {
+ 0x35, SIG_MAGICDWORD, 0x0a, // ldi 0a [ taste ]
+ 0x1a, // eq?
+ 0x30, SIG_UINT16(0x0018), // bnt 0018
+ 0x38, SIG_SELECTOR16(script), // pushi script
+ 0x76, // push0
+ 0x81, 0x02, // lag 02 [ rm397 ]
+ 0x4a, 0x04, // send 04 [ rm397 script? ]
+ SIG_ADDTOOFFSET(+12),
+ 0x81, 0x02, // lag 02 [ rm397 ]
+ SIG_END
+};
+
+static const uint16 sq4FloppyPatchSoftwareStoreEasterEggs[] = {
+ PATCH_ADDTOOFFSET(+10),
+ 0x81, 0x00, // lag 00 [ ego ]
+ PATCH_ADDTOOFFSET(+14),
+ 0x81, 0x00, // lag 00 [ ego ]
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry sq4Signatures[] = {
{ true, 1, "Floppy: EGA intro delay fix", 2, sq4SignatureEgaIntroDelay, sq4PatchEgaIntroDelay },
@@ -19291,6 +19323,7 @@ static const SciScriptPatcherEntry sq4Signatures[] = {
{ true, 391, "CD: missing Audio for universal remote control", 1, sq4CdSignatureMissingAudioUniversalRemote, sq4CdPatchMissingAudioUniversalRemote },
{ true, 396, "CD: get points for changing back clothes fix", 1, sq4CdSignatureGetPointsForChangingBackClothes, sq4CdPatchGetPointsForChangingBackClothes },
{ true, 397, "Floppy: software clerk message fix", 1, sq4FloppySignatureSoftwareClerkMessage, sq4FloppyPatchSoftwareClerkMessage },
+ { true, 397, "Floppy: software store easter eggs fix", 1, sq4FloppySignatureSoftwareStoreEasterEggs, sq4FloppyPatchSoftwareStoreEasterEggs },
{ true, 405, "CD/Floppy: zero gravity blast fix", 1, sq4SignatureZeroGravityBlast, sq4PatchZeroGravityBlast },
{ true, 406, "CD/Floppy: zero gravity blast fix", 1, sq4SignatureZeroGravityBlast, sq4PatchZeroGravityBlast },
{ true, 410, "CD/Floppy: zero gravity blast fix", 1, sq4SignatureZeroGravityBlast, sq4PatchZeroGravityBlast },
More information about the Scummvm-git-logs
mailing list