aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
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: Hack around MIDI parser causing stuck harp animation in KQ7Colin Snover
The eventual proper fix for this is to change the current MIDI parser to work the same as in SSCI, but for now this workaround allows the game to continue. Fixes Trac#9696.
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-30SCI32: Always reinit GfxText32 statics on game startupColin Snover
Fixes bad scaling of text when switching between games with different script resolutions.
2017-03-30SCI: Change default master MIDI volume to 15Colin Snover
GK1 handles MIDI volume by changing the volumes of individual sound objects, rather than by using the MIDI master volume. As a result, the master volume needs to default to the maximum output level in order for GK1 to play music at the correct volume. This change does not affect earlier games, since SCI16 managed MIDI volume via the master volume, and for these games the master volume from ScummVM is synced at startup.
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-30SCI32: Do not default to General MIDI for SCI2.1 gamesColin Snover
The only SCI32 game that uses MIDI and does not support AdLib is MGDX, and it its MIDI playback is currently broken regardless of the synth setting.
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: Fix typo in commentColin Snover
2017-03-30SCI32: Skip bad map 405 on CD 1 of PQ:SWATColin Snover
The resources on CD 1 are corrupt and point to invalid locations in the CD 1 RESOURCE.AUD. This can be noticed during the briefing on the Lucy Long callup, where descriptions of the map are missing and eventually the game gets stuck waiting for missing audio to finish playback.
2017-03-30SCI: Protect and clarify the purpose of Resource _header dataColin Snover
2017-03-30SCI32: Fix audio, wave, VMD, Duck, CLUT, TGA, ZZZ, Etc patchesColin Snover
Specifically, audio patches are used in at least PQ:SWAT (40103.AUD), Lighthouse (9103.AUD), and the GK2 demo (300.AUD).
2017-03-30SCI32: Use built-in system font as default font for GfxText32Colin Snover
Fixes the non-interactive Lighthouse demo.
2017-03-30SCI: Handle >64KiB offsets in parse_reg_tColin Snover
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: Print more detailed information on audio header size mismatchColin Snover
2017-03-30SCI32: Support reading sound effects from normal resource bundlesColin Snover
2017-03-30SCI: Fix incorrect read of LB2/MG256 audio sizesColin Snover
This happened to work previously because the size was not checked for validity, and because the audio player calculates its own size so this value was never actually used.
2017-03-30SCI32: Ignore invalid audio map entries in GK2Colin Snover
The invalid entries, which are on CD 6, appear to correspond to audio that's on CD 4 (though not with the correct offset for CD 4's RESOURCE.AUD). Skipping the invalid map entries on CD 6 should cause these audio files to be loaded from the CD 4 audio bundle if they are requested during chapter six since ScummVM combines resources from all CDs and matches on their IDs.
2017-03-30SCI: Fix remaining format string warningWillem Jan Palenstijn
2017-03-30SCI: Avoid shadow warnings in old GCCColin Snover
2017-03-30SCI: Update formatting strings to match updated Span APIColin Snover
2017-03-27SCI: Remove old SCI32 check from SCI16 drawing codeColin Snover
2017-03-27SCI: Simplify calculation of locals size in SCI0/1Colin Snover
2017-03-27SCI: Remove unused boilerplate from SciSpanColin Snover
2017-03-27SCI: Use containers in GfxView and remove some SCI32 codeColin 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 unnecessary castsWillem Jan Palenstijn
2017-02-26SIC32: Add RAMA French checksumsBastien Bouclet
2017-02-26SCI32: Add Phantasmagoria 2 French checksumsBastien Bouclet
2017-02-26SCI32: Add Lighthouse French checksumsBastien Bouclet
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-18SCI: Fix unaligned readWillem Jan Palenstijn
2017-02-07SCI: Fix warningsWillem Jan Palenstijn
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)