Commit Graph
9033 Commits
Author SHA1 Message Date
Filippos Karapetis 7146df7e9e SCI: Disable ScummVM autosaves 2022-06-14 01:44:24 +03:00
sluicebox 50fec97f8a SCI32: Fix LSL6HIRES phone crash
Fixes bug #13554
2022-06-08 09:03:39 -04:00
sluicebox 9558095053 SCI: Remove trailing array commas 2022-06-06 17:55:50 -04:00
sluicebox 0eac3efe70 SCI32: Add LSL6HIRES kResCheck Wave/Audio handling
Adds missing fallback behavior that appeared in at least LSL6-Hires.
Removes a workaround that only addressed a symptom of this bug;
the buggy scripts only execute when a correct call to kResCheck fails.

- Clicking four times on lobby sign no longer crashes
- Sound effect now plays when quitting during end credits

Fixes bug #13549
2022-06-06 17:32:50 -04:00
sluicebox a5833242a1 SCI: Fix compiler warning 2022-06-06 17:30:47 -04:00
sluicebox fa59cf87f3 SCI: Fix reading version string on earlier games
Fixes the version string not being included in GMM saves or autosaves
if the game stored its string in global 28 instead of 27.
2022-06-06 17:30:47 -04:00
sluicebox c84e747e3b SCI32: Initialize ScrollWindow line indices
ScrollWindow's constructor was missing a call to initialize
line indices. Using a scrollbar before any text had been added
accessed an uninitialized array and failed an assertion.

Fixes bug #13542 in LSL6-Hires
2022-06-06 17:30:47 -04:00
sluicebox a100e03663 SCI: Fix SQ4 Skate-O-Rama chase timing
- 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
2022-06-06 17:30:47 -04:00
sluicebox ea48986006 SCI: Disable speed tests with script patches
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.
2022-06-06 17:20:58 -04:00
sluicebox fed2504257 SCI: Fix QFG1VGA PC pic window initialization
I forgot the platform test in a3c3865877

Also, a second attempt at explaining something confusing
2022-06-06 17:20:58 -04:00
athrxx 974c51b4cd SCI: improve sound (mute handling) related comments 2022-06-05 09:10:59 +03:00
athrxx 8eba7fb4fb SCI: fix bug no. 13496 (LSL6 music plays all instruments / tracks at …
…once)

