Age | Commit message (Collapse) | Author |
|
SSCI explicitly ignored invalid references passed to this function.
Fixes GK1 room 410, when using the Rada Drum book on the drummer.
|
|
This workaround is needed when starting a new game from a chapter after
the first one
|
|
This is used in Phantasmagoria, chapter 3, nursery (room 14200),
during the "ghost lullaby" event. It is used to make the lullaby
sound exclusive, but it really doesn't make any major difference.
Also, the documentation has been adjusted to contain this
information. Finally, the documentation has been adjusted to use
80 columns
|
|
|
|
This was left in the SCI16 code in commit 80d9182554
|
|
These were introduced in SCI3, and are used by RAMA. We don't preload
videos, so we don't really need kPlayVMDSetPreload, but
kPaletteSetGamma may need an implementation.
With these two stubs, the main menu of RAMA is working again
|
|
|
|
|
|
|
|
Used by Lighthouse.
|
|
Fixes (at least) the native SCI save dialogs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Revert "SCI32: Fix KQ7 1.51 video background"
This reverts commit c8affb54cca259f37522216bad739be085bf9caa.
Revert "SCI32: Fix crash when kShowMovie is called but the video cannot be found"
This reverts commit 93b06f4a9e08de281ee7eb9c780ceac147c3fb23.
Revert "SCI32: Fix KQ7 1.51 basic video playback"
This reverts commit cdab24aa07c18ad4a25a1659f7fca15cca5e358e.
Revert "SCI32: Additional Video32 documentation"
This reverts commit 4ff0924e57a9bc9101ee0799a967fe3373dd2574.
Revert "SCI32: Implement kShowMovie"
This reverts commit 13297c19298c5ad73c9e996c5c31ca91de124911.
|
|
|
|
This is used by Torin in room 50900.
|
|
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.
|
|
|
|
|
|
|
|
|
|
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
|
|
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.
|
|
|
|
These should be all the actually used subfunctions.
Co-authored-by: Colin Snover <github.com@zetafleet.com>
|
|
This line drawing code lives in a remodelled GfxPaint32 class
that is totally separate from GfxPaint16.
|
|
|
|
Replaces unused kernel calls to use kEmpty, and set correct
signatures for SCI32 kernel calls.
|
|
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.
|
|
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.
|
|
|
|
The SCI16 versions do not implement the scaling algorithm used
by SCI32 so would be off by one in some cases.
|
|
applyRemap() is still not finished, so nothing is actually visible yet
|
|
|
|
|
|
|
|
|
|
Not all SCI2.1late/SCI3 function signatures are fully known yet,
but all subops are now represented in the kernel tables.
|
|
|
|
Replacing a valid signature error by a warning isn't useful.
|
|
|
|
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.
|
|
kSetFontRes didn't exist in SCI2, showed up in SCI2.1early,
then was replaced with kFont subop 1 in SCI2.1mid.
|
|
This at least prevents SQ6 from crashing when going into the
introduction
|
|
Signatures in subops table are correct for length but unknown
types are marked as . instead of the correct type.
|
|
|