aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/script_patches.cpp
AgeCommit message (Collapse)Author
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
2016-09-29SCI32: Add mark for KQ7 in script patchesColin Snover
2016-09-29SCI32: Increase allowed number of save games in native save/loadColin Snover
This is applied only to games where the standard save/load dialogue is used; games like KQ7 and Phantasmagoria, which use a non-standard UI for save games, are still limited to the number of saves originally supported.
2016-09-29SCI32: Patch bad calls to IntArray::newWith in Phant1 and SQ6Colin Snover
2016-09-18SCI: Add qfg1vga script patch to fix bug #9558Martin Kiewitz
This solves a game bug, that also happens when using the original interpreter, during the time where Brutus and Bruno meet at the shooting range.
2016-09-09SCI32: Fix GK1 day 5 script patchMartin Kiewitz
The previous patch made ego not getting the drum book anymore.
2016-09-08SCI32: Add script patch for fixing game dialogue error on day 5Martin Kiewitz
Special thanks, credits and kudos to sluicebox on IRC, who did a ton of research on this and even found this game bug originally.
2016-08-28SCI32: Add script patch for Gabriel Knight 1 script bug day 10Martin Kiewitz
Day 10 - when dressing up. Right after that Gabriel turns around, which went on endlessly in ScummVM. In the original engine kNumCels is broken and returns in special cases basically random data instead of 0. We return 0, which caused the cycler to never end, because the scripts asked to cycle until cel -1.
2016-07-11SCI: Update script patch commentsMartin Kiewitz
2016-07-11SCI32: Improve kq7 subtitle script patchMartin Kiewitz
Subtitle box should now always use color 255, which should be white all the time. Normally it uses color 7, which is white most of the time, but for example pink/purple at the start of chapter 5.
2016-07-11SCI32: Fix an issue with the KQ7 subtitles script patchMartin Kiewitz
Volume was lowered, but not raised afterwards for certain cases Original script patch was commited in b676530528349842ad178d02a2cbe49a0facd68e
2016-07-10SCI32: Add script patch to fix/improve KQ7 subtitlesMartin Kiewitz
Needs lots of testing of course Applies to 1.51 and 2.00
2016-07-06SCI: Fix typo in script patch comment (longbow arithmetic bug)Martin Kiewitz
Wasn't bug #6571, but bug #6751 Thanks to omer_mor for spotting it
2016-07-04SCI: Adding script patch for longbow arithmetic berry bush bugMartin Kiewitz
Fixes bug #6571
2016-07-01SCI: Fix script patcher, so that it works on BE systemsMartin Kiewitz
2016-07-01Merge pull request #766 from OmerMor/qfg3_boundsFilippos Karapetis
SCI: Script patch for QfG3 giant tree bounds
2016-06-27SCI: Add script patch for another Colonel's Bequest game bugMartin Kiewitz
Command input stays disabled, when oiling the arm of the armor. We fix this. This script bug also happens, when using the original interpreter. Fixes bug #7154
2016-06-25SCI: Fix auto-saving in the fan-made Cascade QuestMartin Kiewitz
Script patch to change the fixed slot 999 to fixed slot 99 in the game scripts and additional code for kSaveGame, that checks for Cascade Quest + slot 99 and will then use ScummVM slot 0, which is our auto-save slot. Fixes bug #7007 Also added the game name to the other fan-made script patch.
2016-06-25SCI: Script patch for critical Colonel's Bequest game bugMartin Kiewitz
This patch is about an issue, when interacting with the armor in room 37 (main house, downstairs). This bug also happened, when using the original interpreter and effectively froze the game depending on the coordinate of Laura Bow, when the command was entered. Fixes bug #7119 Versions affected: English PC/Atari ST/Amiga Floppy
2016-06-25SCI: Fix SQ1VGA script patch, fixes bug #7145Martin Kiewitz
Script patch used "lsg" for one instruction, which should have been "lag" instead. Caused issues with the spider droid. Added more details about this script patch in comments. Also specified the method for a qfg3 script patch in comments.
2016-05-29SCI: Script patch for QfG3 giant tree boundsOmer Mor
At the base of the giant tree, when entering from the top east path, the hero can get out of bounds and walk freely in the room. This is caused by an incorrect cutoff used to determine whether the hero entered from the top or bottom path. The patch changes this cutoff, and prevents going out of bounds. Fixes bug #6693
2016-05-22SCI: Script patch for fixing 3 missing points in QfG3Omer Mor
The hero is unable to tell Rakeesh and Kreesha about the Simabani initiation, which would award him 3 points. This is caused by a heap bug in room 285: the local array of possible messages omits this message. The patch fixes the bug by adding this message to the array. Fixes bug #7086
2016-03-08SCI: Script patch for ending glitch in multilingual kq5Martin Kiewitz
Game hangs during the magic battle during the ending. Happened in all multilingual versions because of a script bug (scripts were waiting for a signal, music didn't set one) Fixes French, German and Spanish versions of KQ5 Also happened, when using the original interpreter
2016-02-26SCI: Make Freddy Pharkas intro scaling patch more genericMartin Kiewitz
So that hopefully the signature will match for all versions
2016-02-25SCI: Add script patch for Freddy Pharkas intro scalingMartin Kiewitz
Fixes game title views not shown while they are scaled in.