Commit Graph
4601 Commits
Author SHA1 Message Date
sluicebox b60a6a717b SCI: Fix SQ4 easter egg lockup in software store 2021-05-13 16:10:24 -06:00
Orgad Shaneh a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
sluicebox f902d7ce81 SCI32: Fix LSL6 Hi-res Mac volume sync 2021-04-29 14:25:11 -07:00
sluicebox f6dd4fa234 SCI: Add option to use KQ5 CD Windows cursors
Ticket #7800
2021-04-29 09:27:13 -07:00
sluicebox 21b946645e SCI: Add support for LSL1VGA French (fan patch)
Fixes bug #12034
2021-04-27 15:03:34 -07:00
sluicebox 6b910669b3 SCI: Fix KQ6 'Tickets, only' CD audio interruption 2021-04-26 22:50:10 -07:00
sluicebox 11fec236a2 SCI: Make KQ6 'Tickets, only' script patch a workaround
In addition to simplifying, this fixes the message in Spanish and
Italian versions. The CD patch signature matched these floppy versions
too and altered their correct messages.
2021-04-26 22:50:10 -07:00
sluicebox 77b93c77ab SCI: Add support for MOTHERGOOSE256 CD-Audio version
This multi-lingual version handles audio in a unique manner.
English audio is only on the CD audio track while the other
four languages are only in resource files. This is transparent
to the scripts that play audio; they're the same in all versions.
This required a custom interpreter that detects the language and
handles English differently. It even has a custom error message:
"You will not be able to play the 'ENGLISH' version."

Fixes bug #12431
2021-04-24 00:35:03 -07:00
Eugene Sandulenko 5e7fe2dc57 JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
sluicebox 813d5ca6c9 SCI: Improve kPaletteSetIntensity speed throttling
Detect when kPaletteSetIntensity is called from an unthrottled
script loop and only apply speed throttling in that situation.

This fixes several slow fade-in / fade-outs such as KQ6's Sierra
logo and title screen. We've been throttling kPaletteSetIntensity
on every call, even when it was being used once per game cycle
(which our kGameIsRestarting throttling already handles) or within
kWait-throttled loops. In both cases this has added delays on top
of delays and slowed things down even further.
2021-04-12 11:12:01 -07:00
sluicebox f58e87baea SCI: Fix QFG3 floating spears in GOG version
Fixes bug #11426
2021-04-07 11:35:11 -07:00
sluicebox cc95809bb5 SCI: Fix compatibility with PQ1VGA & PQ3 GOG versions
GOG includes NRS scripts in PQ1VGA and PQ3 which trigger our
warning about fan patches. The patches introduce several forms of
speed throttling but we already throttle at the engine level.
This changes timing throughout the games and may cause conflicts.

This commit:
- Disables the speed throttling that the patches introduce
- Removes the warning for these versions

GOG versions now play the same as original unpatched ones.
2021-04-05 23:47:45 -07:00
sluicebox 592ab77dc7 SCI: Fix PQ3 road signs not updating
Fixes bug #10254
2021-03-21 22:53:08 -07:00
sluicebox 294d733d9f SCI: Fix Timer rollover bugs in KQ5, MOTHERGOOSE256 2021-03-21 17:32:17 -07:00
sluicebox 27e00993ce SCI: Fix PEPPER glass jar bugs with script patch
Fixes the remaining script bugs and cleans up kMessage
2021-03-20 13:37:37 -07:00
sluicebox d52539435b SCI: Add PEPPER workaround for uninit read 2021-03-20 13:37:37 -07:00
sluicebox 58f912aaa4 SCI: Add workaround for KQ5 Amiga class table
Fixes loading boatRegion (script 220) in rooms 44, 45, and 46
of English Amiga version
2021-03-14 12:55:45 -07:00
athrxx 5a626c8b78 SCI: (SCI0 sound) - fix sound restoring
This mainly concerns restoring sounds after loading savefiles, but it should make the whole relationship between playing and paused sounds more accurate.

The test case which I was told about was KQ4, room 21, picking up the golden ball under the bridge, saving during playback of the pickup sound and then loading that savegame. It would result in hanging note due toe the sound being triggered multiple times by reconstructPlaylist() and updateSci0Cues(). Now, the sound should only start once.

I've changed the code to be more in line with disasm and tested some situations that sluicebox told me about or that I found in the comments (ICEMAN room 14, LSL3 start scene). I got rid of isQueued, since the original doesn't have that, it has caused some confusion and doesn't even get saved with the savegames.

I cleaned up updateSci0Cues(), so that it (together with processUpdateCues()) does a bit more what the original Midi timer proc does there. An exception is the sound fade out code in processUpdateCues(). It seems that we need that, as we don't have the fading code in the drivers like the original.

