aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel.cpp
AgeCommit message (Collapse)Author
2019-06-23SCI: Add some more SCI11+ featuresKawa
Also gate them behind the presence of a 184.VOC resource instead of GID_CATDATE. This should not matter with regards to the remap effects -- the 2015 and 2016 demos had none, and the first that did has an unknown release status. Only the 2017 demo would fall, which would be easily fixed by dropping in a valid 184.VOC patch file.
2019-06-08SCI: Do not apply script patches when checking for static selectorsFilippos Karapetis
Fixes bug #10969
2019-05-12SCI: Remove unnecessary two-phase Kernel initialisationFilippos Karapetis
Adapted from csnover's commit 8c96c1fd3e1568b61ee0594522615466f26a7793
2019-04-06SCI: Fix LONGBOW broken pub messagessluicebox
2018-12-02SCI: Add support for The Dating Pool (#1403)Kawa
2018-08-21SCI: Add support for text loading in Hoyle 3 AmigaFilippos Karapetis
2017-09-24SCI32: Disable all SCI32 Mac codeColin Snover
This code is currently untestable and is almost certainly at least partly based on guesswork & not actual reverse-engineering (as was the case for all other pre-2015 SCI32 code), so future developers interested in adding SCI32 Mac support should use it only as an intermediate reference rather than as known good code.
2017-06-17SCI: State SCI version in error if kernel subop detection failsColin Snover
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-05-27SCI32: Remove dead codeColin Snover
2017-04-23SCI32: Undummy AvoidPath for SCI3Colin Snover
Used by LSL7.
2017-04-22SCI: Move ScummVM kernel calls to 0xe0Colin 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-27SCI: Implement bounds-checked reads of game resourcesColin 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-09SCI32: Clean up SCI3-only opcodesColin Snover
SCI3 includes four new opcodes: * op_info[0x26][0] puts -info- flag in accumulator * op_infoSP[0x26][1] pushes -info- flag to stack * op_superP[0x27][0] puts -super- reference in accumulator * op_superPSP[0x27][1] pushes -super- reference to stack The implementation of these opcodes was correct already, but the opcode names given were a bit misleading (the value is not always stored to accumulator), and magic numbers were used for these opcodes in places. A review of the opcode table in Phant2 indicates that there are no other new opcodes for SCI3.
2016-09-29SCI32: Rewrite kArray & kStringColin Snover
This change invalidates earlier SCI32 save games, which separated arrays and strings in an incompatible manner. Old save games contain invalid references to a string segment which no longer exists, and contain incompatible array structures that lack critical type information.
2016-09-21SCI: Fix kernel signature commentMartin Kiewitz
2016-08-01SCI32: Add bitmap segment and remove GC option from hunk segmentColin Snover
2016-07-12SCI32: Disable kernel call 0x23 on LSL6hiresColin Snover
LSL6hires calls 0x23 (Graph/Robot) from game scripts, but it is a null function in the game's interpreter.
2016-07-02SCI: Remove presumably long-outdated FIXMEWillem Jan Palenstijn
2016-07-02SCI: Improve kernel subfunction loggingWillem Jan Palenstijn
ExecStack now stores the kernel call number as well as the subfunction. This allows kStub and backtraces to log the actual subfunction called. The kernel call number in ExecStack used to be stored in the debugSelector field. It now has its own field, to avoid confusion.
2016-03-08SCI: Separate the demos of QFG4, PQ4 and GK1 from their full versionsFilippos Karapetis
The demo versions of these games were using a very different engine - SCI1.1 vs SCI2/SCI2.1. Thus, we split them into different game IDs, to avoid mixing specific game checks for them, as well as specific game workarounds, which are different for the demos than the full versions. Also, the demos should be working when SCI32 is disabled. For these games, we don't use ADGF_DEMO, to avoid game IDs like foodemo-demo
2016-01-22SCI: add user option for high resolution graphicsMartin Kiewitz
Instead of choosing Windows as platform, users can now also simply click this option for Gabriel Knight 1 + King's Quest 6 Defaults to high resolution graphics
2016-01-04SCI32: fix kString calling from within kArrayMartin Kiewitz
(didn't work since the introduction of kString signatures and the kString split-up)
2015-12-29SCI32: split up SCI2.1 into EARLY/MIDDLE/LATEMartin Kiewitz
- Detection works via signatures (couldn't find a better way) - new kString subcalls were introduced SCI2.1 LATE - kString now has signatures and is split via subcall table - kString fix, so that KQ7 doesn't crash, when starting a chapter - Sci2StringFunctionType removed, because no longer needed
2015-03-20SCI: improve debug output for signature mismatchMartin Kiewitz
dump parameter list to debugger as well
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2013-11-21SCI: fix script patcher for games w/o vocabMartin Kiewitz
2013-05-02COMMON: Change kPlatformPC to kPlatformDOSMatthew Hoops
"PC" was very ambiguous and now it matches what we show in the GUI. This also corrects sword2's platform to Windows.
2013-04-28SCI: Fix Phantasmagoria Mac's kDoSoundMatthew Hoops
2013-04-26SCI: Fix SCI32 BE selector name countMatthew Hoops
2012-07-04SCI: Update some kernel table related commentsFilippos Karapetis
2012-07-04SCI: Merge and simplify the code that sets the kernel functionsFilippos Karapetis
2012-06-18SCI: Add setter/getter methods to reg_t'sFilippos Karapetis
No functionality change has been made with this commit. This avoids setting and getting the reg_t members directly, and is the basis of any future work on large SCI3 scripts (larger than 64KB)
2012-06-15SCI: Replace RAW_IS_OBJECT with a methodFilippos Karapetis
2012-06-15Revert "SCI: Change Script::getObject() to accept a reg_t"Filippos Karapetis
This reverts commit 577d7e41c9ca2c498dc85e41c373fbdca8d2ed41.
2012-06-15SCI: Change Script::getObject() to accept a reg_tFilippos Karapetis
This is needed for upcoming changes to the Script class
2011-11-29SCI: Fix restarting SCI engine with different SCI versionWillem Jan Palenstijn
2011-11-29SCI: Add RtL FIXMEWillem Jan Palenstijn
2011-10-18SCI: Set the correct number of kernel functions for SCI3Filippos Karapetis
2011-09-22SCI: Ignore invalid pointers if the kernel function signature specifies itFilippos Karapetis
SCI scripts can send stale pointers to kernel functions (e.g. after loading a saved game). This is normal in some cases (such as kDisplay and kGraphRestoreBox), and their signatures are set to allow invalid pointers. Thus, in such cases, allow invalid pointers, as the kernel functions will handle them themselves. Fixes bug #3412002, and properly fixes bugs #3389579, #3292251, #3308087 and #3056811. Removed a relevant TODO.
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-02-16SCI: Add support for the KQ5 FM Towns resource formatMatthew Hoops
Thanks to alexbevi for providing details on the format
2011-02-05SCI: Add support for BE selector name tablesMatthew Hoops
svn-id: r55780
2011-01-08SCI2.1: Added a comment with the SCI2.1 games using a SCI2 kernelFilippos Karapetis
svn-id: r55176
2011-01-01SCI: debugC calls no longer require a debug level of 2 to show outputFilippos Karapetis
svn-id: r55086
2010-12-07SCI: Removed the system strings code and replaced it with a much more ↵Filippos Karapetis
simplified version, thus greatly simplifying handling of system strings svn-id: r54805
2010-11-18SCI3: Added another previously unused opcode (0x27 / 0x4e)Filippos Karapetis
svn-id: r54341