aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel_tables.h
AgeCommit message (Collapse)Author
2016-08-01SCI32: Add 6-argument signature of kAddPicAtColin Snover
This is used by Torin in room 50900.
2016-08-01SCI32: Implement plane transitions (kSetShowStyle and kSetScroll)Colin Snover
This commit implements all of the known plane transitions from SCI2 through SCI2.1mid games. Because kSetShowStyle is always called indirectly via the Styler game script, it is difficult to find all the places where transitions are used. As such, transitions that appeared to never be used have been added as stubs which will trigger a game crash with a message to report what was being done, so any missed transition types can be identified quickly and then implemented.
2016-07-11SCI32: Split GfxPalette and GfxPalette32 + HunkPaletteColin Snover
2016-07-11SCI32: Split kPalCycle into subop functionsColin Snover
2016-07-10SCI32: Clean up Video32/VMDPlayerColin Snover
2016-07-10SCI32: Implement kPlayVMDColin Snover
2016-06-26SCI32: Fix broken Remap implementationColin Snover
Remap would crash SCI2.1early games with 19 remap slots, and did not actually work in most cases in SCI2.1mid+ games. The SCI16 implementation was moved to its own separate file but was otherwise touched as little as possible, so may still have similar problems to the SCI32 code. 1. Split SCI16 and SCI32 code into separate files 2. Use -32 prefixes for SCI32 code and no prefix for SCI16 code, where possible, to match other existing code 3. Avoid accidental corruption of values from the VM that may be valid when signed or larger than 8 bits 4. Added documentation 5. Add missing remap CelObj calls 6. Inline where possible in performance-critical code paths 7. Fix bad `matchColor` function, and move it from GfxPalette to GfxRemap32 since it is only used by GfxRemap32 8. Fix bad capitalisation in getCycleMap 9. Remove unnecessary initialisation of SingleRemaps 10. Update architecture to more closely mirror how SSCI worked 11. Clarify the purpose of each type of remap type (and associated variable names) 12. Split large `apply` function into smaller units 13. Fix buffer overrun when loading a SCI2.1early game with remap 14. Remove use of `#define` constants 15. Warn instead of crashing with an error on invalid input (to match SSCI more closely) 16. Change the collision avoidance mechanism between the RemapType enum and remap kernel functions 17. Add save/load function
2016-06-21SCI32: Implement basic kMessageBoxColin Snover
This kernel call seems only to be used by KQ7 1.51 (which was Windows-only) to send warnings to the user. It was easy enough to do a basic implementation in the ScummVM GUI rather than just make it an empty call, so now it is a thing.
2016-06-21SCI32: Add workaround for kScrollWindowAdd call in PhantasmagoriaWillem Jan Palenstijn
2016-06-21SCI32: Implement kScrollWindowWillem Jan Palenstijn
These should be all the actually used subfunctions. Co-authored-by: Colin Snover <github.com@zetafleet.com>
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-06-20SCI32: Add kDoSound(play) workaround for LSL6hiresColin Snover
2016-06-20SCI: Minor cleanup of kDoSoundColin Snover
Replaces unused kernel calls to use kEmpty, and set correct signatures for SCI32 kernel calls.
2016-06-20SCI32: Rewrite digital audio engineColin Snover
This provides a complete implementation of kDoAudio through SCI2.1mid, plus partial implementation of SCI3 features. Digital audio calls shunted through kDoSound have also been updated to go through the SCI32 audio mixer, though these shunts are a bit hacky because the ScummVM implementation of kDoSound does not currently match how SSCI kDoSound is designed. It is probably possible in the future to just replace the SCI1.1 audio code (audio.cpp) with the new SCI32 code, since the major differences seem to be that (1) SCI1.1 only supported one digital audio playback channel (this is configurable already), (2) it had extra commands for CD audio playback and queued sample playback.
2016-05-25SCI32: Fix LSL6 hires control panel script bugColin Snover
The control panel initialisation script makes an invalid two-argument call to get the width of the settings dial; this only happens to work because the third argument on the stack was set to zero by an earlier call.
2016-03-13SCI32: Correct some kernel call signaturesColin Snover
2016-03-13SCI32: Implement kCelHigh and kCelWide SCI32 versionsColin Snover
The SCI16 versions do not implement the scaling algorithm used by SCI32 so would be off by one in some cases.
2016-03-11SCI32: Initial implementation of kRemapColorsFilippos Karapetis
applyRemap() is still not finished, so nothing is actually visible yet
2016-03-10SCI32: Implement kMovePlaneItemsColin Snover
2016-03-10SCI32: Minor cleanup of kernel callsColin Snover
2016-03-10SCI32: Implement kSetNowSeenColin Snover
2016-03-10SCI32: Implement kCantBeHereColin Snover
2016-03-03SCI32: Add all kBitmap signaturesColin Snover
Not all SCI2.1late/SCI3 function signatures are fully known yet, but all subops are now represented in the kernel tables.
2016-03-02SCI32: Add a workaround for kPalVarySetPercent in GK1 (chapter change)Filippos Karapetis
2016-03-01SCI32: Revert GK1 hacksWillem Jan Palenstijn
Replacing a valid signature error by a warning isn't useful.
2016-03-01SCI32: GK1 adds another optional parameter to kPalVarySetPercentFilippos Karapetis
2016-02-28SCI32: Non-titled text bitmap implementationColin Snover
This implementation is not 100% engine accurate, but it is more accurate than what was there, and hopefully the differences between this and the engine code are merely cosmetic. The known (intentional) differences are: 1. Uses ScummVM rects inside the engine code, converting to/from SCI rects on the kernel edges and when scaling 2. Fewer side effects when performing operations that *should* have been pure from the start (like text dimension calculation). Still not side-effect-free, but at least things like colours and alignment do not need to be reset every time a measurement is taken, unlike in the actual engine. Editor controls and some other kBitmap code are temporarily disabled as a result of changes to GfxText32 until they can be updated to be engine-accurate.
2016-02-18SCI: Add short-lived kSetFontRes kernel functionColin Snover
kSetFontRes didn't exist in SCI2, showed up in SCI2.1early, then was replaced with kFont subop 1 in SCI2.1mid.
2016-02-18SCI: WIP GfxText32 codeColin Snover
This at least prevents SQ6 from crashing when going into the introduction
2016-02-18SCI: Build kernel table for ScrollWindow and stub seen functionsColin Snover
Signatures in subops table are correct for length but unknown types are marked as . instead of the correct type.
2016-01-15SCI: Do not map SetScroll twiceFilippos Karapetis
2016-01-15SCI: Add an initial implementation of kStringTrimFilippos Karapetis
Thanks to lskovlun for his help
2016-01-15SCI: Allow null references to kStringGetData, for Torin's PassageFilippos Karapetis
Added a TODO for rhis, for now
2016-01-14SCI: Implement SCI32 kPalVary and kPalette setFadeColin Snover
This also fixes kPalCycle signatures to be more accurate.
2016-01-14SCI: Add kPalMorph stubColin Snover
2016-01-14SCI: Fix bad spacing in kernel tablesColin Snover
2016-01-08SCI: Initialize kString properly for SCI2 gamesFilippos Karapetis
SIG_UNTIL_SCI21MID did not account for SCI2 games. Fixes GK1 DOS
2016-01-07SCI32: Add kSetPalStyleRange stub codeColin Snover
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-02-14SCI: Register and save playBed option to PlaySoundWillem Jan Palenstijn
The playBed option is not handled yet, only stored. This increases the savegame format version.
2014-08-08SCI: Allow invalid references to kUnload() - bug #6600Filippos Karapetis
Since the reference will be invalidated anyway by kUnload itself, there's no real reason to check for its validity. We do the same with kGraph() and kDisplay().
2014-06-01SCI: more hoyle 4 workarounds (bug #6604)Martin Kiewitz
2014-02-19SCI: Fix script bug #6485 - "SCI: MUMG EGA - kStrCpy error"Filippos Karapetis
2014-02-18SCI: Make GPL headers consistent in themselves.Johannes Schickel
2014-02-17SCI: Allow saving without a VERSION file in JonesFilippos Karapetis
Apparently, the original does the same. Fixes bug #6535
2013-10-30SCI: Fix script bug #3615120 - "SCI: Crazy Nick Laura Bow - kReadNumber ↵Filippos Karapetis
signature mismatch"
2013-01-11SCI: Add 2 workarounds for script bugs in QFG4Filippos Karapetis
2012-10-22SCI: Fix bug #3578335 - "SCI: Mixed-Up Mother Goose EGA - crash upon ↵Filippos Karapetis
choosing kid" In several SCI0 games, the parameter to kDoSoundFade can be null. We handle that case, instead of adding individual workarounds per game
2012-09-26JANITORIAL: Remove trailing whitespaces.Johannes Schickel
Powered by: git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-07-24SCI: Separate the early SCI11 version of kRemapColors from the SCI32 oneFilippos Karapetis