Short:    WarpOS Quake port
Author:   Jarmo Laakkonen (jami.laakkonen@kolumbus.fi)
Uploader: Jarmo Laakkonen (jami.laakkonen@kolumbus.fi)
Type:     game/shoot
Architecture: ppc-warpup

WarpQuake 0.6    02-03-2000

WarpQuake is a port of Quake based on Awinquake by Peter McGavin.

Requirements:

PPC board with WarpOS installed.
AGA or GFX board.
TCP/IP stack for network games.
lowlevel.library for joypad support.
Optionally chunkyppc.library.

chunkyppc.library is not required, but should speed up things on GFX cards.
Unfortunately I haven't been able to test WarpQuake on a GFX card system,
as I only have AGA, but it should work. In case you have problems with the
chunkyppc support, you can use the -wpa8 switch, but then the game might
run a bit slower.

The networking code has only been tested by running two Quake executables
on the same machine. This worked fine.

Amiga specific commandline options:

-width:
-height:
Use these to specify display width and height when using chunkyppc.library.
Otherwise you only get 320x200 play area although the screen is bigger.
Note that these aren't needed when using native or chunkyppc.library AGA
support.

-bat:
Change to BAT MMU setup. This should give a slight speed increase, but
may cause problems on some setups.
This does the same thing as the changemmu tool supplied with WarpOS.

-aga:
Use native AGA support with triplebuffering instead of chunkyppc.library.
This is faster than chunkyppc AGA support.

-nodb:
Disables AGA multibuffering. Saves one contextswitch but causes slight
flicker.

-wpa8:
Use WritePixelArray8(). Use this if chunkyppc support doesn't work.

-force:
chunkyppc.library saves the last used screenmode in ENV: and ENVARC:.
Next time you start WarpQuake the screenmode will be read from there.
Use this switch if you want to override this.

-mouse:
Enables mouse.

-mem:
Sets the heapsize. Default is 8MB, but some Total Conversions may
require more than this. BTW If you are looking for a good TC, try
After the fall. You'll never want to play basic Quake again.

-joypad:
Enables CD32 joypad. You need to bind the buttons yourself.
The buttons are located in AUX1 - AUX11.
AUX1  = left
AUX2  = right
AUX3  = up
AUX4  = down
AUX5  = red
AUX6  = green
AUX7  = yellow
AUX8  = blue
AUX9  = play
AUX10 = forward
AUX11 = reverse

Binding example: In Quake console type, BIND AUX5 "+ATTACK"

Additinally chunkyppc.library supports the following enviroment variables:

WarpQuake/dbuf:
Use Doublebuffering.

WarpQuake/oldstyle:
If this is set, ScrollVPort will be used, else Triple Buffering using
ScreenBuffers.

WarpQuake/wb:
If this is set, a Workbench Window will be used, not a screen

WarpQuake/pip:
If this is set, a Picture in Picture will be used using the Picasso96API.library.
Note: Not all Graphics Boards Support this. Currently only P96 PIP is supported,
not CGX. Maybe in the future...

WarpQuake/pipnoclear:
If this is set to 1, the PIP won't be cleared when opened.

WarpQuake/rtgmaster:
Use rtgmaster Screenmode Requester instead of ASL one. rtgmaster.library
will only be opened when this option is set, so that rtgmaster.library
does not need to be installed to be able to use chunkyppc.library.

WarpQuake/likecgx:
If you want CGX-like WB Window Support for P96 (Faster, but Window Borders
disappear). For CGX it is automatically set, as it is the only possible
method for CGX to reach (at least for 16 Bit) WB Window Support, for P96
it is optional.

lockingmode:
Set this to 0 for best performance on GFX cards.


History:

0.6:
I released 0.5 too fast. The game would hang on exit if not using
joypad.

0.5:
Removed a small bug in the joypad code.
It should be possible to use screens bigger than 320x200 with
chunkyppc.library now, but you have to use the -width and -height
parameters.
Added some asm optimizations from awinquake.
Recompiled with gcc 2.95.1.
Thanks to elf2exe2, the executable is now only 600KB.
Some other minor changes.

0.4:
Changed -memory back to -mem ;)
Removed the cd audio code as it doesn't work currently.

0.3:
Changed -mem to -memory as requested by Chris De Maeyer
Small fix in the mouse handling.
Some other minor changes.

0.2:
Added -bat option.
ChunkyPPC double/triplebuffering actually works now ;)
File access is MUCH faster now.
Game hanged if no .pak files could be found.

0.1:
First release.


Small FAQ:

Q: Why another PPC Quake port?
A: Well it started when I found a bug in the -mem option of Awinquake and
   decided to look at the source. After fixing that, my friend suggested
   that I should learn to play with the mouse instead of the keyboard.
   But the mouse support in Awinquake sucked, so I fixed that too.
   Then I got fed up with the crappy PowerUP software which kept measuring
   my bus speed incorrectly, so I ported it to WarpOS and added chunkyppc
   and joypad support. This is also a good way to sharpen my programming
   skills. Until now I have mainly done/ported some CLI programs.
   I know that Frank Wille and Steffen Haeuser are working on a port too,
   and when finished it will probably be much better than this. In it's
   current state it's too buggy for my taste.

Q: Why does the game crash?
   Maybe your stack is too low. Try setting it to 500000 bytes.
   Also try without the -bat parameter.

Q: Why doesn't the game work on my GFX card?
A: The GFX card support in WarpQuake might be broken, as it hasn't been
   tested at all. Try the -wpa8 option.

Q: Why does mouse slow down the game so much?
A: Because there's much contextswitches needed for this. If you are using
   the keyboard at the same time the slowdown is even worse. This is cured
   by setting the key repeat from input prefs to slowest possible. This
   reduces contextswitches to minimium. If you are running on AGA and don't
   mind the slight flicker, you can also try disabling multibuffering.

Q: Why doesn't the middle mouse button work?
A: You probably have some commodity running that uses the button. Disable
   all commodities and try again.

Q: Any other speed tips?
A: Use the -bat option to change to BAT MMU setup. This gives about 1 FPS
   more on my 603e/240MHz. Use 320x200 screenmode for best speed.

Q: Will there be an PowerUP version?
A: No. I don't trust kernels that can't even measure the bus speed
   correctly.

Q: Will there be AHI support?
A: Maybe, but don't bet on it.

Q: Is the source available?
A: Yes, as required by the GPL license.

Q: Why does the game run in 320x200 although I select a bigger screen?
A: This happens only on GFX cards when using chunkyppc.library.
   Use the -width and -height parameters or -wpa8.

Q: Why don't you get a GFX card?
A: Because I'm poor.

Q: Well, why don't you get a job then?
A: Because I'm lazy.

Q: You're the crapiest coder I've ever seen. Why don't you do something
   useful with your life like collect stamps or something?
A: I know, but I'm learning more everyday.

Q: I have some questions that are not answered in this doc. How can I
   reach you?
A: Email to jami.laakkonen@kolumbus.fi
.
