 |
MoSlo - slowdown utility (download 9k)
Author: David Perrell, Super Crispy Software
Description
MoSlo is a utility that allows you to slow down the
execution speed of a program. You can slow down to 1%99% of normal speed in 1% increments.
For example, if you wanted to run Insanity at 20% of normal speed, launch it with the following
command line: moslo /20 insanity.exe.
Why Would I Need MoSlo?
Some of the games in this collection are real-time (as
opposed to turn-based). This means that the playing pieces controlled by the computer
(called sprites) continue to move whether or not there is any input from the human player.
If the computer moved its sprites at the maximum
possible speed, it would be virtually impossible for any human player to win the game. That is
because the computer can recalculate a sprite's position many thousands of times per second.
The sprites would race across the screen and collide with the player in a fraction of
a second, before there was a chance to even press a key.
To solve this problem, game developers needed a way
to slow down the normal execution speed of their games. Most modern games do this by keeping
track of the system clock, which ticks 18 times per second. So, for example, if you want the
sprites to move once per second, you count off 18 ticks of the clock before allowing the
computer to move its sprites. This method works no matter how fast the computer runs, because
the system clock is always constant.
However, some older games used a loop-delay function
to slow things down. This was implemented using a piece of code that looks something like this:
function OneSecondDelay
begin
n = 0;
while (n < 10,000) do n = n+1
end
repeat
call OneSecondDelay
move sprites
until (player is caught by sprites)
The underlying assumption here is that it will take the computer one second to count to
10,000. As long as all computers were running at the same speed, this method worked just fine.
However, it wasn't long before chip manufacturers started producing computers that ran hundreds,
even thousands of times faster than before. On these super-fast computers,
a counting operation that used to take a full second now only takes a tiny fraction of a second.
As a result, games that rely on the old loop-delay function speed up to the point where they
are unplayable.
This is where MoSlo comes in. MoSlo slows down the
computer so that it can't race through the loop as quickly. The effect is that the game slows
down to the speed originally intended by the developer.
So why were those old game writers so short-sighted?
Didn't they know that computers would eventually speed up and render their loop-delay functions
useless? Let's cut these guys a little slack. They didn't do any worse than the mainframe
programmers who forgot about the year 2000, and besides, most of them were just doing it as a
hobby, anyway. The fact that we're willing to slow down our computers to play their games
proves that they did something right.
UPDATE: We have discovered that MoSlo can also be used to solve the
run time error 200 problem that affects certain games written in Turbo Pascal.
For games in this category (such as Monopoly), try running them with MoSlo set to 80%90% of normal speed.
Discussions
Questions or comments about this utility? Post them in
our discussion forum.

To contact the webmaster, send e-mail to games@jma2001.com
Copyright 2002, 1999 J. Michael Ambrosio
All Rights Reserved
|  |
|