aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2018-04-18 21:05:43 -0400
committerPaul Gilbert2018-04-18 21:06:08 -0400
commitda79ac1d4212f0fb56e2cd5f310ab1e9bd879ff6 (patch)
treef1deae51b56fc49697b087e7669bf7ba7841ab50
parent4c65db13df314af4dcd5a9fb75f33ec81f9634fd (diff)
downloadscummvm-rg350-da79ac1d4212f0fb56e2cd5f310ab1e9bd879ff6.tar.gz
scummvm-rg350-da79ac1d4212f0fb56e2cd5f310ab1e9bd879ff6.tar.bz2
scummvm-rg350-da79ac1d4212f0fb56e2cd5f310ab1e9bd879ff6.zip
TINSEL: Fix hang in DW1 GRA when using items on Temple big hammer
-rw-r--r--NEWS1
-rw-r--r--engines/tinsel/pcode.cpp4
2 files changed, 5 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 4dc5f8b119..222d57c4bb 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,7 @@ For a more comprehensive changelog of the latest experimental code, see:
Tinsel:
- Fix loading Discworld 1 savegames from the launcher where Rincewind had a held item
+ - Script patch for hang in Discworld 1 GRA using items on Temple big hammer
Tucker:
- Fixed multiple graphic issues in Bud Tucker in Double Trouble.
diff --git a/engines/tinsel/pcode.cpp b/engines/tinsel/pcode.cpp
index dc19f39405..8899eea65b 100644
--- a/engines/tinsel/pcode.cpp
+++ b/engines/tinsel/pcode.cpp
@@ -156,6 +156,7 @@ static const byte fragment14[] = {OP_LIBCALL | OPSIZE8, 58,
OP_IMM, FRAGMENT_DWORD((42 << 23)), OP_ONE, OP_ZERO, OP_LIBCALL | OPSIZE8, 44,
OP_LIBCALL | OPSIZE8, 97, OP_JUMP | OPSIZE16, FRAGMENT_WORD(2220)
};
+static const byte fragment15[] = { OP_JMPFALSE | OPSIZE16, FRAGMENT_WORD(154) };
#undef FRAGMENT_WORD
@@ -226,6 +227,9 @@ const WorkaroundEntry workaroundList[] = {
// quitting the game when no user input happens for a while
{TINSEL_V1, true, true, Common::kPlatformPSX, 0, 2186, sizeof(fragment14), fragment14},
+ // DW1-GRA: Fixes hang in Temple, when trying to use items on the big hammer
+ {TINSEL_V1, false, false, Common::kPlatformUnknown, 276915849, 0x98, sizeof(fragment15), fragment15},
+
{TINSEL_V0, false, false, Common::kPlatformUnknown, 0, 0, 0, NULL}
};