Welcome to the SGI port of idsoftware's Quake!

Disclaimer:
-----------

Id software bears _NO_ support responsibility for the SGI versions of
Quake (either .gl or .sw) whatsoever! Likewise, SGI is releasing these
versions of Quake as-is, and is not responsible for support. These
executables are being made available in a large part through the
efforts of individual employees of SGI, and to the extent that we can
we'll be happy to answer questions on the appropriate SGI newsgroups
(comp.sys.sgi.*). Please help ensure further Quake-related progress by
limiting your questions to this channel.

Files:
------

In this package you should find the following files:

README.TXT - this file
LICINFO.TXT - appearing with permission from the registered Quake CD
MANUAL.TXT - appearing with permission from the registered Quake CD
ORDER.TXT - appearing with permission from the registered Quake CD
quake* - a script to run the correct version of Quake for your platform
quake.gl* - the o32 OpenGL version of Quake
quake.gl.r10k* - an n32 OpenGL version of Quake optimized for the MIPS R10k
quake.sw* - the o32 software renderer version of Quake (uses Xlib)
quake.sw.r10k* - an n32 software renderer version optimized for the MIPS R10k

You will need to download the shareware pak0.pak file (follow the links
on http://www.idsoftware.com). We don't have permission do distribute
this file as part of this package (sorry!). Unfortunately, the
distribution from id is packed in a PC-format self-extracting archive.
Hopefully idsoftware will make a more unix-friendly distribution format
available (but please don't pester them about this!).

The "pak[01].pak" file[s] will need to be placed in a directory named
"id1".  The id1 directory must live in the same directory as the Quake
executable, and the "quake" script must be invoked from that directory
(Quake looks for its pak files relative to "."). You can place the
registered pak files (from the PC CDROM) into the id1 directory to
start playing registered quake! We've also tested a beta version of the
capture the flag add-on with much success.

Options:
--------

The following options can be specified from the quake.gl* command line:

-nofullscreen
Run Quake in a window (fullscreen rendering is the default for the GL
version).

-noscissor
Don't use the scissor rect (slows Quake down, debugging only).

-nodither
Turns off hardware dithering (degrades image quality on O2's 16+16 or
32 bpp xscreen modes).

-nosubtex
Don't use subtexture loads (slows Quake down, debugging only).

-nomulti
Don't perform multi-sampling on machines that support it
(degrades image quality).

-nodetail
Don't use detail texture on machines that support it
(degrades image quality).

-startgamma <gamma>
Sets the initial gamma level, defaults to 1.0.

The following options can be specified from the quake.sw* command line:

-2
Doubles pixels at some cost in performance.

-4
Quadruples pixels at a larger cost in performance.

-fullscreen
Run Quake in fullscreen mode (can be okay on fast machines
with -2 or -4 enabled, usually runs out of heap without these
settings).

-winsize <width> <height>
Sets the window's initial width and height, overridden by -fullscreen.

-visualid <vid>
Specify an X visual id (in decimal) by hand, overriding Quake's
pick.

These commands can be typed into the console (use the "`" key to drop
it down inside the game) or from the command line if preceded by a "+".
(note: some of these descriptions are copied from the glquake1.zip readme):

gl_flashblend <0 or 1, defaults to 0 in the SGI version>
The dynamic light flashes can be replaced with a colored blend effect, which
is much more efficient in most cases.

gl_ztrick <0 or 1, defaults to 0>
A slight speed benefit is gained by splitting the z buffer.  On
professional (24+ bit) cards this is always fine, but on 16 bit cards
you may occasionally see some pixels poke through a wall because of
limited precision.

gl_keeptjunctions <0 or 1, defaults to 0>
A lot of triangles can be saved by not exactly fixing up collinear tjunction
points, but this can cause single pixel errors at polygon borders.  If you
change this, you will have to restart the level.

gl_texturemode
Determines the OpenGL texture filters. All SGI machines do these correctly.
GL_NEAREST			: point sampled, no mipmaps
GL_LINEAR_MIPMAP_NEAREST	: bilinear plus mipmaps (default on O2)
GL_LINEAR_MIPMAP_LINEAR		: trilinear interpolation (default on Impact, RE, IR)
(note that these texturemodes must be typed in in UPPERCASE)

gl_clear <0 or 1, defaults to 0>
Perform colorbuffer clears (useful with gl_wireframe).

gl_wireframe <0 or 1, defaults to 0>
Turn on wireframe mode (only useful with gl_clear 1). Note that you won't
be able to read text in this mode. Useful for seeing what's being drawn
every frame.

gl_instrument <0 or 1, defaults to 0>
Turn on the instrumentation package on the Infinite Reality. Useful for seeing
framerates.

_windowed_mouse <0 or 1, defaults to 0>
When not running fullscreen, use the mouse events that fall into the quake
window to move the character around.

fov <y degrees, defaults to 60>
Adjust Y field of view, X is adjusted proportionately. Useful if running
on widescreen displays.

The following commands turn on new experimental features in Quake (not
useful for normal gameplay but cool to look at):

r_mirroralpha <alpha between 0 and 1>
See reflections in some types of windows.

r_wateralpha <alpha between 0 and 1>
r_novis <0 or 1> (ignore visibility lists, needed to see into water)
To see the new transparent water effect, try r_wateralpha 0.5
and r_novis 1 (will be slow on most machines!).

r_shadows <0 or 1>
Turn on shadows.

Platform Notes:
---------------

O2:

On 64M systems, the quake script will turn off several features in
order to conserve memory (Quake uses several hundred small textures,
and due to hardware alignment constraints consumes more memory than you
might expect). Future tuning should hopefully reduce this problem to
the point that the "full" version can fit in 64M. Using "xscreen" to
select video modes with lower memory requirements helps (the minimum
Quake can use is 16+16 VGA), though in recent testing I've had little
paging even when running 1280x1024 32+32 on a 64M system.

Octane/Impact:

Currently Quake hits texture-manager bugs on Impact and Octane.  You
can tweak the kernel to increase the percentage of pages that are
lockable (and avoid invoking the texture manager):

	"su"
	"systune -i"
	bump up gfxlockablemem_gt64
	bump up gfxlockablemem
	and reboot...

A patch will be available soon to fix this bug (I've tested it, I'm not
sure what its number is or when it will be available).

RE:

There is a texture-manager bug in the OpenGL implementation which
prevents the gl version from being terribly useful (remember that this
OpenGL is implemented on top of IrisGL). This bug is being looked at,
but I have no information about whether or when a patch will be
available.

IR:

Unlike the O2 version, there is no way to store a "default" video
combination (I didn't want to override hand-crafted ircombine
settings). You can, however, change combinations from the Options...
Video menu. Quake will attempt to cover the entire footprint of all
channels in the framebuffer (so aligning three channels side-by-side
should do the expected thing and render a widescreen view that covers
all three channels).

Other Notes:
------------

The SGI versions of quake memory map the read-only data files (pak0.pak
etc.), which can lead to problems if you're running from an NFS-mounted
directory.

Use the -nosound command-line argument to run quake on pre-6.3 machines
(quake uses new functionality present in the more recent versions of
libaudio).

Thanks To:
----------

Everyone at SGI and id software who pitched in to help make SGI quake a
reality! Kudos to the O2 team for making a great product (on which most
the porting was done).

- Ed Hutchins
2/11/1997
