[Scummvm-git-logs] scummvm master -> 78ec256ccacd4126347f012c259305e2d6750fc3

athrxx athrxx at scummvm.org
Sat May 22 12:26:27 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
78ec256cca SCUMM: (FM-TOWNS) - fix bug no. 12560 ("[FM Towns] scrolling much too slow")


Commit: 78ec256ccacd4126347f012c259305e2d6750fc3
    https://github.com/scummvm/scummvm/commit/78ec256ccacd4126347f012c259305e2d6750fc3
Author: athrxx (athrxx at scummvm.org)
Date: 2021-05-22T14:24:54+02:00

Commit Message:
SCUMM: (FM-TOWNS) - fix bug no. 12560 ("[FM Towns] scrolling much too slow")

(partly revert fb8f1084)

There is no simple solution that would still  leave the "butter smooth" scrolling for faster platforms intact. I have measured times between several code points to find any bottlenecks. My finding is that even single script opcodes may well take over 200ms to execute. And exceeding a singe 60 Hz tick happens way more often (which makes the scrolling fall behind and have to catch up, thus becoming a bit sloppy). So, for the "butter smooth" scrolling I'll probably implement a timer for the screen updates (which will then really behave much more like the interrupt handler of the original). But that's for a separate commit. This one is mostly about the bug ticket..

Changed paths:
    engines/scumm/gfx_towns.cpp


diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp
index b28d77d34e..d573c1f4e9 100644
--- a/engines/scumm/gfx_towns.cpp
+++ b/engines/scumm/gfx_towns.cpp
@@ -186,7 +186,7 @@ void ScummEngine::towns_updateGfx() {
 		return;
 
 	uint32 cur = _system->getMillis();
-	if (_scrollTimer <= cur) {
+	while (_scrollTimer <= cur) {
 		if (!_scrollTimer)
 			_scrollTimer = cur;
 		_scrollTimer += 1000 / 60;




More information about the Scummvm-git-logs mailing list