This program uses Motif, and therefore there are two packages: one (that
is very large) where the program has the necessary Motif functions
statically linked in, xpango-static-1.0.tar.gz, and one where the program
is dynamically linked with MetroLink Motif 1.2.4, xpango-1.0.tar.gz, that
also has the object files and an Imakefile that should make it possible to
link it if you have Motif.



TO INSTALL, do the following:

Put the program, xpango, where your other local binaries are (usually
/usr/local/bin).

A high score file that should be writable for anybody running the program
is maintained (there is no setuid facility in the program that makes it
possible to protect this file in a better way at the moment). It is
normally called /usr/local/lib/xpango.highscore, but this can be changed
with the X resource "xpango*highscorefile". You can copy the file in the
distribution, or make a new one by running the program, which will create
it if it can not find one (note that to do this you have to have write
access where you place your high score file).

If you need to make any changes to the app-defaults resource file XPango
(see below), do this and place it in /usr/lib/X11/app-defaults or wherever
you keep your X resource files. If you don't need to make any changes, you
don't need to complete this step.



The program is said to run at a suitable speed on a computer with at least
a 33 MHz 386 (I haven't tried this myself) without any special
arrangements. If it would run too slow, here is what you can do:

With the command line option -cpuhog (or the X resource "xpango*cpuhog"
set to "True"), the program just loops (using an X workproc) and uses all
the CPU time it gets. It could be a good idea to try this first, because
it should always work. It is, however, not desirable to run the program
like this for two reasons:

It eats CPU time.

It seems that the timing for some reason is less precise than if you use
X timeouts (though not very much) wich makes the animation somewhat less
smooth.


There are two values that determine the speed when using X timeouts.

DEFAULT_SLEEPTIME is the time (in millseconds) the program should sleep
between the screen updates. This should be somewhere between 1 and about
20. It seems that the resolution for the timeouts is not as high as you
would like it to be; on a Pentium 66 MHz with Linux you can do a screen
update about every 0.020 seconds for timeout values around 3 to 10, and
about every 0.040 seconds for timeout values around 12 and above. Low
values are not reliable, they can make the program run at different speeds
for long periods. Desirabe time between updates is somewhere between 0.018
and 0.023.

DEFAULT_SLEEPTIME can be changed with the command line option
"-sleeptime <value>" or with the X resource "xpango*sleeptime".


DEFAULT_MOVEDISTANCE is the number of pixels the sprites will move on each
screen update. This should be 1 if the system permits.

DEFAULT_MOVEDISTANCE can be changed with the command line option
"-movedistance <value>" or with the X resource "xpango*movedistance".


If the command line option "-timing" is used (or the X resource
"xpango*timing" is set to "True"), the program will try to change the
sleep time, starting with the default value (or the value given by the
command line "-sleeptime <value>") until it reaches a good value. It
prints out the time, in milliseconds, it takes to move a sprite one
square, and the current sleep time parameter. A desirable value is between
400000 and 500000. If you can't get under 0.5 secons you will have to
increase the "movedistance" untill you do. If you are not able to get a
stable value in the desirable range you then have use a sleep time value
that get you below this range and use the command line option "-smooth"
(or the X resource "xpango*smooth"), which will make the program loop like
in the "cpuhog" mode, but just part of the time.

Another thing you can do is trying with a different sized board (that does
not take the same time to update). This is done with the command line
option "-squaresize <value>" (or the X resource "xpango*squaresize"). If
you do this, you will get much uglier looking sprites, not the nice
predefined ones.

