1.08: * Fixed R10k executables to load libaudio.so dynamically * Optimized all executables (all executables now -n32) This may require some software installation on 6.2 machines as n32 libraries are not installed by default on 6.2. The speedup is well worth it though (5-25%)! * Stripped binaries for smaller distribution. =========================================================================== 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 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 Sets the window's initial width and height, overridden by -fullscreen. -visualid 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) 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 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 See reflections in some types of windows. r_wateralpha 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. 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. 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 - Philip Nemec 4/30/1997 ================================ Troubleshooting: Bug: [on a 6.2 machine] 13186:./quake.sw: rld: Fatal Error: attempted access to unresolvable symbol in ./quake.sw: __dcis Fix: Install patch 1787 (to update compiler_eoe.sw32.lib). --------------- Bug: 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: Fix: install dmedia_eoe.sw32.lib --------------- Bug: 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: Fix: install compiler_eoe.sw32.lib --------------- Bug: 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: Fix: install eoe.sw32.gfx --------------- Bug: Textures appear wrong on Impact... Fix: Try removing patch 1447 and reinstalling eoe.sw32.gfx... I'm not sure about this though - so please send me feedback...