- Skate-O-Rama (CD version) can now be completed at all game speeds.
- Removed the extra speed throttling on Skate-O-Rama. Floppy doesn't
have the timing bugs and now both versions run at normal speeds.
- Fixed the coordinate bug that made the west exit impossible at
certain game speeds.
Bugs #5514 and #11038
Disables SCI16 speed tests with generic script patches.
- All games now pass their speed tests, and consistently.
- Handles games/versions that the benchmarking heuristic misses.
- Fixes bug #13529 (speed test overflow on fast CPUs) on all games.
- Replaces most game-specific patches.
I've left the benchmarking heuristic so that any game or version that
still needs patching will still be handled with unthrottling.
Fixes some well known deadend bugs in the original game:
- Not being able to give the Laibon the horn
- Not being able to enter the Laibon's hut
Bug #11425
For Hoyle Bridge, we jump directly to the Bridge screen, and it's not
possible to go back to the game selection screen, so we don't need
patches for that version.
For Children's Collection, we now use enablePatch(), which results in
cleaner code.
Now that we correctly pass direction key events to QFG4,
we need to patch the script bugs that they trigger.
These crashes also occur in the original game.
See: 1b4660a508
Prevents extra speed throttling from being applied when a script queries
the restart flag. Some rooms such as the KQ6 caves and the QFG4 caves do
this on every game cycle. In practice, this extra throttling didn't seem
to have much effect, but the intent is to only throttle game loops and
the script patches that fix inner loops.
Updated script patches to call kGameIsRestarting like game loops.
We have several SCI32 script patches that replace kGetTime spin loops
with calls to kWait for the intended delay. This prevents blocking
the main thread and allows ScummVM to be responsive and update the
screen. But kWait isn't a simple sleep, it's a throttling function,
and the duration that it sleeps (if any) is determined by the time
since it was last called. kWait was only in SCI16 interpreters so it
had to be restored to SCI32 and this required a further workaround
for Phant2 compatibility.
Now we have a dedicated custom kernel function, kScummVMSleep, which
does a simple sleep so that SCI32 script patch delays are consistent
and the Phant2 workaround isn't needed. This approach is similar to
kScummVMSaveLoad.
Only enable the speech+subs toggle in the English version of PQ4.
French and German versions feature localized text with English voices.
Also, our injected speech+subtitles view is currently only in English.
This script patch caused the bug it claimed to fix.
It appears that during SCI32 development in 2017, a bug sent the horse
at Banbury Cross on an incorrect path behind the fountain instead of in
front of it. This would have looked glitchy since the horse has a higher
priority than the fountain. But this was misdiagnosed as a priority bug,
even though the original doesn't have any problems, and the script was
patched to set the horse to a lower priority. The real ScummVM bug was
fixed some time later, and ever since the horse has taken the correct
path and looked glitchy due to the patch setting the wrong priority.