Commit Graph
8238 Commits
Author SHA1 Message Date
sluicebox 1441468855 SCI: Fix kDrawPic palette validation
Fixes CAMELOT bug #11024
2019-07-21 23:24:53 +03:00
sluicebox 886e18f936 SCI: Set PQ3 EGA detection entry's extra field 2019-07-21 11:52:19 -07:00
sluicebox 954f5142cb SCI: Implement full kWait behavior
Fixes PQ3 bug #11020
2019-07-21 18:20:07 +03:00
athrxx a6bf63bc1a SCI: revert accidental commits 2019-07-17 20:46:32 +02:00
athrxx 59f1e7aa48 SCI: (FB01 sound driver) - SCI0_LATE fix
Fix up SCI0_LATE variant of the driver so that it actually plays anything (and even correctly). SCI1 hasn't seen any testing from me so far. I don't know whether that version works. Same for SCI0_EARLY...
2019-07-17 17:38:26 +02:00
athrxx 77dbefb907 SCI: (CMS sound driver) - add support for SCI0
I haven't found an elegant and non-intrusive way to squeeze SCI0 support into LordHoto's existing code. The drivers are too different. So I made some rearrangements. The basic mechanisms of LordHoto's SCI1 code should remain the same as before, though. I only introduced some more classes, moved some code into these classes and renamed some things (mainly for myself, so as not to get confused).

I fixed two voice mapping bugs in the existing driver code. The first bug in bindVocies() effectively hindered the driver from playing anything at all when the CMS_DISABLE_VOICE_MAPPING #define wasn't set (_voice[i].channel == 0xFF instead of _voice[i].channel != 0xFF). The second bug in unbindVoices() was not a complete show stopper, but the function simply did not "unbind the voice". The line which does the actual removal of the channel assignment was missing.

The SCI0 driver portions have been tested with: PQ2, KQ4, LSL3, QFG1, ICE and COC.

SCI_0_EARLY versions apparently don't support the CMS. At least I haven't seen a driver file so far. And there seems to be no no instrument patch resource. Although the latter issue needn't necessarily be one, since the patch data array in the driver is actually preset with data (which gets overwritten as soon as a patch file is loaded). Maybe this would work for SCI_0_EARLY. However, I haven't tested this, since I really would have have a look at a driver file first if one actually exists. For now, I have limited the driver to SCI_0_LATE.

SCI1 has been tested with KQ5 and LSL5 (not extensively, just to see whether anything got broken and whether my voice mapping fixes work).
2019-07-17 17:38:26 +02:00
athrxx d988e40e25 SCI: (PC98 audio driver) - base tempo correction
(somewhat difficult to make out any difference, but it does affect the envelope processing)
2019-07-17 17:38:26 +02:00
athrxx 96dc86ca97 SCI CP
Conflicts:

	engines/sci/engine/script_patches.cpp
