ScummVM Build 0.9.1 - Changes

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
User avatar
chas-g
Posts: 34
Joined: Wed Nov 23, 2005 1:05 pm
Location: UK

ScummVM Build 0.9.1 - Changes

Post by chas-g »

I just read the release notes & notice that -
Kyrandia:
- Scrolling in the Kyrandia intro is less CPU intensive, at the cost of not being as smooth as before.

Whilst I've not downloaded/tried the new version, I politely ask the developers was it really necessary to make a slight degrade? Surely even really old comps can run ScummVM successfully (me thinking that ScummVM can't be that demanding).

Is this slight degrade temporary, i.e. are you going to improve it again in a future version?

On a positive note I'm very pleased & grateful for all the work done so far with this programme & congratulate all the team :D
User avatar
LordHoto
ScummVM Developer
Posts: 1029
Joined: Sun Oct 30, 2005 3:58 pm
Location: Germany

Post by LordHoto »

It was too slow for PocketPC and other small devices for example, that's why it was rewritten, it isn't too much difference and the audio/video should be in sync again on those devices, and no it'll not be 'improved' in the future.
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Re: ScummVM Build 0.9.1 - Changes

Post by eriktorbjorn »

chas-g wrote: Whilst I've not downloaded/tried the new version, I politely ask the developers was it really necessary to make a slight degrade? Surely even really old comps can run ScummVM successfully (me thinking that ScummVM can't be that demanding).
The Kyrandia engine measures time in "ticks", where one tick is one 60th of a second. The old scroller tried to move the screen one pixel every tick. If there was any time left after updating the screen, it would delay for the remainder of the tick.

When running this on my computer (450 MHz P3), unless I ran it with the 1x scaler, it would lag behind, and the game would be unresponsive until the scrolling had finished, i.e. no way of quitting, and the window would not repaint itself if you dragged another window across it, etc.

The rewritten scroller tries instead to do the scrolling in constant time instead: It checks how much the screen should have moved since the scrolling started, and once it has updated the screen it sleeps for 10 milliseconds (less than one tick). That means that on slower computers, it will scroll more than one pixel at a time, but on a faster one it should for the most part be as smooth as before.

I picked 10 milliseconds because that's the granularity guaranteed by SDL_Delay() which is what the SDL backend uses to implement ScummVM's delayMillis() function.

When ScummVM isn't doing anything else, it's usually sleeping for 10 milliseconds like that. If it didn't, it would use as much of your CPU as was available at all times, no matter how fast your computer is. Not a very nice thing to do in a multi-tasking system.
User avatar
chas-g
Posts: 34
Joined: Wed Nov 23, 2005 1:05 pm
Location: UK

Post by chas-g »

Thank you both for the info,
chas-g
Post Reply