aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel_tables.h
AgeCommit message (Collapse)Author
2018-09-06SCI32: Allow malformed calls to kLock in PQ:SWAT, after the training videosFilippos Karapetis
Fixes bug #10699
2018-08-21SCI32: Add stub for kWinDLL - used in Hoyle 5Filippos Karapetis
2017-09-30SCI32: Fix support for RAMA demoColin Snover
Fixes Trac#10251.
2017-09-29SCI32: Clean up unused kBitmap code/subopsColin Snover
2017-09-24SCI32: Dummy kPlayVMDSetFrameRateColin Snover
This subop is used only by RAMA. The VMD objects in RAMA's game code contain a frame rate field, which is usually -1, but occasionally is not. In the cases where it is not -1, it appears to be either set for a video with sound (so the value doesn't do anything to that video), or it is just resetting back to the baked-in frame rate of the video file (so it doesn't need to exist, except to fix videos broken by earlier played videos with explicit frame rates). Since this is a global state flag that does not get reset in SSCI, the ultimate effect of kPlayVMDSetFrameRate in RAMA is that it does nothing to any of the videos where the explicit frame rate is set, but it does inadvertently cause *other* videos with no sound and no explicit frame rate to have a different frame rate depending upon what was played earlier in the game (and whether or not the engine was restarted in the meantime). This bad transferring of frame rates is most noticeable with the exit-video of the vidmail player, which is played when you back out after selecting a vidmail. Its nominal framerate is 10fps, but it will play at whatever frame rate was last set by some other video that happened to have an explicit frame rate, even if that frame rate was bogus. So, just ignore all calls to this subop, as it is fatally buggy.
2017-09-24SCI32: Allow invalid references to be passed to kFileIOColin Snover
Near the end of the game, RAMA will start trying to store some invalid references. This does not affect the save game negatively in any way, but it was causing the kernel to assert a signature failure.
2017-09-24SCI32: Implement per-channel audio panningColin Snover
Used by RAMA, in various places, starting with the refrigerator at base camp after the cable car at the beginning of the game.
2017-09-23SCI32: Support RAMA's custom save games through kFileIOColin Snover
2017-09-08SCI32: Order nulls consistently in kernel signaturesColin Snover
2017-09-08SCI32: Remove redundant kStringGetData implementationColin Snover
This code is identical to the kArrayGetData implementation.
2017-09-08SCI32: Fix kString signatures to allow null references where appropriateColin Snover
The original interpreter allowed most string references to be null references, in which case it would substitute an empty string.
2017-09-08SCI32: Fix crash when changing security level of dead people in Phant2Colin Snover
In the original interpreter, is it valid to pass a null reference to both kArray(GetData) (it just acts as an identity function when the passed argument is not an object) and to kString functions (it always dereferences to an empty string). Fixes Trac#10039.
2017-09-03SCI32: Implement kCelLinkColin Snover
kCelLink exists in SSCI since 2.1mid, but it is only known to be used in Lighthouse, during the weapon creation puzzle near the end of the game.
2017-07-30SCI32: Implement Phant2 save/load integrationColin Snover
2017-07-26SCI32: Add kMinimize to stop unmapped function warningColin 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-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-05-13SCI32: Fix crash at end of TorinColin Snover
This "fix" is more of a hack, in the interest of making the game completable. The root cause is a combination of two problems in the game scripts: 1. Blink::init expects to receive either 0 or 2 arguments, but it assumes that if it received *any* arguments, it must have received 2 arguments. This assumption is wrong, though, because-- 2. soTorinWhoAreYou::changeState(0) calls poPecandEyes::setCycle(Blink) without including a second argument (the blink speed). This ends up with the second parameter being some garbage, and that garbage gets sent to kRandom which then complains about receiving garbage. The correct fix for this would be to fix soTorinWhoAreYou (in script 51400) to pass a second argument to setCycle, but there are not enough obvious spare bytes for a quick and easy patch, so this workaround will have to do for now. Fixes Trac#9779.
2017-05-08SCI32: Add workaround for KQ7Colin Snover
Fixes Trac#9763.
2017-04-23SCI32: Fix crash in Phant2 when clicking Help in the control panelColin Snover
2017-04-23SCI32: Add kPlayVMD subop 27 (SetPlane)Colin Snover
Used by RAMA, when playing a video at the Hub Camp computer at the beginning of the game (room 1004).
2017-04-23SCI32: Fix call to kFileIOIsValidDirectory in RAMAColin Snover
2017-04-22SCI: Remove #undef for a macro that does not existColin Snover
2017-04-22SCI32: Fix bad kPointSize implementationColin Snover
Fixes text scaling gone mad in Phant2.
2017-04-22SCI32: Fix kStringFormat signaturesColin Snover
2017-04-22SCI32: Remove original save/load option from games without ScummVM save ↵Colin Snover
integration
2017-04-22SCI: Move ScummVM kernel calls to 0xe0Colin Snover
2017-04-22SCI: Move ScummVM save/restore to GuestAdditions and reimplement for SCI32Colin Snover
2017-03-30SCI32: Fix crash when using brightness slider in ShiversColin Snover
2017-03-30SCI32: Add kWebConnect and kWinExecColin Snover
Used by Phant2.
2017-03-30SCI32: Implement known-used portions of kPlayDuckColin Snover
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-01-16SCI32: Add workaround for Hoyle5Colin Snover
2017-01-16SCI32: Fix loading save games in KQ7 1.51Colin Snover
2017-01-16SCI32: Fix spinloop in Hoyle5Colin Snover
Hoyle5 will spin on kGetTime between 15 and 300 ticks in multiple game scripts in order to delay execution (for example, after choosing opponents and clicking "okay"). This causes ScummVM to be unresponsive and wastes CPU time. This commit patches the spin subroutines to instead call a kernel function (kWait) that waits without a spin loop. This kernel function was removed in SCI2, and has been added back in ScummVM specifically for Hoyle5, so this patch will not work with the original interpreter.
2017-01-12SCI32: Add workarounds, transitions, fixes for PQ4CDColin Snover
2017-01-09SCI32: Ignore attempts to free null array reg_tsColin Snover
2017-01-09SCI32: Clean up comment on kSetHotRectanglesColin Snover
Since this feature is now implemented, it is not necessary to describe its intended functionality here.
2017-01-09SCI32: Split kCelInfo into subopsColin Snover
Different subops have different call signature requirements.
2017-01-09SCI32: Fix kSetShowStyle signature for SCI3Colin Snover
2016-12-11SCI32: Add workarounds for Hoyle5 Crazy EightsColin Snover
2016-12-11SCI32: Implement List sortColin Snover
Used by Hoyle5. Also includes a tiny amount of cleanup in kAddAfter for consistency with kAddBefore.
2016-12-11SCI32: Add workaround for Hoyle5 startup call to kPlatformColin Snover
Fixes Trac#9665.
2016-11-04SCI32: Implement kPlayVMDIgnorePalettesColin Snover
Used in Shivers room 35170 when pressing the play button.
2016-10-15SCI32: Fix crash clicking quit button during LSL6hires creditsColin Snover
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-09SCI32: Clarify some identifiersColin Snover
transparentColor -> skipColor displace -> origin scaledWidth -> xResolution scaledHeight -> yResolution
2016-10-01SCI32: Stub kGraphColin Snover
This kernel call exists only in SCI2 and is a null subroutine. It is called at the beginning of GK1.
2016-10-01SCI32: Fix signature of kString(ArraySetElements) to allow 0 argsColin Snover