aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
2016-11-20SCI32: Fix reading view, pic, and palette patchesColin Snover
Unlike SCI16 games, the location of data within SCI32 patch files is calculated on a per-resource-type basis by the game engine, instead of by reading byte 1 of the patch file.
2016-11-20SCI32: Add recursion code to kListFirstTrue and kListAllTrueColin Snover
This change ensures that these kernel calls operate in the same manner that they did in SSCI.
2016-11-20SCI: Improve disassembly outputColin Snover
1. pushi opcode now displays decimal value and selector value (if one exists) in-line 2. lofsa, lofss, and super opcodes now display resolved object/class names 3. Opcode arguments are visually aligned
2016-11-20SCI: Add code-address breakpoints to debuggerColin Snover
2016-11-19SCI32: Remove no-longer-necessary Phant1 VMD sync hackColin Snover
2016-11-19SCI32: Add script patch for Shivers room 35170Colin Snover
2016-11-19SCI: Warn more loudly about uninitialised parameter readsColin Snover
Silently returning zero values can cause games to break. e.g. Shivers 1 room 35170 has a script bug where vJoystick::handleEvent makes a super call which causes doVerb to be called a second time with no arguments. In the original game this happened to work because the value already on the stack happened to be 1. In ScummVM this silently (unless VM debug messages were enabled) failed because the uninitialised read value was forced to 0.
2016-11-19SCI32: Add missing updateInfoFlagViewVisible callWillem Jan Palenstijn
I missed the one for varselector sends handled by the secondary loop in op_ret. This fixes #9641.
2016-11-10SCI: Add missing newline in debugger outputColin Snover
2016-11-10SCI32: Fix incomplete workaround commentColin Snover
2016-11-10SCI32: Fix GK1 crash when erasing letters in St Louis CemeteryColin Snover
Fixes Trac#9642.
2016-11-04SCI32: Implement kPlayVMDIgnorePalettesColin Snover
Used in Shivers room 35170 when pressing the play button.
2016-11-04SCI32: Stop digital audio when VMDs open in some SCI2.1 gamesColin Snover
2016-11-04SCI32: Fix VMD playback stuttering when kEventFlagToFrame is usedColin Snover
For example, Shivers room 932 when subtitles are enabled.
2016-11-04SCI32: Allow format strings with missing argumentsColin Snover
SSCI created a fake va_list and passed it to vsprintf, so extra placeholders would just silently end up reading garbage memory.
2016-11-04SCI32: Treat %d as unsigned in kStringColin Snover
At least Shivers has VMDs with resource IDs above 2^15; treating %d as signed means that the wrong filename gets created.
2016-11-03SCI: Add QFG1 game version to detection tableColin Snover
Thanks @tsoliman for the data.
2016-11-03SCI32: Allow SCI32 games to update speech & subtitles settingsColin Snover
Fixes Trac#9637.
2016-11-02SCI32: Fix incorrect text width calculation of non-ASCII stringsColin Snover
Fixes Trac#9639.
2016-11-02SCI32: Fix missing digital audio playback on save game restoreColin Snover
Fixes Trac#9581.
2016-11-02SCI: Remove old SCI32 hires detection heuristicColin Snover
2016-11-02SCI32: Automate kNumCels workaroundColin Snover
2016-11-02SCI32: Remove incorrect palette.h #includeColin Snover
2016-11-02SCI: Add reference dump to disk in debuggerColin Snover
This allows references in memory to be dumped to disk for examination by other tools. In the case of SCI32 bitmaps, data is output in 8-bit TGA format without transparency, which allows the current palette to also be examined. (The alternative would be to use 32-bit TGA to display transparency, and lose the palette, or dump to a more complicated format that supports 1-bit transparency.)
2016-10-28SCI: Fix broken loop count check in checkAltInputsWillem Jan Palenstijn
2016-10-28SCI: Resolve duplicate resmap.001 checkWillem Jan Palenstijn
Before cef5506e9f0ba328a064f058f074c979b8ba6485, we used to check for any files starting with resmap.00. We now check for resmap.000 and resmap.001.
2016-10-27SCI32: Read byte/string array values as signed in SCI2.1early-Colin Snover
KQ7 1.51 writes int16s from the save game catalogue into a Str object, then retrieves byte 0 from the string and compares it to -1. This happens to work out because (1) characters were treated as signed in SCI2.1early and earlier, and (2) int16s in the save game catalogue were little-endian. In SCI2.1mid and later, this trick no longer works because characters are treated as unsigned and get zero-extended instead. Fixes Trac#9632.
2016-10-27SCI32: Fix typosColin Snover
Thanks @OmerMor.
2016-10-27SCI32: Fix LSL6hires script bugColin Snover
Fixes Trac#9612.
2016-10-26SCI32: Fix AVI renderingColin Snover
Fixes Trac#9588.
2016-10-26SCI32: Initialize video buffers to avoid flash of garbage memoryColin Snover
2016-10-26SCI32: Use standard max_size method instead of ARRAYSIZE for a containerColin Snover
2016-10-26SCI: Rename hexDigitToInt to indicate it's intentionally brokenWillem Jan Palenstijn
2016-10-25SCI: Implement SSCI bug in hexadecimal escape sequencesColin Snover
In SSCI, strchr is called against a hex string with a duplicate 0 ("01234567890abcdef") to determine the decimal value of hex digits, which means the values A-F are incorrectly interpreted as 11-16 instead of 10-15. All versions of SSCI with support for hexadecimal escape sequences in messages (starting somewhere around Feb 1993) are buggy. The native save/load dialog of SCI32 relies on this defect to render the up and down arrows of the game selector. Fixes Trac#9582.
2016-10-22SCI32: Fix slow SCI2.1mid transitionsColin Snover
SSCI transitions code sends a large number of small show rects to the graphics manager, one at a time, for each division of a transition. Each time a rect is submitted, a call to showBits is made. This design was used when transitions for SCI32 were first implemented in ScummVM, and it worked OK because the hardware surface was updated by EventManager::getSciEvent, not showBits, so the large number of calls to showBits from the transitions code did not adversely affect engine performance. Later in SCI32 engine development, hardware surface updates were changed to occur in showBits so that the hardware surface would be updated at frame-out time, instead of at input-in time. This change meant that now the large number of calls to showBits from transitions became very expensive, and the engine would stall constantly refreshing the entire hardware surface. To fix this problem, the transitions code now (1) maximises the size of rects coming from transitions, when possible, and (2) only calls showBits when all the rects from one frame of a transition have been calculated and added to the show rects list. Additionally, there were some arithmetic errors in the implementation of pixel dissolve that have been corrected in this changeset. Fixes Trac#9614.
2016-10-21SCI32: Implement HShutterIn for SCI2.1mid+Colin Snover
Fixes Trac#9584.
2016-10-20SCI32: Fix wrong value passed to updateInfoFlagViewVisibleColin Snover
updateInfoFlagViewVisible accepts a property index, not a selector ID. Fixes Trac#9583.
2016-10-20SCI32: Fix QFG4 version commentsColin Snover
2016-10-20SCI32: Fix typoColin Snover
2016-10-20SCI32: Split out detection of features that cross SSCI versionsColin Snover
2016-10-20SCI32: Fix zero-offset exportsColin Snover
Exports with a zero offset are supposed to point to the start of the code block in the script hunk, but they were being ignored. This may also apply to SCI1.1 games, but until that can be verified, this fixes the zero-offset in only SCI32 games for now.
2016-10-16SCI32: Fix screen items incorrectly drawing over higher planesColin Snover
Fixes Trac#9583.
2016-10-16SCI32: Fix crash when clicking around the arterial blockage in SQ6Colin Snover
Thanks @hpvb for the report. Fixes Trac#9615. Closes #850.
2016-10-16SCI32: Fix workaround commentColin Snover
2016-10-15SCI32: Fix crash clicking quit button during LSL6hires creditsColin Snover
2016-10-15SCI32: Fix crash in LSL6hires endingColin Snover
Fixes Trac#9613.
2016-10-15SCI32: Fix kPalVary(SetVary) in SCI2.1early gamesColin Snover
Game scripts pass an extra argument which is never used in SSCI. This happens e.g. when warping from room 620 to room 860 in LSL6hires. Adding a signature for kPalVarySetVary for SCI2.1early games only does not work because KQ7 1.51 is detected as SCI2.1early but the interpreter includes kPalVary code that matches SCI2.1mid. Fixes Trac#9611.
2016-10-14SCI32: Fix mouse position clampingColin Snover
2016-10-14SCI: Ensure export breakpoints always trigger on export callsColin Snover
Previously, export calls to non-existing functions would act like there was never an export call, and the breakpoint would never be triggered.
2016-10-14SCI32: Fix slow transitions in SQ6Colin Snover