aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
AgeCommit message (Collapse)Author
2017-07-30SCI32: Minor code deduplicationColin Snover
2017-07-30SCI32: Implement guest additions volume sync for Phant2Colin Snover
2017-07-30SCI: Expose API for retrieving multiple objects with the same nameColin Snover
This is needed by Phant2 guest additions to find the correct slider for the music volume, since the sliders have no unique name.
2017-07-30SCI32: Add uninitialized read workaround for Phant2Colin Snover
2017-07-30SCI32: Add workaround entry for PQ4 floppy city hall room 390Martin Kiewitz
To fix an uninitialized read when clicking somewhere to walk around in city hall.
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: Add kMinimize to stop unmapped function warningColin Snover
2017-07-26SCI32: Patch spin loop in Phant2 puzzleColin Snover
2017-07-26SCI32: Dummy SCI3 bitmap calls to discover possible usageColin Snover
Non-use of these kernel calls was assumed by reviewing script disassembly by SV, but it turns out that SV was not picking up script patches correctly in SCI3 games, so this data is no longer considered reliable.
2017-07-26SCI32: Patch bad version retrieval in Phant2Colin Snover
2017-07-26SCI32: Fix truncated save game names in Phant2Colin Snover
Phant2 creates save game names that append "<PROTECTED>" at the end of the game name, with an assumption that the game name is always exactly 36 characters long. This seems to be OK with other games too (tested GK1, SQ6, and Torin).
2017-07-26SCI32: Fix lofsa/lofss of strings in SCI3 disassemblyColin Snover
2017-07-24SCI32: Add music volume UI sync for MGDXColin Snover
2017-07-24SCI32: Match 4-language MGDX extra save game dataColin 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-24SCI32: Add deflang (default language) kGetConfig key for MGDXColin Snover
2017-07-23SCI: Minor cleanups in kGetEventColin Snover
2017-07-23SCI32: Fix hot rectangle eventsColin Snover
This fixes delayed mouse cursor updates during the chase scene in Phant1. Refs Trac#9975.
2017-07-23SCI: Resolve offset names when disassembling object methodsColin Snover
2017-07-17SCI32: Add workaround for Torin/LSL7 running with subtitles onlyColin Snover
Since these later SCI32 games weren't really designed to work with subtitles-only message mode, if this doesn't work consistently or breaks the games a lot in other places, the subtitles-only message type could possibly be implemented in some other way, like by messing with the game's speech volume global instead.
2017-07-17SCI32: Add guest additions support for LSL7Colin Snover
2017-07-16SCI32: Remove duplicate callColin Snover
2017-07-16SCI32: Fix wrong GK1 sound volume syncColin Snover
Fixes Trac#9793.
2017-07-16SCI32: Improve GK1 narrator speech syncColin Snover
2017-07-15SCI32: Add patch for mismatched PointSoft Torin heap 20700Colin Snover
Refs Trac#9776, Trac#9864. Fixes Trac#9797.
2017-07-15SCI: Stop double-initialization of SCI0/1 objectsColin Snover
These objects should have been initialized only during the first pass. Double-initialization does not cause any visible problem problem during normal operation (mostly it just causes memory waste by making Object::_baseVars/_baseMethod double up their data), but could have silently allowed games to receive bogus data for an out-of-bounds property or method index, instead of raising an error.
2017-07-15SCI: Fix up Object::_baseMethod implementationColin Snover
1. In SCI0/1, selectors and offsets in the method block are stored contiguously (all selectors, then all offsets), with a null separator between the two runs. All the later versions of SCI instead interleave selectors & offsets. Since these values are already being copied into a new array anyway, code for reading method selectors/offsets is now simplified by interleaving this data when it is written into _baseMethod for SCI0/1, so the same equation for retrieving method selectors/offsets can be used across all SCI versions. 2. In SCI1.1-2.1 branch, the method count was being copied into the first entry of the array, which meant that SCI1.1-2.1 had extra code for dealing with the fact that the first entry was not an entry. This has been fixed, and the extra code removed. 3. Data was being overread into _baseMethod in all games SCI0-2.1. (SCI0/1 had an extra magic value of 2, and SCI1.1-2.1 had an extra magic value of 3). Reviewing history, it's not clear why this happened, other than that it appears to have been introduced at 7b0760f1bc5c28abcede041a6e3930f84ff3d319. My best guess is that this was a confusion between byte count and record count, where the intent was to read an extra 2 bytes for the null separator in SCI0/1, but it actually read 2 records instead. (I do not have a guess on why SCI1.1 ended up with a 3.) This overreading has been removed.
2017-07-13SCI32: Patch out bad rat view init code in PhantasmagoriaColin Snover
Fixes Trac#9957.
2017-07-13SCI32: Add workaround for Phant1Colin Snover
2017-07-09SCI32: Fix kObjectIntersectWillem Jan Palenstijn
It was using SCI16 calls to get the NowSeenRects. This fixes #9855.
2017-07-07SCI32: Add workarounds for PQ4Colin Snover
2017-07-07SCI32: Force General MIDI for games that support nothing elseColin Snover
* MGDX has only GM music; * KQ7 1.x's AdLib data is incomplete, so is not usable even though it is partially there Fixes Trac#9789.
2017-07-06SCI32: Improve kPlayVMD renderingColin Snover
1. Added a new game option for linear interpolation when scaling overlay-mode video in ScummVM builds with USE_RGB_COLOR; 2. Implemented SCI2.1-variant of the VMD player renderer (fixes Trac#9857), which bypasses the engine's normal rendering pipeline; 3. Improved accuracy of the SCI3-variant of the VMD player by writing HunkPalettes into the VMD's CelObjMem instead of submitting palettes directly to GfxPalette32.
2017-07-06SCI32: Improve kShowMovieWin (AVI) renderingColin Snover
1. Added a new game option for linear interpolation when scaling video in ScummVM builds with USE_RGB_COLOR; 2. 8bpp videos that put black in a palette index other than 0 (KQ7) should now always render correctly without the earlier game-specific workarounds which did not work very well; 3. Data from game scripts regarding video size and position are now ignored, since games always just try to show videos in the middle of the screen, but frequently get this a little bit wrong, causing either bad aspect ratios or off-center videos; 4. Builds without USE_RGB_COLOR support will not crash when attempting to play >8bpp AVIs, like those from KQ7 2.00b. Fixes Trac#9843, Trac#9762.
2017-07-06SCI32: Add workaround for SQ6Colin Snover
2017-07-06SCI32: Centralise OSystem screen updatesColin Snover
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-06-19SCI32: Add workaround for invalid kFrameOut call in PQ4Colin Snover
Fixes Trac#9848.
2017-06-19SCI32: Add workaround for uninitialised read in PQ4Colin Snover
Fixes Trac#9847.
2017-06-19SCI32: Add workaround for invalid kPalVarySetStart call in PQ4Colin Snover
Fixes Trac#9845.
2017-06-18SCI: Switch SCI2 games to use Audio32Colin Snover
Upon investigation of Sound code across SCI32 games, it was determined that there are actually (at least) 3 different revisions, not just a single SCI2.1 version. This patch only changes the parts of Sound code that are relevant to the correct use of Audio32. Fixes Trac#9736, Trac#9756, Trac#9767, Trac#9791.
2017-06-17SCI: State SCI version in error if kernel subop detection failsColin Snover
2017-06-10SCI: Tidy Script errors & ensure script number exists in all of themColin Snover
2017-06-10SCI: Expand kernel breakpoint pattern matching for negative matchesWillem Jan Palenstijn
See matchKernelBreakpointPattern() for samples. The main envisioned use is DoSound*,!DoSoundUpdateCues to match all DoSound sub-functions except DoSoundUpdateCues.