Commit Graph
350 Commits
Author SHA1 Message Date
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
Colin Snover 5e81db8fd0 SCI32: Add workaround for uninitialised read in Torin 2017-03-30 19:46:27 -05:00
Colin Snover 159438848b SCI32: Add workaround for uninitialised read in GK1 2017-03-30 19:46:27 -05:00
Colin Snover 31daa956d6 SCI: Implement bounds-checked reads of game resources 2017-03-27 19:42:31 -05:00
Martin Kiewitz 26b6d450df SCI: Clean up kRandom + allow 0 parameters via signatures
Also added in depth comments about the currently known variations
Returning the RNG seed is now implemented (although it seems no
games actually use this functionality, it seems to be just script
bugs).
Also remove Torin kRandom workarounds.
2017-02-26 00:24:57 +01:00
Colin Snover e695100708 SCI32: Add workarounds for MGDX 2017-01-16 12:16:14 -06:00
Colin Snover f66c033d52 SCI32: Add workaround for Hoyle5 2017-01-16 12:16:13 -06:00
Colin Snover c476341508 SCI32: Add workarounds for KQ7 2.00b 2017-01-16 12:16:13 -06:00
Colin Snover 54e94c572a SCI32: Add workarounds, transitions, fixes for PQ4CD 2017-01-12 13:14:03 -06:00
Colin Snover d951026578 SCI32: Add workarounds for PQ:SWAT 2017-01-11 11:13:45 -06:00
Filippos Karapetis 09d06855c5 SCI32: Add a workaround for the demo version of LSL7 2017-01-11 00:37:43 +02:00
Colin Snover c48c24d1d3 SCI32: Fix Torin demo crash 2017-01-09 19:34:54 -06:00
Colin Snover e729a31edc SCI32: Fix SQ6 demo crash 2017-01-09 19:34:54 -06:00
Colin Snover b818e54027 SCI32: Fix crashes and bad cel positioning in GK2 demo 2017-01-09 19:34:54 -06:00
Colin Snover 2ce1807359 SCI32: Generalise uninitialised read workarounds for RAMA 2017-01-09 19:34:54 -06:00
Colin Snover 3e2f4a66f6 SCI32: Remove SCI3 workarounds hack 2017-01-09 19:34:54 -06:00
Colin Snover ed19d51918 SCI: Fix PQ2 crash reading second page of files in jail
This fixes the crash in PQ2 1.002.011. There is another workaround
for the same problem from ticket Trac#5223, but it uses a different
method name that does not match in this version of PQ2.

Fixes Trac#9670.
2017-01-01 11:16:31 -06:00
Colin Snover 4f7173b137 SCI32: Generalize Phant1 kArraySetElements workaround
This bug exists in a system script that is called from many, many
rooms, so it is simpler to just make the workaround apply to all
rooms.
2016-12-19 14:46:59 -06:00
Colin Snover f52c03cd2c SCI32: Simplify workaround comment
It is not necessary to explain what is happening, just how to
reproduce it.
2016-12-18 19:02:40 -06:00
Colin Snover c816657e56 SCI32: Add workaround for bad kArraySetElements call at end of Phant1 2016-12-18 19:02:40 -06:00
Colin Snover 8477e61ad0 SCI32: Add workaround for hearts game in Hoyle5 2016-12-12 15:22:04 -06:00
Colin Snover 02598b4473 SCI32: Add workarounds for Hoyle5 Crazy Eights 2016-12-11 20:09:48 -06:00
Colin Snover 6de396d787 SCI32: Add workaround for Hoyle5 startup call to kPlatform
Fixes Trac#9665.
2016-12-11 12:31:45 -06:00
Omer Mor 4312e2c5a4 SCI32: Add a workaround for kDoSoundPlay for KQ7 demo 2016-12-11 09:43:40 -06:00
Colin Snover a895cf1b5a SCI32: Fix incomplete workaround comment 2016-11-10 10:21:12 -06:00
Colin Snover 1e8b95f025 SCI32: Fix GK1 crash when erasing letters in St Louis Cemetery
Fixes Trac#9642.
2016-11-10 10:17:01 -06:00
Colin Snover e8c429832f SCI32: Automate kNumCels workaround 2016-11-02 15:43:07 -05:00
Colin Snover e704e5f3c8 SCI32: Fix crash when clicking around the arterial blockage in SQ6
Thanks @hpvb for the report.

