Age | Commit message (Collapse) | Author |
|
|
|
Fixes the ego disappearing behind the castle doors in MGDX.
|
|
|
|
In PQ4CD, when leaving the shooting range through the front door,
some transition screen items will be generated that have invalid
dimensions. SSCI simply clips these rectangles to zero.
|
|
PQ4CD and several other games contain a hack in two renderer
methods to avoid rendering invalid screen items with zero or
negative-dimension target rects. This prevents PQ4CD from
crashing during the fifth phase of target practice.
|
|
|
|
|
|
This is most noticeable at the beginning of the game during
benchmarking, where the benchmarking loop used to cause the mouse
to get stuck for the duration of the benchmark.
|
|
|
|
|
|
|
|
|
|
GK2 includes some VMDs in the RESSCI.00n volume bundles for the
chase scene at the end of Chapter 6.
|
|
|
|
Used by at least Phantasmagoria 2.
|
|
SSCI's last resort comparison here was to compare the object IDs
of planes & screen items, but this randomly breaks (at least) the
"you have died" dialog at the end of Phant1, and text & buttons
in Hoyle5, even in SSCI itself.
This commit changes last resort comparison to use a monotonically
increasing ID instead, which keeps objects with identical priority
& z-index in creation order when compared.
Fixes Trac#9585.
|
|
This sequence is used in Hoyle5 when viewing the rules for a game.
|
|
Fixes Trac#9662.
|
|
Transition timings were originally chosen largely by feel in SQ6,
as there was little other evidence to determine the correct speed.
As additional games started being playable in ScummVM, it became
apparent that these speeds were not quite right.
Additional adjustments may be needed in the future, but these new
timings seem to be somewhat closer to expectations than before.
|
|
Fixes Trac#9660.
|
|
|
|
Used in Shivers room 35170 when pressing the play button.
|
|
|
|
For example, Shivers room 932 when subtitles are enabled.
|
|
Fixes Trac#9639.
|
|
|
|
|
|
|
|
Fixes Trac#9588.
|
|
|
|
|
|
SSCI transitions code sends a large number of small show rects
to the graphics manager, one at a time, for each division of a
transition. Each time a rect is submitted, a call to showBits
is made. This design was used when transitions for SCI32 were
first implemented in ScummVM, and it worked OK because the
hardware surface was updated by EventManager::getSciEvent,
not showBits, so the large number of calls to showBits from the
transitions code did not adversely affect engine performance.
Later in SCI32 engine development, hardware surface updates
were changed to occur in showBits so that the hardware surface
would be updated at frame-out time, instead of at input-in time.
This change meant that now the large number of calls to showBits
from transitions became very expensive, and the engine would
stall constantly refreshing the entire hardware surface.
To fix this problem, the transitions code now (1) maximises the
size of rects coming from transitions, when possible, and (2) only
calls showBits when all the rects from one frame of a transition
have been calculated and added to the show rects list.
Additionally, there were some arithmetic errors in the
implementation of pixel dissolve that have been corrected in this
changeset.
Fixes Trac#9614.
|
|
Fixes Trac#9584.
|
|
|
|
|
|
Fixes Trac#9583.
|
|
CID 1351620.
|
|
|
|
transparentColor -> skipColor
displace -> origin
scaledWidth -> xResolution
scaledHeight -> yResolution
|
|
Memory references and integers in SSCI are both 16-bit numbers,
so game scripts frequently (incorrectly) use an IntArray instead
of an IDArray for holding references. Since references in ScummVM
are 32-bit reg_ts, IntArray entries must be large enough to hold
reg_ts in order to be compatible with game scripts that store
references in integer arrays.
The alternative solution is to find and patch all incorrect use of
IntArray across all games. This is possible, but a bit risky from
a save game stability perspective, since incorrect IntArray usage
is sometimes not apparent until well after the array is
instantiated (like GK1's global interview array).
This change invalidates existing SCI32 save games.
|
|
|
|
|
|
|
|
|
|
This fixes the incorrect appearance of the Sierra logo in PQ4 when
the main menu appears in hi-res mode.
The behaviour of kPalCycle(SetCycle) changed in between 2.1early
and 2.1mid to fix an off-by-one error that prevented the last
palette entry in a cycle range from being used. Some earlier games,
like PQ4CD in hi-res mode, relied on this behaviour, and would
render incorrectly if the last palette entry in a range was used.
|
|
|
|
|
|
|
|
|
|
|