aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
AgeCommit message (Collapse)Author
2017-03-30SCI32: Check for game aborts in all kList iteration methodsColin Snover
This fixes a use-after-free in GK2 when restoring a second save game, when the List reg_t is still considered valid but the List has moved due to a partial game restore.
2017-03-30SCI: Add clarifying comment to op_restColin Snover
2017-03-30SCI: Stop getCurrentCallOrigin from mutating stack framesColin Snover
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-30SCI32: Improve bounds checking in SciString trimColin Snover
2017-03-30SCI: Ensure object name reg_ts are valid before dereferencing themColin Snover
2017-03-30SCI32: Add workaround for uninitialised read in TorinColin Snover
2017-03-30SCI32: Add workaround for uninitialised read in GK1Colin Snover
2017-03-30SCI: Give kernel calls a valid stack pointerColin Snover
Some kernel calls need to be able to call back into game script code, which requires a valid stack pointer for use with invokeSelector. An example of this is the guest additions code that syncs audio volumes from ScummVM: it needs to be able to call into the game scripts responsible for managing the in-game audio volume UI.
2017-03-30SCI: Whitespace alignmentColin Snover
2017-03-30SCI32: Fix crash when using brightness slider in ShiversColin Snover
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-30SCI: Replace magic numbers in reg_t handling with symbolsColin Snover
2017-03-30SCI32: Add kWebConnect and kWinExecColin Snover
Used by Phant2.
2017-03-30SCI32: Implement known-used portions of kPlayDuckColin Snover
2017-03-30SCI: Fix remaining format string warningWillem Jan Palenstijn
2017-03-30SCI: Update formatting strings to match updated Span APIColin Snover
2017-03-27SCI: Simplify calculation of locals size in SCI0/1Colin Snover
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-02-27SCI: Fix up readString writing into too small bufferWillem Jan Palenstijn
This fixes QfG4 character import, which specifies a size of 52 for a buffer of size 40.
2017-02-26SCI: Clean up kRandom + allow 0 parameters via signaturesMartin Kiewitz
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-18SCI: Remove check that is never triggeredWillem Jan Palenstijn
Since blockSize is asserted to be positive, buf can never be equal to _buf.
2017-02-05SCI: Fix more unsafe C-string usageColin Snover
2017-02-05SCI: Use strnlen instead of strlen to avoid buffer overflowsColin Snover
2017-01-31SCI: Add more comments to SQ4-floppy workaroundTarek Soliman
I did a full-score playthrough of the game with a warning() on the workaround condition as m_kiewitz suggested. The following room numbers were logged: * room#1: intro logo * room#21: time rip (intro and ending) * room#531: time pod time travel * room#290: astro chicken star background * room#376: right after astro chicken game over (called only once)
2017-01-31SCI: Expand workaround for script bug #3537232Tarek Soliman
More details in PR#889
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: Add workarounds for MGDXColin Snover
2017-01-16SCI32: Add workaround for Hoyle5Colin Snover
2017-01-16SCI32: Disable compression on Hoyle5 options filesColin Snover
Compression overhead takes up more space than uncompressed files, plus the uncompressed files it creates are marginally quicker and easier to debug with external tools.
2017-01-16SCI32: Add workarounds for KQ7 2.00bColin Snover
2017-01-16SCI32: Fix loading save games in KQ7 1.51Colin Snover
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-16SCI: Fix Possible Uninitialized Variable Usages.D G Turner
2017-01-14SCI: Fix Warnings about Copy Constructor Failing to Call Base Class.D G Turner
2017-01-12SCI32: Fix bad scroll delta in GK2 inventoryColin Snover
Fixes Trac#9648.
2017-01-12SCI32: "Fix" renderer for PQ4CDColin Snover
PQ4CD and several other games contain a hack in two renderer methods to avoid rendering invalid screen items with zero or negative-dimension target rects. This prevents PQ4CD from crashing during the fifth phase of target practice.
2017-01-12SCI32: Add workarounds, transitions, fixes for PQ4CDColin Snover
2017-01-11SCI32: Add workarounds for PQ:SWATColin Snover
2017-01-11SCI32: Remove backslashes from PQ:SWAT extra save game filesColin Snover
The original interpreter created subdirectories for each in-game profile, but copying this behaviour would add a lot of superfluous complexity to the save game system in ScummVM, and may not be portable to all supported platforms. Instead, when the game tries to save its files to a subdirectory, the backslash in the file name is replaced with an underscore so it can be created successfully on filesystems where backslash is an illegal file name character. This has a side-effect of causing all save games to be displayed under all profiles, instead of just the ones "belonging" to a particular profile, but this seems like a reasonable trade-off given that there is no reason to play this game with more than one profile.
2017-01-11SCI32: Add a workaround for the demo version of LSL7Filippos Karapetis
2017-01-10SCI: Fix Unused Variable Compiler Warning when SCI32 is not enabled.D G Turner
The bytesWritten variable is not used if SCI32 is not enabled. Fixed by adding this and success flag to the debug console print.
2017-01-09SCI32: Fix kSetLanguageColin Snover
2017-01-09SCI32: Fix bad rendering of Sierra logo in MGDXColin Snover
2017-01-09SCI32: Disable compression for Phantasmagoria save filesColin Snover
2017-01-09SCI32: Fix Torin demo crashColin Snover
2017-01-09SCI32: Fix SQ6 demo crashColin Snover
2017-01-09SCI32: Fix crashes and bad cel positioning in GK2 demoColin Snover
2017-01-09SCI32: Generalise uninitialised read workarounds for RAMAColin Snover