Welcome to the SGI port of id Software'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 Quake executable for your platform
quake.gl the n32 OpenGL Quake executable
quake.gl.r10k an n32 OpenGL Quake executable optimized for the MIPS R10k
quake.sw the n32 software renderer Quake executable (uses Xlib)
quake.sw.r10k an n32 software renderer Quake executable 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> The dynamic light flashes can be replaced with a colored blend effect, which is much more efficient in most cases.

Defaults to 0 in the SGI version

gl_ztrick <0 or 1> 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.

Defaults to 0

gl_keeptjunctions <0 or 1> 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.

Defaults to 0

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> Perform colorbuffer clears (useful with gl_wireframe).

Defaults to 0

gl_wireframe <0 or 1> 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.

Defaults to 0

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

Defaults to 0

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

Defaults to 0

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

Defaults to 60

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

r_mirroralpha <0.0-1.0> See reflections in some types of windows.

alpha between 0 and 1

r_novis <0 or 1> ignore visibility lists, needed to see into water

r_wateralpha <0.0-1.0> To see the new transparent water effect, try r_wateralpha 0.5 and r_novis 1 (will be slow on most machines!).

alpha between 0 and 1

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.
6.2 machines dmedia_eoe.sw32.lib must be installed.
compiler_eoe.sw32.lib must be installed.
Patch 1787 must be installed (to update compiler_eoe.sw32.lib).
Impact eoe.sw32.gfx must be installed.

Patch 1447 (or its sucessor) should *not* be installed. It seems to make things worse - can anyone confirm this?

Octane Patch 1822 (or its sucessor) should be installed.
Reality Engine  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 there is no information about whether or when a patch will be available.
Infinite Reality  Unlike the O2 version, there is no way to store a "default" video combination (We don'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).

1.08

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).

History

Originally written by Ed Hutchins <hutchins@home.net>, Feb 11 1997.
HTML version by Reid Ellis <rae@sgi.com>, Feb 17 1997
Update by Phil Nemec <nemec@sgi.com>, Apr 30 1997

Troubleshooting

BugFix
[on a 6.2 machine]
13186:./quake.sw: rld: Fatal Error: attempted access to unresolvable symbol in ./quake.sw: __dcis
Install patch 1787 (to update compiler_eoe.sw32.lib).
13146:./quake.sw: rld: Fatal Error:
cannot successfully map soname 'libdmedia.so' under any of the filenames
/usr/lib32/libdmedia.so: /lib32/libdmedia.so: /usr/libn32/libdmedia.so: /libn32/libdmedia.so: /usr/lib32/libdmedia.so.1: /lib32/libdmedia.so.1: /usr/libn32/libdmedia.so.1: /libn32/libdmedia.so.1:
install dmedia_eoe.sw32.lib
13098:./quake.sw: rld: Fatal Error: cannot successfully map soname 'libm.so' under any of the filenames /usr/lib32/libm.so: /lib32/libm.so: /usr/libn32/libm.so: /libn32/libm.so: /usr/lib32/libm.so.1: /lib32/libm.so.1: /usr/libn32/libm.so.1: /libn32/libm.so.1: install compiler_eoe.sw32.lib
22447:./quake.gl: rld: Fatal Error: cannot successfully map soname 'libGL.so' under any of the filenames /usr/lib32/libGL.so: /lib32/libGL.so: /usr/libn32/libGL.so: /libn32/libGL.so: /usr/lib32/libGL.so.1: /lib32/libGL.so.1: /usr/libn32/libGL.so.1: /libn32/libGL.so.1: install eoe.sw32.gfx
Textures appear wrong on Impact... Try removing patch 1447 and reinstalling eoe.sw32.gfx... I'm not sure about this though - so please send me feedback...
http://reality.sgi.com/sgiquake/doc/
$Date: 1997/05/05 13:58:27 $
$Revision: 1.2 $