aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMartin Kiewitz2010-08-09 21:43:31 +0000
committerMartin Kiewitz2010-08-09 21:43:31 +0000
commitfffec23a02cc88ed8daba0a3b50007b7e220c075 (patch)
treee0fc9b8a937e0fdd7d5d5a27e22ff062dd67241b /engines
parentd88928b1be8b59d16d402585aaa78c117ac2db36 (diff)
downloadscummvm-rg350-fffec23a02cc88ed8daba0a3b50007b7e220c075.tar.gz
scummvm-rg350-fffec23a02cc88ed8daba0a3b50007b7e220c075.tar.bz2
scummvm-rg350-fffec23a02cc88ed8daba0a3b50007b7e220c075.zip
SCI: adding gk1 patch for day 5 freeze
svn-id: r51947
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/script_patches.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index e5fcbf72c2..ef7b7dcb41 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -52,7 +52,7 @@ struct SciScriptSignature {
// - rinse and repeat
-// daySixBeignet::changeState is called when the cop goes out and sets cycles to 220.
+// daySixBeignet::changeState (4) is called when the cop goes out and sets cycles to 220.
// this is not enough time to get to the door, so we patch that to 23 seconds
const byte gk1SignatureDay6PoliceBeignet[] = {
4,
@@ -78,6 +78,8 @@ const uint16 gk1PatchDay6PoliceBeignet[] = {
PATCH_END
};
+// sargSleeping::changeState (8) is called when the cop falls asleep and sets cycles to 220.
+// this is not enough time to get to the door, so we patch it to 42 seconds
const byte gk1SignatureDay6PoliceSleep[] = {
4,
0x35, 0x08, // ldi 08
@@ -97,8 +99,27 @@ const uint16 gk1PatchDay6PoliceSleep[] = {
PATCH_END
};
+// startOfDay5::changeState (20h) - when gabriel goes to the phone the script will hang
+const byte gk1SignatureDay5PhoneFreeze[] = {
+ 5,
+ 0x35, 0x03, // ldi 03
+ 0x65, 0x1a, // aTop cycles
+ 0x32, // jmp [end]
+ +2, 3, // [skip 2 bytes, offset of jmp]
+ 0x3c, // dup
+ 0x35, 0x21, // ldi 21
+ 0
+};
+
+const uint16 gk1PatchDay5PhoneFreeze[] = {
+ 0x35, 0x06, // ldi 06
+ 0x65, 0x20, // aTop ticks
+ PATCH_END
+};
+
// script, description, magic DWORD, adjust
const SciScriptSignature gk1Signatures[] = {
+ { 212, "day 5 phone freeze", PATCH_MAGICDWORD(0x35, 0x03, 0x65, 0x1a), 0, gk1SignatureDay5PhoneFreeze, gk1PatchDay5PhoneFreeze },
{ 230, "day 6 police beignet timer issue", PATCH_MAGICDWORD(0x34, 0xdc, 0x00, 0x65), -16, gk1SignatureDay6PoliceBeignet, gk1PatchDay6PoliceBeignet },
{ 230, "day 6 police sleep timer issue", PATCH_MAGICDWORD(0x34, 0xdc, 0x00, 0x65), -5, gk1SignatureDay6PoliceSleep, gk1PatchDay6PoliceSleep },
{ 0, NULL, 0, 0, NULL, NULL }