[Scummvm-devel] Low-end platforms and MADE

Filippos Karapetis philipk79 at hotmail.com
Sun Jan 31 15:23:28 CET 2010


Recently, I've made some changes to the way that the MADE engine does
screen transitions and palette changes. Essentially, whenever the screen
changes in Return to Zork, there were some nifty effects which moved the
player from one screen to another. In these effects, extensive changes in
the screen palette were made in each frame (and we're talking about 50+
palette changes over 2-3 seconds). Palette changes were very easy to
do then and really cheap as an operation. 

Nowadays, they're the most expensive operation, as the whole screen
gets "dirty" and all pixels need to get updated and redrawn. In effect,
the original screen transitions in Return to Zork made the game unplayable
under low end platforms. In desktop platforms, they resulted in high CPU
spikes (90%+) for 2-3 seconds, which was acceptable to a degree.
I made several simplifications to the screen effects, removing several
palette changes. This made it possible to play the game normally on
low end platforms. However, the screen palette isn't quite right...
For reference (courtesy of eriktorbjorn):

The relevant changes were made in /made/screenfx.cpp, and it's quite
straightforward to change to the original effect.

So... what can be done is to revert to the original behavior for desktop
platforms (where we can provide the same effect as the original game)
and present the simplified (but uglier) version to portable platforms with
low end CPUs... or even refactor the code a bit more and make the
palette change less abrupt.

The question is: is there any way, an ifdef probably, to figure out if the
platform that the game is running under can handle CPU intensive tasks?
We could then assign some kind of flag, which will show the full effect
in platforms that can handle it, and a cut down version in low end

Hotmail: Trusted email with Microsoft’s powerful SPAM protection.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20100131/4f4b0d99/attachment.html>

More information about the Scummvm-devel mailing list