I am not sure if this bug ticket is about just one or about several bugs. This is at least something I could reproduce. The reason is that there can be channels that should start up muted. We didn't support that. I also fixed a couple of other things about the mute state that I noticed.
2022-06-05 09:10:59 +03:00
athrxx 2803adc0b8 SCI: update mutex comment
(after turning _mutex into a reference to the mixers's mutex)
2022-06-03 23:42:02 +03:00
athrxx 2ef6e24e56 SCI: avoid deadlocks by using only one mutex
Make use of the mixer's mutex instead of creating a new one. Otherwise there can still be lock-ups when the main thread and the mixer thread lock each other up in different mutexes (causing a deadlock/freeze). I just noticed this with KQ5 FM-Towns.

We had the same issue in AGOS, it was fixed by allowing to access the mixer's mutex. We can use the same thing here...
2022-06-03 23:42:02 +03:00
sluicebox 3c3ed549f1 SCI: Disable JONES speed test
Fixes bug #13529
2022-06-03 12:00:58 -04:00
athrxx cab7e386f2 SCI: fix regression from c2975276 (fix music handling during auto-save)
This is really a necessary fix, so recommended for merging before the release.

The negative global pause counter (that I really added only for the GMM/autosave situation) may not be used from within kDoSoundPause. It causes issues, the counter will go out of the expected range (also, the "Music also seems to randomly disappear when saving / restoring games" mentioned in ticket no. 13496 might be related to this).

I didn't see this, since we were focussed on SCI0. But it can be easily tested with e. g. LSL1 VGA. Just save right at the start and restore the game, it will call kDoSoundPause and trigger the issue...
2022-06-02 11:19:58 +03:00
sluicebox 19dd711b79 SCI: Fix detection entry for LB2 Spanish CD
Fixes palette glitches and missing message errors
2022-05-29 10:36:52 -04:00
sluicebox eee84be802 SCI: Add detection entry for KQ5 Spanish variant 2022-05-28 06:53:16 -04:00
sluicebox dffe39a91c SCI: Disable LSL2 speed test 2022-05-28 03:49:45 -04:00
sluicebox 5b3adb4407 SCI: Fix some script patch typos 2022-05-27 02:38:47 -04:00
sluicebox 1c2e1bc54f SCI32: Fix LSL6HIRES delay when guard presses button
Fixes bug #13501
2022-05-27 02:07:37 -04:00
sluicebox fd146d77d0 SCI32: Initialize Sound:handle for non-preload samples
Fixes bug #13500 where LSL6HIRES doesn't play the audio for the death
message after the security guard launches a missile.

Thanks to @RayKoopa for reporting this and other discrepancies
2022-05-27 02:07:37 -04:00
Donovan Watteau 5ebd9b8d23 BUILD: Remove/simplify GCC_ATLEAST() calls when they targeted pre-C++11 compilers
C++11 is now required, so there's no point in checking for pre-C++11
versions of GCC anymore.  Note that Clang defines __GNUC__ too, but
always reports itself as GCC-4.2.1-compatible (and, in practice, the
earliest C++11-compatible versions of Clang will also be have most
GCC 4.8 features).
2022-05-25 19:07:30 +03:00
sluicebox 6e743a97ef SCI: Fix QFG3 event bugs at the Laibon's hut
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
2022-05-24 17:05:27 -04:00
sluicebox f45a5eff90 SCI: Fix QFG3 ring rope uninit read with script patch
Restores original behavior. The workaround caused the player to
always win and receive points even if they lost.
2022-05-24 16:57:45 -04:00
sluicebox b3a77a79a9 SCI: Add QFG3 workaround for casting open on wall 2022-05-24 16:57:45 -04:00
sluicebox c4a95fad5c SCI: Remove duplicate QFG3 uninit read workaround 2022-05-24 16:57:45 -04:00
sluicebox b74b93ad46 SCI32: Fix LSL6HIRES inventory background color
Fixes bug #13497
2022-05-22 17:11:26 -04:00
Filippos Karapetis 34007cb7c2 SCI: Clean up script patches for Hoyle Bridge and Children's Collection
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.
2022-05-22 19:37:51 +03:00
sluicebox 82a16d71a9 SCI: Add debugging commands for Game Flags 2022-05-22 11:20:41 +03:00
sluicebox a3c3865877 SCI: Initialize pic window correctly for QFG1VGA Mac
Fixes the opening background being drawn 10 pixels too low
2022-05-20 14:20:22 -04:00
athrxx 311b6fec1a SCI: fix sound pausing when loading via kRestoreGame
This is similar to what we recently fixed for the saving. It does concern only the loading from the SCI menu and from the SCI death dialog (that's how it got my attention).

I have written a long comment in SciMusic::resetGlobalPauseCounter()  which explains it.

I have decided to make this very obvious (you could say: more ugly), so it won't cause confusion in the future. Of course, it could be just hidden somewhere deep in SciMusic::saveLoadWithSerializer() and noone would ever notice. But the "ugly" way seemed the safer thing to do...
2022-05-20 09:55:07 +03:00
Donovan Watteau 5b1ec56f96 JANITORIAL: Fix some lost or outdated URLs in comments 2022-05-19 07:57:31 +03:00
athrxx 6c6960b593 SCI: fix bug no. 10183 (QFG1EGA: Baba Yaga's hut sound bug)
Actually its two bugs that both come to surface in that hut... one in SoundCommandParser::processInitSound() and one in SciMusic::soundStop().
2022-05-18 21:54:26 +03:00
sluicebox 34983d1017 SCI: Fix out of bounds read when measuring text
Found with valgrind. The OOB read did not affect behavior.
Introduced in 8a87d1030c
2022-05-18 14:26:06 -04:00
sluicebox 5e03f7a688 SCI: Fix LONGBOW Amiga when saving peasant woman 2022-05-14 19:57:37 -04:00
sluicebox 0d16892c1d SCI32: Fix GK2 lockups when music volume is turned off
Fixes a bug in the original that locks up many scenes and room
transitions if the music volume slider is lowered all the way
2022-05-12 14:59:53 -04:00
Zvika 060e339972 SCI: Hebrew parser: Support 'vav' conjunctive 2022-05-10 16:27:05 +03:00
sluicebox 5fa0168e88 SCI32: Fix KQ7 wooden nickel hotspot in Faux Shop 2022-05-09 12:31:04 -04:00
athrxx 4e214c4f2a SCI: add comment to SciMusic::pauseAll() 2022-05-01 13:46:05 +03:00
athrxx c2975276a3 SCI: fix music handling during auto-save 2022-05-01 13:46:05 +03:00
Filippos Karapetis 8386e92d40 SCI: Fix incorrect music state after saving via the GMM (bug #13447)
This was initially introduced in d8336a31f, but didn't work properly
with SCI0 music. Many thanks to athrxx for tracking the issue and
suggesting a fix
2022-04-28 00:58:56 +03:00
sluicebox 2029c31e2b SCI: Fix QFG3 dropped events during vendor barter
Fixes bug #11422

Thanks to @lwcorp for reporting this
2022-04-27 01:33:19 -04:00
athrxx bd1dbecde9 TTS: (ENGINES) - add support for tts enable function
The new option only works as intended if the engine that have TTS support apply their own settings. It cannot be globally implemented before and after runGame(), since the engines don't all use the same config manager variables (sometimes "tts_enabled_speech", "tts_enabled" or "tts_narrator, sometimes more than one of these).
2022-04-26 21:08:41 +03:00
Torbjörn Andersson e06f3c9a5a GUI: Allow game option checkboxes to be disabled
Depending on other game option checkboxes. This is used to
enable/disable the semi-smooth scrolling checkboxes for FM Towns Loom,
since it's only used when smooth scrolling is enabled.
2022-04-21 11:07:17 +02:00
antoniou79 a601dd60c8 SCI: Add detection_options.h to POTFILES 2022-04-19 21:11:32 +03:00
sluicebox 2c94bc32ba SCI: Fix LSL5 Mac password prompt 2022-04-17 21:14:10 -04:00
sluicebox 37b90c0ca4 SCI: Fix FPFP Mac easter egg view placement 2022-04-16 13:29:59 -04:00
sluicebox a0ac53e29c SCI: Remove SCI32 checks from kTextSize
These old checks are from before the SCI32 code was separated
2022-04-16 13:29:59 -04:00
Filippos Karapetis ec16ebbf96 Revert "SCUMM: Refactor the workaround for the broken sample in Indy4"
This reverts commit c59df76164.
2022-04-16 14:25:51 +03:00