Commit Graph
7940 Commits
Author SHA1 Message Date
Martin Kiewitz 4d7d7698eb SCI32: Add script patch for Bitty Kitty / Barbie game glitch
Fixes bug #9849
Which is a pseudo-game-breaking glitch of the game itself.
Applies to at least English+German floppy and English CD version.
2017-08-07 00:06:14 +02:00
Martin Kiewitz 5a4840ee55 SCI32: Add script patches for action sequences in city hall 2017-08-06 21:09:07 +02:00
Torbjörn Andersson 70a2ca8b7d JANITORIAL: Silence more GCC 7 warnings
All these fall through were marked as deliberate, so again I've only
changed the comment to silence GCC.
2017-08-06 13:30:51 +02:00
Torbjörn Andersson 14525bb412 JANITORIAL: Silence some GCC 7 warnings
We have lots and lots of -Wimplicit-fallthrough warnings, and I
don't know if it's worth fixing them or not. But if we want to,
this is how it can be done.
2017-08-06 11:48:14 +02:00
Colin Snover 3874f454e0 SCI32: Always initialize RobotDecoder::_syncFrame
This flag previously was only being initialized in Robot files
with audio. This means the flag was incorrectly carried to
Robots without audio, and if the first Robot played by the game
had no audio, it would be a garbage read. (This latter thing
happens at the beginning of Lighthouse.)
2017-08-04 13:30:02 -05:00
Colin Snover 5412bda5ab SCI32: Fix loading audio resources from RESSCI.PAT
This is used by Lighthouse.
2017-08-04 13:29:55 -05:00
Colin Snover 1cb265f8da SCI32: Add ADGF_CD flag to Phant2 detection entries 2017-07-30 21:22:55 -05:00
Colin Snover 8043715e28 SCI32: Promote Phant2 to ADGF_TESTING 2017-07-30 21:04:51 -05:00
Colin Snover c254df2d2d SCI32: Increase maximum save games for Phant2 2017-07-30 21:04:51 -05:00
Colin Snover caa8293fce SCI32: Make sure audio is not paused from the future
This can occur when a save game from the past is loaded and the
audio system was paused prior to loading the save game. This was
fixed eventually in SSCI somewhere around GK2, since it pauses
all audio before restoring a game and then resumes it after the
save game is loaded (after all of the audio channels have been
added from the save game). Since this would seem to be a problem
for earlier games as well, this change is applied universally
instead of being conditionally applied only to the games with
interpreters containing this change.

This patch contains some additional sanity checks that emit
warnings if individual channels end up being started from the
future. There was never such checking in SSCI, and it does not
seem likely to ever happen, but it is unclear right now if this is
an actual problem or not.
2017-07-30 19:22:35 -05:00
Colin Snover 5c3a2cf16a SCI32: Add load from launcher support for Phant2
Adding a hook into kPlayDuck to skip the intro video feels kind of
crappy, but it seemed simpler, consistent with the other hooks for
launch loading, and therefore preferable versus hot-patching the
script or messing with PC in the VM or something.
2017-07-30 19:21:55 -05:00
Colin Snover 49e8f05714 SCI32: Implement Phant2 save/load integration 2017-07-30 19:10:50 -05:00
Colin Snover 325fd1a3ef SCI32: Deduplicate guest additions save/load code 2017-07-30 19:10:50 -05:00
Colin Snover e4b3478d99 SCI: Show inherited methods when viewing an object in the debugger 2017-07-30 19:10:50 -05:00
Colin Snover 06686c09f0 SCI32: Fix breakpoints on reading/writing selectors in SCI3 2017-07-30 19:10:50 -05:00
Colin Snover d02e62a769 SCI32: Indicate that LSL7 and Torin use the same save/load code 2017-07-30 19:10:50 -05:00
Colin Snover c8a06bed40 SCI32: Fix Phant2 game name
The game was originally titled "Phantasmagoria: A Puzzle of Flesh",
but the publisher now seem to be titling it "Phantasmagoria 2: A
Puzzle of Flesh". It was never referred to using roman numerals in
any release as far as I can find (the French "Fatal Obsessions"
release was just "Phantasmagoria: Obsessions Fatales").
2017-07-30 19:10:50 -05:00
Colin Snover ba4c28418f SCI32: Minor code deduplication 2017-07-30 19:10:50 -05:00
Colin Snover b13777da8c SCI32: Implement guest additions volume sync for Phant2 2017-07-30 19:10:50 -05:00
Colin Snover ad05bfedd8 SCI: Expose API for retrieving multiple objects with the same name
This is needed by Phant2 guest additions to find the correct
slider for the music volume, since the sliders have no unique name.
2017-07-30 19:10:50 -05:00
Colin Snover d2b26b2c21 SCI32: Update Phant2 GUIOs to reflect game features 2017-07-30 19:10:50 -05:00
Colin Snover a79bd8b645 SCI32: Add uninitialized read workaround for Phant2 2017-07-30 19:10:50 -05:00
Martin Kiewitz 4668b1655c SCI32: Add workaround entry for PQ4 floppy city hall room 390
To fix an uninitialized read when clicking somewhere to walk around
in city hall.
2017-07-30 22:10:05 +02:00
Martin Kiewitz 99f5a3dc04 SCI32: Add script patch for PQ4 floppy computer issue
This fixes buggy PQ4 system script code and makes entering user
and password on the police computer not trigger a signature mismatch
anymore.