The original SCI0 code is actually much simpler than our code. It relies on a correctly sorted playlist (based on priority), but my impression is that we got that right, even if we do it slightly differently. I added a sortPlayList() to the sound init, since the original inserts the node at the right position, too.
2021-03-13 17:41:54 +02:00
sluicebox 6853b5101f SCI: Convert PQ2 speed workaround to script patch
Cleans up kScriptID and speeds up startup
2021-03-11 08:50:46 -08:00
sluicebox bfd4170532 SCI32: Fix kStringToInteger space parsing
Fixes reading settings from game.opt in HOYLE5, where most strings
begin with spaces. SSCI called atoi() which handles this, and so did
we, until it was changed during a large refactor in
3f91726765
2021-03-11 05:47:02 -08:00
sluicebox 318e18fd9c SCI: Fix HOYLE4 Crazy Eights transition sound
Fixes bug #10790
2021-03-07 03:11:40 -08:00
sluicebox 6841af484d SCI: Fix KQ1 Demo leprechaun dance speed
Fixes bug #9825
2021-03-02 20:31:18 -08:00
sluicebox 9982c761a2 SCI: Update all old bug tracker ticket numbers 2021-02-25 01:18:52 -08:00
sluicebox 364542e9e1 SCI: Fully implement kDoAudio(13) for PHARKAS CD
Now that we match SSCI behavior when it comes to interrupting samples
when new samples play, we need to implement kDoAudio(13) so that the CD
version of Freddy Pharkas can detect these interruptions. Otherwise,
the game will softlock if the points sound effect or narration is
interrupted.
2021-02-23 18:22:25 -08:00
sluicebox 196d666e70 SCI: Remove outdated PHARKAS script patch
This patch removes a call to kDoAudio(13) because at the time it was
written, the subop was unimplemented and didn't return a value.

kDoAudio(13) was later changed to always return 1 so this patch has been
moot for a while. Now we need this script to do what it's supposed to
and detect sound interruptions so I'm about to implement kDoAudio(13).
2021-02-23 18:22:25 -08:00
sluicebox 9b31cce7b9 SCI32: Fix SQ6 missing message in brain 2021-02-22 16:38:03 -08:00
sluicebox de9443407f SCI: kDoAudio stops samples played with kDoSound 2021-02-22 14:57:02 -08:00
sluicebox a921c08043 SCI: Fix SQ4 software clerk's random message 2021-02-19 12:25:55 -08:00
sluicebox 7f4198c1a9 SCI: Fix Kernel::lookupText out-of-bounds detection 2021-02-19 12:13:21 -08:00
Henrik "Henke37" Andersson 06cc82d493 SCI: Use getValOrDefault and tryGetVal 2021-02-12 00:41:23 +01:00
sluicebox 045b33cf20 SCI: Fix KQ4 unicorn ride at night 2021-02-11 00:06:37 -08:00
Filippos Karapetis 2c4b4c6cd5 SCI: Add missing class member initializers 2021-02-08 03:11:46 +02:00
Cameron Cawley 1d9572173a SCI: Fix compilation when SCI32 is disabled 2021-02-04 22:24:41 +02:00
sluicebox 1200485211 SCI: Fix kGetTime debug messages
This change doesn't affect kGetTime results.

kGetTime has been logging its return value in debug messages as a 32-bit
value before converting down to the actual 16-bit value that's returned.
2021-02-03 23:37:23 -08:00
sluicebox 89c67944f4 SCI: Always initialize kFileIOReadString output
Addresses bug #12060
2021-02-02 12:44:45 -08:00
sluicebox 391c2f4a5d SCI: Remove character test that's always true
Fixes a gcc warning
2021-01-31 22:14:36 -08:00
sluicebox a8a6bf4f30 SCI32: Remove PHANT2 spin loop in easter egg 2021-01-31 19:42:02 -08:00
sluicebox 20d052fee4 SCI32: PHANT2 script patch comments 2021-01-31 19:39:21 -08:00
sluicebox b23daadf00 SCI32: Fix restoring PHANT2 games from overlay
Fixes restoring from overlay while game is in handsOff mode.
For example: room 3310.
2021-01-31 19:37:58 -08:00
sluicebox f033ffca9d SCI: Fix KQ6 time-of-day lettuce bug 2021-01-31 12:43:17 -08:00
sluicebox 518226146d SCI: Fix kGetTime 12-hour formatting
SSCI sets hours 0 and 12 to 12, not 0.
Fixes clock display in Hoyle4 and Hoyle5.
2021-01-31 12:43:16 -08:00
sluicebox 7095ed66c5 SCI: Fix KQ4 missing waterfall view 2021-01-31 12:43:16 -08:00
ZvikaandFilippos Karapetis f0d6ee84a7 SCI: PQ4 - Partial fix for #11660 (keep speech and subtitles setting) (#2463)
Co-authored-by: Filippos Karapetis <bluegr@gmail.com>
2021-01-27 01:56:11 +02:00
Zvika Haramaty a5d0077fa2 SCI: Hebrew in parentheses isn't stage direction 2021-01-11 23:16:56 +02:00
sluicebox 188423fb6e SCI: Fix KQ6 guard dog music not stopping
Fixes bug #11746
2020-12-18 10:21:43 -10:00
sluicebox 4a72486279 SCI: Disable LSL3 speed test
Fixes bug #11967
2020-12-13 10:54:36 -10:00
Bartosz Gentkowski 7192ec0bb5 DOXYGEN: Fix the build output and structure
This commit introduces a couple tweaks to the
doxygen build configuration to assure the
overall structure looks correct.
2020-12-02 22:55:41 +00:00
Filippos Karapetis bd7e708fc3 SCI: Move resource related functionality into a separate folder 2020-11-29 14:34:55 +02:00
sluicebox f9287b26c8 SCI: Play KQ6 credits song even when CD audio fails 2020-11-27 10:58:35 -08:00
sluicebox c71db70d25 SCI: Remove redundant version check from kSciAudioCD
This version check is enforced by kernel tables
2020-11-27 10:58:35 -08:00