Commit Graph
4076 Commits
Author SHA1 Message Date
Torbjörn Andersson 7d52dbe7eb JANITORIAL: Remove unnecessary semicolon 2017-08-25 17:56:09 +02:00
Martin Kiewitz 4ab18d2d00 SCI32: Add script patch for last action sequence in PQ4
To also turn ::ticks into ::seconds
For further information see 5a4840e
2017-08-07 22:52:11 +02:00
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 c254df2d2d SCI32: Increase maximum save games for Phant2 2017-07-30 21:04:51 -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 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 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
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 97f7308da3 SCI32: Add music volume UI sync for MGDX 2017-07-24 19:36:38 -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 6b87b13ab1 SCI: Minor cleanups in kGetEvent 2017-07-23 10:35:13 -05:00
Colin Snover 3d92f05261 SCI32: Fix hot rectangle events
This fixes delayed mouse cursor updates during the chase scene in
Phant1.

Refs Trac#9975.
2017-07-23 10:35:13 -05:00
Colin Snover 8bab5a3467 SCI: Resolve offset names when disassembling object methods 2017-07-23 10:35:13 -05:00
Colin Snover ba4fccdb26 SCI32: Add workaround for Torin/LSL7 running with subtitles only
Since these later SCI32 games weren't really designed to work with
subtitles-only message mode, if this doesn't work consistently or
breaks the games a lot in other places, the subtitles-only message
type could possibly be implemented in some other way, like by
messing with the game's speech volume global instead.
2017-07-17 23:56:21 -05:00
Colin Snover afe344cc1f SCI32: Add guest additions support for LSL7 2017-07-17 22:42:18 -05:00
Colin Snover 2b7b9ec518 SCI32: Remove duplicate call 2017-07-16 21:25:27 -05:00
Colin Snover 2c1a8790b3 SCI32: Fix wrong GK1 sound volume sync
Fixes Trac#9793.
2017-07-16 21:25:27 -05:00
Colin Snover 5fa0e4b780 SCI32: Improve GK1 narrator speech sync 2017-07-16 21:25:27 -05:00
Colin Snover 8e0ccc5eb1 SCI32: Add patch for mismatched PointSoft Torin heap 20700
Refs Trac#9776, Trac#9864. Fixes Trac#9797.
2017-07-15 22:53:39 -05:00
Colin Snover 3bc00e6633 SCI: Stop double-initialization of SCI0/1 objects
These objects should have been initialized only during the first
pass. Double-initialization does not cause any visible problem
problem during normal operation (mostly it just causes memory
waste by making Object::_baseVars/_baseMethod double up their
data), but could have silently allowed games to receive bogus data
for an out-of-bounds property or method index, instead of raising
an error.
2017-07-15 20:29:36 -05:00
Colin Snover 051366a48a SCI: Fix up Object::_baseMethod implementation
1. In SCI0/1, selectors and offsets in the method block are
   stored contiguously (all selectors, then all offsets), with a
   null separator between the two runs. All the later versions of
   SCI instead interleave selectors & offsets. Since these values
   are already being copied into a new array anyway, code for
   reading method selectors/offsets is now simplified by
   interleaving this data when it is written into _baseMethod
   for SCI0/1, so the same equation for retrieving method
   selectors/offsets can be used across all SCI versions.

2. In SCI1.1-2.1 branch, the method count was being copied into
   the first entry of the array, which meant that SCI1.1-2.1 had
   extra code for dealing with the fact that the first entry was
   not an entry. This has been fixed, and the extra code removed.

3. Data was being overread into _baseMethod in all games SCI0-2.1.
   (SCI0/1 had an extra magic value of 2, and SCI1.1-2.1 had an
   extra magic value of 3). Reviewing history, it's not clear why
   this happened, other than that it appears to have been
   introduced at 7b0760f1bc. My best
   guess is that this was a confusion between byte count and record
   count, where the intent was to read an extra 2 bytes for the
   null separator in SCI0/1, but it actually read 2 records
   instead. (I do not have a guess on why SCI1.1 ended up with a
   3.) This overreading has been removed.
2017-07-15 20:10:38 -05:00
Colin Snover b1b18c54f3 SCI32: Patch out bad rat view init code in Phantasmagoria
Fixes Trac#9957.
2017-07-13 22:33:12 -05:00
Colin Snover 3e45309b83 SCI32: Add workaround for Phant1 2017-07-13 17:19:50 -05:00
Willem Jan Palenstijn 820caf370e SCI32: Fix kObjectIntersect
It was using SCI16 calls to get the NowSeenRects.

This fixes #9855.
2017-07-09 22:56:04 +02:00
Colin Snover 9e90624052 SCI32: Add workarounds for PQ4 2017-07-07 23:41:53 -05:00
Colin Snover 07d6ffd989 SCI32: Force General MIDI for games that support nothing else
* MGDX has only GM music;
* KQ7 1.x's AdLib data is incomplete, so is not usable even though
  it is partially there

Fixes Trac#9789.
2017-07-07 13:28:54 -05:00
Colin Snover 7057f232d7 SCI32: Improve kPlayVMD rendering
1. Added a new game option for linear interpolation when scaling
   overlay-mode video in ScummVM builds with USE_RGB_COLOR;
2. Implemented SCI2.1-variant of the VMD player renderer (fixes
   Trac#9857), which bypasses the engine's normal rendering
   pipeline;
3. Improved accuracy of the SCI3-variant of the VMD player by
   writing HunkPalettes into the VMD's CelObjMem instead of
   submitting palettes directly to GfxPalette32.
2017-07-06 19:12:38 -05:00
Colin Snover 8cb35442c0 SCI32: Improve kShowMovieWin (AVI) rendering
1. Added a new game option for linear interpolation when scaling
   video in ScummVM builds with USE_RGB_COLOR;
2. 8bpp videos that put black in a palette index other than 0
   (KQ7) should now always render correctly without the earlier
   game-specific workarounds which did not work very well;
3. Data from game scripts regarding video size and position are
   now ignored, since games always just try to show videos in the
   middle of the screen, but frequently get this a little bit
   wrong, causing either bad aspect ratios or off-center videos;
4. Builds without USE_RGB_COLOR support will not crash when
   attempting to play >8bpp AVIs, like those from KQ7 2.00b.

Fixes Trac#9843, Trac#9762.
2017-07-06 19:12:38 -05:00
Colin Snover 1466fb247e SCI32: Add workaround for SQ6 2017-07-06 19:12:36 -05:00
Colin Snover 9f910535c9 SCI32: Centralise OSystem screen updates 2017-07-06 19:12:35 -05:00