Commit Graph
399 Commits
Author SHA1 Message Date
Vhati c58d619e20 SCI32: Fix QFG4 conditional void calls (#1416)
Fixes unsafe arithmetic in combat, bugs #10138, #10419, #10710, #10814

Supersedes commits 4dc9f0e and 01f3e6c
2018-11-28 02:23:37 +02:00
sluicebox 79b7de93e7 SCI: Add workaround for KQ6 debugger (#1417) 2018-11-24 13:03:41 +02:00
sluicebox 209c622010 SCI: GK1 workaround for iconbar uninit param read
Uninitialized param1 read when showing iconbar with inventory item
2018-10-23 00:12:03 +03:00
Filippos Karapetis 205ee4d0d0 SCI32: Allow malformed calls to kLock in PQ:SWAT, after the training videos
Fixes bug #10699
2018-09-06 22:04:13 +03:00
Filippos Karapetis 37a73d3268 SCI32: More workarounds for Hoyle Classic Games - Poker minigame 2018-09-04 23:43:03 +03:00
Filippos Karapetis 4913cd4eb2 SCI32: Add more workarounds for Hoyle Classic Games
This fixes issues with Bridge and Backgammon. Now, Hoyle 5 and its
variants should be in a very good state for testing
2018-09-04 23:36:20 +03:00
Filippos Karapetis 041ab36558 SCI32: Extend a workaround for a script bug in QFG4
Fixes a reference to an uninitialized variable after Ad Avis catches you - bug #10694
2018-08-31 00:09:43 +03:00
Filippos Karapetis 380551ed8e SCI32: Extend workaround for a music fading script bug in QFG4
Fixes bug #10421
2018-08-28 01:32:58 +03:00
Filippos Karapetis 01f3e6ccd2 SCI32: Fix a script bug when fighting revenants in QFG4 2018-08-25 13:53:13 +03:00
Filippos Karapetis a0bad913ae SCI32: Add a workaround for Shivers 2018-08-25 12:39:13 +03:00
Filippos Karapetis 4dc9f0e66d SCI32: Fix attacking necrotaurs with the sword in QFG4
Fixes bug #10419
2018-08-23 01:59:26 +03:00
Filippos Karapetis 5e2db7a178 SCI32: Add workarounds for OOB reads for parameters
These are mostly used to silence known cases, for now. Some workarounds of this type have already been addded
2018-08-23 01:59:26 +03:00
Filippos Karapetis 37c0342b32 SCI32: Extend a script workaround to all screens in QFG4
Fixes bug #10420
2018-08-21 08:53:19 +03:00
Filippos Karapetis 8998d00bf2 SCI32: Extend a pathfinding workaround to all screens in QFG4
Fixes entry into the Gypsy camp - bug #10418
2018-08-21 08:47:18 +03:00
Filippos Karapetis 06079340ac SCI32: Add several workarounds for uninitialized reads in Hoyle 5 2018-08-21 03:36:04 +03:00
Colin Snover f4bc714677 SCI32: Add uninitialized read workaround for LSL6hires
Fixes Trac#10361.
2017-12-19 23:49:07 -06:00
Martin Kiewitz 870cd80202 SCI: Crazy Nick's Larry workaround bug #10184
Added this already through last commit by accident
Was supposed to get added by this.
Workaround for reading uninitialized temp game bug.
2017-10-08 20:54:59 +02:00
Martin Kiewitz 656de5e360 SCI: Restrict some workarounds to certain temps
Also add a bit more documentation / Fix some documentation
2017-10-08 20:52:48 +02:00
Martin Kiewitz 60c2c2867c SCI: Change index inside workaround tables to an index range
So that one can specify an entire range of temp variables
by using just one single entry.
2017-10-07 22:11:25 +02:00
Colin Snover 7d037495be SCI: Use explicit indexes in castlebrain/islandbrain word search workarounds 2017-10-07 14:50:21 -05:00
Colin Snover 1b669d2489 SCI: Add workaround for uninitialized reads in Island of Dr Brain
Leaning on the enter key during a word search puzzle will trigger
this bug, just like in Castle of Dr Brain.
2017-10-07 14:46:01 -05:00
Martin Kiewitz 54cac32003 Revert "SCI: Add workaround for uninitialized reads in Island of Dr Brain"
This reverts commit ae8e4fa8e9.

This change is wrong in any case. It should be specific to temp
14+15 at the very least. I also did not get an answer on what
is actually happening internally. That's not how we should
add workarounds. My review was also still pending.
2017-10-07 11:25:12 +02:00
Colin Snover ae8e4fa8e9 SCI: Add workaround for uninitialized reads in Island of Dr Brain
Leaning on the enter key during a word search puzzle will trigger
this bug, just like in Castle of Dr Brain.
2017-10-07 00:56:00 -05:00
David Fioramonti ec1cfcbf47 SCI: Add workaround for uninit read during wordsearch in castlebrain
During the wordsearch puzzle (room 320 click left door) the
game will crash because of an uninitalized read of temp
variables in word::dispatchEvent (which gets called a lot),
if the player clicks the same letter or different letters
aggressively or holds down the enter key.

Fixes Trac#9783.
2017-10-07 00:56:00 -05:00
David Fioramonti c88d5519c2 SCI: Add uninitialized read workaround for shoplifting in SQ4CD
When in Galaxy Galleria, going into the software store and trying
to shoplift the SQ4 Hintbook will crash the game after you leave
and are electrocuted.

Fixes Trac#10229. Closes gh-1031.
2017-09-27 20:27:33 -05:00
Colin Snover 663d845d63 SCI32: Add workarounds for uninitialized reads in RAMA 2017-09-24 22:56:58 -05:00
Colin Snover a79bd8b645 SCI32: Add uninitialized read workaround for Phant2 2017-07-30 19:10:50 -05:00
Martin Kiewitz 4668b1655c SCI32: Add workaround entry for PQ4 floppy city hall room 390
To fix an uninitialized read when clicking somewhere to walk around
in city hall.
2017-07-30 22:10:05 +02:00
Colin Snover ba4fccdb26 SCI32: Add workaround for Torin/LSL7 running with subtitles only
Since these later SCI32 games weren't really designed to work with
subtitles-only message mode, if this doesn't work consistently or
breaks the games a lot in other places, the subtitles-only message
type could possibly be implemented in some other way, like by
messing with the game's speech volume global instead.
2017-07-17 23:56:21 -05:00
Colin Snover 3e45309b83 SCI32: Add workaround for Phant1 2017-07-13 17:19:50 -05:00
Colin Snover 9e90624052 SCI32: Add workarounds for PQ4 2017-07-07 23:41:53 -05:00
Colin Snover 1466fb247e SCI32: Add workaround for SQ6 2017-07-06 19:12:36 -05:00
Colin Snover dcc4a1bc67 SCI32: Add workaround for invalid kFrameOut call in PQ4
Fixes Trac#9848.
2017-06-19 19:56:48 -05:00
Colin Snover 71e2f9d6fb SCI32: Add workaround for uninitialised read in PQ4
Fixes Trac#9847.
2017-06-19 19:56:48 -05:00
Colin Snover 5d04679124 SCI32: Add workaround for invalid kPalVarySetStart call in PQ4
Fixes Trac#9845.
2017-06-19 19:56:48 -05:00
Colin Snover 62fd5df8b4 SCI32: Fix uninitialized temp read in Torin
Fixes Trac#9810.
2017-06-10 00:21:44 -05:00
Colin Snover 48baf5a4a5 SCI32: Fix uninitialized temp read in LSL6hires
Fixes Trac#9811.
2017-06-10 00:13:58 -05:00
Martin Kiewitz a8475db05a SCI: SQ4CD: Limit workaround for Russian SQ4 to room 150+900
As proposed by bluegr
2017-05-30 22:11:33 +02:00
Martin Kiewitz 266f68c21b SCI: SQ4CD: Remove room restriction of existing workarounds for end
Fixes bug #9812
2017-05-29 23:44:28 +02:00
Colin Snover 4917330038 SCI: Find and store the original static names of objects
See code comment in Object::init for more details.

Fixes Trac#9780.
2017-05-20 21:14:18 -05:00
Colin Snover 262ef4de61 SCI32: Fix crash at end of Torin
This "fix" is more of a hack, in the interest of making the game
completable. The root cause is a combination of two problems in
the game scripts:

1. Blink::init expects to receive either 0 or 2 arguments, but
   it assumes that if it received *any* arguments, it must have
   received 2 arguments. This assumption is wrong, though,
   because--
2. soTorinWhoAreYou::changeState(0) calls
   poPecandEyes::setCycle(Blink) without including a second
   argument (the blink speed).

This ends up with the second parameter being some garbage, and
that garbage gets sent to kRandom which then complains about
receiving garbage.

The correct fix for this would be to fix soTorinWhoAreYou (in
script 51400) to pass a second argument to setCycle, but there are
not enough obvious spare bytes for a quick and easy patch, so this
workaround will have to do for now.

Fixes Trac#9779.
2017-05-13 22:46:13 -05:00
Colin Snover ae628c18d4 SCI32: Add workaround for KQ7
Fixes Trac#9763.
2017-05-08 19:45:07 -05:00
Colin Snover a403523faf SCI32: Add workaround for KQ7
Fixes Trac#9759.
2017-05-06 21:45:41 -05:00
Colin Snover 14e4ea6c85 SCI32: Add workarounds for LSL7 2017-04-23 13:07:25 -05:00
Colin Snover 7b3c9f4a07 SCI32: Add Lighthouse workaround 2017-04-23 13:07:25 -05:00
Colin Snover f711edc876 SCI32: Add workarounds for RAMA 2017-04-23 13:07:25 -05:00
Colin Snover 2212b82794 SCI32: Add workarounds for Lighthouse 2017-04-23 13:07:25 -05:00
Colin Snover 6c44106083 SCI32: Add workarounds & patches for QFG4 2017-04-22 19:28:35 -05:00
Colin Snover 2df939d33b SCI32: Add workaround for SQ6 invalid read after a failed save game restore 2017-04-22 13:01:36 -05:00
Colin Snover a1153661c4 SCI: Stop getCurrentCallOrigin from mutating stack frames
This fixes incorrect backtraces after a workaround failure or
other call to getCurrentCallOrigin when one or more stack frames
are calls to local procedures.
2017-03-30 20:49:36 -05:00