Age | Commit message (Collapse) | Author |
|
This bug existed in SSCI and was pulled in carelessly during
initial implementation of SciArray. Closer examination of SCI3
reveals that this only happened to work in SSCI because it would
always allocate on the first resize, and would always allocate 25
extra elements per allocation.
|
|
In GK2, restoring a save game causes the segment manager to reset
in the middle of a kListFirstTrue call, which invalidates all
pointers and reg_ts to stored data. This means that when
kListFirstTrue tries to decrement the list recursion counter at
the end of iteration, it is writing to freed memory, potentially
resulting in heap corruption.
SCI3 added checks to prevent this from happening, but these checks
seem like they should have also been applied to some SCI2.1 games
as well (like GK2).
Since there should be no negative side-effect to this check, it
is applied universally to all SCI32 games.
|
|
GK2 includes some VMDs in the RESSCI.00n volume bundles for the
chase scene at the end of Chapter 6.
|
|
|
|
This fixes the crash in PQ2 1.002.011. There is another workaround
for the same problem from ticket Trac#5223, but it uses a different
method name that does not match in this version of PQ2.
Fixes Trac#9670.
|
|
Original patch caused a text window to be shown at the cliffs
(copy protection), even when audio-only mode was active.
|
|
|
|
Used by at least Phantasmagoria 2.
|
|
|
|
This bug exists in a system script that is called from many, many
rooms, so it is simpler to just make the workaround apply to all
rooms.
|
|
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.
|
|
|
|
|
|
These games either don't have saves (Hoyle) or the saves bypass
the normal save game system so are unidentifiable by ScummVM
(Phant1).
|
|
|
|
In SSCI, all files opened through kFileIO are writable. Most of
the time this does not matter and the engine can get away with
using read-only streams, but when chase.dat is opened by Phant1
from the retry dialogue during the chase, it needs to be writable
because game code puts a '98' marker in the chase data. If this
write does not occur, the game gets stuck in a loop looking for
the marker.
|
|
This game has its own custom save/load system that bypasses the
normal SCI save game system and performs raw file IO, so its save
files are not identifiable as ScummVM saves.
|
|
|
|
SaveFileRewriteStream enables backwards seeking, which is necessary
for the chase.dat in Phant1 to be parsed correctly by the game.
|
|
|
|
It is not necessary to explain what is happening, just how to
reproduce it.
|
|
|
|
Fixes Trac#9586, Trac#9587.
|
|
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.
|
|
|
|
Learning the bytecode for file op is necessary when creating
workaround signatures, as the signature-finding mechanism does not
currently ignore line/file instructions.
|
|
|
|
Used by Hoyle5.
Also includes a tiny amount of cleanup in kAddAfter for
consistency with kAddBefore.
|
|
Closes Trac#9624.
|
|
Closes Trac#9626. Closes gh-858.
|
|
Fixes Trac#9665.
|
|
|
|
Fixes Trac#9660.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This also fixes the display of the startup LCD message, which had
been delayed until after the sysex transfer was finished.
|
|
For whatever reason, this game uses a different global for
specifying the text speed.
|
|
|
|
|
|
Unlike SCI16 games, the location of data within SCI32 patch files
is calculated on a per-resource-type basis by the game engine,
instead of by reading byte 1 of the patch file.
|