Fixes Trac#9615. Closes #850.
2016-10-16 19:30:47 -05:00
Colin Snover abc4656cc0 SCI32: Fix workaround comment 2016-10-16 11:10:25 -05:00
Colin Snover 65d0c659ef SCI32: Fix crash clicking quit button during LSL6hires credits 2016-10-15 20:57:48 -05:00
Colin Snover 06d58c91b9 SCI32: Fix crash in LSL6hires ending
Fixes Trac#9613.
2016-10-15 19:29:00 -05:00
Willem Jan Palenstijn 3dc5431884 SCI: Add modified workaround for Simbani bridge room for GOG
The GOG version comes with a fan patch that uses rm470::name to
store a timer to rate-limit rm470::doit. This breaks the workaround
detection since that uses the name field.
2016-10-12 22:06:50 +02:00
Colin Snover 3f30e2dd06 SCI32: Fix uninitialized read when starting a new game in LSL6hires 2016-10-05 15:30:39 -05:00
Colin Snover 84978b7cab SCI32: Fix crash when trying to interrogate bartender in GK1 2016-10-01 15:26:34 -05:00
Colin Snover 2035e21667 SCI32: Add workaround for kNumCels
This workaround may be able to be vastly simplified in the future
since, so far, simply returning the number of cels in loop 0 is
enough to make all the scripts with this bug work as expected.
2016-09-29 19:39:16 -05:00
Colin Snover 07e1dc3ca5 SCI32: Fix SQ6 crash using the special button in Stooge Fighter 3 2016-09-29 19:39:16 -05:00
Colin Snover 0e53c8e9f3 SCI32: Improve MGDX support
Audio directory switching is temporarily disabled because it
causes use-after-free in the resource manager.
2016-09-29 19:39:16 -05:00
Colin Snover 2be2629a3b SCI32: Fix kFileIOOpen signature
The mode argument is required in SCI32 too; Torin just had a script
bug.
2016-09-29 19:39:16 -05:00
Colin Snover 3f91726765 SCI32: Rewrite kArray & kString
This change invalidates earlier SCI32 save games, which separated
arrays and strings in an incompatible manner. Old save games
contain invalid references to a string segment which no longer
exists, and contain incompatible array structures that lack
critical type information.
2016-09-29 19:39:16 -05:00
Colin Snover 3201440d11 SCI: Generalize code for getting information on the current call 2016-09-29 19:39:16 -05:00
Filippos Karapetis ed461fba65 SCI32: Add a workaround when starting a new game in Phantasmagoria
This workaround is needed when starting a new game from a chapter after
the first one
2016-08-25 21:56:23 +03:00
Filippos Karapetis 380902eb07 SCI32: Add workarounds for a bug in Torin, in an animation of Lycentia 2016-08-24 11:57:08 +03:00
Filippos Karapetis d15660e70d SCI32: Add a workaround for an uninitialized variable in Torin 2016-08-23 14:06:39 +03:00
Filippos Karapetis a10c18fd8b SCI32: Add a workaround for kDoSoundPlay for GK1 Mac 2016-08-22 19:57:02 +03:00
Colin Snover dc093742b3 SCI32: Bug fixes to PQ:SWAT script bugs and kList calls 2016-08-19 15:23:10 -05:00
Colin Snover 80d9182554 SCI32: Implement SCI32 cursor support 2016-08-19 13:57:40 -05:00
Martin Kiewitz 0f1fd5c955 SCI: Fix sq4 workaround room 391, fixes bug #7179
doCatalog::mode does not exist, the method is actually
doCatalog::changeState

This issue has been in there since the workaround was added
through commit 20b1d80d59
2016-08-09 23:18:39 +02:00
Colin Snover b141ececdd SCI32: Fix KQ7 uninitialized read 2016-07-24 11:36:48 -05:00
Willem Jan Palenstijn 9f2fff4f66 SCI: Remove unneeded copy 2016-07-02 21:25:53 +02:00
Colin Snover 6feec9ed72 SCI32: Add more workarounds for SCI2.1early games
These games all share the same bad system script that always sends
NULL as a second argument to kDoSound(play).
2016-06-26 12:44:35 -05:00