aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Snover2016-02-18 00:52:33 -0600
committerColin Snover2016-02-18 13:18:03 -0600
commit766cf6cee7edbc3f6fa22a50381391725f70cabc (patch)
tree9a59be3a6ab5a2ebba0998fc2c44ec4c6865d84b
parent03e3f2c68cef429983787ddd38e74718db1ee8d1 (diff)
downloadscummvm-rg350-766cf6cee7edbc3f6fa22a50381391725f70cabc.tar.gz
scummvm-rg350-766cf6cee7edbc3f6fa22a50381391725f70cabc.tar.bz2
scummvm-rg350-766cf6cee7edbc3f6fa22a50381391725f70cabc.zip
SCI: Fix too-fast rendering
Now that the renderer is loading resources without spinning CPU time on decompression every frame, it becomes apparent that kFrameOut is spammed constantly by the interpreter and needs to be throttled to ensure that transitions and fades work properly.
-rw-r--r--engines/sci/engine/kgraphics32.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp
index 03cbd66984..f6b0074ad3 100644
--- a/engines/sci/engine/kgraphics32.cpp
+++ b/engines/sci/engine/kgraphics32.cpp
@@ -127,6 +127,8 @@ reg_t kGetHighPlanePri(EngineState *s, int argc, reg_t *argv) {
reg_t kFrameOut(EngineState *s, int argc, reg_t *argv) {
bool showBits = argc > 0 ? argv[0].toUint16() : true;
g_sci->_gfxFrameout->kernelFrameout(showBits);
+ s->speedThrottler(16);
+ s->_throttleTrigger = true;
return NULL_REG;
}