aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
2017-06-10SCI: Allow setting bp action directly on creationWillem Jan Palenstijn
2017-06-10SCI: Allow multiple breakpoints with same trigger but different actionWillem Jan Palenstijn
2017-06-10SCI: Add inspect, none breakpoint actionsWillem Jan Palenstijn
2017-06-10SCI: Move printObject from console to scriptdebugWillem Jan Palenstijn
2017-06-10SCI: Add break/log/backtrace actions for triggered breakpointsWillem Jan Palenstijn
The action can be set using the new console command bp_action/bpact.
2017-06-10SCI: Add underscores to Breakpoint member variablesWillem Jan Palenstijn
2017-06-10SCI: Remove union from BreakpointWillem Jan Palenstijn
2017-06-10SCI: Move backtrace output to scriptdebug.cppWillem Jan Palenstijn
2017-06-10SCI: Handle selector read/write breakpoints from opcodesWillem Jan Palenstijn
2017-06-10SCI: Move scriptdebug declarations to separate headerWillem Jan Palenstijn
2017-06-10SCI: Fix wildcard selector breakpointsWillem Jan Palenstijn
0f9c33e02f1cb2c740c1eb0dcaad96dd22ec29e7 in 2011 broke selector breakpoints of the type "ObjName::", which previously caught all selector sends of the named object. Thanks to TMM and snover for noticing.
2017-06-10SCI: Start engine at tick 1Colin Snover
In SSCI, games could never start at tick 0 because the video benchmarking code on game startup would take several ticks to run. In ScummVM, where the benchmarking code is disabled, it becomes possible for games to start at tick 0. This can break a lot of kernel code, which uses tick 0 as a special value indicating that a feature is not active. For example, in GK2, the music at the start of the game will not fade in on systems that are fast enough to start audio playback at tick 0, since a fade start tick of 0 is used to indicate audio fade is disabled. Fixes Trac#9830.
2017-06-10SCI32: Fix uninitialized temp read in TorinColin Snover
Fixes Trac#9810.
2017-06-10SCI32: Fix uninitialized temp read in LSL6hiresColin Snover
Fixes Trac#9811.
2017-06-09SCI: Remove some unused #includesColin Snover
2017-06-09SCI: Return the original master sound volume when mute is onColin Snover
2017-06-09SCI32: Fix audio sync recursionColin Snover
Calling to SciEngine::syncSoundSettings from GuestAdditions recurses back into GuestAdditions, which is obviously not desirable. Even when it didn't manage to cause infinite recursion (as in SQ6 demo), it would make the UI behave in broken ways (e.g. the +/- buttons on the music slider in SQ6 would not work because the UI would just get updated immediately back to the closest rounded value).
2017-06-09SCI32: Implement kLock & kDoAudio(1) for SCI32Colin Snover
1. Unlocking all resources of a type using a resource ID of -1 is gone in SCI32; 2. Audio locks need to be serialized starting in GK2 for the game's modified kDoAudio(1) call; 3. Audio locks in SCI3 must work more like SSCI, since at least Lighthouse's `BackMusic::fade` method will attempt to unlock audio that was never locked by a script. In SSCI (and now in ScummVM too) this is a no-op; previously in ScummVM, it would remove Audio32's own lock on the audio resource, resulting in a use-after-free; 4. kDoAudio(1) starting in GK2 returns the number of active *not-in-memory* channels being played, not the total number of active channels. Fixes Trac#9675.
2017-06-09SCI: Do not lock Audio36/Sync36 in kLock for SCI1.1Colin Snover
This is not known to fix any problem, but was a noted difference in the implementation between ScummVM and SSCI.
2017-06-09SCI: Lock Audio resource types when digital SFX is enabledColin Snover
This seems to have been added in SCI1.1 and continued through SCI32; older games with digital SFX (like KQ5CD) did not convert the resource type in kLock. This is not known to fix any problem, but was a noted difference in the implementation between ScummVM and SSCI.
2017-06-09SCI: Remove unnecessary conditionColin Snover
Argument count validation for kernel calls is performed through the kernel table signature, so checking here is not necessary.
2017-06-09SCI: Fix typo in commentColin Snover
2017-06-09SCI: Remove unhelpful commentColin Snover
2017-06-09SCI: Add serialization for ResourceIdColin Snover
2017-06-09SCI32: Fix include pathColin Snover
2017-06-09SCI: Get LRU from list directly, instead of from a reverse iteratorColin Snover
2017-06-09SCI: Implement Serializable for ObjectColin Snover
2017-06-08COMMON: Make SpanOwner copy assignment make a copy of the owned SpanColin Snover
To move data from one SpanOwner to another, use `moveFrom`. Thanks @waltervn for pointing out the problem.
2017-06-08SCI32: Clarify code comment about Steam GK2 RESMAP.001Colin Snover
2017-06-08SCI32: Fix wave resource patch offsetColin Snover
This bug was only reproducible when loading a game using the multi-disc RESSFX.00x bundles. Fixes Trac#9832.
2017-05-31SCI32: Return CD speed in kPlatformColin Snover
This fixes missing playback of some videos in Rama, like the background video that plays when selecting an email at the computer at the start of the game.
2017-05-30SCI: SQ4CD: Limit workaround for Russian SQ4 to room 150+900Martin Kiewitz
As proposed by bluegr
2017-05-29SCI: SQ4CD: Remove room restriction of existing workarounds for endMartin Kiewitz
Fixes bug #9812
2017-05-29SCI32: GK1: Add second beignet timer issue script patchMartin Kiewitz
Should solve bug #9805
2017-05-27SCI32: Minor cleanup to plane debug informationColin Snover
2017-05-27SCI32: Remove dead codeColin Snover
2017-05-27SCI32: Remove invalid interaction cursor spinloop in KQ7Colin Snover
2017-05-27SCI32: Update some old comments related to virtual filesFilippos Karapetis
2017-05-27SCI: Remove a leftover SCI32 hackFilippos Karapetis
2017-05-26SCI32: Fix warningWillem Jan Palenstijn
2017-05-26SCI32: Fix kArrayFillHein-Pieter van Braam
The ScummVM implementation of class SciArray::fill() has a bug where it will overwrite the array[index] with the value count times, rather than fill the array starting from index count times. This patch fixes that behavior. This was noticed because the LSL7 dice game was broken, it was impossible to lose. After this patch the dice game works as expected. Closes gh-953.
2017-05-25SCI32: Fix SCI3 object names > 0xFFFFColin Snover
2017-05-24SCI32: Fix typo in script patch nameMartin Kiewitz
2017-05-24SCI32: Add script patch for lsl7 cheese maker priority bugMartin Kiewitz
This issue also happens when using the original interpreter.
2017-05-24SCI32: Add script patch for cheese maker issueMartin Kiewitz
Room 540, was game breaking, but effectively a script bug, that just happened to work in SSCI.
2017-05-23SCI32: Add 'music/' subdir to file path for LSL7 GOGHein-Pieter van Braam
LSL7 originally came with music in two qualities in subdirectories of the 'music' directory, 22s8 and 22s16. The gog.com release doesn't do this and only ships the hq music in the root of 'music/'. This PR adds it to the search path. Closes gh-951.
2017-05-23SCI32: Fix selector search for SCI2/2.1 games with missing vocab.997Colin Snover
Fixes Trac#9796.
2017-05-21SCI32: Fix return value of kWebConnectColin Snover
On macOS, the return code from OSystem::openUrl was the opposite of what it was supposed to be; it is now fixed, so this caller needs to be fixed too.
2017-05-20SCI: Add resource hash to resource_info debugger commandColin Snover
Bad resources that need to be blacklisted sometimes seem to have the same size as good resources. In such cases, the bad resources can be identified by hash instead. Adding a hash output to resource_info will make it easy for users to provide the hash of questionable resources inside of resource bundles that we do not have access to. Refs Trac#9797.
2017-05-20SCI: Stop leaking locals segments during script reuseColin Snover
When a game deletes a script and then loads the same script again before it has been fully deallocated, SegManager::instantiateScript tries to reuse the same script & locals segments, but it was failing to reuse the old locals segment because Script::freeScript would unconditionally clear the old locals SegmentId, which meant the old locals segment would just leak. This patch does not fix old save games which may contain orphaned locals segments, but should prevent the problem from occurring going forward. (It is possible to clean up these old save games, but this is not a big leak so it doesn't seem worth the extra effort to do so.)