aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/frameout.cpp
AgeCommit message (Collapse)Author
2016-07-11SCI32: Add detection for Hoyle 5 demoColin Snover
2016-07-10SCI32: Implement kPlayVMDColin Snover
2016-07-02SCI32: Expose graphics throttling codeColin Snover
Controls that manage their own event loops and call frameOut directly generally need to sleep in order to avoid 100% CPU, just like the main VM event loop.
2016-07-02SCI32: Improve accuracy of frameout throttlerColin Snover
2016-07-01SCI32: Fix signed comparison warningsColin Snover
2016-06-30SCI32: Add transparent pic plane typeColin Snover
It is not clear if this is ever actually used by game scripts, though.
2016-06-30SCI32: Clean-up pass on rendering pipelineColin Snover
This pass exposed two bugs, which have been fixed: 1. Checks of `_updated` and `_moved` were reversed in some areas, which lead to rendering bugs. In SQ6 the rendering bugs were subtle or non-existant, but in e.g. PQ:SWAT the Sierra logo and title screen animations were totally missing. 2. The renderer formerly kept reading from ScreenItemLists when new items were added in decrementScreenItemArrayCounts, but this was determined to be unnecessary.
2016-06-30SCI32: Document & clean up extra rect argument for frameOutColin Snover
This extra rect seems to probably only ever be used by VMD playback in some SCI2.1 games.
2016-06-26SCI32: Fix benchmarking for QFG4Colin Snover
2016-06-26SCI32: Remove no-longer-relevant commentColin Snover
2016-06-26SCI32: Fix broken Remap implementationColin Snover
Remap would crash SCI2.1early games with 19 remap slots, and did not actually work in most cases in SCI2.1mid+ games. The SCI16 implementation was moved to its own separate file but was otherwise touched as little as possible, so may still have similar problems to the SCI32 code. 1. Split SCI16 and SCI32 code into separate files 2. Use -32 prefixes for SCI32 code and no prefix for SCI16 code, where possible, to match other existing code 3. Avoid accidental corruption of values from the VM that may be valid when signed or larger than 8 bits 4. Added documentation 5. Add missing remap CelObj calls 6. Inline where possible in performance-critical code paths 7. Fix bad `matchColor` function, and move it from GfxPalette to GfxRemap32 since it is only used by GfxRemap32 8. Fix bad capitalisation in getCycleMap 9. Remove unnecessary initialisation of SingleRemaps 10. Update architecture to more closely mirror how SSCI worked 11. Clarify the purpose of each type of remap type (and associated variable names) 12. Split large `apply` function into smaller units 13. Fix buffer overrun when loading a SCI2.1early game with remap 14. Remove use of `#define` constants 15. Warn instead of crashing with an error on invalid input (to match SSCI more closely) 16. Change the collision avoidance mechanism between the RemapType enum and remap kernel functions 17. Add save/load function
2016-06-21SCI32: Remove unused dependencies from GfxFrameoutColin Snover
2016-06-21SCI32: Implement line drawing (kAddLine/kUpdateLine/kRemoveLine)Colin Snover
This line drawing code lives in a remodelled GfxPaint32 class that is totally separate from GfxPaint16.
2016-06-14SCI32: Fix video performance benchmarking in most SCI32 gamesColin Snover
Most SCI32 games draw a "fred" object to the screen when the game first starts to benchmark video performance. When framerate throttling is enabled (which fixes many/most timing-related bugs and reduces system load caused by unnecessary graphics updates), the game's performance check will think that video card is slow, causing some "high-performance" game features to be disabled. To avoid this, we simply disable throttling during benchmarking by detecting the "fred" object.
2016-05-30SCI32: Really guard against null pointer dereference in calcListsColin Snover
CID 1356125.
2016-05-28SCI32: Provide default value for vmap minDiffIndexColin Snover
SSCI did not initialise minDiffIndex and would always flow into the condition that sets it, but some compilers complain that the value may be used uninitialised, so we will just set it to map back to its original palette index by default.
2016-05-27SCI32: Add explicit checks for null pointersColin Snover
CID 1351617, 1351618, 1351619, 1351620, 1351621, 1351622, 1354791.
2016-03-18SCI32: Use correct script dimensions for later SCI32 gamesColin Snover
These values are hard-coded in the engine executable for each game.
2016-03-18SCI32: Fix crashes in kIsOnMe caused by stale CelObjsColin Snover
2016-03-18SCI32: Fix incorrect double-read from CLUTColin Snover
2016-03-17SCI32: Remove outdated note about state of frameout codeColin Snover
This code is engine-accurate now, not based on guesswork.
2016-03-17SCI32: Temporarily remove dead SCI2.1early transitions codeColin Snover
This code sneaked in with the graphics engine rewrite, but is not ready yet to be used. It will return shortly, once it is enabled and working.
2016-03-17SCI32: Update unimplemented TODO to reflect the correct operation typeColin Snover
2016-03-17SCI32: Enable redrawAllCount in palMorphFrameOutColin Snover
2016-03-16SCI32: Work around bad Styler script in KQ7 2.0bColin Snover
The SCI2.1mid version of the game includes scripts designed for SCI2.1early which means wrong parameters are sent to the kernel.
2016-03-16SCI32: Remove dead code related to priority map handlingFilippos Karapetis
The priority map is not used at all in SCI32 at the engine level by design, so all the relevant code that handles picture priority is pretty much dead
2016-03-16SCI32: Global 12 contains the previous roomFilippos Karapetis
2016-03-15SCI32: More work on remappingFilippos Karapetis
Still not working
2016-03-11SCI32: Add remap counters and hook them up to frameOutFilippos Karapetis
2016-03-10SCI32: Clean up debug messages in GfxFrameoutColin Snover
Error messages now contain the name of the failed function and plane/screen item information that can be used to look up the plane/screen item in a debugger, if the games ever crash in a release in this code, per suggestion by @m-kiewitz. Commented out messages that were used during the rearchitecture of the main graphics engine are also removed, since that code is stable now.
2016-03-10SCI32: Implement kMovePlaneItemsColin Snover
2016-03-10SCI32: Implement kSetNowSeenColin Snover
2016-03-08SCI32: Clean up kIsOnMe and fix rounding bugColin Snover
The implementation was not correctly rounding the scaled position with mulru, leading to occasionally incorrect hit detection at the boundaries of boxes.
2016-03-07SCI32: Change magnifier warning to errorColin Snover
If anything actually uses this feature, we should know about it eventually.
2016-03-07SCI32: Add debugger command to view screen items in the visible plane listColin Snover
2016-03-06SCI32: Fix memory leaksColin Snover
2016-03-06SCI32: Implement kEditTextColin Snover
2016-03-02SCI32: Minor consistency improvement to FrameOutColin Snover
2016-03-02SCI32: "Fix" missing fade transitionsColin Snover
The original engine had some members on PlaneShowStyle to allow wall clock timing but never actually used them in the processing loop so transitions simply ran as quickly as the CPU could process them. For the moment, we will just limit these transitions to ~30fps, which hopefully roughly matches the speed of the engine on hardware of the era.
2016-02-21SCI32: Comment splitRectsWillem Jan Palenstijn
2016-02-21SCI32: Clean up Gfx::FrameoutsyncWithScripts()Martin Kiewitz
2016-02-21SCI32: Fix save patching for ScummVM dialogMartin Kiewitz
- Patch game super object for saving instead of game object - Remove re-adding planes+screen items, game::replay does that We would only have to do that for soft-failing on restore - Change debug levels of kNumLoops/kNumCels to 9 - Add special comment about -info- selector in syncWithScripts() This should now make ScummVM menu saving work properly at least in SQ6.
2016-02-21SCI32: Add comment about SQ6's option planeMartin Kiewitz
2016-02-21SCI32: Implement syncing planes+screen items from VM for restoreMartin Kiewitz
Fixes restoring saved games, when ScummVM dialogs are patched in Removing clearing planes+screen items as well, because the scripts actually did that, but did not clear everything. Fixes "Invalid screen item" message when entering options menu, after restoring in SQ6.
2016-02-21SCI32: Add a bit more debug info to errors + screenitemsMartin Kiewitz
2016-02-21SCI: Clear visible planes in GfxFrameout::clear() tooWillem Jan Palenstijn
This caused planes and visibleplanes to go out of sync when loading.
2016-02-20SCI: Fix showStyle check in palMorphFrameOut() - thanks snoverFilippos Karapetis
2016-02-20SCI32: kIsOnMe apply scaling + use mulru() thx snoverMartin Kiewitz
2016-02-20SCI32: kIsOnMe searches _visiblePlanes, not just _planesMartin Kiewitz
Forgot to mention that in last commit
2016-02-20SCI32: Splitting up GfxFrameout::kernelIsOnMe() into 2 methodsMartin Kiewitz