aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/script_patches.cpp
AgeCommit message (Collapse)Author
2017-07-30SCI32: Add script patch for PQ4 floppy computer issueMartin Kiewitz
This fixes buggy PQ4 system script code and makes entering user and password on the police computer not trigger a signature mismatch anymore. Script code was fixed by Sierra in PQ4 CD.
2017-07-26SCI32: Patch spin loop in Phant2 puzzleColin Snover
2017-07-26SCI32: Patch bad version retrieval in Phant2Colin Snover
2017-07-24SCI32: Use dynamic selector in QFG4 trap script patchColin Snover
2017-07-24SCI32: Deduplicate volume reset script patches & add to MGDXColin Snover
2017-07-17SCI32: Add guest additions support for LSL7Colin Snover
2017-07-15SCI32: Add patch for mismatched PointSoft Torin heap 20700Colin Snover
Refs Trac#9776, Trac#9864. Fixes Trac#9797.
2017-07-13SCI32: Patch out bad rat view init code in PhantasmagoriaColin Snover
Fixes Trac#9957.
2017-07-01SCI: Fix typo in pq3 script patchMartin Kiewitz
2017-07-01SCI: Add script patch for pq3, points for giving locket (bug #9862)Martin Kiewitz
This script patch will fix not getting 10 points for giving the locket to Marie.
2017-06-24SCI32: Replace Torin dragon's cave patch with a better patchColin Snover
The previous script patch for this bug was much simpler and targeted the bad code that hangs, instead of the bad code that caused the unexpected flag setting, but this caused glitches in the dragon's cave that couldn't really be fixed since different animations relied on some common code for positioning Boogle. So, now, this more complicated patch fixes the fast-forward code in the seraglio to set Boogle's in-the-bag flag, which is what the dragon's cave needs in order to not hang when worming Boogle. Also, because this patch now targets the code that caused the bad flag state, instead of the code that hangs on the bad state, any save game in the dragon's cave with the bag flag setting will need to be fixed by exiting and re-entering the dragon's cave. Refs Trac#9836.
2017-06-24SCI32: Fix Boogle warp glitch caused by previous game patchColin Snover
Refs Trac#9836.
2017-06-23SCI32: Add patch for game script bug in Torin dragon's caveColin Snover
Fixes Trac#9836.
2017-06-19SCI32: Create Torin-specific save game count limitation removerColin Snover
Fixes Trac#9840.
2017-05-29SCI32: GK1: Add second beignet timer issue script patchMartin Kiewitz
Should solve bug #9805
2017-05-27SCI32: Remove invalid interaction cursor spinloop in KQ7Colin Snover
2017-05-24SCI32: Fix typo in script patch nameMartin Kiewitz
2017-05-24SCI32: Add script patch for lsl7 cheese maker priority bugMartin Kiewitz
This issue also happens when using the original interpreter.
2017-05-24SCI32: Add script patch for cheese maker issueMartin Kiewitz
Room 540, was game breaking, but effectively a script bug, that just happened to work in SSCI.
2017-05-15SCI: Add script patch for "Tickets, only" during game over sceneMartin Kiewitz
Audio played was "Tickets, only", subtitle shows "Tickets, please". Also remove forcing myDialog for KQ6Print::say (which was added, while fixing this script patch). see a46f3c162581740a3cad27e1168164ca91beb9c9 Forcing myDialog causes issues during game over screen (bug #9771). Bug is solved by this, but script patch isn't perfect right now.
2017-05-04SCI32: Disable game script video benchmarkingColin Snover
The approach to video benchmarking used by SCI engine does not translate very well to modern video devices -- it will either be so slow that the games think the system is not capable of showing normal visual effects, or so fast that the benchmarks overflow their counters. So, game scripts that perform video benchmarking are now patched to unconditionally return the highest speed value. A pleasant but subtle side-effect of this change is that the extra time sitting at a blank screen before the start of a game (while benchmarks ran) is now gone. Fixes Trac#9741.
2017-04-23SCI32: Remove spinloops from Phant2Colin Snover
2017-04-23SCI32: Fix slow fade of Phant2 interface barsColin Snover
2017-04-22SCI32: Add workarounds & patches for QFG4Colin Snover
2017-04-22SCI: Move ScummVM kernel calls to 0xe0Colin Snover
2017-04-21SCI: Improve audio volume & settings sync codeColin Snover
This patch includes enhancements to the ScummVM integration with SCI engine, with particular focus on SCI32 support. 1. Fixes audio volumes syncing erroneously to ScummVM in games that modify the audio volume without user action (e.g. SCI1.1 talkies that reduce music volume during speech playback). Now, volumes will only be synchronised when the user interacts with the game's audio settings. This mechanism works by looking for a known volume control object in the stack, and only syncing when the control object is present. (Ports and planes were researched and found unreliable.) 2. Fixes audio syncing in SCI32 games that do not set game volumes through kDoSoundMasterVolume/kDoAudioVolume, like GK1, GK2, Phant1, and Torin. 3. Fixes speech/subtitles syncing in SCI32 games that do not use global 90, like LSL6hires. 4. Fixes in-game volume controls in SCI32 games reflecting outdated audio volumes when a change is made during the game from the ScummVM launcher. 5. Fixes SCI32 games that would restore volumes from save games or reset volumes on startup, which caused game volumes to be out-of-sync with ScummVM when started. 6. ScummVM integration code for audio sync has been abstracted into a new GuestAdditions class. This keeps the ScummVM- specific code all in one place, with only small hooks into the engine code. ScummVM integrated save/load code should probably also go here in the future. Fixes Trac#9700.
2017-03-30SCI32: Fix broken sliders in Shivers settingsColin Snover
This problem is caused by the same invalid super call that broke the CCTV joystick.
2017-03-27SCI: Implement bounds-checked reads of game resourcesColin Snover
2017-03-19SCI: Add Colonel's Bequest patch and extend patcher functionalityMartin Kiewitz
Add Colonel's Bequest patch to fix an issue in room 35. When you tell Lilly about Gertie in act 2, Lilly will then walk out of the room. In case Laura (ego) is in her way, the game will effectively block and will appear frozen. This also happened, when using the original interpreter. This also adds a new functionality to the script patcher. PATCH_GETORIGINALUINT16 is able to get a full UINT16 from original script data and insert it somewhere else. PATCH_GETORIGINALBYTE and PATCH_GETORIGINALBYTEADJUST commands were merged internally and use the same internal command now. Some script patches were adjusted accordingly. Thanks again to wjp for helping on the script issue.
2017-03-18SCI: Add script patch for Laura Bow 2 to fix museum party room (350)Martin Kiewitz
When clicking anywhere while entering the middle museum party room (which has a large golden Egyptian head inside of it), the game will keep the script for entering active, which will then make it impossible to leave this room. This script bug also happened, when using the original interpreter. The patch applies to at least English + German floppy as well as English CD. Very many thanks to wjp for helping figuring the actual cause out.
2017-01-16SCI32: Script patch priority drawing bug in MGDXColin Snover
This fixes the horse at the fountain drawing on top of the fountain instead of behind it.
2017-01-16SCI32: Fix spinloop in Hoyle5Colin Snover
Hoyle5 will spin on kGetTime between 15 and 300 ticks in multiple game scripts in order to delay execution (for example, after choosing opponents and clicking "okay"). This causes ScummVM to be unresponsive and wastes CPU time. This commit patches the spin subroutines to instead call a kernel function (kWait) that waits without a spin loop. This kernel function was removed in SCI2, and has been added back in ScummVM specifically for Hoyle5, so this patch will not work with the original interpreter.
2017-01-12SCI32: Fix bad scroll delta in GK2 inventoryColin Snover
Fixes Trac#9648.
2017-01-09SCI32: Fix bad rendering of Sierra logo in MGDXColin Snover
2016-12-21SCI: Fix kq6 CD audio+subtitle script patchMartin Kiewitz
Original patch caused a text window to be shown at the cliffs (copy protection), even when audio-only mode was active.
2016-12-12SCI32: Adjust transition timingsColin Snover
Transition timings were originally chosen largely by feel in SQ6, as there was little other evidence to determine the correct speed. As additional games started being playable in ScummVM, it became apparent that these speeds were not quite right. Additional adjustments may be needed in the future, but these new timings seem to be somewhat closer to expectations than before.
2016-11-19SCI32: Add script patch for Shivers room 35170Colin Snover
2016-10-27SCI32: Fix typosColin Snover
Thanks @OmerMor.
2016-10-27SCI32: Fix LSL6hires script bugColin Snover
Fixes Trac#9612.
2016-10-14SCI32: Fix slow transitions in SQ6Colin Snover
2016-10-09SCI32: Change storage type of int16 arrays to hold reg_ts insteadColin Snover
Memory references and integers in SSCI are both 16-bit numbers, so game scripts frequently (incorrectly) use an IntArray instead of an IDArray for holding references. Since references in ScummVM are 32-bit reg_ts, IntArray entries must be large enough to hold reg_ts in order to be compatible with game scripts that store references in integer arrays. The alternative solution is to find and patch all incorrect use of IntArray across all games. This is possible, but a bit risky from a save game stability perspective, since incorrect IntArray usage is sometimes not apparent until well after the array is instantiated (like GK1's global interview array). This change invalidates existing SCI32 save games.
2016-10-09JANITORIAL: Remove trailing spacesEugene Sandulenko
2016-10-01SCI32: Use selector lookup in Torin script patch instead of magic numbersColin Snover
2016-10-01SCI32: Fix interrogation screen crash in GK1Colin Snover
2016-09-30SCI32: Fix buildWillem Jan Palenstijn
2016-09-29SCI32: Fix whitespaceColin Snover
2016-09-29SCI32: Fix SQ6 crash in Holocabana control panelColin Snover
2016-09-29SCI32: Fix Torin inventory crash caused by wrong array typeColin Snover
2016-09-29SCI32: Disable "change directory" button in native save/load dialogueColin Snover
2016-09-29SCI32: Fix warnings and incompatible save games when built without SCI32Colin Snover