aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
AgeCommit message (Collapse)Author
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-18SCI32: Remove Windows platform from GK1 GermanColin Snover
This entry was added by a batch change operation in f7a72c897a9657320ccd6a32873b364f77412e98, but the German version of GK1 does not support Windows.
2017-06-18SCI32: Forward OLDDPCM8 parameter instead of using an if-elseColin Snover
Thanks @OmerMor for pointing out this improvement.
2017-06-18SCI: Fix looping of sounds that are not initialized yetColin Snover
This fixes at least the character selection screen in QFG4CD, where the sound for the torches is supposed to loop, but wasn't because kDoSoundSetLoop would bail out before setting the loop property on the soundObj.
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-18SCI32: Minor tweaks to improve code clarity & consistencyColin Snover
2017-06-18SCI32: Fix Audio32 mix volumesColin Snover
The previous code for attenuating audio channels was not accurate, so samples were quieter than they were supposed to be when mixed together. Robots were also being mixed without attenuation, which was incorrect.
2017-06-17SCI32: Avoid out-of-bounds read of pixel data in kIsOnMeColin Snover
Fixes Trac#9761, Trac#9844, Trac#9850, Trac#9851.
2017-06-17SCI32: Support old-format 8-bit DPCM coding for SCI2Colin Snover
2017-06-17SCI32: Implement engine-accurate DPCM overflow behaviourColin Snover
DPCM decompression algorithms in SSCI operate directly on 8- and 16-bit registers, so any sample that ends up being out-of-range during decompression gets wrapped by the CPU, not clipped. This does not fix any known problem with AUD files, but there are some VMDs (e.g. GK2 5280.VMD) which are known to contain OOR samples. Making this code more accurate should prevent trouble with any other similar files.
2017-06-17SCI: State SCI version in error if kernel subop detection failsColin Snover
2017-06-13SCI32: Add detection for PQ4, French CD versionBastien Bouclet
2017-06-10SCI: Tidy Script errors & ensure script number exists in all of themColin Snover
2017-06-10SCI32: Fix detection and loading of localized resources in TorinColin Snover
Italian still needs to be fixed, but nobody seems to have access to this version at the moment. Fixes Trac#9772.
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.
2017-06-10SCI: Change 'none' breakpoint action to 'ignore' for consistencyWillem Jan Palenstijn
2017-06-10SCI: Clean up breakpoint code (indentation, consistency)Willem Jan Palenstijn
2017-06-10SCI: Move bpk/logkernel to main breakpoint infrastructureWillem Jan Palenstijn
This changes the syntax for bpk and logkernel: Enable breakpoint on kernel call: bpk FrameOut Enable logging for kernel call: bpk FrameOut log For backward compatibility this has an alias: logkernel FrameOut Removing a kernel call breakpoint is done with bp_del/bc now.
2017-06-10SCI: Print breakpoint info on creationWillem Jan Palenstijn
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