2019-07-17 17:38:25 +02:00
sluicebox 4dc9752d2a SCI: Fix ICEMAN destroyer timer, bug #11017 2019-07-12 21:33:46 +03:00
sluicebox 7891296094 SCI: Remove GAMEOPTION_ORIGINAL_SAVELOAD from Mac games 2019-07-10 13:18:37 +03:00
Kawa-oneechan 09d1ef00f7 SCI: allow fanmade games to use resource.000
SCI11 doesn't have split volumes after all. Fixes The Dating Pool.
2019-07-10 02:17:44 +03:00
sluicebox ca66a776b0 SCI: Implement early GetLongest() behavior, bug #10000 2019-07-09 09:51:10 +03:00
Filippos Karapetis cc1bdf67f5 SCI32: Remove some Hoyle 5 TODOs
Hoyle 5 does not show subtitles, even though it does contain text for
all of the included speech in its resource files
2019-07-09 02:21:18 +03:00
Filippos Karapetis 4339ae5094 SCI: Move The Dating Pool entries together with the other fanmade games 2019-07-09 02:21:18 +03:00
Willem Jan Palenstijn 865340156e SCI: Replace three most common GUIO's by defines 2019-07-09 02:21:17 +03:00
Le Philousophe 96103179af SCI: Fix build when SCI32 isn't enabled 2019-07-08 10:15:09 +03:00
Filippos Karapetis 49a6346966 SCI32: Add stub for the Hoyle 5 Poker game logic 2019-07-07 22:26:03 +03:00
sluicebox e5ee875b2b SCI32: Fix QFG4 Look-Dungeon Message 2019-07-02 01:10:42 +03:00
sluicebox d8efb64deb SCI: Disable SQ4 timepod code for missing room
Fixes #11006
2019-07-02 01:07:47 +03:00
Filippos Karapetis 923663c226 SCI32: Promote QFG4 to testing 2019-06-30 15:26:33 +03:00
Filippos Karapetis 2fd416b0ac SCI32: Extend scaler sanity checks to all SCI32 versions
Fixes QFG4 bug #10765. It's preferable to have sanity checks in the
code, rather than crashing due to invalid draw rectangles from buggy
game scripts. It's no use checking which specific interpreter versions
had sanity checks and trust the game scripts of the other interpreters.
Thus, it's easier and safer to always enable these sanity checks.
2019-06-30 14:46:37 +03:00
sluicebox cf274fa47e SCI: Fix SQ4 English Amiga dress logic, bug #11004 2019-06-30 12:13:16 +03:00
sluicebox 543b9cb114 SCI32: Fix QFG4 character selection, bug #11002 2019-06-28 08:33:03 +03:00
sluicebox 148a9b7058 SCI32: Fix kShakeScreen32 parameter count check 2019-06-28 08:30:19 +03:00
sluicebox 1f0f4c9642 SCI32: Make QFG4 tentacle patch GOG compatible 2019-06-27 10:56:23 +03:00
sluicebox 9fe95b9603 SCI32: Fix QFG4 Ad Avis capture lockup, bug #11001 2019-06-26 07:30:03 +03:00
sluicebox c1610a9fd1 SCI32: Fix QFG4CD Grooper crashes at inn and monolith
Fixes bugs #10747, #10760
2019-06-26 07:12:51 +03:00
sluicebox 28fa491707 SCI32: Fix QFG4 Rabbit combat getting stuck, bug #11000 2019-06-25 07:55:33 +03:00
sluicebox 08a7b6fdc4 SCI32: Fix QFG4 Wraith fan-patch, bug #10711 2019-06-24 08:02:41 +03:00
sluicebox bfd516ec19 SCI32: Add QFG4 workaround for glide spell message 2019-06-23 17:05:14 -07:00
sluicebox f1d2939759 SCI32: Fix QFG4 Monastery door lockup, bug #10994 2019-06-23 23:49:49 +03:00
sluicebox 2a1ecd586e SCI32: Fix QFG4 town gate at night, bug #10995 2019-06-23 23:48:58 +03:00
Kawa-oneechan 18716672bb SCI: Split out duplicated color remapping code 2019-06-23 23:46:38 +03:00
Kawa 9aadb27267 SCI: Add some more SCI11+ features
Also gate them behind the presence of a 184.VOC resource instead of GID_CATDATE. This should not matter with regards to the remap effects -- the 2015 and 2016 demos had none, and the first that did has an unknown release status. Only the 2017 demo would fall, which would be easily fixed by dropping in a valid 184.VOC patch file.
2019-06-23 01:46:53 +03:00
athrxx 80f163b0fc ALL: revert accidental commits 2019-06-21 14:19:42 +02:00
athrxx 5e9b690ea4 hh 2019-06-21 13:35:35 +02:00
athrxx f35eae7287 SCI: (CMS sound driver) - add support for SCI0
I haven't found an elegant and non-intrusive way to squeeze SCI0 support into LordHoto's existing code. The drivers are too different. So I made some rearrangements. The basic mechanisms of LordHoto's SCI1 code should remain the same as before, though. I only introduced some more classes, moved some code into these classes and renamed some things (mainly for myself, so as not to get confused).