Script code was fixed by Sierra in PQ4 CD.
2017-07-30 14:07:32 +02:00
Bastien Bouclet ec49730711 VIDEO: Allow setting the mixer sound type used to play audio tracks 2017-07-27 06:40:07 +02:00
Colin Snover 365dde1e5d SCI32: Reduce priority of PATCHES directory for Phant2
For whatever reason, Sierra decided that the final patches would
go in the root directory for Phant2. The game disc includes
(different, older) patches for many of the same resources in the
PATCHES directory, and loading those instead makes the game not
always work quite right.
2017-07-26 22:43:20 -05:00
Colin Snover 655c5973fd SCI32: Add kMinimize to stop unmapped function warning 2017-07-26 22:43:19 -05:00
Colin Snover dc597dc7a8 SCI32: Patch spin loop in Phant2 puzzle 2017-07-26 22:02:37 -05:00
Colin Snover 8adb91038f SCI32: Dummy SCI3 bitmap calls to discover possible usage
Non-use of these kernel calls was assumed by reviewing script
disassembly by SV, but it turns out that SV was not picking up
script patches correctly in SCI3 games, so this data is no longer
considered reliable.
2017-07-26 22:02:37 -05:00
Colin Snover 85194cdf75 SCI32: Patch bad version retrieval in Phant2 2017-07-26 22:02:37 -05:00
Colin Snover 4357809ce8 SCI32: Fix truncated save game names in Phant2
Phant2 creates save game names that append "<PROTECTED>" at the
end of the game name, with an assumption that the game name is
always exactly 36 characters long. This seems to be OK with other
games too (tested GK1, SQ6, and Torin).
2017-07-26 22:02:37 -05:00
Colin Snover 14907039fe SCI32: Fix lofsa/lofss of strings in SCI3 disassembly 2017-07-26 22:02:37 -05:00
Colin Snover ad8be1e506 SCI32: Promote MGDX to ADGF_TESTING 2017-07-24 19:36:39 -05:00
Colin Snover 97f7308da3 SCI32: Add music volume UI sync for MGDX 2017-07-24 19:36:38 -05:00
Colin Snover 5ab010e15f SCI32: Fix MGDX platform in detection tables 2017-07-24 19:36:37 -05:00
Colin Snover dbdbb9b5b3 SCI32: Match 4-language MGDX extra save game data 2017-07-24 19:36:36 -05:00
Colin Snover bfa6ad5155 SCI32: Use dynamic selector in QFG4 trap script patch 2017-07-24 19:36:35 -05:00
Colin Snover 40e9963baa SCI32: Deduplicate volume reset script patches & add to MGDX 2017-07-24 19:36:34 -05:00
Colin Snover f88bcb3ee9 SCI32: Add deflang (default language) kGetConfig key for MGDX 2017-07-24 19:36:32 -05:00
Colin Snover 4c316d45fd SCI32: Fix ResourceManager::changeAudioDirectory
Fixes Trac#9577.
2017-07-24 19:36:28 -05:00
Colin Snover 2005ed79d6 SCI32: Emit a warning when an audio resource cannot be found
Refs Trac#9976.
2017-07-23 16:01:19 -05:00
Colin Snover d38704e16d SCI: Blacklist certain audio map patch files
Refs Trac#9976.
2017-07-23 16:01:19 -05:00
Colin Snover 4d52b018a2 SCI: Keep audio maps out of the LRU cache 2017-07-23 16:01:19 -05:00
Colin Snover 580f3875c0 SCI32: Fix explicit mouse position changes
This was broken by 9f33f2b3df.
2017-07-23 11:42:55 -05:00
Colin Snover dabcacb0ca SCI32: Add missing method documentation 2017-07-23 10:35:13 -05:00
Colin Snover 8d32353394 SCI32: Stop throttling of kFrameOut during interactive VMD playback
Refs Trac#9974, Trac#9975.
2017-07-23 10:35:13 -05:00
Colin Snover 2004aecb05 SCI32: Make stop flag condition more explicit 2017-07-23 10:35:13 -05:00
Colin Snover 2ed18b86db SCI32: Check for stop events before rendering the next frame
This should make things slightly more responsive and avoids
unnecessary rendering of frames that are just going to disappear
in a moment.
2017-07-23 10:35:13 -05:00
Colin Snover 0beb259278 SCI32: Improve performance when flushing events during video playback
Calling through EventManager::getSciEvent to flush events is
pretty inefficient and created stalls that lead to dropped
frames during the chapter 7 chase in Phantasmagoria 1.

If necessary, performance could be improved further by extending
Common::EventManager to expose SDL_FlushEvents, but this seems to
finish in 0-1ms so should be OK for now.

Refs Trac#9974, Trac#9975.
2017-07-23 10:35:13 -05:00
Colin Snover 6b87b13ab1 SCI: Minor cleanups in kGetEvent 2017-07-23 10:35:13 -05:00