Age | Commit message (Collapse) | Author |
|
|
|
This patch includes enhancements to the ScummVM integration with
SCI engine, with particular focus on SCI32 support.
1. Fixes audio volumes syncing erroneously to ScummVM in games
that modify the audio volume without user action (e.g. SCI1.1
talkies that reduce music volume during speech playback). Now,
volumes will only be synchronised when the user interacts with
the game's audio settings. This mechanism works by looking for
a known volume control object in the stack, and only syncing
when the control object is present. (Ports and planes were
researched and found unreliable.)
2. Fixes audio syncing in SCI32 games that do not set game
volumes through kDoSoundMasterVolume/kDoAudioVolume, like GK1,
GK2, Phant1, and Torin.
3. Fixes speech/subtitles syncing in SCI32 games that do not use
global 90, like LSL6hires.
4. Fixes in-game volume controls in SCI32 games reflecting
outdated audio volumes when a change is made during the game
from the ScummVM launcher.
5. Fixes SCI32 games that would restore volumes from save games
or reset volumes on startup, which caused game volumes to be
out-of-sync with ScummVM when started.
6. ScummVM integration code for audio sync has been abstracted
into a new GuestAdditions class. This keeps the ScummVM-
specific code all in one place, with only small hooks into the
engine code. ScummVM integrated save/load code should probably
also go here in the future.
Fixes Trac#9700.
|
|
This problem is caused by the same invalid super call that broke
the CCTV joystick.
|
|
|
|
Add Colonel's Bequest patch to fix an issue in room 35.
When you tell Lilly about Gertie in act 2, Lilly will then
walk out of the room. In case Laura (ego) is in her way, the game
will effectively block and will appear frozen.
This also happened, when using the original interpreter.
This also adds a new functionality to the script patcher.
PATCH_GETORIGINALUINT16 is able to get a full UINT16 from
original script data and insert it somewhere else.
PATCH_GETORIGINALBYTE and PATCH_GETORIGINALBYTEADJUST commands
were merged internally and use the same internal command now.
Some script patches were adjusted accordingly.
Thanks again to wjp for helping on the script issue.
|
|
When clicking anywhere while entering the middle museum party room
(which has a large golden Egyptian head inside of it), the game
will keep the script for entering active, which will then make it
impossible to leave this room.
This script bug also happened, when using the original interpreter.
The patch applies to at least English + German floppy as well as
English CD.
Very many thanks to wjp for helping figuring the actual cause out.
|
|
This fixes the horse at the fountain drawing on top of the
fountain instead of behind it.
|
|
Hoyle5 will spin on kGetTime between 15 and 300 ticks in multiple
game scripts in order to delay execution (for example, after
choosing opponents and clicking "okay"). This causes ScummVM to
be unresponsive and wastes CPU time.
This commit patches the spin subroutines to instead call a kernel
function (kWait) that waits without a spin loop. This kernel
function was removed in SCI2, and has been added back in ScummVM
specifically for Hoyle5, so this patch will not work with the
original interpreter.
|
|
Fixes Trac#9648.
|
|
|
|
Original patch caused a text window to be shown at the cliffs
(copy protection), even when audio-only mode was active.
|
|
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.
|
|
|
|
Thanks @OmerMor.
|
|
Fixes Trac#9612.
|
|
|
|
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 is applied only to games where the standard save/load
dialogue is used; games like KQ7 and Phantasmagoria, which use a
non-standard UI for save games, are still limited to the number of
saves originally supported.
|
|
|
|
This solves a game bug, that also happens when using the original
interpreter, during the time where Brutus and Bruno meet at the
shooting range.
|
|
The previous patch made ego not getting the drum book anymore.
|
|
Special thanks, credits and kudos to sluicebox on IRC, who did a
ton of research on this and even found this game bug originally.
|
|
Day 10 - when dressing up. Right after that Gabriel turns around,
which went on endlessly in ScummVM. In the original engine
kNumCels is broken and returns in special cases basically random
data instead of 0. We return 0, which caused the cycler to
never end, because the scripts asked to cycle until cel -1.
|
|
|
|
Subtitle box should now always use color 255, which should be
white all the time. Normally it uses color 7, which is white
most of the time, but for example pink/purple at the start of
chapter 5.
|
|
Volume was lowered, but not raised afterwards for certain cases
Original script patch was commited in
b676530528349842ad178d02a2cbe49a0facd68e
|
|
Needs lots of testing of course
Applies to 1.51 and 2.00
|
|
Wasn't bug #6571, but bug #6751
Thanks to omer_mor for spotting it
|
|
Fixes bug #6571
|
|
|
|
SCI: Script patch for QfG3 giant tree bounds
|
|
Command input stays disabled, when oiling the arm of the armor.
We fix this.
This script bug also happens, when using the original interpreter.
Fixes bug #7154
|
|
Script patch to change the fixed slot 999 to fixed slot 99 in the
game scripts and additional code for kSaveGame, that checks for
Cascade Quest + slot 99 and will then use ScummVM slot 0, which
is our auto-save slot.
Fixes bug #7007
Also added the game name to the other fan-made script patch.
|
|
This patch is about an issue, when interacting with the
armor in room 37 (main house, downstairs).
This bug also happened, when using the original interpreter
and effectively froze the game depending on the coordinate
of Laura Bow, when the command was entered.
Fixes bug #7119
Versions affected: English PC/Atari ST/Amiga Floppy
|
|
Script patch used "lsg" for one instruction, which should have
been "lag" instead.
Caused issues with the spider droid.
Added more details about this script patch in comments.
Also specified the method for a qfg3 script patch in comments.
|
|
At the base of the giant tree, when entering from the top east path,
the hero can get out of bounds and walk freely in the room.
This is caused by an incorrect cutoff used to determine whether the
hero entered from the top or bottom path.
The patch changes this cutoff, and prevents going out of bounds.
Fixes bug #6693
|
|
The hero is unable to tell Rakeesh and Kreesha about the Simabani
initiation, which would award him 3 points.
This is caused by a heap bug in room 285: the local array of possible
messages omits this message.
The patch fixes the bug by adding this message to the array.
Fixes bug #7086
|
|
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
|
|
So that hopefully the signature will match for all versions
|
|
Fixes game title views not shown while they are scaled in.
|