aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMartin Kiewitz2013-12-07 23:36:16 +0100
committerMartin Kiewitz2013-12-07 23:36:16 +0100
commit8e18bce1dbda008c701c6db7391aa734b1591436 (patch)
treeaef36810a2ca5ca1645f3ca5656a926c75772e8d /engines/sci
parente7054aa5a7a1b1b5345eea1705fd07ab565eead5 (diff)
downloadscummvm-rg350-8e18bce1dbda008c701c6db7391aa734b1591436.tar.gz
scummvm-rg350-8e18bce1dbda008c701c6db7391aa734b1591436.tar.bz2
scummvm-rg350-8e18bce1dbda008c701c6db7391aa734b1591436.zip
SCI: more patches for KQ6 audio+text support
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/script_patches.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 6bd69f5933..6ab51606bb 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -994,6 +994,51 @@ const uint16 kq6CDPatchAudioTextSupport1[] = {
PATCH_END
};
+// Fixes text window placement, when portrait+text is shown (Guard in room 220)
+// Patched method: tlkGateGuard1::init
+const uint16 kq6CDSignatureAudioTextSupportGuard[] = {
+ SIG_MAGICDWORD,
+ 0x89, 0x5a, // lsg global[5a]
+ 0x35, 0x01, // ldi 01
+ 0x1a, // eq?
+ 0x31, 0x13, // bnt [jump-for-audio-code]
+ SIG_END
+};
+
+const uint16 kq6CDPatchAudioTextSupportGuard[] = {
+ PATCH_ADDTOOFFSET +5,
+ 0x18, 0x18, // waste bytes, never jump
+ PATCH_END
+};
+
+// Fixes text window placement, when portrait+text is shown (Stepmother in room 250)
+// Patched method: tlkStepmother::init
+const uint16 kq6CDSignatureAudioTextSupportStepmother[] = {
+ SIG_MAGICDWORD,
+ 0x89, 0x5a, // lsg global[5a]
+ 0x35, 0x02, // ldi 02
+ 0x12, // and
+ 0x31, 0x1a, // bnt [jump-for-text-code]
+ SIG_END
+};
+
+const uint16 kq6CDPatchAudioTextSupportJumpAlways[] = {
+ PATCH_ADDTOOFFSET +5,
+ 0x33, // jump always
+ PATCH_END
+};
+
+// Fixes text window placement, when portrait+text is shown (Gnomes in room 450)
+// Patched method: GnomeTalker::init
+const uint16 kq6CDSignatureAudioTextSupportGnomes[] = {
+ SIG_MAGICDWORD,
+ 0x89, 0x5a, // lsg global[5a]
+ 0x35, 0x02, // ldi 02
+ 0x1a, // eq?
+ 0x31, 0x16, // bnt [jump-for-text-code]
+ SIG_END
+};
+
// script, description, signature patch
SciScriptPatcherEntry kq6Signatures[] = {
{ true, 481, "duplicate baby cry", 1, kq6SignatureDuplicateBabyCry, kq6PatchDuplicateBabyCry },
@@ -1008,6 +1053,9 @@ SciScriptPatcherEntry kq6Signatures[] = {
{ false, 928, "CD: audio + text support KQ6&LB2 4", 1, kq6laurabow2CDSignatureAudioTextSupport4, kq6laurabow2CDPatchAudioTextSupport4 },
{ false, 928, "CD: audio + text support KQ6&LB2 5", 2, kq6laurabow2CDSignatureAudioTextSupport5, kq6laurabow2CDPatchAudioTextSupport5 },
{ false, 909, "CD: audio + text support KQ6 1", 1, kq6CDSignatureAudioTextSupport1, kq6CDPatchAudioTextSupport1 },
+ { false, 1009, "CD: audio + text support KQ6 Guard", 1, kq6CDSignatureAudioTextSupportGuard, kq6CDPatchAudioTextSupportGuard },
+ { false, 1027, "CD: audio + text support KQ6 Stepmother", 1, kq6CDSignatureAudioTextSupportStepmother, kq6CDPatchAudioTextSupportJumpAlways },
+ { false, 1037, "CD: audio + text support KQ6 Gnomes", 1, kq6CDSignatureAudioTextSupportGnomes, kq6CDPatchAudioTextSupportJumpAlways },
SCI_SIGNATUREENTRY_TERMINATOR
};