aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
AgeCommit message (Collapse)Author
2017-01-09SCI32: Fix crashes and bad cel positioning in GK2 demoColin Snover
2017-01-06SCI: Add FIXME for (very unlikely) race condition in _palVarySignalWillem Jan Palenstijn
2017-01-02SCI32: Load VMDs from resource bundlesColin Snover
GK2 includes some VMDs in the RESSCI.00n volume bundles for the chase scene at the end of Chapter 6.
2016-12-19SCI32: Improve ScreenItem missing resource errorColin Snover
2016-12-19SCI32: Add support for alternate graphics selectorsColin Snover
Used by at least Phantasmagoria 2.
2016-12-19SCI32: Change plane and screen item sorting algorithmColin Snover
SSCI's last resort comparison here was to compare the object IDs of planes & screen items, but this randomly breaks (at least) the "you have died" dialog at the end of Phant1, and text & buttons in Hoyle5, even in SSCI itself. This commit changes last resort comparison to use a monotonically increasing ID instead, which keeps objects with identical priority & z-index in creation order when compared. Fixes Trac#9585.
2016-12-19SCI32: Fix incorrect parsing of empty |f| text escape codeColin Snover
This sequence is used in Hoyle5 when viewing the rules for a game.
2016-12-17SCI32: Fix bitmap surface memory leaks in video playersColin Snover
Fixes Trac#9662.
2016-12-12SCI32: Adjust transition timingsColin Snover
Transition timings were originally chosen largely by feel in SQ6, as there was little other evidence to determine the correct speed. As additional games started being playable in ScummVM, it became apparent that these speeds were not quite right. Additional adjustments may be needed in the future, but these new timings seem to be somewhat closer to expectations than before.
2016-12-10SCI: Fix buffer overflows in GfxPicture circle drawingColin Snover
Fixes Trac#9660.
2016-11-19SCI32: Remove no-longer-necessary Phant1 VMD sync hackColin Snover
2016-11-04SCI32: Implement kPlayVMDIgnorePalettesColin Snover
Used in Shivers room 35170 when pressing the play button.
2016-11-04SCI32: Stop digital audio when VMDs open in some SCI2.1 gamesColin Snover
2016-11-04SCI32: Fix VMD playback stuttering when kEventFlagToFrame is usedColin Snover
For example, Shivers room 932 when subtitles are enabled.
2016-11-02SCI32: Fix incorrect text width calculation of non-ASCII stringsColin Snover
Fixes Trac#9639.
2016-11-02SCI: Remove old SCI32 hires detection heuristicColin Snover
2016-11-02SCI32: Automate kNumCels workaroundColin Snover
2016-11-02SCI32: Remove incorrect palette.h #includeColin Snover
2016-10-26SCI32: Fix AVI renderingColin Snover
Fixes Trac#9588.
2016-10-26SCI32: Initialize video buffers to avoid flash of garbage memoryColin Snover
2016-10-26SCI32: Use standard max_size method instead of ARRAYSIZE for a containerColin Snover
2016-10-22SCI32: Fix slow SCI2.1mid transitionsColin Snover
SSCI transitions code sends a large number of small show rects to the graphics manager, one at a time, for each division of a transition. Each time a rect is submitted, a call to showBits is made. This design was used when transitions for SCI32 were first implemented in ScummVM, and it worked OK because the hardware surface was updated by EventManager::getSciEvent, not showBits, so the large number of calls to showBits from the transitions code did not adversely affect engine performance. Later in SCI32 engine development, hardware surface updates were changed to occur in showBits so that the hardware surface would be updated at frame-out time, instead of at input-in time. This change meant that now the large number of calls to showBits from transitions became very expensive, and the engine would stall constantly refreshing the entire hardware surface. To fix this problem, the transitions code now (1) maximises the size of rects coming from transitions, when possible, and (2) only calls showBits when all the rects from one frame of a transition have been calculated and added to the show rects list. Additionally, there were some arithmetic errors in the implementation of pixel dissolve that have been corrected in this changeset. Fixes Trac#9614.
2016-10-21SCI32: Implement HShutterIn for SCI2.1mid+Colin Snover
Fixes Trac#9584.
2016-10-20SCI32: Fix typoColin Snover
2016-10-20SCI32: Split out detection of features that cross SSCI versionsColin Snover
2016-10-16SCI32: Fix screen items incorrectly drawing over higher planesColin Snover
Fixes Trac#9583.
2016-10-10SCI32: Check for existence of visiblePlane before dereferencingColin Snover
CID 1351620.
2016-10-09SCI32: Allow 'focused' variable to break out of the event loopColin Snover
2016-10-09SCI32: Clarify some identifiersColin Snover
transparentColor -> skipColor displace -> origin scaledWidth -> xResolution scaledHeight -> yResolution
2016-10-09SCI32: Change storage type of int16 arrays to hold reg_ts insteadColin Snover
Memory references and integers in SSCI are both 16-bit numbers, so game scripts frequently (incorrectly) use an IntArray instead of an IDArray for holding references. Since references in ScummVM are 32-bit reg_ts, IntArray entries must be large enough to hold reg_ts in order to be compatible with game scripts that store references in integer arrays. The alternative solution is to find and patch all incorrect use of IntArray across all games. This is possible, but a bit risky from a save game stability perspective, since incorrect IntArray usage is sometimes not apparent until well after the array is instantiated (like GK1's global interview array). This change invalidates existing SCI32 save games.
2016-10-09JANITORIAL: Remove trailing spacesEugene Sandulenko
2016-10-01SCI32: Make kNumCels error more detailedColin Snover
2016-10-01SCI32: Add the rest of the code from PR #813 for dynamic line drawingFilippos Karapetis
2016-09-30SCI32: Fix some buildbot compiler warningsColin Snover
2016-09-29SCI32: Fix broken palette cycling in SCI2/2.1early gamesColin Snover
This fixes the incorrect appearance of the Sierra logo in PQ4 when the main menu appears in hi-res mode. The behaviour of kPalCycle(SetCycle) changed in between 2.1early and 2.1mid to fix an off-by-one error that prevented the last palette entry in a cycle range from being used. Some earlier games, like PQ4CD in hi-res mode, relied on this behaviour, and would render incorrectly if the last palette entry in a range was used.
2016-09-29SCI32: Clean up and document GfxPalette32Colin Snover
2016-09-29SCI32: Fix off-by-one error in palette fadesColin Snover
2016-09-29SCI: Deduplicate call origin formattingColin Snover
2016-09-29SCI: Add prefix to global variable constantsColin Snover
2016-09-29SCI32: Break into debugger after frameout, not beforeColin Snover
2016-09-29SCI32: Ensure break to debugger works during transitionsColin Snover
2016-09-29SCI32: Add workaround for kNumCelsColin Snover
This workaround may be able to be vastly simplified in the future since, so far, simply returning the number of cels in loop 0 is enough to make all the scripts with this bug work as expected.
2016-09-29SCI32: Fix crashes in line drawing codeFilippos Karapetis
Fixes Torin room 43000. The algorithm in Graphics::drawThickLine2 for drawing thick lines is not completely accurate and so there are still some single-pixel rendering bugs, but these do not impact the game itself and can be fixed separately.
2016-09-29SCI32: Extra bounds checking in CelObj rendererColin Snover
2016-09-29SCI32: Always build scaler tables to the maximum possible sizeColin Snover
This fixes rendering errors in Torin caused by the scaler table being cut off early when cels larger than the dimensions of the screen are scaled.
2016-09-29SCI32: Clean up scaling flagsColin Snover
2016-09-29SCI32: Fix CelObj scaling in games with hi-res scriptsColin Snover
2016-09-29SCI: Replace magic numbers for globals with named constantsColin Snover
2016-09-29SCI32: Implement kSetHotRectanglesColin Snover
Used only by chapter 7 of Phant1.
2016-09-29SCI32: Rewrite kArray & kStringColin Snover
This change invalidates earlier SCI32 save games, which separated arrays and strings in an incompatible manner. Old save games contain invalid references to a string segment which no longer exists, and contain incompatible array structures that lack critical type information.