Age | Commit message (Collapse) | Author |
|
The implementation was not correctly rounding the scaled position
with mulru, leading to occasionally incorrect hit detection at
the boundaries of boxes.
|
|
|
|
|
|
|
|
This is used by the Mr Soylent machines in SQ6 (e.g. room 370).
|
|
|
|
|
|
Fixes invalid memory access during kq5 floppy ending
|
|
Game hangs during the magic battle during the ending.
Happened in all multilingual versions because of a script bug
(scripts were waiting for a signal, music didn't set one)
Fixes French, German and Spanish versions of KQ5
Also happened, when using the original interpreter
|
|
If anything actually uses this feature, we should know about it
eventually.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This adds a slightly more accurate comparison algorithm that will
at least ensure that all the engine-generated planes and screen
items with matching priorities will be sorted above
script-generated planes and screen items, like in the original
engine. It still does not sort script-generated items by memory
handle order, so if that is ever a thing that actually happens,
those may still be in the wrong order.
|
|
|
|
|
|
|
|
Other platforms, that support analog stick + touch screen at the
same time, are possibly also affected.
Cursor workarounds exist for qfg1vga, qfg3, lsl5 and Island of
Dr. Brain. Those sometimes worked and sometimes didn't on
at least OpenPandora and should be fixed now.
|
|
Some backends like GCW0 do no support graphics >320x240 due to
the hardware limitation (downscaling is possible but it will ruin
the pixel hunting which is often part of the gameplay).
Instead of manually updating the list of engines, we now introduce
a new dependency.
I marked all relevant engines, but some, like tinsel, require more
work with putting their relevant high-res games under USE_HIGHRES
define.
|
|
|
|
Not all SCI2.1late/SCI3 function signatures are fully known yet,
but all subops are now represented in the kernel tables.
|
|
|
|
The original engine had some members on PlaneShowStyle to
allow wall clock timing but never actually used them in the
processing loop so transitions simply ran as quickly as the
CPU could process them. For the moment, we will just limit
these transitions to ~30fps, which hopefully roughly matches
the speed of the engine on hardware of the era.
|
|
|
|
Causes issues in at least gk1 (option + inventory plane are shown)
Game::restore is not called, when doing restores from launcher,
so in the original interpreter this script code wasn't called
either.
Fixes option + inventory planes etc. being shown right after
restoring via launcher, when original save/load dialogs were
disabled.
|
|
|
|
Adding consts to try to isolate rectangles that change during
draw list processing, to be investigated for incorrect mutations
causing lower screen items to be drawn over higher screen items at
their edges.
|
|
These changes should cause ScummVM to be more accurate in edge
case rounding.
|
|
|
|
|
|
|
|
|
|
|
|
5.25", 2 discs, interpreter 0.668
|
|
|
|
The previous code works correctly only for ratios like 2:1 that
do not generate remainders.
|
|
Replacing a valid signature error by a warning isn't useful.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is intended for early SCI2, but should work with older SCI too,
not that we need it.
|
|
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.
|