I fixed two voice mapping bugs in the existing driver code. The first bug in bindVocies() effectively hindered the driver from playing anything at all when the CMS_DISABLE_VOICE_MAPPING #define wasn't set (_voice[i].channel == 0xFF instead of _voice[i].channel != 0xFF). The second bug in unbindVoices() was not a complete show stopper, but the function simply did not "unbind the voice". The line which does the actual removal of the channel assignment was missing.

The SCI0 driver portions have been tested with: PQ2, KQ4, LSL3, QFG1, ICE and COC.

SCI_0_EARLY versions apparently don't support the CMS. At least I haven't seen a driver file so far. And there seems to be no no instrument patch resource. Although the latter issue needn't necessarily be one, since the patch data array in the driver is actually preset with data (which gets overwritten as soon as a patch file is loaded). Maybe this would work for SCI_0_EARLY. However, I haven't tested this, since I really would have have a look at a driver file first if one actually exists. For now, I have limited the driver to SCI_0_LATE.

SCI1 has been tested with KQ5 and LSL5 (not extensively, just to see whether anything got broken and whether my voice mapping fixes work).
2019-06-21 13:35:35 +02:00
athrxx 09f3d11cc1 SCI: (PC98 audio driver) - base tempo correction
(somewhat difficult to make out any difference, but it does affect the envelope processing)
2019-06-21 13:35:34 +02:00
athrxx 6611a1c289 SCI CP
Conflicts:

	engines/sci/engine/script_patches.cpp
2019-06-21 13:35:34 +02:00
sluicebox a486438c10 SCI32: Fix QFG4 Ad Avis end-game bugs
Fixes bugs #10835, #10844, #10989
2019-06-21 13:42:34 +03:00
sluicebox bdf85e33cb SCI: Fix SQ4 Sequel police electronics store bugs
Fixes lockup, animation, and flag bugs when hiding in the
electronics store, bug #10977
2019-06-17 22:17:52 +03:00
sluicebox 5478693995 SCI32: Fix QFG4CD Domovoi inn events, bug #10978 2019-06-17 22:05:06 +03:00
sluicebox 5bb9174ad7 SCI: Fix regression in message workarounds
Reverts an unintended change to the message recursion loop introduced in
56ea963cea that breaks the message stack
2019-06-16 02:57:34 -07:00
sluicebox f80c11cf34 SCI: Fix SQ4 Monolith Burger door message, bug #10976 2019-06-16 08:05:25 +03:00
sluicebox 23c6c13da2 SCI: Fix FPFP reappearing items, bug #10975
Fixes two similar bugs where inventory items reappear after being
used due to incorrect or missing flag checks
2019-06-14 17:52:54 +03:00
sluicebox d29727d02a SCI: Add FPFP message workarounds 2019-06-13 17:57:27 -07:00
sluicebox 222ed9c52d SCI: Fix SQ4 Sock's Sequel police crash, bug #10974 2019-06-13 03:36:14 +03:00
sluicebox 4a0e2e528b SCI: Fix SQ4 Big & Tall missing room message 2019-06-10 11:04:15 +03:00
sluicebox 2f837d9edc SCI: Add SQ4 workaround for Sequel Police shooting 2019-06-09 21:02:56 -07:00
sluicebox 56ea963cea SCI: Create message workaround system
Adds a new workaround system for known broken messages and their
corresponding audio and sync resources. This replaces all special
cases in c++ and several script patches with data structures and
generic handling.

Common message bugs:
- Wrong tuple requested by game script
- Wrong tuple in message resource
- Wrong message text that exists in another record
- Missing message text
- Audio or sync resource with different tuple than message
2019-06-09 15:35:57 -07:00