Commit Graph
57 Commits
Author SHA1 Message Date
Willem Jan Palenstijn 65861bb914 SCI: Change workaround for PalVary / Animate race condition
The new approach is to delay kAnimate briefly (with an 68ms timeout)
while there is a zero-tick PalVary running, so that it has time to
trigger.

The previous workaround would immediately process a zero-tick
PalVaryInit/PalVaryReverse. This caused problems in QfG3 (bug #10304)
where it interfered with PalVaryPause.

The previous workaround could also be modified to handle pause/resume,
but this new approach should be closer to SSCI's behaviour, which used a
timer for a zero-tick PalVary too.

This fixes bug #10304, and keeps #5298 fixed too.
2018-04-22 22:54:18 +02:00
Colin Snover 31daa956d6 SCI: Implement bounds-checked reads of game resources 2017-03-27 19:42:31 -05:00
Colin Snover 4cfc387602 SCI32: Split GfxPalette and GfxPalette32 + HunkPalette 2016-07-11 10:39:50 -05:00
Filippos Karapetis f450ca0ebf SCI: Split color remapping functionality into a separate class
Currently, only the SCI16 remapping functionality is implemented
(used in the QFG4 demo)
2016-03-08 20:36:03 +02:00
Colin Snover 8224d32122 SCI: Implement SCI32 kPalette findColor and matchColor
It seems that findColor is used only by kPalette, and matchColor is
used only by Remap.
2016-01-14 17:21:05 -06:00
Colin Snover fb891e4c08 SCI: Implement SCI32 kPalVary and kPalette setFade
This also fixes kPalCycle signatures to be more accurate.
2016-01-14 16:13:22 -06:00
Colin Snover aeee621e44 SCI32: Add initial support for palette cycling (kPalCycle) and fading (kPalFade)
Graphics palette code was rewritten between SCI1 and SCI2, so
SCI32 palette engine code has been moved to a separate GfxPalette32
class.
2016-01-07 16:35:09 -06:00
Martin Kiewitz 28967b617f SCI: properly reversed color matching thanks wjp 2014-10-28 22:37:57 +01:00
Martin Kiewitz f317e8c877 SCI: implement 8-bit color matching SCI1.1 bug
effectively fixes bug #6455
thanks to wjp and [md5]
2014-10-28 01:40:40 +01:00
Johannes Schickel 8fc7d60feb SCI: Make GPL headers consistent in themselves. 2014-02-18 02:39:37 +01:00
Filippos Karapetis fb0788d12f SCI: Properly reset the palVary signal when loading (bug #3575569) 2012-11-15 14:57:55 +02:00
Filippos Karapetis 3b5e92d4f3 SCI: Fix bug #3575569 - "SCI: QFG1VGA: Palette/hue bug after loading"
We make sure that any leftover palVary timers are removed when
loading. This is an edge case, but it won't hurt to remove these
timers just in case
2012-11-07 18:11:09 +02:00
Filippos Karapetis 7d436622a8 SCI: More work on kRemapColors
This implements some more color remap-based palette effects, found in QFG4
2012-08-21 03:32:23 +03:00
Filippos Karapetis 537b1969bf SCI: Rewrite the color remapping code to support simultaneous effects
Fixes the torch in the full version of QFG4
2012-07-25 00:58:16 +03:00
Filippos Karapetis fe3fb1873c SCI: Cleanup of the palette remapping code 2012-07-24 22:54:37 +03:00
Filippos Karapetis 6f35130204 SCI: More work on color remapping
More transparency/color mapping effects are now working (e.g. the
flashlight at the Gedde tomb in GK1, the rays of light at Schloss Ritter
in GK1, the torch in the QFG4 demo and the shadows in QFG4, PQ4 and KQ7)
2012-07-24 22:34:46 +03:00
Filippos Karapetis 3d395545cb SCI: Remove unused variables 2012-07-24 04:07:08 +03:00
Filippos Karapetis bd281928cb SCI: Initial implementation of kRemapColors(kRemapByPercent)
Fixes some graphics glitches in the QFG4 demo and the menus of QFG4, by
implementing one of the transparency effects used mainly in SCI32.
Many thanks to fuzzie for her debugging info on QFG4 demo and to wjp for
his great help on the dissassembly
2012-07-24 03:53:44 +03:00
Filippos Karapetis 935eaa175b SCI: Move the palette merging checking code inside the GfxPalette class 2011-10-19 23:52:51 +03:00
Max Horn 88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
md5 d95b5331fb SCI: Some palette related changes
- Moved palette color count inside the GfxPalette class
- Enabled all of the kPalette subops for 16 color SCI1 games, apart from
the ones for intensity palette animation, and palette resource loading
- Removed isVGA() and isAmiga32color() methods from the resource manager -
they ended up in having inconsistent code
2011-03-04 22:04:13 +02:00
Matthew Hoops 266806d892 SCI: Fix Mac icon bar palettes
The Mac icon bar uses a palette from the executable and keeps those entries in the palette constantly.

In addition, we're now performing gamma correction on the Mac-based colors so that they are in the same gamma as SCI. The color matching now works with this and using the same color finding as the Mac Palette Manager.
2011-02-17 13:38:23 -05:00
Matthew Hoops dbc6910eae SCI: Add support for Phantasmagoria 2 CLUT resources
My test of ising the clut associated with the intro video produced a decent quality color conversion. This is not yet hooked up to the video player.
2011-02-13 17:29:15 -05:00
Filippos Karapetis 04748b1744 SCI: Fixed compilation
svn-id: r55813
2011-02-07 18:32:42 +00:00
Martin Kiewitz c422e39bf8 SCI: implemented kPalette(save/restore)
svn-id: r51381
2010-07-27 17:51:44 +00:00
Filippos Karapetis 3aa4f76ee4 SCI: Now saving the kPalVary state inside savegames
svn-id: r51194
2010-07-23 07:36:55 +00:00
Martin Kiewitz c77c84f5c5 SCI: also sync palette after playing movies, fixes kq6 intro
svn-id: r50798
2010-07-11 10:11:31 +00:00
Martin Kiewitz c6b0a5e896 SCI: detect, if SCI1.1 game is merging or copying palette instead of using gameIds. Also prints method used, when using debug command "version"
svn-id: r50261
2010-06-25 10:04:31 +00:00
Martin Kiewitz f0145e6dcd SCI: implementing boundary checking for GfxPalette::createFromData(), sq5 has a broken picture 0 resource, which would result in either crash or at least bad read from memory depending on whats read there
svn-id: r50178
2010-06-23 11:47:14 +00:00
Martin Kiewitz 079e5c3135 SCI: fixed typo
svn-id: r50154
2010-06-22 17:13:44 +00:00
Martin Kiewitz 9ca43423b4 SCI: kPalVary(SetTarget) implemented
svn-id: r50153
2010-06-22 17:05:00 +00:00
Martin Kiewitz 6f195ae5a4 SCI: implemented kPalVary(changeTicks)
svn-id: r50100
2010-06-20 21:12:15 +00:00
Martin Kiewitz 4a83b2c5f6 SCI: properly implement kPalVary functionality within kDrawPic and transitions, so pharkas finally works w/o palette corruption
svn-id: r50099
2010-06-20 20:52:31 +00:00
Martin Kiewitz 3c6639eb86 SCI: implemented kPalVary(reverse) for pharkas, although there is a bug somewhere, not working 100%
svn-id: r50089
2010-06-20 18:20:05 +00:00
Martin Kiewitz 7ecff0a300 SCI: implementing kPalVary(2)
svn-id: r50085
2010-06-20 17:08:39 +00:00
Martin Kiewitz b016c16300 SCI: some kPalVary support - intro of island dr. brain works fine now
svn-id: r50082
2010-06-20 16:31:24 +00:00
Martin Kiewitz 7ce739f51b SCI: kPalVary - cleanup and some more code
svn-id: r50081
2010-06-20 15:01:31 +00:00
Martin Kiewitz 30f6e7824b SCI: update sys palette timestamp only on kDrawPic in SCI1.1, fixes intro of island of dr. brain
svn-id: r50077
2010-06-20 13:25:08 +00:00
Martin Kiewitz 871c9bddde SCI: removing unneeded parameters inside SciPalette, cleanup of SciPalette
svn-id: r50076
2010-06-20 13:15:45 +00:00
Martin Kiewitz 36ca2ce421 SCI: some cleanup for kPalVary
svn-id: r50074
2010-06-20 12:21:57 +00:00
Martin Kiewitz 00ac852dc8 SCI: implement workaround for laura bow 2 demo, because that interpreter uses the old real palette merging from sci1 - some views contain a palette that has all colors marked as being used, which would overwrite sysPalette with blacks
svn-id: r49936
2010-06-17 16:06:01 +00:00
Martin Kiewitz dc8b826f5e SCI: set default palette after initializing music driver, fixes palette getting messed up when using mt32 emulation
svn-id: r49523
2010-06-08 22:00:59 +00:00
Martin Kiewitz bc311445f8 SCI: change actual setting of palette, fixes gk1 palette issue when talking to grace indirectly caused by r47955, seems to also fix jones palette issue, could cause regressions
svn-id: r48474
2010-04-02 18:48:17 +00:00
Martin Kiewitz ed2a3f1f16 SCI: set screen palette only when it got changed during merge (performance only change)
svn-id: r47955
2010-02-07 12:13:34 +00:00
Martin Kiewitz 749b0ea237 SCI: added dummy assertpalette to GfxPalette, setting destination palette immediately on kPalVary(start) call
svn-id: r47953
2010-02-07 12:00:06 +00:00
Martin Kiewitz ab2941bb52 SCI: adding some minor documentation for the various graphic classes
svn-id: r47904
2010-02-05 15:48:45 +00:00
Filippos Karapetis 0d85b39468 Moved the PalVary code inside the GfxPalette class
svn-id: r47893
2010-02-04 23:17:33 +00:00
Martin Kiewitz b21255509a SCI: remove classname from header to fix build
svn-id: r47754
2010-01-31 16:29:02 +00:00
Martin Kiewitz 7184fa3bad SCI: renamed kernelFind() to kernelFindColor, so that it isnt that confusing :P
svn-id: r47753
2010-01-31 16:26:15 +00:00