mirror of https://github.com/tLDP/LDP
3096 lines
133 KiB
Plaintext
3096 lines
133 KiB
Plaintext
<!-- This is the Linux Quake HOWTO -->
|
||
|
||
<!doctype linuxdoc system
|
||
[ <!entity RCSID "$Id$" >
|
||
<!entity CurrentDate "18 December 1998" >
|
||
<!entity CurrentVer "1.0.1.18" >
|
||
] >
|
||
<article>
|
||
|
||
<title>Linux Quake HOWTO
|
||
<author>Bob Zimbinski (<tt/bobz@mr.net/), Brett A. Thomas (<tt/quark@baz.com/), and Mike Hallock (<tt/mikeh@medina.net/)
|
||
<date>v1.0.1.18, 18 December 1998
|
||
|
||
|
||
<abstract>
|
||
This document explains how to install, run and troubleshoot Quake, QuakeWorld and Quake II on an Intel Linux system.
|
||
</abstract>
|
||
|
||
<toc>
|
||
|
||
<sect>Introduction
|
||
<p>
|
||
Quake, QuakeWorld and Quake II are tremendously popular 3D action games
|
||
developed by <htmlurl url="http://www.idsoftware.com" name="id Software">.
|
||
|
||
If you're not familiar with the Quake games, there are better places than
|
||
this HOWTO to learn about the basics. See section <ref id="other-sources"
|
||
name="Other Sources of Information"> below for a list of some of
|
||
these better places.
|
||
|
||
This document assumes you have Linux for the Intel platform up and
|
||
running, and in some cases the X Window System as well. X is not
|
||
required to run these games, but it's a nice way to test a basic
|
||
installation. If you are not running X, you may safely skip over any
|
||
references to it.
|
||
|
||
Sections of this document that were updated in the last revision
|
||
have a ** after the section heading. Sections updated in the revision
|
||
prior to the last are marked with a ++.
|
||
|
||
|
||
<sect1>Feedback,Comments, Corrections
|
||
<p>
|
||
This document certainly does <bf>not</bf> contain everything there is to
|
||
know about Linux Quake. With your help, though, we can bring it closer
|
||
to that ideal. We want this HOWTO to be as complete and accurate as
|
||
possible, so if you notice mistakes or omissions, please bring them to
|
||
our attention.
|
||
|
||
Questions, comments, or corrections should be sent to Bob Zimbinski
|
||
(<htmlurl url="mailto:bobz@mr.net" name="bobz@mr.net">) or Mike Hallock
|
||
(<htmlurl url="mailto:mikeh@medina.net" name="mikeh@medina.net">).
|
||
Constructive criticism is welcome. Flames are not.
|
||
|
||
<sect1>Other Formats of This Document<label id="other-formats">
|
||
<p>
|
||
This document is available in a variety of different formats. Far more
|
||
than is necessary, actually. You can find them at <htmlurl
|
||
url="http://www.linuxquake.com/howto/other-formats"
|
||
name="http://www.linuxquake.com/howto/other-formats">.
|
||
<itemize>
|
||
<item><htmlurl url="other-formats/Quake-HOWTO.txt" name="ASCII text">
|
||
<item><htmlurl url="other-formats/Quake-HOWTO.man" name="ASCII text with backspace-overstrikes">
|
||
, suitable for viewing with <bf>man(1)</bf>
|
||
<item><htmlurl url="other-formats/Quake-HOWTO-html.zip" name="HTML">
|
||
all zipped up and ready to be dropped into your web site
|
||
<item><htmlurl url="other-formats/Quake-HOWTO.ps" name="Postscript">
|
||
<item><htmlurl url="other-formats/Quake-HOWTO.prc" name="PRC">
|
||
for viewing on your Palm Pilot with Aportis Doc
|
||
<item><htmlurl url="other-formats/Quake-HOWTO.sgml" name="SGML">
|
||
<item><htmlurl url="other-formats/Quake-HOWTO.dvi" name="LaTeX">
|
||
<item><htmlurl url="other-formats/Quake-HOWTO-everything.zip"
|
||
name="All of the above are also available in a single convenient package">
|
||
</itemize>
|
||
|
||
<sect1>Acknowledgments
|
||
<p>
|
||
The original version of this document was written by Brett A.Thomas
|
||
<htmlurl url="mailto:quark@baz.com" name="(quark@baz.com)"> and Mike
|
||
Hallock <htmlurl url="mailto:mikeh@medina.net" name="(mikeh@medina.net)">.
|
||
Bob Zimbinski <htmlurl url="mailto:bobz@mr.net" name="(bobz@mr.net)">
|
||
rewrote and expanded the original document prior to its initial public release.
|
||
|
||
Special thanks to the following people for bringing us Quake for Linux:
|
||
<itemize>
|
||
<item>John Carmack and the rest of <htmlurl
|
||
url="http://www.idsoftware.com" name="id Software"> for these great games.
|
||
<item>Dave 'Zoid' Kirsch <htmlurl url="mailto:zoid@idsoftware.com"
|
||
name="(zoid@idsoftware.com)"> for the Linux ports.
|
||
<item>Dave Taylor <htmlurl url="mailto:ddt@crack.com"
|
||
name="(ddt@crack.com)"> for starting this whole wacky Linux port business.
|
||
<item>Daryll Strauss <htmlurl url="mailto:daryll@harlot.rb.ca.us"
|
||
name="(daryll@harlot.rb.ca.us)"> for the Linux glide ports.
|
||
<item>Brian Paul <htmlurl url="mailto:brianp@elastic.avid.com"
|
||
name="(brianp@elastic.avid.com)"> for the Mesa graphics library.
|
||
<item>David Bucciarelli (<htmlurl url="mailto:tech.hmw@plus.it"
|
||
name="tech.hmw@plus.it">) for the Mesa/glide driver.
|
||
</itemize>
|
||
|
||
Thanks to the following people for contributions to this Howto:
|
||
<itemize>
|
||
<item>Mike Brunson (<htmlurl url="mailto:brunson@l3.net"
|
||
name="brunson@l3.net">) for the vid_restart tip.
|
||
<item>Joey Hess (<htmlurl url="mailto:joey@kite.ml.org"
|
||
name="joey@kite.ml.org">) for info on running svga & gl games
|
||
from X
|
||
<item>Joe S. (<htmlurl url="mailto:jszabo@eden.rutgers.edu"
|
||
name="jszabo@eden.rutgers.edu">) for a steaming pile of suggestions
|
||
<item>Brad Lambert (<htmlurl url="mailto:bradl@dial.pipex.com"
|
||
name="bradl@dial.pipex.com">) for the <tt>-noudp</tt> reminder.
|
||
<item>agx (<htmlurl url="mailto:gguenthe@iris.rz.uni-konstanz.de"
|
||
name="gguenthe@iris.rz.uni-konstanz.de">) for Quake installation info and pointing out QIPX.
|
||
<item>Derrik Pates (<htmlurl url="mailto:dmp8309@silver.sdsmt.edu"
|
||
name="dmp8309@silver.sdsmt.edu">) for making me think about security.
|
||
<item>Michael Dwyer (<htmlurl url="mailto:michael_dwyer@mwiworks.com"
|
||
name="michael_dwyer@mwiworks.com">) for the "OS considerations" ideas.
|
||
<item>Derek Simkowiak (<htmlurl url="mailto:dereks@kd-dev.com"
|
||
name="dereks@kd-dev.com">) for the Quake I CD installation procedure.
|
||
<item>sunstorm (<htmlurl url="mailto:sunstorm@glasscity.net"
|
||
name="sunstorm@glasscity.net">) Quake Mission Pack 2 information.
|
||
<item>Neil Marshall (<htmlurl url="mailto:marshall@pssnet.com"
|
||
name="marshall@pssnet.com">) for screen info.
|
||
<item>Serberus (<htmlurl url="mailto:serberus@clarion.co.uk" name="serberus@clarion.co.uk">)
|
||
for Vispatch pointer.
|
||
<item>Andrew Chase (<htmlurl url="mailto:fixy@fixy.org" name="fixy@fixy.org">) for the GLQuake
|
||
"POSSIBLE SCAN CODE ERROR" fix.
|
||
</itemize>
|
||
|
||
<sect1>Other Sources of Information<label id="other-sources">
|
||
<p>
|
||
|
||
<sect2>Linux-Specific Quake Information
|
||
<p>
|
||
<itemize>
|
||
<item>LQ:Linux Quake & Utilites <htmlurl url="http://www.linuxquake.com/"
|
||
name="http://www.linuxquake.com/">.
|
||
<item>Linux Quake Page
|
||
<htmlurl url="http://captured.com/threewave/linux/"
|
||
name="http://captured.com/threewave/linux/">
|
||
<item>QuakeWorld.net <htmlurl url="http://www.quakeworld.net"
|
||
name="http://www.quakeworld.net">
|
||
</itemize>
|
||
|
||
<sect2>General Quake Information<label id="general-quake-sources">
|
||
<p>
|
||
<itemize>
|
||
<item>id Software <htmlurl url="http://www.idsoftware.com"
|
||
name="http://www.idsoftware.com">
|
||
<item>PlanetQuake <htmlurl url="http://www.planetquake.com"
|
||
name="http://www.planetquake.com">
|
||
<item>QuakeWorld Central <htmlurl url="http://qwcentral.stomped.com"
|
||
name="http://qwcentral.stomped.com">
|
||
<item>3Dfx's GL Quake FAQ (somewhat out of date)
|
||
<htmlurl url="http://www.3dfx.com/game_dev/quake_faq.html"
|
||
name="http://www.3dfx.com/game_dev/quake_faq.html">
|
||
<item>Farenheit 176 Console Command Listing
|
||
<htmlurl url="http://www.planetquake.com/f176"
|
||
name="http://www.planetquake.com/f176">
|
||
<item>rec.games.computer.quake.* newsgroups
|
||
</itemize>
|
||
|
||
<sect2>Linux Gaming Information ++
|
||
<p>
|
||
<itemize>
|
||
<item>The Linux Game Tome <htmlurl
|
||
url="http://www.happypenguin.org/"
|
||
name="http://www.happypenguin.org/">
|
||
<item>LinuxGames.com <htmlurl
|
||
url="http://www.linuxgames.com/" name="http://www.linuxgames.com/">
|
||
<item>LinuxGames.org <htmlurl
|
||
url="http://www.linuxgames.org/" name="http://www.linuxgames.org/">
|
||
</itemize>
|
||
|
||
<!---------------------------------------------------------------------------->
|
||
<!---------------------------------------------------------------------------->
|
||
<sect>Quake/Quakeworld
|
||
<p>
|
||
To install Quake on your Linux system, you'll need some flavor of the
|
||
official Quake distribution from id. This will be either the retail
|
||
DOS/Windows CD-ROM that you bought at your favorite software store, or the
|
||
shareware version you downloaded from the net (see <ref
|
||
id="quake-shareware" name="below"> for details on acquiring the shareware
|
||
version). Alternatively, if you've already got Quake installed on a
|
||
DOS/Windows machine, you can use the relevant files from that installation.
|
||
|
||
<sect1>Minimum Requirements
|
||
<p>
|
||
You will need, as a bare minimum, the following:
|
||
|
||
<itemize>
|
||
<item>A Pentium 90 or better (133 recommended) computer
|
||
<item>16 MB RAM (24 recommended)
|
||
<item>The Quake CD-ROM <bf>or</bf> the shareware version (quake106.zip)
|
||
<item>Linux kernel version 2.0.24 or later
|
||
<item>libc 5.2.18 or later
|
||
<item>One of the following:
|
||
<itemize>
|
||
<item>X11R5 or later (for xquake)
|
||
<item>SVGAlib 1.2.0 or later (for squake and glquake)
|
||
</itemize>
|
||
<item>30-80 megabytes free disk space (depends on how you install)
|
||
<item>Access to the root account of the machine you're installing on
|
||
</itemize>
|
||
|
||
<p>Optional:
|
||
<itemize>
|
||
<item>A supported soundcard
|
||
<item>A 3Dfx VooDoo Graphics or VooDoo2 3D graphics accelerator card.
|
||
<item>Mesa 2.6 or later (for glquake)
|
||
</itemize>
|
||
|
||
<sect1>Installing Quake
|
||
<p>
|
||
|
||
<sect2>Download the Necessary Files <label id="quake-files">
|
||
<p>
|
||
All the necessary files for Linux Quake are available at id Software's
|
||
ftp site, <htmlurl url="ftp://ftp.idsoftware.com"
|
||
name="ftp.idsoftware.com">. This site can be quite busy at times,so you
|
||
may want to use one of these mirror sites instead:
|
||
<itemize>
|
||
<item><htmlurl url="ftp://ftp.cdrom.com/pub/idgames/idstuff"
|
||
name="ftp.cdrom.com/pub/idgames/idstuff"> (California, USA)
|
||
<item><htmlurl url="ftp://ftp.gamesnet.net/idsoftware"
|
||
name="ftp.gamesnet.net/idsoftware"> (California, USA)
|
||
<item><htmlurl url="ftp://ftp.linuxquake.com/pub/idgames/idstuff" name="ftp.linuxquake.com/lqstuff">
|
||
(Ohio, USA)
|
||
<item><htmlurl url="ftp://ftp.stomped.com/pub/mirror/idstuff"
|
||
name="ftp.stomped.com/pub/mirror/idstuff"> (Minnesota, USA)
|
||
<item><htmlurl url="ftp://mirrors.telepac.pt/pub/idgames"
|
||
name="mirrors.telepac.pt/pub/idgames"> (Lisbon, Portugal)
|
||
<item><htmlurl url="ftp://download.netvision.net.il/pub/mirrors/idsoftware"
|
||
name="download.netvision.net.il/pub/mirrors/idsoftware"> (Haifa, Israel)
|
||
</itemize>
|
||
|
||
The Quake files mentioned in in this section are:
|
||
<itemize>
|
||
<item>Shareware Quake for Windows distribution<label id="quake-shareware">
|
||
<htmlurl url="ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip">
|
||
<item>X11 Quake binary<label id="quake-x11-binary">
|
||
<htmlurl url="ftp://ftp.idsoftware.com/idstuff/unsup/unix/quake.x11-1.0-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/unsup/unix/quake.x11-1.0-i386-unknown-linux2.0.tar.gz">
|
||
<item>SVGAlib Quake binary<label id="quake-svga-binary">
|
||
<htmlurl url="ftp://ftp.idsoftware.com/idstuff/unsup/squake-1.1-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/unsup/squake-1.1-i386-unknown-linux2.0.tar.gz">
|
||
<item>OpenGL/Mesa Quake binary<label id="quake-gl-binary">
|
||
<htmlurl url="ftp://ftp.idsoftware.com/idstuff/unsup/unix/glquake-0.97-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/unsup/unix/glquake-0.97-i386-unknown-linux2.0.tar.gz">
|
||
<item>Linux QuakeWorld clients (X11, SVGAlib and GL clients are all included in each package)<label id="qwcl">
|
||
<itemize>
|
||
<item>libc5 tar.gz package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-i386-unknown-linux2.0.tar.gz">
|
||
<item>glibc tar.gz package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-i386-unknown-linux2.0.tar.gz">
|
||
<item>libc5 rpm package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-1.i386.rpm"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-1.i386.rpm">
|
||
<item>glibc rpm package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-1.i386.rpm"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-1.i386.rpm">
|
||
</itemize>
|
||
|
||
<item>Linux QuakeWorld server
|
||
<itemize>
|
||
<item>libc5 tar.gz package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-i386-unknown-linux2.0.tar.gz">
|
||
<item>glibc tar.gz package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-i386-unknown-linux2.0.tar.gz">
|
||
<item>libc5 rpm package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-1.i386.rpm"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-1.i386.rpm">
|
||
<item>glibc rpm package <htmlurl url="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-1.i386.rpm"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-1.i386.rpm">
|
||
</itemize>
|
||
|
||
<item>Capture the Flag client package <htmlurl
|
||
url="ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip"
|
||
name="ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip">
|
||
</itemize>
|
||
|
||
Other software mentioned:
|
||
<itemize>
|
||
<item>lha archive utility <htmlurl
|
||
url="ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z"
|
||
name="ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z">.
|
||
<item>SVGAlib graphics library <htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz"
|
||
name="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz">
|
||
<item>SVGAlib libc5 binary<htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz"
|
||
name="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz">
|
||
<item>Glide runtime libraries <htmlurl
|
||
url="http://glide.xxedgexx.com/3DfxRPMS.html"
|
||
name="http://glide.xxedgexx.com/3DfxRPMS.html">
|
||
</itemize>
|
||
|
||
|
||
<sect2>Create the Installation Directory ++
|
||
<p>
|
||
The first thing you'll need to do is decide where you want to install
|
||
Quake. The "standard" location is <tt>/usr/local/games/quake</tt>.
|
||
This is where the <tt>.rpm</tt> packages put Quake. If you choose to
|
||
install somewhere else, please substitute the appropriate path wherever
|
||
<tt>/usr/local/games/quake</tt> is mentioned.
|
||
|
||
<bf>Note to Redhat users:</bf> If you plan on installing QuakeWorld from the
|
||
<tt>rpm</tt> packages, you should probably install Quake in
|
||
<tt>/usr/local/games/quake</tt>, since the <tt>rpm</tt>s install to this
|
||
directory by default.
|
||
|
||
So go ahead and create the directory you'll install Quake in, and cd
|
||
to it. The rest of these instructions will assume that this is your
|
||
current directory.
|
||
|
||
<tscreen><verb>
|
||
mkdir /usr/local/games/quake
|
||
cd /usr/local/games/quake
|
||
</verb></tscreen>
|
||
|
||
<sect2>Installing From a Quake CD
|
||
<p>
|
||
If you're installing from a Quake CD-ROM, read on. Otherwise you have
|
||
permission to skip this section.
|
||
|
||
There are at least two versions of the Quake CD in circulation. I've got
|
||
one from the early days that has Quake version 1.01 on it. Iv'e seen
|
||
other CDs that contain version 1.06. You have 1.01 if you see files on
|
||
your CD called <tt>quake101.1</tt> and <tt>quake101.2</tt>. If instead
|
||
you see a file called <tt>resource.1</tt>, you have a newer CD.
|
||
Mount your Quake CD now and determine which version you've
|
||
got. In the example below, replace <tt>/dev/cdrom</tt> and
|
||
<tt>/mnt/cdrom</tt> with the device file and mount point appropriate for
|
||
your sysem:
|
||
|
||
<tscreen><verb>
|
||
mount -t iso9660 /dev/cdrom /mnt/cdrom
|
||
ls /mnt/cdrom
|
||
</verb></tscreen>
|
||
|
||
<itemize>
|
||
<item>If you have a <tt>resource.1</tt> file on your CD, you can skip
|
||
ahead to the next bullet. For a version 1.01 CD, you'll need to download
|
||
the Quake shareware package to update the <tt>.pak</tt> files after the
|
||
installation. The last bullet in this section explains this.
|
||
|
||
<itemize>
|
||
<item>Concatenate the two resource files from your CD to a single file
|
||
on your hard disk:
|
||
<tscreen><verb>
|
||
cat /mnt/cdrom/quake101.1 /mnt/cdrom/quake101.2 > resource.1
|
||
</verb></tscreen>
|
||
<item>Now continue on to the next paragraph, but when I refer to
|
||
<tt>/mnt/cdrom/resource.1</tt>, you should use
|
||
<tt>/usr/local/games/quake/resource.1</tt> instead.
|
||
</itemize>
|
||
<p>
|
||
|
||
<item>Now it's time to extract the Quake
|
||
files. The <tt>resource.1</tt> file on your CD is really an lha archive
|
||
(lha is a file compression and archiving format like zip or tar). We'll
|
||
use the <tt>lha(1)</tt> command to extract it. If lha is not already
|
||
installed on your system, you can get it from <htmlurl
|
||
url="ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z"
|
||
name="ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z">.
|
||
|
||
<tscreen><verb>
|
||
lha e /mnt/cdrom/resource.1
|
||
</verb></tscreen>
|
||
|
||
When lha is done, your Quake directory will contain a bunch of new files.
|
||
A directory called <tt>id1/</tt> will also be created. The files in this
|
||
directory are the only ones that are important for Linux Quake, so you can
|
||
safely remove everything else. If you're totally new to Quake, or even if
|
||
you're not, you may want to hang on to the <tt>*.txt</tt> files. On
|
||
my system, I throw all the readmes that accumulate into a <tt>doc/</tt>
|
||
directory. So:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
mkdir doc
|
||
mv *.txt doc
|
||
rm -f *
|
||
</verb></tscreen>
|
||
|
||
<item>If you installed from a version 1.01 CD, now you need to overwrite
|
||
your <tt>id1/pak0.pak</tt> file with the one from the Quake shareware
|
||
version. Install the shareware version as described in <ref
|
||
id="quake-shareware-install" name="Shareware Version Install">, only
|
||
install it in some temporary directory so you don't overwrite your real
|
||
Quake files. When you've extracted all the shareware files, copy
|
||
the <tt>id1/pak0.pak</tt> file from the temporary shareware directory
|
||
to your <tt>/usr/local/games/quake/id1</tt> directory. After that, you
|
||
can erase the temporary shareware files.
|
||
|
||
</itemize>
|
||
|
||
That's it for installing from the CD. You can jump ahead to section
|
||
"<ref id="quake-linux-binaries" name="Installing the Linux Binaries">" now.
|
||
|
||
<sect2>DOS/Windows to Linux Install<label id="quake-windows-copy">
|
||
<p>
|
||
If you have Quake installed under Windows or DOS on a different machine, you
|
||
can transfer the files in <tt>quake\id1\</tt> to your Linux system via
|
||
FTP or some other mechanism. Keep in mind that the filenames on your
|
||
Linux system must be in lower case for Quake to find them, so you may have
|
||
to rename them after the transfer. Also note that it may be necessary to
|
||
delete your DOS/Win installation after you do this to remain in compliance
|
||
with the terms of id's software license. It's not my fault if you do
|
||
something illegal.
|
||
|
||
If your DOS/Win and Linux systems are on the same machine, you have two
|
||
options: copy the files from your DOS/Windows partition to your Linux
|
||
partition, or link to the necessary files from Linux. Both options will
|
||
work equally well. You just save around 50 megabytes of disk space when
|
||
you link instead of copy.
|
||
|
||
Whatever you choose to do, start by cd'ing to your Quake directory and
|
||
creating a new directory below it called <tt>id1</tt>:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
mkdir id1
|
||
</verb></tscreen>
|
||
|
||
<itemize>
|
||
<item>If you want to copy the files from your DOS/Windows partition, do
|
||
something like this:
|
||
|
||
<tscreen><verb>
|
||
cp /win95/games/quake/id1/*.pak id1
|
||
</verb></tscreen>
|
||
|
||
<item>To create links to your DOS/Windows Quake files instead, do this:
|
||
|
||
<tscreen><verb>
|
||
cd id1
|
||
ln -s /win95/games/quake/id1/*.pak .
|
||
</verb></tscreen>
|
||
</itemize>
|
||
|
||
Replace <tt>/win95/games/quake</tt> with the correct path to
|
||
your DOS/Windows partition and Quake installation directory.
|
||
|
||
The Quake data files are now installed. Move ahead to "<ref
|
||
id="quake-linux-binaries" name="Installing the Linux Binaries">".
|
||
|
||
<sect2>Shareware Version Install<label id="quake-shareware-install">
|
||
<p>
|
||
The single-episode shareware version of Quake is freely available for
|
||
download from id's ftp site. It has all the features of the full version,
|
||
with a couple of major limitations: You can't play QuakeWorld with it,
|
||
and you can't play custom or modified levels.
|
||
|
||
Installing the shareware version of Quake isn't really much different than
|
||
installing from the CD.
|
||
|
||
See section <ref id="quake-files" name="Download the Necessary Files"> for
|
||
the location of the shareware distribution.
|
||
Download it and extract it to your Quake directory:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
unzip -L /wherever/you/put/it/quake106.zip
|
||
</verb></tscreen>
|
||
|
||
Now you've got (among others) a file called <tt>resource.1</tt> that's
|
||
really an lha archive (lha is a file compression and archiving format like
|
||
zip or tar). We'll use the <bf>lha(1)</bf> command to extract it. If lha
|
||
is not already installed on your system, you can get it from <htmlurl
|
||
url="ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z"
|
||
name="ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z">.
|
||
|
||
<tscreen><verb>
|
||
lha e resource.1
|
||
</verb></tscreen>
|
||
|
||
When lha is done, your Quake directory will contain a bunch of new files.
|
||
A directory called <tt>id1/</tt> will also be created. The files in this
|
||
directory are the only ones that are important for Linux Quake, so you can
|
||
safely remove everything else. If you're totally new to Quake, or even if
|
||
you're not, you may want to hang on to the <tt>*.txt</tt> files. On
|
||
my system, I throw all the readmes that accumulate into a <tt>doc/</tt>
|
||
subdirectory. So:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
mkdir doc
|
||
mv *.txt doc
|
||
rm -f *
|
||
</verb></tscreen>
|
||
|
||
Now you're ready to install the Linux binaries.
|
||
|
||
<sect1>Adding the Linux Binaries<label id="quake-linux-binaries">
|
||
<p>
|
||
Decide which of the three flavors of Quake you'd like to install:
|
||
<itemize>
|
||
<item>X11 Quake allows you to run
|
||
Quake in a window on your X desktop. It's the least exciting client, but
|
||
it's a great, safe way to test your installation.
|
||
<item>Squake is the SVGAlib Quake client. It runs full screen on your
|
||
console.
|
||
<item>GLQuake is the OpenGL Quake client, the One True Way to play Quake
|
||
if you have a 3Dfx accellerator card.
|
||
</itemize>
|
||
|
||
Download the packages you want (see section <ref id="quake-files"
|
||
name="Download the Necessary Files">) and extract them to your Quake
|
||
directory like so:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
tar -xzf XXXX-i386-unknown-linux2.0.tar.gz
|
||
</verb></tscreen>
|
||
|
||
<sect1>Setting Permissions
|
||
<p>
|
||
Quake and QuakeWorld servers can be run by any user. The Quake clients,
|
||
however, need access to your sound and graphics cards, which
|
||
requires privileges that normal users don't have. One (bad) way to deal
|
||
with this is to always run Quake as root. Responsible system
|
||
administrators will cringe at this filthy suggestion. Making the Quake
|
||
binaries setuid root is a more acceptable solution. Quake can then be run
|
||
by regular users and still have the privileges it needs to access the
|
||
sound and graphics devices. Setuid presents a security risk, though. A
|
||
clever user could exploit a bug or security hole in Quake to gain root
|
||
access to your system. Of course, if you don't run a multi-user system,
|
||
this is may not be a big concern.
|
||
|
||
<tt>squake</tt> is the only Quake client that <em>must</em> be run with root
|
||
permissions. With a little work, you can run the X and GL clients without
|
||
setuid. <ref id="no-setuid" name="Running X and GL games without setuid">
|
||
in the Tips and Tricks section tells how to make this work.
|
||
|
||
If you plan to run <tt>squake</tt>, make it setuid root with the following
|
||
commands:
|
||
<tscreen><verb>
|
||
chown root squake
|
||
chmod 4755 squake
|
||
</verb></tscreen>
|
||
|
||
If you've decided it's ok to run <tt>quake.x11</tt> and <tt>glquake</tt>
|
||
setuid root on your system, you can repeat the above commands for these
|
||
binaries as well.
|
||
|
||
|
||
<sect1>X11 Quake
|
||
<p>
|
||
If you installed the X11 client, now's a good time to try it out. You
|
||
may need to do further configuration for <tt>glquake</tt> and
|
||
<tt>squake</tt>, but at this point <tt>quake.x11</tt> should be ready to
|
||
go.
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
./quake.x11
|
||
</verb></tscreen>
|
||
|
||
If all is well, a small Quake window should appear with the first demo
|
||
running in it. You should hear sound effects and possibly music, if your
|
||
CD is in the drive. If any of this fails to occur, please see the <ref
|
||
id="troubleshooting" name="Troubleshooting"> section for help.
|
||
|
||
<sect1>SVGAlib Quake <label id="quake-svgalib">
|
||
<p>
|
||
Both squake and glquake require SVGAlib to run (glquake uses SVGAlib to
|
||
process keyboard and mouse input, in case you're wondering). SVGAlib
|
||
comes with most modern Linux distributions, and <bf>must</bf> be properly
|
||
configured before squake or glquake will run correctly.
|
||
|
||
<tt>libvga.config</tt> is SVGAlib's configuration file. On
|
||
most systems you'll find it in either <tt>/etc</tt> or <tt>/etc/vga</tt>.
|
||
Make sure the mouse, monitor, and video card settings in this file are
|
||
correct for your system. See the SVGAlib documentation for more details.
|
||
|
||
If you don't already have SVGAlib on your system, download it from the
|
||
location mentioned in <ref id="quake-files" name="the files section">
|
||
above.
|
||
|
||
If you have a RedHat 5.x or other glibc-based Linux distribution, see
|
||
<ref id="glibc" name="Glibc, RedHat 5.x, Debian 2 considerations"> in the
|
||
Troubleshooting/FAQs section for important information about compiling
|
||
libraries for use with Quake. A precompiled libc5 SVGAlib binary is available
|
||
at <htmlurl url="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz"
|
||
name="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz">
|
||
for those who don't want to deal with the hassle of compiling for libc5.
|
||
|
||
You should run squake from a virtual console. It won't run from X
|
||
unless you're root when you start it. And running a game as the root user
|
||
is something that should be avoided. So if you're in X, do a CTRL+ALT+F1,
|
||
login and then:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
./squake
|
||
</verb></tscreen>
|
||
|
||
<ref id="running-from-x" name="Running SVGA and GL games from X"> in the
|
||
Tips & Tricks section below explains how to launch SVGA and GL Quake from
|
||
X without manually switching to a virtual console.
|
||
|
||
<sect1>GLQuake <label id="glquake">
|
||
<p>
|
||
Hardware-accelerated OpenGL Quake is Quake the way God intended it to be.
|
||
There is no substitute, and once you've experienced it there's no going
|
||
back.
|
||
|
||
To run <tt>glquake</tt>, you need a 3D card with the Voodoo, Voodoo2 or Voodoo Rush
|
||
graphics chipset on it. There are specific issues to be dealt with if
|
||
you have a Voodoo Rush card, and I won't go into them now because frankly,
|
||
I wouldn't know what I was talking about. A future version of this HOWTO
|
||
will cover Rush issues (If somebody wants to write about Voodoo Rush
|
||
issues, I'll gladly include it here).
|
||
|
||
The SVGAlib, Glide, and Mesa libraries must all be installed and
|
||
configured properly on your system for <tt>glquake</tt> to work. The
|
||
following sections will very briefly cover what you need to do to get
|
||
them going.
|
||
|
||
Bernd Kreimeier's (<htmlurl url="mailto:bk@gamers.org"
|
||
name="bk@gamers.org">) Linux 3Dfx HOWTO (<htmlurl
|
||
url="http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html"
|
||
name="http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html">) is good
|
||
source for further information.
|
||
|
||
The <htmlurl url="news://news.3dfx.com/3dfx.glide.linux"
|
||
name="3dfx.glide.linux"> newsgroup on the 3dfx news server
|
||
(news.3dfx.com) is another good source of information about the
|
||
intersection of Linux, glide, Mesa and Quake.
|
||
|
||
<sect2>SVGAlib
|
||
<p>
|
||
glquake uses SVGAlib to get input from the mouse and keyboard, so you'll
|
||
need to configure it as outlined in section <ref id="quake-svgalib"
|
||
name="SVGAlib Quake">.
|
||
|
||
<sect2>Glide ++
|
||
<p>
|
||
Glide is a library that provides an API for programming 3Dfx based cards.
|
||
If you want the Mesa graphics library to use your 3Dfx card, you've gotta
|
||
have it.
|
||
|
||
Do <bf>NOT</bf> use the Linux Glide library distributed at 3Dfx's web
|
||
site. It's more than a year out of date. You're bound to have problems
|
||
if you try to use it.
|
||
The latest version of glide can always be found at <htmlurl
|
||
url="http://glide.xxedgexx.com/3DfxRPMS.html"
|
||
name="http://glide.xxedgexx.com/3DfxRPMS.html">. Select the package(s)
|
||
appropriate for your system, and install according to the instructions on
|
||
the web page.
|
||
|
||
Note that unless you download the 3Dfx device driver package in addition
|
||
to the Glide library, you will only be able to run Glide applications
|
||
(like GLQuake) as root. Install the <tt>/dev/3dfx</tt> module and you
|
||
can play GLQuake as a regular user. PentiumPro/Pentium II users have an
|
||
additional incentive for downloading this driver: it can dramatically
|
||
increase your framerate. The driver enables support for MTRRs, a
|
||
memory-caching feature of these CPUs. See <htmlurl
|
||
url="http://glide.xxedgexx.com/MTRR.html" name="http://glide.xxedgexx.com/MTRR.html">
|
||
for a better explanation of this feature.
|
||
|
||
Once you have glide installed, try out the test program that comes with
|
||
it. Remember this program: it's a good way to reset your display if you
|
||
ever have a glide application (like GLQuake) crash and leave your screen
|
||
switched off. <bf>NOTE: run this test from a VC, <em>not</em> X!</bf> It's
|
||
possible for the test app to lose mouse and keyboard focus in X, and then
|
||
you'll have no way of shutting it down.
|
||
|
||
<tscreen><verb>
|
||
|
||
/usr/local/glide/bin/test3Dfx
|
||
</verb></tscreen>
|
||
|
||
Your screen should turn blue and prompt you to hit any key. After you
|
||
press a key you should be returned to the prompt.
|
||
<htmlurl url="news://news.3dfx.com/3dfx.glide.linux"
|
||
name="3dfx.glide.linux"> on 3dfx's news server (news.3dfx.com) is a great
|
||
source of information for Linux glide-specific problems.
|
||
|
||
<sect2>Mesa
|
||
<p>
|
||
Once glide's installed, you need to install Mesa, a free OpenGL
|
||
implementation by Brian Paul <htmlurl url="mailto:brianp@elastic.avid.com"
|
||
name="(brianp@elastic.avid.com)">. Luckily, you won't have to
|
||
look far, because Mesa 2.6 is included with the QLQuake & QuakeWorld
|
||
binaries. All you have to do is move it to the right place:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
cp libMesaGL.so.2.6 /usr/local/lib
|
||
ldconfig
|
||
</verb></tscreen>
|
||
|
||
The RedHat distribution comes with a (IMO) broken <tt>ld.so</tt>
|
||
configuration. <tt>/usr/local/lib</tt> is not part of <tt>ld.so</tt>'s
|
||
search path by default, so anything you install there won't get used.
|
||
You can remedy the situation by adding the line <tt>/usr/local/lib</tt>
|
||
to your <tt>/etc/ld.so.conf</tt> file, or including <tt>/usr/local/lib</tt>
|
||
in your <tt>$LD_LIBRARY_PATH</tt>. Alternatively, you could install
|
||
all new libraries someplace like <tt>/lib</tt>, but this approach seriously
|
||
offends my tidy nature.
|
||
|
||
If you want to upgrade Mesa to a more recent version (Mesa 3.0 is
|
||
the most recent version as of this writing),
|
||
you can download the latest from <htmlurl
|
||
url="ftp://iris.ssec.wisc.edu/pub/Mesa"
|
||
name="ftp://iris.ssec.wisc.edu/pub/Mesa">
|
||
If you have a RedHat 5.x or other glibc-based Linux distribution, see
|
||
<ref id="glibc" name="Glibc, RedHat 5.x, Debian 2 considerations"> in the
|
||
Troubleshooting/FAQs section for important information about compiling
|
||
libraries for Quake.
|
||
|
||
After you've built it according to the instructions, you will have to do
|
||
two things:
|
||
|
||
<itemize>
|
||
<item>Remove your old Mesa installation. If you previously installed a
|
||
<tt>libMesaGL.so.2.6</tt> as described above, you must remove it or
|
||
Quake may not use the new version.
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/lib/
|
||
rm -f libMesaGL.so.2*
|
||
</verb></tscreen>
|
||
|
||
<item>If the new Mesa has a major version number that's greater than 2,
|
||
you need to create a link to it with the name <tt>libMesaGL.so.2</tt>:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/lib/
|
||
ln -s /wherever/you/installed/it/libMesaGL.so.3.0 libMesaGL.so.2
|
||
ldconfig
|
||
</verb></tscreen>
|
||
|
||
</itemize>
|
||
|
||
Now switch to a VC (CTRL+ALT+F1) and start glquake.
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
./glquake
|
||
</verb></tscreen>
|
||
|
||
|
||
<sect1>Linux-Specific Command Line Options
|
||
<p>
|
||
This section covers command line options that are specific to the
|
||
Linux versions of Quake. There are plenty of other Quake options, but
|
||
they're beyond the scope of this HOWTO. Check out some of the sites
|
||
listed in section <ref id="general-quake-sources"
|
||
name="General Quake Information"> for this kind of information.
|
||
|
||
<descrip>
|
||
<tag>-mem <em>num</em></tag>
|
||
Specify memory in megabytes to allocate (default is 8MB, which should be
|
||
fine for most needs).
|
||
|
||
<tag>-nostdout</tag>
|
||
Don't do any output to stdout. Use this if you don't want all the console
|
||
output dumped to your terminal.
|
||
|
||
<tag>-mdev <em>device</em></tag>
|
||
Mouse device, default is <tt>/dev/mouse</tt>
|
||
|
||
<tag>-mrate <em>speed</em></tag>
|
||
Mouse baud rate, default is 1200
|
||
|
||
<tag>-cddev <em>device</em></tag>
|
||
CD device, default is <tt>/dev/cdrom</tt>
|
||
|
||
<tag>-mode <em>num</em></tag>
|
||
Use indicated video mode (squake only)
|
||
|
||
<tag>-nokdb</tag>
|
||
Don't initialize keyboard
|
||
|
||
<tag>-sndbits <em>8 or 16</em></tag>
|
||
Set sound bit sample size. Default is 16 if supported.
|
||
|
||
<tag>-sndspeed <em>speed</em></tag>
|
||
Set sound speed. Usual values are 8000, 11025, 22051 and 44100.
|
||
Default is 11025.
|
||
|
||
<tag>-sndmono</tag>
|
||
Set mono sound
|
||
|
||
<tag>-sndstereo</tag>
|
||
Set stereo sound (default if supported)
|
||
</descrip>
|
||
|
||
<sect1>QuakeWorld
|
||
<p>
|
||
<htmlurl url="http://www.quakeworld.net/"
|
||
name="http://www.quakeworld.net"> says it better than I could:
|
||
|
||
<quote>QuakeWorld is an Internet multi-player specific version of Quake.
|
||
While the original version of Quake can be played over the Internet,
|
||
modem users - the majority of players, had less than
|
||
satisfactory play. Symptoms like excessive lag - actions actually
|
||
happening much later than you did them; packet loss - the game would
|
||
freeze and resume several seconds later; and various other difficulties
|
||
plagued users. After realizing how many people played Quake on the
|
||
internet, and how many wanted to, but couldn't due to the play being
|
||
unsatisfactory, John Carmack of id Software decided to create a version of
|
||
Quake that was optimized for the average modem Internet player. This
|
||
Internet specific version does only 1 thing, play deathmatch games over a
|
||
TCP/IP network such as the Internet. It has no support for solo play, and
|
||
you can't do anything with out connecting to a special server.
|
||
</quote>
|
||
|
||
You need the full, registered or retail version of Quake to play
|
||
QuakeWorld, and a Linux QuakeWorld client. QuakeWorld clients come in
|
||
the same flavors (X11, SVGAlib and Mesa) as normal Quake, but they're
|
||
all bundled together in one package, so you only need to download one
|
||
file. However, you've got four packages to choose from:
|
||
<itemize>
|
||
<item>a libc5 tar.gz package
|
||
<item>a glibc tar.gz package
|
||
<item>a libc5 rpm package
|
||
<item>a glibc rpm package
|
||
</itemize>
|
||
|
||
Install just one of these packages. Each contains the same files, they're
|
||
just linked against different libraries.
|
||
Redhat 5.x users should choose the the glibc rpm package. Users of glibc
|
||
based systems without rpm support should use the glibc tar package. The
|
||
libc5 rpm is for Redhat distributions prior to 5.0 and other distributions
|
||
that use the rpm package format. The libc5 tar.gz package is for
|
||
Slackware and everyone else.
|
||
|
||
See the <ref id="quake-files" name="Download the Necessary Files"> section
|
||
for the location of the Linux Quakeworld files.
|
||
|
||
The prerequisites and configuration for these binaries are the same as for
|
||
Quake, so refer to the previous sections for help on setting up SVGAlib or
|
||
glide/Mesa.
|
||
|
||
<sect2>Installing the RPM packages
|
||
<p>
|
||
Installation of the rpm packages should be as simple as:
|
||
|
||
<tscreen><verb>
|
||
su root
|
||
rpm -Uvh qwcl-xxxxx.i386.rpm
|
||
</verb></tscreen>
|
||
|
||
<tt>qwcl</tt>, <tt>glqwcl</tt> and <tt>glqwcl.glx</tt> will be installed
|
||
setuid root so that they can access the graphics devices on your system.
|
||
The X and GL clients can be run without root privileges if you follow the
|
||
instructions in <ref id="no-setuid" name="Running X and GL games without
|
||
setuid"> below.
|
||
|
||
Rpm may complain that it can't find <tt>libglide2x.so</tt>. The
|
||
Glide library is only necessary if you have a 3Dfx card and want
|
||
to run QuakeWorld in GL mode (<tt>glqwcl</tt>). If you don't
|
||
plan to use the GL mode, you can override the glide dependency
|
||
with the <tt>--nodeps</tt> option:
|
||
|
||
<tscreen><verb>
|
||
su root
|
||
rpm -Uvh qwcl-xxxxx.i386.rpm --nodeps
|
||
</verb></tscreen>
|
||
|
||
<sect2>Installing the tar.gz packages
|
||
<p>
|
||
To install, just untar the file in your Quake directory. Do it as root
|
||
so the proper file permissions get set:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
su root
|
||
tar -xzf qwcl2.21-i386-unknown-linux2.0.tar.gz
|
||
</verb></tscreen>
|
||
|
||
<tt>qwcl</tt>, <tt>glqwcl</tt> and <tt>glqwcl.glx</tt> will be installed
|
||
setuid root so that they can access the graphics devices on your system.
|
||
The GL and X clients can be run without root privileges if you follow the
|
||
instructions in <ref id="no-setuid" name="Running X and GL games without
|
||
setuid"> below.
|
||
|
||
<sect2>Running QuakeWorld
|
||
<p>
|
||
Once QuakeWorld is installed alongside your Quake files, you can start it
|
||
up like:
|
||
<tscreen><verb>
|
||
./qwcl +connect some.server.address
|
||
</verb></tscreen>
|
||
|
||
See section <ref id="related-software" name="Related Software"> for
|
||
info about some nifty front ends for QuakeWorld that make finding servers
|
||
easy.
|
||
|
||
<itemize>
|
||
<item><bf>lib3dfxgl.so</bf> <label id="qw-3dfxgl">
|
||
<p>
|
||
With Quakeworld version 2.30, an alternative to the Mesa library is
|
||
available. <tt>lib3dfxgl.so</tt> is a mini-GL driver optimized
|
||
for Quake that provides slightly better framerates than Mesa.
|
||
This is a port of a driver that 3Dfx developed for Quake
|
||
under Windows, and apparently not all of its features work
|
||
properly yet. So hopefully we can expect its performance to
|
||
improve with time.
|
||
|
||
Like Mesa, <tt>lib3dfxgl.so</tt> requires Glide in order to
|
||
access your 3Dfx card. The Quakeworld packages come with a script,
|
||
<tt>glqwcl.3dfxgl</tt> for running Quakeworld with this
|
||
library on glibc systems. The next paragraph explains how to run
|
||
Quakeworld with <tt>lib3dfxgl.so</tt> on a libc5 system. On a
|
||
glibc system in order for this script to work,the <tt>glqwcl</tt>
|
||
executable <bf>must not be setuid</bf>, nor should you run it as
|
||
root. <tt>glqwcl</tt> will silently load Mesa rather than
|
||
<tt>lib3dfxgl.so</tt> if it runs with root permissions. This
|
||
non-root requirement implies that you have the <tt>/dev/3dfx</tt>
|
||
driver installed.
|
||
|
||
On a libc5 system, you need to create a symbolic link to <tt>lib3dfxgl.so</tt>
|
||
called <tt>libMesaGL.so.2</tt> like so:
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
ln -sf lib3dfxgl.so libMesaGL.so.2
|
||
</verb></tscreen>
|
||
Then start Quakeworld from a script that tells
|
||
<tt>$LD_LIBRARY_PATH</tt> to look in the current directory:
|
||
<code>
|
||
#!/bin/sh
|
||
|
||
LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./glqwcl $*
|
||
</code>
|
||
|
||
You can tell which driver is being loaded by looking for output
|
||
like the following in your console as Quakeworld starts:
|
||
|
||
<tscreen><verb>
|
||
GL_VENDOR: 3Dfx Interactive Inc.
|
||
GL_RENDERER: 3Dfx Interactive Voodoo^2(tm)
|
||
GL_VERSION: 1.1
|
||
GL_EXTENSIONS: 3DFX_set_global_palette WGL_EXT_swap_control GL_EXT_paletted_texture GL_EXT_shared_texture_palette GL_SGIS_multitexture
|
||
</verb></tscreen>
|
||
|
||
If <tt>GL_VENDOR</tt> says <tt>Brian Paul</tt> rather than
|
||
<tt>3Dfx Interactive Inc.</tt>, that means Mesa is still being
|
||
used rather than the miniport dirver.
|
||
|
||
<item><bf>glqwcl.glx</bf> ++
|
||
<p>
|
||
|
||
<tt>glqwcl.glx</tt> is linked against standard OpenGL libraries
|
||
instead of Mesa. This allows Quakeworld to run on other 3D
|
||
hardware that is supported by other OpenGL implementations. At
|
||
this time, I dont' know of any OpenGL implementations that
|
||
support hardware other than 3Dfx, but this renderer ensures that
|
||
when they appear, we'll be able to play Quakeworld with them.
|
||
|
||
Use of the GLX interface also removes GL Quake II's dependency
|
||
on SVGAlib for keyboard and mouse input.
|
||
|
||
This is a GLX application, and as such, must be run from X.
|
||
|
||
You can use this client with Mesa/3Dfx if you install Mesa and
|
||
Glide as explained in the previous section, then set the
|
||
<tt>$MESA_GLX_FX</tt> environment variable to "fullscreen" before
|
||
you run <tt>quake2</tt>:
|
||
|
||
<tscreen><verb>
|
||
export MESA_GLX_FX=fullscreen
|
||
./glqwcl.glx +_windowed_mouse 1
|
||
</verb></tscreen>
|
||
|
||
Why the <tt>+_windowed_mouse 1</tt> option? Remember that
|
||
this is an X application which happens to use your 3Dfx card.
|
||
Even though the display takes up your entire screen, Quakeworld is
|
||
stil running in a window. This means that if you're not
|
||
<em>very</em> careful, you could move the mouse pointer outside
|
||
the Quakeworld window, and Quakeworld will suddenly stop responding
|
||
to mouse and keyboard input. <tt>+_windowed_mouse 1</tt>
|
||
avoids this problem by telling <tt>glqwcl.glx</tt> to grab the mouse
|
||
and not let it move outside its window.
|
||
|
||
</itemize>
|
||
|
||
<sect1>Servers
|
||
<p>
|
||
Most, if not all, existing information about
|
||
running a DOS/Windows QW server is equally applicable to running a Linux
|
||
server.
|
||
|
||
To start a QuakeWorld server, simply do:
|
||
|
||
<tscreen><verb>
|
||
./qwsv
|
||
</verb></tscreen>
|
||
|
||
The official QuakeWorld server manual lives at <htmlurl
|
||
url="http://qwcentral.stomped.com" name="http://qwcentral.stomped.com">.
|
||
|
||
<sect1>Mods & Addons
|
||
<p>
|
||
One of the very cool things about the Quake games is that the authors
|
||
made them easily extensible. End users can create their own levels, add
|
||
new weapons or monsters, or even completely change the rules of the game.
|
||
|
||
<sect2>Capture the Flag
|
||
<p>
|
||
This is my favorite variation of both Quake and Quake 2. Instead of just
|
||
running around and killing everyone you meet (which definitely has its
|
||
merits, don't get me wrong!), CTF is team-based and more strategic.
|
||
Dave 'Zoid' Kirsch, also the maintainer of the Linux Quake ports, created
|
||
this mod.
|
||
|
||
Everything you need to know about CTF can be found at <htmlurl
|
||
url="http://captured.com/threewave/"
|
||
name="http://captured.com/threewave/"> You need <htmlurl
|
||
url="ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip"
|
||
name="ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip"> to play.
|
||
To install the client piece of CTF, simply create a directory called
|
||
<tt>ctf</tt> in your Quake directory and unzip the <tt>3wctfc.zip</tt>
|
||
file there. The accompanying <tt>readme.txt</tt> file is chock full of
|
||
good information.
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
mkdir ctf
|
||
cd ctf
|
||
unzip -L /wherever/you/put/it/3wctfc.zip
|
||
</verb></tscreen>
|
||
|
||
For information on running a CTF server, see the web pages mentioned
|
||
above.
|
||
|
||
<sect2>Mission Packs
|
||
<p>
|
||
Activision released two add-on packs of extra levels for Quake,
|
||
<bf>Scourge of Armagon</bf> and <bf>Dissolution of Eternity</bf>.
|
||
|
||
<itemize>
|
||
<item><bf>Mission Pack 1: The Scourge of Armagon</bf>
|
||
Assuming your CD is mounted on <tt>/mnt/cdrom</tt> and Quake is installed
|
||
in <tt>/usr/local/games/quake</tt>:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
mkdir hipnotic
|
||
cp /mnt/cdrom/hipnotic/pak0.pak hipnotic
|
||
cp /mnt/cdrom/hipnotic/config.cfg hipnotic
|
||
</verb></tscreen>
|
||
|
||
Play the mission pack like this:
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
./quake.x11 -game hipnotic
|
||
</verb></tscreen>
|
||
|
||
<item><bf>Mission Pack 2: Dissolution of Eternity</bf> Installing
|
||
the second mission pack is pretty much the same procedure as
|
||
installing the first. Follow the directions for Mission Pack 1,
|
||
but replace the word <em>hipnotic</em> with the word
|
||
<em>rogue</em>, and skip the <tt>config.cfg</tt> step, as this
|
||
file isn't included on the Mission Pack 2 CD.
|
||
|
||
</itemize>
|
||
|
||
<sect2>Quake Tools
|
||
<p>
|
||
Anybody care to contribute some info about qcc, bsp and all that?
|
||
|
||
|
||
<!---------------------------------------------------------------------------->
|
||
<!---------------------------------------------------------------------------->
|
||
<sect>Quake II
|
||
<p>
|
||
To install Quake II on your Linux system, you'll need some flavor of the
|
||
official Quake II distribution from id. This will be either the retail
|
||
Windows CD-ROM that you bought at your favorite software store, or the
|
||
demo version you downloaded from the net. See <ref id="quake2-shareware"
|
||
name="Download the Necessary Files"> for details on acquiring the demo
|
||
version. Alternatively,
|
||
if you've already got Quake installed on a Windows machine, you can use
|
||
the relevant files from that installation.
|
||
|
||
<sect1>Prerequisites
|
||
<p>
|
||
You will need, as a bare minimum, the following:
|
||
|
||
<itemize>
|
||
<item>A Pentium 90 or better (133 recommended) computer
|
||
<item>16 MB RAM (24 recommended)
|
||
<item>The Quake 2 CD-ROM <bf>or</bf> the demo version (q2-314-demo-x86.exe)
|
||
<item>Linux kernel version 2.0.24 or later
|
||
<item>libc 5.2.18 or later
|
||
<item>One of the following:
|
||
<itemize>
|
||
<item>X11 server that supports the MITSM shared memory extension. 8 and
|
||
16 bit displays are supported. (for X renderer)
|
||
<item>SVGAlib 1.2.10 or later (for SVGA and GL renderer)
|
||
</itemize>
|
||
<item>25-400 megabytes free disk space (depending on how you install)
|
||
<item>Access to the root account of the machine you're installing on
|
||
</itemize>
|
||
|
||
<p>Optional:
|
||
<itemize>
|
||
<item>A supported soundcard
|
||
<item>A 3Dfx Voodoo Graphics or Voodoo2 or Voodoo Rush 3D graphics
|
||
accelerator card.
|
||
<item>3Dfx glide libraries installed (for GL renderer)
|
||
<item>Mesa 2.6 or later (for GL renderer)
|
||
</itemize>
|
||
|
||
<sect1>Installing Quake II
|
||
<p>
|
||
|
||
<sect2>Download the Necessary Files<label id="quake2-files">++
|
||
<p>
|
||
All the necessary files for Linux Quake II are available at id Software's
|
||
ftp site, <htmlurl url="ftp://ftp.idsoftware.com"
|
||
name="ftp.idsoftware.com">. This site can be quite busy at times,so you
|
||
may want to use one of these mirror sites instead:
|
||
<itemize>
|
||
<item><htmlurl url="ftp://ftp.cdrom.com/pub/idgames/idstuff"
|
||
name="ftp.cdrom.com/pub/idgames/idstuff"> (California, USA)
|
||
<item><htmlurl url="ftp://ftp.gamesnet.net/idsoftware"
|
||
name="ftp.gamesnet.net/idsoftware"> (California, USA)
|
||
<item><htmlurl url="ftp://ftp.stomped.com/pub/mirror/idstuff"
|
||
name="ftp.stomped.com/pub/mirror/idstuff"> (Minnesota, USA)
|
||
<item><htmlurl url="ftp://mirrors.telepac.pt/pub/idgames"
|
||
name="mirrors.telepac.pt/pub/idgames"> (Lisbon, Portugal)
|
||
<item><htmlurl url="ftp://download.netvision.net.il/pub/mirrors/idsoftware"
|
||
name="download.netvision.net.il/pub/mirrors/idsoftware"> (Haifa, Israel)
|
||
</itemize>
|
||
|
||
The Quake II files mentioned in in this section are:
|
||
<itemize>
|
||
<item>Quake II Linux Binaries
|
||
<itemize>
|
||
<item>libc5 tar.gz package <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-i386-unknown-linux2.0.tar.gz">
|
||
<item>glibc tar.gz package <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-glibc-i386-unknown-linux2.0.tar.gz"
|
||
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-glibc-i386-unknown-linux2.0.tar.gz">
|
||
<item>libc5 rpm package <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-6.i386.rpm"
|
||
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-6.i386.rpm">
|
||
<item>glibc rpm package <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-glibc-6.i386.rpm"
|
||
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.20-glibc-6.i386.rpm">
|
||
</itemize>
|
||
<item>Quake II Demo Version for Windows<label id="quake2-shareware">
|
||
<htmlurl url="ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe">
|
||
<item>Quake II Game Source <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/source/q2src320.shar.Z"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake2/source/q2src320.shar.Z">
|
||
<item>Xatrix (Mission Pack 1) Game Source <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/source/xatrixsrc320.shar.Z"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake2/source/xatrixsrc320.shar.Z">
|
||
<item>Rogue (Mission Pack 2) Game Source <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/source/roguesrc320.shar.Z"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake2/source/roguesrc320.shar.Z">
|
||
<item>Quake II Capture the Flag <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/ctf/q2ctf102.zip"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake2/ctf/q2ctf102.zip">
|
||
<item>Quake II Capture the Flag Game Source <htmlurl
|
||
url="ftp://ftp.idsoftware.com/idstuff/quake2/ctf/source/q2ctf-1.02-source.shar.Z"
|
||
name="ftp://ftp.idsoftware.com/idstuff/quake2/ctf/source/q2ctf-1.02-source.shar.Z">
|
||
</itemize>
|
||
|
||
Other software mentioned:
|
||
<itemize>
|
||
<item>SVGAlib graphics library <htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz"
|
||
name="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz">
|
||
<item>SVGAlib libc5 binary<htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz"
|
||
name="http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz">
|
||
<item>Glide runtime libraries <htmlurl
|
||
url="http://glide.xxedgexx.com/3DfxRPMS.html"
|
||
name="http://glide.xxedgexx.com/3DfxRPMS.html">
|
||
<item>Mesa 3D graphics library <htmlurl
|
||
url="http://www.ssec.wisc.edu/~brianp/Mesa.html"
|
||
name="http://www.ssec.wisc.edu/~brianp/Mesa.html">
|
||
<item>unzip archive utility <htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/utils/compress/unzip-5.31.tar.gz"
|
||
name="http://sunsite.unc.edu/pub/Linux/utils/compress/unzip-5.31.tar.gz">
|
||
</itemize>
|
||
|
||
<sect2>Create the Installation Directory ++
|
||
<p>
|
||
The first thing you'll need to do is decide where you want to install
|
||
Quake II. The "standard" location is <tt>/usr/local/games/quake2</tt>.
|
||
This is where the <tt>.rpm</tt> packages put Quake II. If you choose
|
||
to install somewhere else, please substitute the appropriate path wherever
|
||
<tt>/usr/local/games/quake2</tt> is mentioned.
|
||
|
||
So go ahead and create the directory you'll install Quake II in, and cd
|
||
to it. The rest of these instructions will assume that this is your
|
||
current directory.
|
||
|
||
<tscreen><verb>
|
||
mkdir /usr/local/games/quake2
|
||
cd /usr/local/games/quake2
|
||
</verb></tscreen>
|
||
|
||
<sect2>Installing from CD
|
||
<p>
|
||
Place your Quake II CD in your CD ROM drive, and mount it:
|
||
|
||
<tscreen><verb>
|
||
mount -t iso9660 /dev/cdrom /mnt/cdrom
|
||
</verb></tscreen>
|
||
|
||
If your CDROM is typically mounted elsewhere, substitute its location
|
||
for <tt>/mnt/cdrom</tt>. If you're not sure where your CDROM is
|
||
mounted, please see the documentation for your particular
|
||
distribution.
|
||
|
||
<itemize>
|
||
<item><bf>Full Install</bf>
|
||
The simplest install method is a "full" install, which involves
|
||
copying the entire contents of your CD to your hard drive. This
|
||
requires about 350 MB, and is accomplished by issuing the following
|
||
commands:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
cp -r /mnt/cdrom/Install/Data/* .
|
||
</verb></tscreen>
|
||
|
||
There'll be a bunch of unnecessary Windows files hanging around that you
|
||
can safely delete:
|
||
|
||
<tscreen><verb>
|
||
rm -f /usr/local/quake2/*.dll
|
||
rm -f /usr/local/quake2/quake2.exe
|
||
rm -f /usr/local/quake2/baseq2/gamex386.dll
|
||
</verb></tscreen>
|
||
|
||
<item><bf>Medium Install</bf>
|
||
If 450 MB is too much space for you to devote to Quake II, you can skip
|
||
installing the movie cutscenes and link to them on the CD-ROM instead.
|
||
This will reduce the space requirements to about 200 MB:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
mkdir baseq2
|
||
cp /mnt/cdrom/Install/Data/baseq2/pak0.pak baseq2
|
||
cp -r /mnt/cdrom/Install/Data/baseq2/players baseq2
|
||
ln -s /mnt/cdrom/Install/Data/baseq2/video baseq2/video
|
||
</verb></tscreen>
|
||
|
||
Note that this doesn't mean you have to mount your Quake II CD
|
||
every time to want to play Quake II. If the game can't load the
|
||
videos, it just won't display them.
|
||
|
||
</itemize>
|
||
|
||
<sect2>Windows to Linux install
|
||
<p>
|
||
If you have Quake II installed under Windows on a different machine, you
|
||
can transfer the files in <tt>quake2\baseq2\</tt> to your Linux system
|
||
via FTP or some other mechanism. Keep in mind that the filenames on your
|
||
Linux system must be in lower case for Quake II to find them, so you may
|
||
have to rename them after the transfer. Also note that it may be
|
||
necessary to delete your Windows installation after you do this to remain
|
||
in compliance with the terms of id's software license. It's not my fault
|
||
if you do something illegal.
|
||
|
||
If your Windows and Linux systems are on the same machine, you have two
|
||
options: copy the files from your Windows partition to your Linux
|
||
partition, or link to the necessary files from Linux. Both options will
|
||
work equally well. You'll just save a lot of disk space when you link
|
||
instead of copy.
|
||
As usual, replace <tt>/win95/games/quake2</tt> in the following examples
|
||
with the correct path to your Windows partition and Quake II installation.
|
||
|
||
<itemize>
|
||
<item>If you want to copy the files from your Windows partition, do
|
||
something like this:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
cp -r /win95/games/quake2/baseq2 .
|
||
</verb></tscreen>
|
||
|
||
<item>To create links to your Windows Quake II files instead, do this:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
ln -s /win95/games/quake2/baseq2 .
|
||
</verb></tscreen>
|
||
|
||
This second method requires that the Windows partition you're
|
||
linking to be writeable by users, which may not be
|
||
appropriate for all systems. By making your Windows partition
|
||
writeable, you are giving all users the opportunity to destroy
|
||
your entire Windows installation. If that's ok with you,
|
||
modify your <tt>/etc/fstab</tt> to mount the Windows
|
||
partition with the options <em>umask=002,gid=XXX</em>, where XXX
|
||
is the group id number of the "users" group. Look in
|
||
<tt>/etc/group</tt> for this information. When <tt>fstab</tt> is
|
||
updated, umount and re-mount the Windows partition and you're
|
||
done.
|
||
</itemize>
|
||
|
||
You're done installing the Quake II data files. Move ahead to "<ref
|
||
id="quake2-linux-binaries" name="Installing the Linux Binaries">".
|
||
|
||
|
||
<sect2>Installing the demo version
|
||
<p>
|
||
id Software has a freely available demo version of Quake II at their
|
||
ftp site. It's a 40 megabyte download. The demo includes all
|
||
features of the full version, including multiplayer, but it only
|
||
comes with three levels, so it may be difficult to find a server
|
||
to play on.
|
||
|
||
See the section <ref id="quake2-files"name="Download the
|
||
Necessary Files"> above for the location of the Quake II demo.
|
||
Download it and place it in your Quake II directory.
|
||
|
||
The demo distribution is a self-extracting zip file (it's self-extracting
|
||
in other OS's anyway). You can extract it with the <bf>unzip(1)</bf>
|
||
command, which should be included in most modern distributions. If you
|
||
don't have unzip, you can download it from the location listed in
|
||
the <ref id="quake2-files" name="Download the Necessary Files">
|
||
section.
|
||
|
||
cd to your Quake II directory and extract the archive:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
unzip q2-314-demo-x86.exe
|
||
</verb></tscreen>
|
||
|
||
Now we've got to delete some things and move some other things around:
|
||
<tscreen><verb>
|
||
rm -rf Splash Setup.exe
|
||
mv Install/Data/baseq2 .
|
||
mv Install/Data/DOCS docs
|
||
rm -rf Install
|
||
rm -f baseq2/gamex86.dll
|
||
</verb></tscreen>
|
||
|
||
The Quake II demo is now installed. You just need to add the Linux
|
||
binaries.
|
||
|
||
<sect1>Adding the Linux Binaries <label id="quake2-linux-binaries">
|
||
<p>
|
||
There are four Linux Quake II packages available for download:
|
||
<itemize>
|
||
<item>a libc5 tar.gz package
|
||
<item>a glibc tar.gz package
|
||
<item>a libc5 rpm package
|
||
<item>a glibc rpm package
|
||
</itemize>
|
||
|
||
Install just one of these packages. Each contains the same
|
||
files, they're just linked against different libraries. Redhat
|
||
5.x users should choose the the glibc rpm package. Users of
|
||
glibc based systems without rpm support should use the glibc tar
|
||
package. The libc5 rpm is for Redhat distributions prior to 5.0
|
||
and other distributions that use the rpm package format. The
|
||
libc5 tar.gz package is for Slackware and everyone else.
|
||
|
||
See the <ref id="quake2-files" name="Download the Necessary Files"> section
|
||
for the location of the Linux Quake II files.
|
||
|
||
<sect2>Installing the RPM packages
|
||
<p>
|
||
Installation of the rpm packages should be as simple as:
|
||
|
||
<tscreen><verb>
|
||
su root
|
||
rpm -Uvh quake2-xxxxx.i386.rpm
|
||
</verb></tscreen>
|
||
|
||
Rpm may complain that it can't find <tt>libglide2x.so</tt>. The
|
||
Glide library is only necessary if you have a 3Dfx card and want
|
||
to run Quake II in GL mode. If you don't plan to use the GL
|
||
mode, you can override the glide dependency with the
|
||
<tt>--nodeps</tt> option:
|
||
|
||
<tscreen><verb>
|
||
su root
|
||
rpm -Uvh quake2-xxxxx.i386.rpm --nodeps
|
||
</verb></tscreen>
|
||
|
||
<sect2>Installing the tar.gz packages
|
||
<p>
|
||
To install, just untar the file in your Quake II directory. Do
|
||
it as root so the proper file permissions get set:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake
|
||
su root
|
||
tar -xzf qwcl2.21-i386-unknown-linux2.0.tar.gz
|
||
</verb></tscreen>
|
||
|
||
<sect1>Setting Permissions
|
||
<p>
|
||
If you ran <tt>rpm</tt> or <tt>tar</tt> as root when installing
|
||
the Quake II package on your system, the file permissions should
|
||
be properly set already. The <tt>quake2</tt> executable was
|
||
installed setuid root so that it can access the graphics devices
|
||
on your system. For security, the <tt>ref_*.so</tt> rendering
|
||
libraries are owned by root and writeable only by him. If root
|
||
doesn't own the libraries, or they're world writeable,
|
||
<tt>quake2</tt> will refuse to run.
|
||
|
||
If you plan to only run Quake II with the GL or X renderers, your
|
||
<tt>quake2</tt> doesn't need to be setuid root. See <ref
|
||
id="no-setuid" name="Running X and GL games without setuid"> in
|
||
the Tips and Tricks section below for information on running Quake
|
||
II without root permissions.
|
||
|
||
<sect2>Quake2.conf
|
||
<p>
|
||
|
||
For security reasons, there is a <tt>quake2.conf</tt> file, which
|
||
tells Quake II where to find the rendering libraries (<tt>ref_*.so</tt>)
|
||
it needs. It contains only one line, which should be
|
||
the path to your Quake II installation. Quake II looks for this
|
||
file in <tt>/etc</tt>. If you installed Quake II from an
|
||
<tt>.rpm</tt> file, this file was installed for you. If you
|
||
installed from a <tt>.tar</tt> package, you need to create it
|
||
like so:
|
||
|
||
<tscreen><verb>
|
||
su root
|
||
cd /usr/local/games/quake2
|
||
pwd > /etc/quake2.conf
|
||
chmod 644 /etc/quake2.conf
|
||
</verb></tscreen>
|
||
|
||
<sect1>The X Renderer
|
||
<p>
|
||
Quake II should be ready to run under X now. Give it a try:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
./quake2 +set vid_ref softx
|
||
</verb></tscreen>
|
||
|
||
If all is well, after a pretty significant pause, a small Quake II window
|
||
will appear with the first demo running in it. You should hear sound
|
||
effects and possibly music, if your CD is in the drive. If any of this fails
|
||
to occur, please see section <ref id="troubleshooting"
|
||
name="Troubleshooting"> for help.
|
||
|
||
<sect1>The SVGAlib Renderer <label id="quake2-svgalib"> ++
|
||
<p>
|
||
You need SVGAlib installed and configured if you're going to use either
|
||
the ref_soft or ref_gl renderers. (Quake II uses SVGAlib to process
|
||
keyboard and mouse input, in case you're wondering why you'd need it for
|
||
the GL renderer). SVGAlib comes with most modern distributions, and
|
||
<bf>must</bf> be properly configured before Quake II will run correctly
|
||
outside of X.
|
||
|
||
<tt>libvga.config</tt> is SVGAlib's configuration file. On
|
||
most systems you'll find it in either <tt>/etc</tt> or <tt>/etc/vga</tt>.
|
||
Make sure the mouse, monitor, and video card settings in this file are
|
||
correct for your system. See the SVGAlib documentation for more details.
|
||
|
||
If you don't already have SVGAlib on your system, download it from
|
||
the location mentioned in <ref id="quake-files" name="the files
|
||
section"> above.
|
||
|
||
You should run Quake II from a virtual console when using the ref_soft
|
||
or ref_gl renderers. It won't run from X unless you're root when you
|
||
start it, and that's not advisable. So if you're in X, do a CTRL+ALT+F1,
|
||
login and then:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
./quake2 +set vid_ref soft
|
||
</verb></tscreen>
|
||
|
||
<ref id="running-from-x" name="Running SVGA and GL games from X">
|
||
in the Tips & Tricks section below explains how to launch SVGA
|
||
and GL Quake II from X without manually switching to a virtual
|
||
console.
|
||
|
||
<sect1>The OpenGL Renderer<label id="quake2-gl">
|
||
<p>
|
||
Hardware-accelerated OpenGL Quake is Quake the way God intended it to be.
|
||
There is no substitute, and once you've experienced it there's no going
|
||
back.
|
||
|
||
To run Quake II in GL mode, you need a 3D card with the Voodoo,
|
||
Voodoo2 or Voodoo Rush graphics chipset on it. There are
|
||
specific issues to be dealt with if you have a Voodoo Rush card,
|
||
and I won't go into them now because frankly, I wouldn't know
|
||
what I was talking about. A future version of this HOWTO will
|
||
cover Rush issues (If somebody wants to write about Voodoo Rush
|
||
issues, I'll gladly include it here).
|
||
|
||
The SVGAlib, Glide, and Mesa libraries must all be installed and
|
||
configured properly on your system for <tt>quake2</tt> to work. The
|
||
following sections will very briefly cover what you need to do to get
|
||
them going.
|
||
|
||
Bernd Kreimeier's (<htmlurl url="mailto:bk@gamers.org"
|
||
name="bk@gamers.org">) Linux 3Dfx HOWTO (<htmlurl
|
||
url="http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html"
|
||
name="http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html">) is good
|
||
source for further information.
|
||
|
||
The <htmlurl url="news://news.3dfx.com/3dfx.glide.linux"
|
||
name="3dfx.glide.linux"> newsgroup on the 3dfx news server
|
||
(news.3dfx.com) is another good source of information about the
|
||
intersection of Linux, glide, Mesa and Quake.
|
||
|
||
|
||
<sect2>SVGAlib
|
||
<p>
|
||
Quake II uses SVGAlib to get input from the mouse and keyboard, so you'll
|
||
need to configure it as outlined in section <ref id="quake2-svgalib"
|
||
name="SVGAlib Renderer">.
|
||
|
||
<sect2>Glide<label id="quake2-glide"> ++
|
||
<p>
|
||
Glide is a library that provides an API for programming 3Dfx based cards.
|
||
If you want the Mesa graphics library to use your 3Dfx card, you've gotta
|
||
have it.
|
||
|
||
Do <bf>NOT</bf> use the Linux Glide library distributed at 3Dfx's web
|
||
site. It's more than a year out of date. You're bound to have problems
|
||
if you try to use it.
|
||
The latest version of glide can always be found at <htmlurl
|
||
url="http://glide.xxedgexx.com/3DfxRPMS.html"
|
||
name="http://glide.xxedgexx.com/3DfxRPMS.html">.
|
||
Select the package(s) appropriate for your system, and install according to
|
||
the instructions on the web page.
|
||
|
||
Note that unless you download the 3Dfx device driver package in addition
|
||
to the Glide library, you will only be able to run Glide applications
|
||
(like Quake II) as root. Install the <tt>/dev/3dfx</tt> module and you
|
||
can play Quake II as a regular user. PentiumPro/Pentium II users have an
|
||
additional incentive for downloading this driver: it can dramatically
|
||
increase your framerate. The driver enables support for MTRRs, a
|
||
memory-caching feature of these CPUs. See <htmlurl
|
||
url="http://glide.xxedgexx.com/MTRR.html" name="http://glide.xxedgexx.com/MTRR.html">
|
||
for a better explanation of this feature.
|
||
|
||
Once you have glide installed, try out the test program that comes with
|
||
it. Remember this program: it's a good way to reset your display if you
|
||
ever have a glide application (like Quake II) crash and leave your screen
|
||
switched off. <bf>NOTE: run this test from a VC, <em>not</em> X!</bf> It's
|
||
possible for the test app to lose mouse and keyboard focus in X, and then
|
||
you'll have no way of shutting it down.
|
||
|
||
<tscreen><verb>
|
||
/usr/local/glide/bin/test3Dfx
|
||
</verb></tscreen>
|
||
|
||
Your screen should turn blue and prompt you to hit any key. After you
|
||
press a key you should be returned to the prompt.
|
||
<htmlurl url="news://news.3dfx.com/3dfx.glide.linux"
|
||
name="3dfx.glide.linux"> on 3dfx's news server (news.3dfx.com) is a great
|
||
source of information for Linux glide-specific problems.
|
||
|
||
<sect2>Mesa **
|
||
<p>
|
||
Once glide's installed, you need to install Mesa, a free OpenGL
|
||
implementation by <htmlurl url="mailto:brianp@elastic.avid.com"
|
||
name="Brian Paul (brianp@elastic.avid.com)">. Luckily, you won't have to
|
||
look far, because Mesa 2.6 is included with the Quake II binaries. All
|
||
you have to do is move it to the right place:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
cp libMesaGL.so.2.6 /usr/local/lib
|
||
ldconfig
|
||
</verb></tscreen>
|
||
|
||
The RedHat distribution comes with a (IMO) broken <tt>ld.so</tt>
|
||
configuration. <tt>/usr/local/lib</tt> is not part of <tt>ld.so</tt>'s
|
||
search path by default, so anything you install there won't get used.
|
||
You can remedy the situation by adding the line <tt>/usr/local/lib</tt>
|
||
to your <tt>/etc/ld.so.conf</tt> file, or including <tt>/usr/local/lib</tt>
|
||
in your <tt>$LD_LIBRARY_PATH</tt>. Alternatively, you could install
|
||
all new libraries someplace like <tt>/lib</tt>, but this approach seriously
|
||
offends my tidy nature.
|
||
|
||
If you want to upgrade Mesa to a more recent version (Mesa 3.0 is
|
||
the most recent version as of this writing),
|
||
you can download the latest from <htmlurl
|
||
url="ftp://iris.ssec.wisc.edu/pub/Mesa"
|
||
name="ftp://iris.ssec.wisc.edu/pub/Mesa">
|
||
If you have a RedHat 5.x or other glibc-based Linux distribution, see
|
||
<ref id="glibc" name="Glibc, RedHat 5.x, Debian 2 considerations"> in the
|
||
Troubleshooting/FAQs section for important information about compiling
|
||
libraries for Quake.
|
||
|
||
After you've built it according to the instructions, you will have to do
|
||
two things:
|
||
|
||
<itemize>
|
||
<item>Remove your old Mesa installation. If you previously installed a
|
||
<tt>libMesaGL.so.2.6</tt> as described above, you must remove it or
|
||
Quake II may not use the new version.
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/lib/
|
||
rm -f libMesaGL.so.2*
|
||
</verb></tscreen>
|
||
|
||
<item>If the new Mesa has a major version number that's greater than 2,
|
||
you need to create a link to it with the name <tt>libMesaGL.so.2</tt>:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/lib/
|
||
ln -s /wherever/you/installed/it/libMesaGL.so.3.0 libMesaGL.so.2
|
||
ldconfig
|
||
</verb></tscreen>
|
||
|
||
</itemize>
|
||
|
||
|
||
<sect2>lib3dfxgl.so <label id="q2-3dfxgl"> **
|
||
<p>
|
||
With Quake II version 3.19, an alternative to the Mesa library is
|
||
available. <tt>lib3dfxgl.so</tt> is a mini-GL driver optimized
|
||
for Quake that provides better framerates than Mesa.
|
||
This is a port of a driver that 3Dfx developed for Quake
|
||
under Windows. It's included in the Quake II package, and there's
|
||
no reason you shouldn't use it.
|
||
|
||
Like Mesa, <tt>lib3dfxgl.so</tt> requires that the Glide library
|
||
be installed in order to access your 3Dfx card.
|
||
|
||
|
||
<sect2>Choosing a GL driver **
|
||
<p>
|
||
With version 3.20, using this driver instead of Mesa is much easier
|
||
than it was previously. There's a new CVAR, <tt>gl_driver</tt> that
|
||
you set to indicate which GL driver <tt>quake2</tt> should use. To
|
||
run with the <tt>lib3dfxgl.so</tt> driver, do:
|
||
<tscreen><verb>
|
||
./quake2 +set vid_ref gl +set gl_driver lib3dfxgl.so
|
||
</verb></tscreen>
|
||
|
||
To run with Mesa, do:
|
||
<tscreen><verb>
|
||
./quake2 +set vid_ref gl +set gl_driver libMesaGL.so
|
||
</verb></tscreen>
|
||
|
||
Note that the <tt>.so</tt> files you refer to must exist in your
|
||
quake2 directory. A symbolic link is fine if, say, your Mesa library
|
||
is in <tt>/usr/local/lib</tt> and you don't want to have two copies
|
||
around.
|
||
|
||
<sect1>The GLX Renderer<label id="quake2-glx"> ++
|
||
<p>
|
||
|
||
<tt>ref_glx.so</tt> is linked against standard OpenGL libraries
|
||
instead of Mesa. This allows Quake II to run on other 3D
|
||
hardware that is supported by other OpenGL implementations. At
|
||
this time, I dont' know of any OpenGL implementations that
|
||
support hardware other than 3Dfx, but this renderer ensures that
|
||
when they appear, we'll be able to play Quake II with them.
|
||
|
||
Use of the GLX interface also removes GL Quake II's dependency
|
||
on SVGAlib for keyboard and mouse input.
|
||
|
||
This is a GLX application, and as such, must be run from X.
|
||
|
||
You can use this client with Mesa/3Dfx if you install Mesa and
|
||
Glide as explained in the previous section, then set the
|
||
<tt>$MESA_GLX_FX</tt> environment variable to "fullscreen" before
|
||
you run <tt>quake2</tt>:
|
||
|
||
<tscreen><verb>
|
||
export MESA_GLX_FX=fullscreen
|
||
./quake2 +set vid_ref glx +set _windowed_mouse 1
|
||
</verb></tscreen>
|
||
|
||
Why the <tt>+set _windowed_mouse 1</tt> option? Remember that
|
||
this is an X application which happens to use your 3Dfx card.
|
||
Even though the display takes up your entire screen, Quake II is
|
||
stil running in a window. This means that if you're not
|
||
<em>very</em> careful, you could move the mouse pointer outside
|
||
the Quake II window, and Quake II will suddenly stop responding
|
||
to mouse and keyboard input. <tt>+set _windowed_mouse 1</tt>
|
||
avoids this problem by telling <tt>quake2</tt> to grab the mouse
|
||
and not let it move outside its window.
|
||
|
||
<sect1>Linux-Specific Command Line Options
|
||
<p>
|
||
This section will cover command line options that are specific to the
|
||
Linux version of Quake II. There are plenty of other Quake II options,
|
||
but they're beyond the scope of this HOWTO. Check out some of the sites
|
||
listed in section <ref id="general-quake-sources"
|
||
name="General Quake Information"> for this kind of information.
|
||
|
||
These are actually cvars (client variables) that you can set in the Q2
|
||
console, but it makes the most sense to set them on the command line.
|
||
Set them with <tt>+set</tt> on the command line, like:
|
||
|
||
<tscreen><verb>
|
||
./quake2 +set cd_dev /dev/hdc
|
||
</verb></tscreen>
|
||
|
||
<descrip>
|
||
<tag>cd_dev <em>device</em></tag>
|
||
Name of the CD-ROM device.
|
||
|
||
<tag>nocdaudio <em>value</em></tag>
|
||
Disable CD audio if <em>value</em> is nonzero
|
||
|
||
<tag>sndbits <em>num</em></tag>
|
||
Set sound bit sample size. Default is 16.
|
||
|
||
<tag>sndspeed <em>num</em></tag>
|
||
Set sound sample speed. Usual values are 8000, 11025, 22051 and 44100.
|
||
If set to zero, causes the sound driver to attempt speeds in the following
|
||
order: 11025, 22051, 44100, 8000.
|
||
|
||
<tag>sndchannels <em>num</em></tag>
|
||
Indicates stereo or mono sound. Defaults to 2 (stereo). Use 1 for mono.
|
||
|
||
<tag>nostdout <em>value</em></tag>
|
||
Don't do any output to stdout. Use this if you don't want all the console
|
||
output dumped to your terminal.
|
||
</descrip>
|
||
|
||
<sect1>Quake II Servers ++
|
||
<p>
|
||
Linux's strength as an internet server make it a perfect platform for
|
||
running an internet Quake II server. This section will touch on the
|
||
basics and Linux-specific aspects of starting up a Quake II server. Try
|
||
<htmlurl url="http://www.3dgw.com/hellsgates/serverguide.htm"
|
||
name="http://www.3dgw.com/hellsgates/serverguide.htm"> for more detailed
|
||
Quake II server setup information.
|
||
|
||
<sect2>Listen Servers
|
||
<p>
|
||
You can start a Quake II "Listen" server from within the game via the
|
||
<em>Multiplayer</em> menu. This allows you to host a game and participate
|
||
in it at the same time.
|
||
|
||
To start a Listen server, start Quake II, bring up the Quake II menu with
|
||
the ESC key, and select <em>Multiplayer</em>. It should be pretty
|
||
self-explanatory from there.
|
||
|
||
<sect2>Dedicated Servers
|
||
<p>
|
||
For a permanent, stand-alone Quake II server that needs to run without
|
||
constant attention, using the Listen server is impractical. Quake II has
|
||
a Dedicated server mode that is better suited to this type of use. A
|
||
dedicated server is started from the command line and uses fewer system
|
||
resources than a Listen server because it doesn't start the graphical
|
||
client piece at all.
|
||
|
||
To start a dedicated server, use the command line option <tt>+set
|
||
dedicated 1</tt>. You can set additional server parameters either on the
|
||
command line or in a config file that you <tt>+exec</tt> on the command
|
||
line. Your config file should reside in the <tt>baseq2</tt> directory.
|
||
|
||
A few common server options are listed below. To set options on the
|
||
command line, do <tt>+set fraglimit 30</tt>. Options are set the same way
|
||
in a config file, only you don't want the <tt>+</tt> before the
|
||
<tt>set</tt>. Invoke your config file like this: <tt>+exec
|
||
server.cfg</tt>.
|
||
|
||
<descrip>
|
||
<tag>fraglimit</tag>
|
||
Number of frags required before the map changes
|
||
<tag>timelimit</tag>
|
||
Time in minutes that must pass before the map changes
|
||
<tag>hostname</tag>
|
||
The name of your Quake II server. This is an arbitrary string and
|
||
has nothing to do with your DNS hostname.
|
||
<tag>maxclients</tag>
|
||
The maximum number of players that can connect to the server at once.
|
||
</descrip>
|
||
|
||
For enough Quake II console and command line information to choke a horse,
|
||
see Farenheit 176 (<htmlurl url="http://www.planetquake.com/f176"
|
||
name="http://www.planetquake.com/f176">).
|
||
|
||
<sect2>Other Sources of Server Information
|
||
<p>
|
||
<itemize>
|
||
<item>The Q2 Server FAQ has a basic step-by-step guide to set up a
|
||
Q2 Server under Linux: <htmlurl
|
||
url="http://www.bluesnews.com/faqs/q2s-faq.html"
|
||
name="http://www.bluesnews.com/faqs/q2s-faq.html">
|
||
<item>Grant Cornelius Reticulus Copernicus Sperry (<htmlurl
|
||
url="mailto:flubber@xmission.com" name="flubber@xmission.com">) has some
|
||
basic Q2 server config files and startup scripts at <htmlurl
|
||
url="http://www.atomicage.com:80/quake/server/server_cfg/"
|
||
name="http://www.atomicage.com:80/quake/server/server_cfg/">.
|
||
|
||
</itemize>
|
||
|
||
<sect1>Mods & Addons
|
||
<p>
|
||
Quake II modifications like Capture the Flag, Jailbreak, and Lithium
|
||
II are very popular extensions of the original Quake II game. Some
|
||
mods reside entirely on the server (Lithium), and some also require changes
|
||
to your client (CTF). For server only mods, you just connect normally
|
||
and play. Client-side mods require you to install additional files in
|
||
your <tt>quake2</tt> directory before you can play.
|
||
|
||
<sect2>Client Side Mods
|
||
<p>
|
||
Generally, installation of a client-side mod consists of just
|
||
downloading the client package and upacking it in your Quake II
|
||
directory, but you should refer to the mod's documentation for specific
|
||
details. It may be necessary to download a Linux-specific package
|
||
in addition to the main (Windows) client package. Also be aware that all mods
|
||
may not be available for Linux.
|
||
|
||
Client-side mod packages usually contain a new <tt>gamei386.so</tt>
|
||
file and one or more <tt>.pak</tt> files. Other new files may be
|
||
included as well. These new files will be installed in a subdirectory
|
||
below your Quake II directory. Use <tt>+set game <em>mod-dir</em></tt>
|
||
on the command line to run the mod. Rocket Arena 2, for example, gets
|
||
installed in a directory called <tt>arena</tt>. To play RA2,
|
||
your would start your client like so:
|
||
<tscreen><verb>
|
||
./quake2 +set game arena
|
||
</verb></tscreen>
|
||
|
||
<sect3>Capture the Flag
|
||
<p>
|
||
Since this is by far the most popular variation of multiplayer Quake II,
|
||
I've included specific instructions for installing this mod. Capture
|
||
the Flag for Quake II is available from id's ftp site. Download
|
||
it, then install like so:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
mkdir ctf
|
||
cd ctf
|
||
unzip -L /wherever/you/put/it/q2ctf102.zip
|
||
</verb></tscreen>
|
||
|
||
Start Quake II with <tt>+set game ctf</tt> to play CTF.
|
||
|
||
<sect2>Server Side Mods
|
||
<p>
|
||
Running a Quake II mod on a server isn't much different than running one
|
||
on the client side. Generally you'll need to install <tt>gamei386.so</tt>
|
||
and <tt>server.cfg</tt> files in a new subdirectory and then start your
|
||
server like
|
||
<tscreen><verb>
|
||
./quake2 +set game XXXX +set dedicated 1 +exec server.cfg
|
||
</verb></tscreen>
|
||
Where XXXX above is the name of the mod's new subdirectory. The exact
|
||
procedure will vary from mod to mod, of course. See the mod's documentation
|
||
for specific details.
|
||
|
||
<sect2>Game Source ++
|
||
<p>
|
||
The entire game, with the exception of the engine itself, resides in a
|
||
shared library, <tt>gamei386.so</tt>. Quake II mods are created by
|
||
changing the contents of this file. The C source is freely available
|
||
(section <ref id="quake2-files" name="Download the Necessary Files"> above)
|
||
for anyone to download and modify.
|
||
|
||
After you've downloaded the source, here's how to get started with it:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
mkdir mymod
|
||
cd mymod
|
||
gunzip /wherever/you/put/it/q2src320.shar.Z
|
||
sh /wherever/you/put/it/q2src320.shar
|
||
</verb></tscreen>
|
||
|
||
You'll be presented with a bunch of legalese that you must answer
|
||
<tt>yes</tt> to, then the game source will be extracted. Building a new
|
||
<tt>gamei386.so</tt> out of these sources is accomplished with a simple
|
||
<tt>make</tt>. You can run Quake II with the newly compiled library like
|
||
so:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
./quake2 +set game mymod
|
||
</verb></tscreen>
|
||
|
||
Not too exciting yet, since what you just built is identical to the
|
||
"stock" <tt>gamei386.so</tt>, but this should be good information for
|
||
aspiring mod authors.
|
||
|
||
<sect2>Mission Packs
|
||
<p>
|
||
<itemize>
|
||
<item><bf>Mission Pack 1: The Reckoning</bf>
|
||
The Reckoning requires Quake II version 3.15 or later to run. You'll need at least
|
||
95 MB for a minimum installation. Another 90 MB are required if you want
|
||
to install the video sequences as well. Assuming your CD is mounted on
|
||
<tt>/mnt/cdrom</tt> and Quake II is installed in
|
||
<tt>/usr/local/games/quake2</tt>:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
cp -r /mnt/cdrom/Data/all/* xatrix/
|
||
rm -f xatrix/gamex86.dll
|
||
</verb></tscreen>
|
||
|
||
If you want to install the video sequences:
|
||
|
||
<tscreen><verb>
|
||
cp -r /mnt/cdrom/Data/max/xatrix/video xatrix
|
||
</verb></tscreen>
|
||
|
||
Play The Reckoning like this:
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
./quake2 +set game xatrix
|
||
</verb></tscreen>
|
||
|
||
<item><bf>Mission Pack 2: Ground Zero</bf>
|
||
It requires Quake II version 3.17 or later to run. You'll need at least
|
||
120 MB for a minimum installation. Another 115 MB are required if you want
|
||
to install the video sequences as well. Assuming your CD is mounted on
|
||
<tt>/mnt/cdrom</tt> and Quake II is installed in
|
||
<tt>/usr/local/games/quake2</tt>:
|
||
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
cp -r /mnt/cdrom/Data/all/* rogue/
|
||
rm -f rogue/gamex86.dll
|
||
</verb></tscreen>
|
||
|
||
If you want to install the video sequences:
|
||
|
||
<tscreen><verb>
|
||
cp -r /mnt/cdrom/Data/max/rogue/video rogue
|
||
</verb></tscreen>
|
||
|
||
Play Ground Zero like this:
|
||
<tscreen><verb>
|
||
cd /usr/local/games/quake2
|
||
./quake2 +set game rogue
|
||
</verb></tscreen>
|
||
|
||
</itemize>
|
||
|
||
<!--=================================================================-->
|
||
<sect>Related Software<label id="related-software">
|
||
<p>
|
||
|
||
<sect1>QStat
|
||
<p>
|
||
Qstat is a command line based program that returns the status of internet
|
||
Quake, QuakeWorld, and Quake 2 servers created by Steve Jankowski <htmlurl
|
||
url="mailto:steve@activesw.com" name="mailto:steve@activesw.com">.
|
||
|
||
Here's the feature summary from the QStat homepage:
|
||
<itemize>
|
||
<item>Supports Windows 95, NT, and most Unixes
|
||
<item>Comes with C source code and a binary for Windows
|
||
<item>Supports old Quake (NetQuake), QuakeWorld, Hexen II, and Quake II
|
||
servers
|
||
<item>Can display all available statistics, including player info and
|
||
server rules
|
||
<item>Output templates for automatic HTML generation
|
||
<item>Raw display mode for integration with HTML page generators
|
||
<item>Built-in host name cache
|
||
<item>Sort by ping time, game, or both
|
||
<item>More options than you can wiggle a mouse at
|
||
</itemize>
|
||
|
||
Qstat is a must-have tool if you're planning on doing any net play. A
|
||
number of front-ends for qstat have been written as well. Some of them
|
||
are listed later in this section.
|
||
|
||
You can get the latest version of qstat from the QStat Homepage (<htmlurl
|
||
url="http://www.activesw.com/people/steve/qstat.html"
|
||
name="http://www.activesw.com/people/steve/qstat.html">).
|
||
|
||
<sect1>XQF
|
||
<p>
|
||
XQF is a graphical front-end to QStat that uses the GTK toolkit. This is
|
||
the best QuakeWorld/Quake2 server browser that currently exists, and
|
||
Roman Pozlevich (<htmlurl url="mailto:roma@botik.ru"
|
||
name="roma@botik.ru">), is still cranking out revisions at the rate of
|
||
about one per month.
|
||
|
||
If you're familiar with GameSpy for the Windows platform, this is the
|
||
closest thing to it for Linux.
|
||
|
||
The XQF homepage is at <htmlurl url="http://www.linuxgames.com/xqf"
|
||
name="http://www.linuxgames.com/xqf">.
|
||
|
||
<sect1>QuickSpy
|
||
<p>
|
||
QuickSpy is a text-based QuakeWorld server browser. It's another
|
||
front-end to QStat and it works pretty well. If you don't run X and
|
||
you don't have Quake II, this is a decent option. Beware though, it's no
|
||
longer under development.
|
||
|
||
|
||
You can get QuickSpy at <htmlurl
|
||
url="http://diana.ecs.soton.ac.uk/~rht96r/quake/quickspy/"
|
||
name="http://diana.ecs.soton.ac.uk/~rht96r/quake/quickspy/">.
|
||
|
||
<sect1>QPlug for Linux
|
||
<p>
|
||
Qplug is a Netscape plugin which retrieves and displays QuakeWorld and
|
||
Quake II server information embedded in a web page. A Windows Qplug has
|
||
been around for some time. The author, Olivier Debon (<htmlurl
|
||
url="mailto:odebon@club-internet.fr" name="odebon@club-internet.fr">)
|
||
wrote the Linux version from scratch without ever having seen the Windows
|
||
version.
|
||
|
||
QPlug for Linux can be got at <htmlurl
|
||
url="http://www.geocities.com/TimesSquare/Labyrinth/5084/qplug.html"
|
||
name="http://www.geocities.com/TimesSquare/Labyrinth/5084/qplug.html">.
|
||
|
||
<sect1>qkHacklib
|
||
<p>
|
||
David Bucciarelli (<htmlurl url="mailto:tech.hmw@plus.it"
|
||
name="tech.hmw@plus.it">), author of the 3Dfx driver for Mesa, has
|
||
written a library called qkHack, which tries to emulate all the
|
||
SVGAlib/fxMesa functions used by Quake and Quake II. This would remove
|
||
the need for SVGAlib when running glquake or Quake II with ref_gl.
|
||
Other features from the qkHacklib README:
|
||
|
||
<itemize>
|
||
<item>You can dynamically switch between fullscreen rendering and the in
|
||
window rendering just pressing the TAB key (you must start your X server
|
||
in 16 bpp mode in order to use this feature)
|
||
<item>You can press Ctrl-C in the shell or kill the Quake process without
|
||
problems
|
||
<item>you can enable/disable the mouse and keyboard 'grabbing' pressing
|
||
F11/F12
|
||
<item>you can iconify and pause Quake pressing the F10 (it will not
|
||
eat more CPU cycles). You can restart everything with a double
|
||
click in the "****" icon
|
||
<item> you can run Quake with any Mesa driver (for example with the
|
||
X11 driver but you must recompile the Mesa without the Voodoo
|
||
driver)
|
||
<item>you can run Quake under any Linux box and get the hardware
|
||
acclerated output on a SGI box (OK, this is a bit exotic and
|
||
theoretical as feature but it is an example of how powerful can be an
|
||
GLX/OpenGL application)
|
||
</itemize>
|
||
|
||
I've tried qkHacklib and it works great for Quake on my system. In
|
||
Quake II, however, the mouse response becomes <em>really</em> slow.
|
||
Others report complete success, though, so give it a try if it sounds
|
||
like something you need.
|
||
|
||
David Bucciarelli's qkHacklib web page is at <htmlurl
|
||
url="http://www-hmw.caribel.pisa.it/fxmesa/fxqkhack.html"
|
||
name="http://www-hmw.caribel.pisa.it/fxmesa/fxqkhack.html">.
|
||
|
||
<sect1>GiMd2Viewer
|
||
<p>
|
||
GiMd2Viewer is a Quake 2 model viewer written for Gtk and OpenGL by
|
||
Lionel Ulmer (<htmlurl url="mailto:bbrox@mygale.org"
|
||
name="bbrox@mygale.org">). It loads models and textures from either plain
|
||
files or .PAK files. It will also animate the models (with frame
|
||
interpolation).
|
||
|
||
This program is still under developement and I haven't tried it yet, but
|
||
it sounds pretty nifty. Check it out at <htmlurl
|
||
url="http://www.mygale.org/~bbrox/GiMd2Viewer/"
|
||
name="http://www.mygale.org/~bbrox/GiMd2Viewer/">.
|
||
|
||
<sect1>QIPX
|
||
<p>
|
||
QIPX is a set of programs that allow Linux Quake clients (using TCP/IP) to
|
||
connect with DOS Quake clients (using IPX). I guess this is useful if
|
||
you're playing netquake on a LAN. QIPX is available at
|
||
<htmlurl url="http://www.geocities.com/SiliconValley/Park/6083/qipx.html"
|
||
name="http://www.geocities.com/SiliconValley/Park/6083/qipx.html">.
|
||
|
||
<sect1>Ice
|
||
<p>
|
||
Ice is a Quake map editor for UN*X created by C.J. Beyer and John Watson.
|
||
I haven't used this program, nor do I know what its development status is.
|
||
The Ice homepage is at <htmlurl url="http://styx.phy.vanderbilt.edu/~ice/"
|
||
name="http://styx.phy.vanderbilt.edu/~ice/">.
|
||
|
||
<sect1>Q2getty
|
||
<p>
|
||
Q2getty is a hack of mingetty by Mike Gleason (<htmlurl
|
||
url="mailto:mgleason@ncftp.com" name="mgleason@ncftp.com">) that allows you to
|
||
automatically run and respawn a program (like a Quake server) on a
|
||
virtual console.
|
||
This program is available in the files section at <htmlurl
|
||
url="http://www.ncftpd.com/unixstuff/q2getty.html"
|
||
name="http://www.ncftpd.com/unixstuff/q2getty.html">.
|
||
|
||
<sect1>rcon
|
||
<p>
|
||
Rcon is a pair of tools that allow remote administration of a Quake II
|
||
server using the RCON protocol. Michael Dwyer (<htmlurl
|
||
url="mailto:mdwyer@holly.colostate.edu" name="michael_dwyer@mwiworks.com">)
|
||
is the author. Rcon 1.1 is available at <htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/games/quake/rcon-1.1.tar.gz">.
|
||
|
||
<sect1>qlog
|
||
<p>
|
||
Qlog is a GPL'ed QuakeWorld/Quake II server log parser that generates
|
||
comprehensive player statistics. Craig Knudsen (<htmlurl
|
||
url="mailto:cknudsen@radix.net" name="cknudsen@radix.net">) is the author.
|
||
The qlog homepage is <htmlurl url="http://www.radix.net/~cknudsen/qlog/"
|
||
name="http://www.radix.net/~cknudsen/qlog/">.
|
||
|
||
<sect1>Cheapo
|
||
<p>
|
||
Cheapo is a proxy that can be used to route QuakeWorld network
|
||
traffic. Additionally, the proxy can modify the data and has features
|
||
for enhancing gameplay. You can connect to cheapo as if it were a
|
||
Quakeworld server, and then give it commands that forward you to a
|
||
real server. The proxy can also be run on a firewall machine
|
||
incapable of handling Quake traffic, so that machines inside the
|
||
firewall can be used for playing.
|
||
The Cheapo homepage is at <htmlurl
|
||
url="http://www.saunalahti.fi/~softech/"
|
||
name="http://www.saunalahti.fi/~softech/">.
|
||
|
||
<sect1>qgraph
|
||
<p>
|
||
QGraph (Quake Graph) is a utility to help people in managing Quake's
|
||
DeathMathes, turnments and Quakeworld games.
|
||
QGraph is a program who connects (via Lan or the Internet) to a Quake,
|
||
QuakeII, Quakeworld and Hexen2 Servers and shows you realtime data about
|
||
the game running on that server.<2E>
|
||
The QGraph homepage is at <htmlurl
|
||
url="http://www.frag.com/qgraph"
|
||
name="http://www.frag.com/qgraph">.
|
||
|
||
<sect1>Vispatch ++
|
||
<p>
|
||
Vispatch is a utility that patches your Quake 1/QuakeWorld levels to
|
||
support transparent water. This Windows utility has been around almost since
|
||
the dawn of GLQuake, but just recently (to my knowledge) a Linux version has surfaced. The
|
||
WaterVis homepage is at <htmlurl url="http://www.sod.net/vis" name="http://www.sod.net/vis">.
|
||
You can download the Linux version of the Vispatch utility at <htmlurl
|
||
url="http://www.sod.net/vis/files/unixvis.zip" name="http://www.sod.net/vis/files/unixvis.zip">.
|
||
|
||
<sect1>GStat ++
|
||
<p>
|
||
GStat is a server query tool by Aaron Levinson based on QStat, but with some unique extra
|
||
features. From the GStat homepage:
|
||
GStat (GameStat) is a utility for querying Quake, Quakeworld, Quake II and Hexen II servers.
|
||
It has three main functions:
|
||
|
||
1.Displays statistics for Quake-based servers
|
||
2.Functions as a remote server administration tool
|
||
3.Console-based server browser for finding a server to play on
|
||
|
||
Find out more at <htmlurl url="http://www.ews.uiuc.edu/~alevinsn/gstat.html"
|
||
name="http://www.ews.uiuc.edu/~alevinsn/gstat.html">.
|
||
|
||
<sect1>QuakeLaunch ++
|
||
<p>
|
||
QuakeLaunch is a nice, simple Quake server browser that you can run in the console. It's
|
||
based on qstat by Steve Jankowski. If you can't or don't want to use an X-based server
|
||
browser like XQF, this is a good alternative. The QuakeLaunch homepage is at <htmlurl
|
||
url="http://www.linuxgames.com/qlaunch" name="http://www.linuxgames.com/qlaunch">.
|
||
|
||
<sect1>QPLog ++
|
||
<p>
|
||
The Quake Player Log is a master/client Perl program that keeps track of player statistics.
|
||
The object of this program is similar to what the original QuakeWorld attempted. Server
|
||
logs are sent to the central QPLog master, which keeps track of player statistics and ranks
|
||
players according to a number of factors. <htmlurl url="http://junior.ece.ucdavis.edu/qplog/"
|
||
name="http://junior.ece.ucdavis.edu/qplog/">
|
||
|
||
|
||
<!--==============================================================-->
|
||
<sect>Troubleshooting/FAQs<label id="troubleshooting">
|
||
<p>
|
||
|
||
<sect1>General
|
||
<p>
|
||
|
||
<sect2>OS difference considerations
|
||
<p>
|
||
<itemize>
|
||
<item><bf>Case sensitivity</bf> - In DOS and Windows, case is not important.
|
||
<tt>BASE1.TXT</tt> is the same as <tt>base1.txt</tt> is the same as <tt>Base1.Txt</tt>.
|
||
Under Linux and other
|
||
unices, case IS significant. <tt>MOTD.TXT</tt> and <tt>motd.txt</tt> are
|
||
different files. This can cause problems with player models and skin files
|
||
if they're installed with upper- or mixed-case filenames.
|
||
<tt>players/male/santa.PCX</tt> needs to be renamed to <tt>santa.pcx</tt> in
|
||
order for the Santa skin to be visible in Linux. The <tt>fixskins.sh</tt> script included with
|
||
quakeworld will convert all filenames in a directory to lowercase. It's
|
||
reproduced below for your convenience:
|
||
<code>
|
||
#!/bin/sh
|
||
for x in *; do
|
||
y=`echo $x | tr '[A-Z]' '[a-z]'`
|
||
if [ $x != $y ]; then
|
||
mv $x $y
|
||
fi
|
||
done
|
||
</code>
|
||
|
||
<item><bf>Path delimiters</bf> - DOS and Windows use the backslash "<tt>\</tt>"
|
||
character to separate file pathname elements. In Unix, the backslash is an escape
|
||
character. Quake and Quake2 for Windows recognize both "<tt>\</tt>" and "<tt>/</tt>"
|
||
as valid path delimiters, so if you use file pathnames in your config files (or your
|
||
mod code, or anywhere else, for that matter), be sure you're using "<tt>/</tt>" and
|
||
not "<tt>\</tt>".
|
||
|
||
<item><bf>End of line characters</bf> - Under DOS/Windows, each line of a text file
|
||
ends with a carriage return character (CR) and a linefeed character (LF). Unix
|
||
textfiles just have a linefeed at the end of each line. Using DOS/Win formatted
|
||
textfiles in Unix can cause all kinds of mysterious Quake problems. For example,
|
||
the incorrectly formatted <tt>quake2.conf</tt> file from the Quake2 3.17 package
|
||
generated the error "<tt>LoadLibrary("ref_XXX.so") failed: No such file or
|
||
directory</tt>". LMCTF-TE reports a floating point exception.
|
||
If you've got an problem you can't explain, try removing the CRs from your text
|
||
files:
|
||
<tscreen><verb>
|
||
mv file.txt file.bak; tr -d '\r' < file.bak > file.txt
|
||
</verb></tscreen>
|
||
</itemize>
|
||
|
||
<sect2>Glibc, RedHat 5.x, Debian 2 considerations (for Quake 1 only)<label id="glibc">++
|
||
<p>
|
||
[The following applies to the Quake I binaries (<tt>squake</tt>,
|
||
<tt>glquake</tt>, and <tt>quake.x11</tt>) only. As of versions
|
||
2.30 and 3.19 respectively, QuakeWorld and Quake II are available
|
||
in both libc5 and glibc versions.]
|
||
|
||
The Quake executables were compiled with libc5. Newer Linux
|
||
distributions like RedHat 5.1 and Debian 2.0 use the incompatible
|
||
libc6 (or glibc) as their default C library. If you're running Quake on a
|
||
glibc system, there are a few things to watch out for:
|
||
|
||
<itemize>
|
||
<item>Both RedHat 5 and Debian 2 have libc5 compatibility packages that allow
|
||
you to run libc5-based applications. Make sure you have these packages installed.
|
||
Both distributions put the libc5-based libraries in <tt>/usr/i486-linux-libc5/lib</tt>.
|
||
<item>Make sure Quake uses the correct libraries. Create a script like the one below
|
||
that points <tt>$LD_LIBRARY_PATH</tt> to your compatibility libraries directory before
|
||
it runs Quake.
|
||
<code>
|
||
#!/bin/sh
|
||
export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib
|
||
./quake2 +set vid_ref gl $*
|
||
</code>
|
||
<item>If you are going to compile a library like SVGAlib or Mesa
|
||
for use with Quake, it must be compiled with libc5 and friends.
|
||
Simply building a new library according its installation
|
||
instructions will result in a library that is linked against your
|
||
default library, glibc. You must ensure your new library is
|
||
linked only with libc5 and libc5-based libraries so it will be
|
||
compatible with Quake. See your distribution's documentation for
|
||
information on linking to the non-default libraries.
|
||
</itemize>
|
||
|
||
|
||
<sect2>My mouse doesn't work or seems to respond randomly. **
|
||
<p>
|
||
<itemize>
|
||
<item>Is gpm running? gpm is a program that enables you to cut and paste
|
||
with the mouse in virtual consoles. Many distributions enable it by
|
||
default. It may be interfering with Quake. Check if it's running with
|
||
the following command:
|
||
<tscreen><verb>
|
||
ps aux | grep gpm
|
||
</verb></tscreen>
|
||
If you get output like
|
||
<tscreen><verb>
|
||
root 6115 0.0 0.4 832 316 ? S 17:54 0:00 gpm -t PS/2
|
||
</verb></tscreen>
|
||
then gpm is running and interfering with Quake. <tt>gpm -k</tt> (as root)
|
||
ought to stop gpm. If it doesn't (<tt>gpm -k</tt> doesn't always work on
|
||
my system), kill gpm with the command <tt>killall gpm</tt>.
|
||
|
||
If you never use gpm, you may want to stop it from running at startup.
|
||
See the documentation for your distribution for information on how to do
|
||
this.
|
||
<p>
|
||
<item>Is your mouse defined properly in <tt>libvga.config</tt>? This file
|
||
usually lives in <tt>/etc</tt> or <tt>/etc/vga</tt>. Open it up and look
|
||
for a line like
|
||
<tscreen><verb>
|
||
mouse Microsoft
|
||
</verb></tscreen>
|
||
On my system, this is the first option in the file. Make sure the mouse
|
||
type is appropriate for your hardware.
|
||
<p>
|
||
<item>Do you have RW permissions for your mouse device? The permissions
|
||
of your mouse device may only allow you read access to it. Quake wants
|
||
to open it read-write, so you'll need to either do a <tt>chmod 666</tt> to it,
|
||
or run as a user or group that's allowed to read and write to it.
|
||
The actual device file in question will vary according what type of mouse
|
||
you have on your system. Most of the time, <tt>/dev/mouse</tt> is a
|
||
symbolic link to your actual mouse device file, so doing an
|
||
<tt>ls -l /dev/mouse</tt> should allow you to find which device file to modify.
|
||
|
||
</itemize>
|
||
|
||
<sect2>My Microsoft Intellimouse or Logitech MouseMan+ isn't working correctly.
|
||
<p>
|
||
SVGAlib, which handles mouse input for SVGA and GL Quake/QW/Q2,
|
||
didn't directly support the Intellimouse until version 1.3.0. If you have a
|
||
version of SVGAlib prior to 1.3.0, you should upgrade, then use mouse
|
||
type <tt>IntelliMouse</tt> (for serial mice) or <tt>IMPS2</tt> (for
|
||
PS/2 mice) in your <tt>libvga.config</tt> file.
|
||
|
||
<sect2>My mouse is "laggy" and seems much slower than under Windows.
|
||
<p>
|
||
<itemize>
|
||
<item>For many people, just cranking up the value of
|
||
<tt>sensitivity</tt> in the game console cures the problem.
|
||
Setting <tt>sensitivity</tt> by hand in the console or in a
|
||
<tt>.cfg</tt> file allows you to increase the mouse sensitivity
|
||
more than the slider in the Options menu allows. <tt>sensitivity 15</tt>,
|
||
for example.
|
||
|
||
<item> From Zoid's 1/7/98 .plan update:
|
||
<quote>If you are experience video 'lag' in the GL renderer (the frame
|
||
rate feels like it's lagging behind your mouse movement) type
|
||
"gl_finish 1" in the console. This forces update on a per frame
|
||
basis.</quote>
|
||
|
||
<item>The latest version of SVGAlib (1.3.0) provides a slew of parameters
|
||
in <tt>libvga.config</tt> that you can use to customize the behavior of
|
||
your mouse. With the proper settings it should be possible to make your
|
||
mouse feel any way you want. On my system, just changing
|
||
<tt>mouse_accel_type</tt> to <tt>normal</tt> (default is <tt>power</tt>)
|
||
gave me the results I wanted. I haven't messed with the other settings,
|
||
and I don't pretend to have a clue about what they all do.
|
||
|
||
</itemize>
|
||
|
||
<sect2>I have a Voodoo2, and when I try to run with the gl renderer it reports that I don't have a Voodoo card installed.
|
||
<p>
|
||
There are different versions of Glide for Voodoo and Voodoo 2 cards. Be
|
||
sure you downloaded the correct one for your system.
|
||
|
||
|
||
<sect2>When I'm playing any of the Quake games under SVGAlib or GL and press CTRL-C, the game exits and sometimes leaves my console in an unusable state.
|
||
<sect2>Sometimes when Quake/Quake II exits abnormally, it leaves my console unusable.
|
||
<p>
|
||
Yes. This bites. SVGAlib catches the CTRL-C and decides what to do with
|
||
it instead of allowing Quake to handle it. I know of no way around this
|
||
short of hacking SVGAlib.
|
||
|
||
If you run your Quake games from a script that resets the
|
||
keyboard and terminal like the one below, you'll run
|
||
less chance of ending up with a hosed terminal if this does happen, though.
|
||
|
||
<code>
|
||
#!/bin/sh
|
||
./quake2 $*
|
||
kbd_mode -a
|
||
reset
|
||
</code>
|
||
|
||
<sect2>squake/quake2 fails to start and says "<tt>svgalib: cannot get I/O permissions"</tt>
|
||
<p>
|
||
The Quake executables must run as root when using the SVGAlib renderer, so
|
||
you must either run them as root or make them setuid root. See the installation
|
||
instructions in this document for details.
|
||
|
||
<sect2>Sometimes after playing one of the Quake games in X, key repeat doesn't work any more.
|
||
<p>
|
||
For some reason, the X11 versions of Quake disable key repeat while
|
||
they're running. If the program exits abnormally for some reason, key
|
||
repeat never get turned back on. Do
|
||
<tscreen><verb>
|
||
xset r on
|
||
</verb></tscreen>
|
||
to reenable it.
|
||
|
||
<sect2>Quake/Quake II says "/dev/dsp : device not configured"
|
||
<p>
|
||
Your sound hardware is not properly configured. You may simply need to do
|
||
a <tt>insmod sound</tt>, or it may be necessary to rebuild your kernel.
|
||
RedHat users may need to invoke the <bf>sndconfig(8)</bf> utility.
|
||
See the documentation for your Linux distribution and/or the Linux Sound
|
||
HOWTO for information on configuring your system's sound hardware.
|
||
|
||
<sect2>GL Quake/Quake II run slower in Linux than in Windows. ++
|
||
<p>
|
||
The Windows 3Dfx GL miniport is heavily optimized for the things
|
||
Quake II does. Mesa on the other hand, is more general and less optimized
|
||
As a result, Linux Quake II runs slower than under Windows. This isn't a
|
||
limitation of Linux, but a limitation of the current drivers.
|
||
|
||
With the most recent releases of QuakeWorld and Quake II, the
|
||
3Dfx miniport mentioned above is available for Linux. Also, in Quake II
|
||
version 3.20, the OpenGL function handling code was completely rewritten,
|
||
resulting in significant speedups.
|
||
|
||
Additionally, for Pentium Pro and Pentium II users, there are
|
||
some tweaks than can be done with memory buffering - the latest
|
||
<tt>/dev/3dfx</tt> device driver has support for automatically
|
||
setting this up for you. Enabling MTRRs can result in
|
||
<em>significant</em> (10 fps on my system) GL Quake speedups. See <htmlurl
|
||
url="http://glide.xxedgexx.com/MTRR.html"
|
||
name="http://glide.xxedgexx.com/MTRR.html"> for some more
|
||
detailed information about this.
|
||
|
||
On a PPro/PII system with a Voodoo2, performance under Linux is now at
|
||
least as fast as under Windows.
|
||
|
||
<sect2>How can I start a server and log off, then come back to it later?
|
||
<p>
|
||
<bf>screen(1)</bf> is a great utility for this sort of thing. It
|
||
allows you to create many virtual screens in one tty and switch
|
||
between them.
|
||
Screen comes with most distributions. You can download it from
|
||
<htmlurl url="ftp://prep.ai.mit.edu/pub/gnu"
|
||
name="ftp://prep.ai.mit.edu/pub/gnu">
|
||
or any GNU mirror.
|
||
|
||
Start screen by typing the command <tt>screen</tt>, then create a new
|
||
screen window by pressing CTRL-A CTRL-C. You won't see much as
|
||
you do these things, but be assured, something is happening.
|
||
|
||
Start a Quakeworld server:
|
||
<tscreen><verb>
|
||
/usr/local/games/quake/qwsv
|
||
</verb></tscreen>
|
||
|
||
Now open a new screen window with CTRL-A CTRL-C and start up a
|
||
Quake II server:
|
||
<tscreen><verb>
|
||
/usr/local/games/quake2/quake2 +set dedicated 1
|
||
</verb></tscreen>
|
||
|
||
You can switch back and forth between your servers by pressing
|
||
CTRL-A CTRL-N.
|
||
|
||
Press CTRL-A CTRL-D to detach from the screen program. Screen
|
||
and your servers are still running, but they're no longer visible
|
||
in your terminal window. You can logoff now and your processes
|
||
will continue to run normally.
|
||
|
||
Use <tt>screen -r</tt> to re-attach to your previous screen
|
||
process and access your servers again.
|
||
|
||
That's all there is to it. See the <bf>screen(1)</bf> man page
|
||
for more detailed information.
|
||
|
||
<sect2>How can I keep the mouse from leaving the window in X? ++
|
||
<p>
|
||
From the Quake II <tt>readme.linux</tt> file (this applies to all version of Quake):
|
||
<quote>By default, the mouse will not be 'tied' to the Quake2 window.
|
||
To cause Quake2 to grab the mouse, select 'Windowed Mouse' from the video
|
||
menu, or type '_windowed_mouse 0' at the console. Do the reverse to
|
||
release it. You can bind keys to grab and release the mouse in the
|
||
console, like so:
|
||
bind i "_windowed_mouse 1"
|
||
bind o "_windowed_mouse 0"
|
||
Then "i" will grab the mouse and "o" will release it.
|
||
</quote>
|
||
|
||
<sect2>When I run Quake/QuakeWorld/Quake II under X, the image only takes up half the window and/or the colors are all funny. ++
|
||
<p>
|
||
The X clients only support color depths of 8 and 16 bits per pixel. Your
|
||
X server is probably running at 24 or 32 bpp. Change the default color depth
|
||
to 16 bpp and this problem will go away.
|
||
|
||
<sect2>Where can I get the source code for Quake/QuakeWorld/Quake II so I can compile it for PPC/Alpha/Gameboy/etc? ++
|
||
<p>
|
||
The source code for the Quake engines is the proprietary property of id Software. While
|
||
there's a good chance that id will release the source to Quake eventually like they did
|
||
for Wolfenstein 3-D and Doom, they have not done so yet. I don't have the source to Quake
|
||
no matter how nicely you ask me for it.
|
||
|
||
|
||
<sect1>Quake/QuakeWorld
|
||
<p>
|
||
<sect2>Quake dies at startup with a segmentation fault.
|
||
<p>
|
||
This usually means your network setup isn't right. Try starting quake
|
||
with the <tt>-noudp</tt> option and see if the error goes away. If that
|
||
fixes it, check your <tt>/etc/hosts</tt> file and verify there's an
|
||
entry for your machine in it. Use 127.0.0.1 for your IP address if you
|
||
have a dialup account that gives you a different address each time you
|
||
connect.
|
||
|
||
<sect2>What's the difference between <tt>glqwcl</tt>, <tt>glqwcl.3dfxgl</tt>, and <tt>glqwcl.glx</tt>?
|
||
<p>
|
||
<itemize>
|
||
<item><bf><tt>glqwcl</tt></bf> is the standard GL Quakeworld client you've
|
||
seen in previous versions. It's linked against libMesaGL.so.2.
|
||
<item><bf><tt>glqwcl.3dfxgl</tt></bf> is a script that runs <tt>glqwcl</tt>
|
||
after preloading the 3Dfx GL miniport library, <tt>lib3dfxgl.so</tt>. Preloading
|
||
the minport library causes its GL functions to get used instead of Mesa's. Since
|
||
the GL minport is optimized for Quake, this is a good thing.
|
||
<item><bf><tt>glqwcl.glx</tt></bf> is linked against standard OpenGL libriaries
|
||
instead of Mesa. This will allow glquake to run on other 3D hardware that is
|
||
supported by some other OpenGL implementation. This is an X application and
|
||
so must be run from X.
|
||
</itemize>
|
||
|
||
<sect2>When I run <tt>glqwcl.glx</tt> fullscreen from X, I can't use my mouse or keyboard.
|
||
<p>
|
||
|
||
Run <tt>glqwcl.glx</tt> with the <tt>+_windowed_mouse 1</tt>
|
||
option. GLX Quakeworld is running in a window, even though it
|
||
appears to take up your whole screen. If you move the mouse
|
||
while the window manager is in focus-follows-mouse mode, you're likely to
|
||
move the pointer outside this window, and then Quake will stop
|
||
responding to mouse and keyboard input. <tt>+_windowed_mouse 1</tt>
|
||
makes Quakeworld grab the mouse exclusively.
|
||
|
||
<sect1>Quake II
|
||
<p>
|
||
<sect2>When I try to run Quake II with the GL renderer, it fails and says "LoadLibrary("ref_gl.so") failed: Unable to resolve symbol"
|
||
<p>
|
||
If immediately prior to the "Unable to resolve symbol" line, you have
|
||
messages like "<tt>can't resolve symbol 'fxMesaCreateContext'</tt>", your
|
||
Mesa library doesn't have glide support compiled in.
|
||
See section <ref id="quake2-gl" name="The GL renderer"> in the
|
||
Quake II installation section for information on installing Mesa and
|
||
glide.
|
||
|
||
<sect2> Quake II fails with the message <tt>LoadLibrary("ref_XXX.so") failed: No such file or directory </tt>
|
||
<p>
|
||
<itemize>
|
||
<item><tt>/etc/quake2.conf</tt> doesn't have the correct path to your
|
||
Quake II directory in it. This file should contain one line that is the
|
||
directory Quake II lives in.
|
||
|
||
<item>If <tt>/etc/quake2.conf</tt> <em>does</em> contain the correct
|
||
path, try removing the file and re-creating it by hand. Some versions of
|
||
Quake II for Linux included an incorrectly formatted <tt>quake2.conf</tt>
|
||
file.
|
||
|
||
<item>Do you have SVGAlib installed? Check <tt>/lib</tt>,
|
||
<tt>/usr/lib</tt> and <tt>/usr/local/lib</tt> for a file called
|
||
<tt>libvga.so.1.X.X</tt>, where the X's are some numbers. If nothing
|
||
turns up, you need to get and install SVGAlib to run Quake II outside of
|
||
X.
|
||
|
||
<item>If the renderer in question is <tt>ref_gl.so</tt>, Mesa may not be
|
||
properly installed. Did you copy <tt>libMesaGL.so.2.6</tt> to a
|
||
library directory like the installation instruactions told you to?
|
||
|
||
<item>If the renderer in question is <tt>ref_gl.so</tt>, did you install
|
||
the glide libraries?
|
||
|
||
</itemize>
|
||
|
||
|
||
<sect2>When I update the brightness while using the GL renderer, and hit "apply," nothing happens!
|
||
<p>
|
||
|
||
Type <tt>vid_restart</tt> in the console to make the changes take
|
||
affect.
|
||
|
||
|
||
<sect2>Note about the 3.17 distribution<label id="3.17">
|
||
<p>
|
||
|
||
As of this writing, the most recent Quake II version is 3.20. If
|
||
for some reason, you're running version 3.17 instead, the
|
||
following information may be helpful to you.
|
||
|
||
Two text files (<tt>quake2.conf</tt> and <tt>fixperms.sh</tt>) in the 3.17
|
||
distribution were inadvertently saved in MS-DOS CR/LF text-file format
|
||
instead of the unix LF format. This means there's an extra carriage
|
||
return character at the end of each line in these files and they're not
|
||
going to behave right until you fix them.
|
||
|
||
We'll run them through <bf>tr(1)</bf> to strip out the CR's.
|
||
|
||
<tscreen><verb>
|
||
for i in fixperms.sh quake2.conf
|
||
do
|
||
mv $i $i.bak
|
||
tr -d '\r' < $i.bak > $i
|
||
done
|
||
</verb></tscreen>
|
||
|
||
<sect2>When I run Quake II with <tt>+set vid_ref glx</tt> fullscreen from X, I can't use my mouse or keyboard.
|
||
<p>
|
||
|
||
Run GLX <tt>quake2</tt> with the <tt>+set _windowed_mouse 1</tt>
|
||
option. GLX Quake2 is running in a window, even though it
|
||
appears to take up your whole screen. If you move the mouse
|
||
while the WM is in focus-follows-mouse mode, you're likely to
|
||
move the pointer outside this window, and then Quake II will stop
|
||
responding to mouse and keyboard input. <tt>+set _windowed_mouse
|
||
1</tt> makes Quake II grab the mouse exclusively.
|
||
|
||
<sect2>Why can't I change to some of the SVGA modes that are in the Quake II Video menu?
|
||
<p>
|
||
SVGAlib probably doesn't know how to create the modes on your card.
|
||
When Quake II starts up with the SVGA renderer (<tt>ref_soft.so</tt>),
|
||
it prints a list of all the modes that SVGAlib tells it are available:
|
||
<tscreen><verb>
|
||
------- Loading ref_soft.so -------
|
||
Using RIVA 128 driver, 4096KB.
|
||
mode 320: 200 1075253220
|
||
mode 320: 240 1075253220
|
||
mode 320: 400 1075253220
|
||
mode 360: 480 1075253220
|
||
mode 640: 480 1075253220
|
||
mode 800: 600 1075253220
|
||
mode 1024: 768 1075253220
|
||
mode 1280: 1024 1075253220
|
||
</verb></tscreen>
|
||
These are the only modes you will be able to successfully switch to from
|
||
the Video menu. If say, 512x384 isn't on the list, selecting it from the
|
||
Video menu won't work.
|
||
|
||
SVGAlib does let you define new video modes for some chipsets in
|
||
<tt>libvga.config</tt>, so you may be able create your own video mode this
|
||
way. See the SVGAlib documentation for more detail on this topic.
|
||
|
||
<sect2>When I try connect to a Quake II server that's running a mod, quake2 crashes with the message "Error: VID: Could not open display". **
|
||
<p>
|
||
|
||
According to Zoid, this problem occurs when the video system restarts
|
||
due to a gamedir change. Several libraries get unloaded and reloaded during
|
||
the restart, and this apparently causes quake2 to blow chunks on many systems.
|
||
|
||
The workaround solution is to set the <tt>game</tt> CVAR on the command line before
|
||
you start up <tt>quake2</tt>. So if you're going to connect to a CTF server,
|
||
you'd start <tt>quake2</tt> like:
|
||
<tscreen><verb>
|
||
./quake2 +set game ctf ...
|
||
</verb></tscreen>
|
||
This may seem inconvenient if you're used to connecting to new servers without
|
||
leaving the quake2 program, but unfortunately
|
||
it's the only way around this problem right now. A frontend program like
|
||
XQF will automatically do this command line stuff for you, so you ought to consider
|
||
using one if you're not currently doing so.
|
||
|
||
|
||
<!--==============================================================-->
|
||
<sect>Tips & Tricks<p>
|
||
<p>
|
||
|
||
<sect1>Running X and GL games without setuid <label id="no-setuid">
|
||
<p>
|
||
If you only run the X and GL versions of Quake, QuakeWorld or Quake II,
|
||
you don't need to run them with root permissions. SVGA is the only mode
|
||
that must be run as root. The X versions just need access to
|
||
<tt>/dev/dsp</tt>, the sound device. The GL versions need access to the
|
||
3Dfx card as well as to <tt>/dev/dsp</tt>.
|
||
|
||
<tt>/dev/dsp</tt> needs to be readable and writeable by Quake. Most
|
||
distributions give it 662 (<tt>rw-rw--w-</tt>) permissions by default. The
|
||
simplest solution is to just <tt>chmod 666 /dev/dsp</tt>. On most systems,
|
||
the ability to read from the sound device will not pose a significant security
|
||
threat. If this approach is unacceptable for your system, create a group that
|
||
owns <tt>/dev/dsp</tt> and make your Quake players members of that group.
|
||
|
||
You need the <tt>/dev/3dfx</tt> driver from Daryll Strauss' glide page
|
||
(<htmlurl url="http://glide.xxedgexx.com/3DfxRPMS.html"
|
||
name="http://glide.xxedgexx.com/3DfxRPMS.html">) in order run glide
|
||
applications (like GLQuake) non-root. Download the <tt>Device3Dfx.xxx.rpm</tt>
|
||
package and install according to the instructions on the web page.
|
||
After you've installed the driver, make sure <tt>/dev/3dfx</tt> has
|
||
666 permissions (<tt>chmod 666 /dev/3dfx</tt>).
|
||
|
||
When <tt>/dev/dsp</tt> and <tt>/dev/3dfx</tt> are properly set up, you can
|
||
remove the setuid bit from your Quake/QW/Q2 executables. Just do
|
||
(as root) <tt>chmod 0755 XXXXX</tt>, where <tt>XXXXX</tt> is either <tt>glquake</tt>,
|
||
<tt>quake.x11</tt>, or <tt>quake2</tt>.
|
||
|
||
If you've been playing as root prior to making these changes, many of your Quake
|
||
files (like savegames) may be owned by root and inaccessible to a normal
|
||
user, so remember to change the files' ownership before you attempt to
|
||
play the game non-root.
|
||
|
||
|
||
<sect1>Running SVGA and GL games from X <label id="running-from-x">
|
||
<p>
|
||
The GLX Quakeworld and Quake II clients are native X
|
||
applications, but since they use Mesa rather than the 3Dfx
|
||
mini-driver, they're slower than the <tt>lib3dfxgl.so</tt>
|
||
versions. For this reason, you may still favor this way of starting
|
||
games from X over using the GLX clients.
|
||
|
||
This is based on a Linux Gazette 2 Cent Tip by Joey Hess (<htmlurl
|
||
url="mailto:joey@kite.ml.org" name="joey@kite.ml.org">) The original is at
|
||
<htmlurl url="http://www.ssc.com/lg/issue20/lg_tips20.html#squake"
|
||
name="http://www.ssc.com/lg/issue20/lg_tips20.html#squake">
|
||
|
||
Yes, it's possible to run the Quake games from X if you're root, but such
|
||
behavior is naughty, and you still run the risk of having Quake crash
|
||
and leave the console unresponsive. With a little work you can make it
|
||
possible for a regular user to run SVGA and GL Quake from X <em>AND</em>
|
||
automatically switch back to X when the program is finished, regardless of
|
||
whether it exited normally or not.
|
||
|
||
Note: when I say "Quake" in the text below, I really mean "quake, glquake
|
||
squake, qwcl, glqwcl, qwcl.x11 or quake2".
|
||
|
||
<itemize>
|
||
<item>First, you'll need the <bf>open(1)</bf> package by Jon Tombs. This
|
||
is a set of two very small programs that allow you to switch between
|
||
virtual consoles and start programs on them. Download open from <htmlurl
|
||
url="http://sunsite.unc.edu/pub/Linux/utils/console/"
|
||
name="http://sunsite.unc.edu/pub/Linux/utils/console/">. You shouldn't
|
||
have to do much more than <tt>make;make install</tt> to compile and install
|
||
it. Once it's installed, you need to make the <tt>open</tt> and
|
||
<tt>switchto</tt> executables setuid root. So do this:
|
||
<tscreen><verb>
|
||
cd /usr/local/bin
|
||
chown root open switchto
|
||
chmod 4755 open switchto
|
||
</verb></tscreen>
|
||
|
||
<item>Next, save the following code to a file called <tt>getvc.c</tt>:
|
||
<code>
|
||
/* getvc.c
|
||
* Prints the number of the current VC to stdout. Most of this code
|
||
* was ripped from the open program, and this code is GPL'd
|
||
*
|
||
* Joey Hess, Fri Apr 4 14:58:50 EST 1997
|
||
*/
|
||
|
||
#include <sys/vt.h>
|
||
#include <fcntl.h>
|
||
|
||
main () {
|
||
int fd = 0;
|
||
struct vt_stat vt;
|
||
|
||
if ((fd = open("/dev/console",O_WRONLY,0)) < 0) {
|
||
perror("Failed to open /dev/console\n");
|
||
return(2);
|
||
}
|
||
if (ioctl(fd, VT_GETSTATE, &ero;vt) < 0) {
|
||
perror("can't get VTstate\n");
|
||
close(fd);
|
||
return(4);
|
||
}
|
||
printf("%d\n",vt.v_active);
|
||
}
|
||
|
||
/* End of getvc.c */
|
||
</code>
|
||
Compile it and install it somewhere in your <tt>$PATH</tt>:
|
||
<tscreen><verb>
|
||
gcc getvc.c -o getvc
|
||
strip getvc
|
||
mv getvc /usr/local/bin
|
||
</verb></tscreen>
|
||
|
||
<item>Now create a script called <tt>runvc</tt>:
|
||
your <tt>$PATH</tt>:
|
||
<code>
|
||
#!/bin/sh
|
||
# Run something on a VC, from X, and switch back to X when done.
|
||
# GPL Joey Hess, Thu, 10 Jul 1997 23:27:08 -0400
|
||
exec open -s -- sh -c "$* ; chvt `getvc`"
|
||
</code>
|
||
Make it executable and put it somewhere in your <tt>$PATH</tt>:
|
||
<tscreen><verb>
|
||
chmod 755 runvc
|
||
mv runvc /usr/local/bin
|
||
</verb></tscreen>
|
||
|
||
Now you can use the <tt>runvc</tt> command to start Quake. Continue to use
|
||
whatever command line you usually use to start your game, but put <tt>runvc</tt>
|
||
at the beginning:
|
||
<tscreen><verb>
|
||
runvc ./quake2 +set vid_ref gl +connect quake.foo.com
|
||
</verb></tscreen>
|
||
You'll automatically switch to a VC, run Quake and then switch back to X
|
||
when it's done!
|
||
|
||
<p>
|
||
<item><bf>Update:</bf> Joey Hess wrote in to say:
|
||
<quote>I'd like to point out that some people may find that this
|
||
doesn't work. If your /dev/ttyxx devices do not let you write
|
||
to them by default (a good idea), then the open command won't be able to
|
||
switch to them. In that case, you need to chown the next tty that is free
|
||
after you start up X. I do this in xdm's Xtartup_0 script, as follows:
|
||
<code>
|
||
# Set up tty8 as a console that is writable by the current user, so
|
||
# open -s commands can be used to run stuff there.
|
||
# Tty8 is used becuase it's the next free tty after 7 where X runs,
|
||
# and so open tries to use it.
|
||
chmod 640 /dev/tty8
|
||
chown $USER.root /dev/tty8
|
||
# This does open up a tiny security hole:
|
||
# user_a logs in with xdm, then logs out.
|
||
# user_b logs in at console.
|
||
# user_a can now redirect user_b to tty9 via the open command,
|
||
# and plop them down into some program that, perhaps, tries to
|
||
# persuade them to enter their password.
|
||
</code>
|
||
</quote>
|
||
|
||
|
||
</itemize>
|
||
|
||
<sect1>3Dfx "tweak" settings work in Linux too
|
||
<p>
|
||
You may have seen or heard mention of ways to "tweak" Quake's OpenGL
|
||
performance by setting various environment variables. These variables
|
||
are equally valid under Linux. You just set them slightly differently.
|
||
If a Windows/DOS "tweak" guide tells you to:
|
||
<tscreen><verb>
|
||
SET SST_GRXCLK=59
|
||
</verb></tscreen>
|
||
|
||
Under Linux, do it like this:
|
||
<tscreen><verb>
|
||
export SST_GRXCLK=59
|
||
</verb></tscreen>
|
||
|
||
<sect1>The Poor Man's Server Browser
|
||
<p>
|
||
Joe S. (<htmlurl url="mailto:jszabo@eden.rutgers.edu"
|
||
name="jszabo@eden.rutgers.edu">) suggests:
|
||
<tscreen><verb>
|
||
a trick I do with qstat:
|
||
I make a file of my favorite servers, then do
|
||
qstat -f /C/quake2/file.txt | less
|
||
</verb></tscreen>
|
||
|
||
hit control z to suspend, then copy the ip address or hostname I want
|
||
with gpm to a command line like:
|
||
|
||
<tscreen><verb>
|
||
./quake2 +connect expert.eqclans.com
|
||
</verb></tscreen>
|
||
Then I can use fg to go back to the list later...
|
||
|
||
<sect1>Using <tt>lib3dfxgl.so</tt> for Quake I <label id="miniport">
|
||
<p>
|
||
You can use the 3Dfx mini-driver (<tt>lib3dfxgl.so</tt>) from
|
||
Quakeworld or Quake II with <tt>glquake</tt> too. Simply copy
|
||
the <tt>glqwcl.3dfxgl</tt> or <tt>quake2.3dfxgl</tt>
|
||
scripts to a new file, say <tt>glquake.3dfxgl</tt>. Then edit the
|
||
<tt>glquake.3dfxgl</tt> script so it runs <tt>glquake</tt> instead of
|
||
<tt>glqwcl</tt>.
|
||
The same restrictions about running as root apply here, as do
|
||
the differences between running under glibc and libc5.
|
||
See the <ref id="qw-3dfxgl" name="Quakeworld"> or <ref id="q2-3dfxgl"
|
||
name="Quake II"> sections for more information on
|
||
<tt>lib3dfxgl.so</tt>.
|
||
|
||
<sect1>Getting rid of that annoying "POSSIBLE SCAN CODE ERROR 57" message in GLQuake. ++
|
||
<p>
|
||
If you're sick of seeing that useless message every time you press the space bar
|
||
in GLQuake, execute the following command from your quake directory and you'll
|
||
never have to deal with it again. This little piece of Perl code just replaces
|
||
the first character of the message with a null character, which signifies the end
|
||
of a string in C programs. Now when GLQuake thinks it needs to tell us about
|
||
a possible scan code error, it outputs an empty string instead! Oh, and your
|
||
original <tt>glquake</tt> binary gets automatically backed up to <tt>glquake.bak</tt>
|
||
too.
|
||
<tscreen><verb>
|
||
perl -i.bak -0777pe 's/P(ossible unknown scancode)/\0$1/g' glquake
|
||
</verb></tscreen>
|
||
|
||
Thanks to Andrew Chase (<htmlurl url="mailto:fixy@fixy.org" name="fixy@fixy.org">) for this.
|
||
|
||
|
||
<!--==============================================================-->
|
||
<sect>Administrivia
|
||
<p>
|
||
|
||
<sect1>New Versions of This Document
|
||
<p>
|
||
New versions of this document will be periodically posted to
|
||
<htmlurl url="news:comp.os.linux.answers" name="comp.os.linux.answers">
|
||
and <htmlurl url="news:rec.games.computer.quake.misc"
|
||
name="rec.games.computer.quake.misc">. They will also be uploaded to
|
||
various WWW and FTP sites, including the
|
||
<htmlurl url="http://sunsite.unc.edu/LDP" name="LDP home page">.
|
||
|
||
New versions of this document will be periodically posted to
|
||
<htmlurl url="news:rec.games.computer.quake.misc"
|
||
name="rec.games.computer.quake.misc"> and <htmlurl
|
||
url="news:comp.os.linux.misc" name="comp.os.linux.misc">.
|
||
|
||
The latest version of the Linux Quake HOWTO can always be found at the
|
||
following sites:
|
||
|
||
<itemize>
|
||
<item><htmlurl url="http://www.linuxquake.com/" name="http://www.linuxquake.com/">
|
||
<item><htmlurl url="http://webpages.mr.net/bobz/" name="http://webpages.mr.net/bobz/">
|
||
<item><htmlurl url="http://www.linuxgames.com/quake" name="http://www.linuxgames.com/quake">
|
||
</itemize>
|
||
|
||
<sect1>Distribution Policy
|
||
<p>
|
||
|
||
Copyright (c) 1998, Bob Zimbinski, Brett A. Thomas and Mike Hallock.
|
||
This document may be distributed under the terms set forth in the LDP
|
||
license at <htmlurl url="http://sunsite.unc.edu/LDP/COPYRIGHT.html"
|
||
name="sunsite.unc.edu/LDP/COPYRIGHT.html">.
|
||
|
||
This HOWTO is free documentation; you can redistribute it and/or modify it
|
||
under the terms of the LDP license. This document is distributed in the
|
||
hope that it will be useful, but <em>without any warranty</em>; without
|
||
even the implied warranty of <em>merchantability</em> or <em>fitness for a
|
||
particular purpose</em>. Heck, even if this document <em>kills your
|
||
dog</em>, it's not our fault.
|
||
|
||
See the LDP license for more details.
|
||
|
||
<sect1>Revision History
|
||
<p>
|
||
Sections of this document that were updated in the last revision
|
||
have a ** after the section heading. Sections updated in the revision
|
||
prior to the last are marked with a ++.
|
||
|
||
Below is the full revision history of this document. It is not intended
|
||
to be useful to anyone but the document authors.
|
||
|
||
<code>
|
||
$Log$
|
||
Revision 1.0.1.18 1998/12/19 00:56:31 bobz
|
||
Minor typo removed
|
||
|
||
Revision 1.0.1.17 1998/12/19 00:45:01 bobz
|
||
Moved "Other Formats" section to top of the document for better visibility
|
||
Added troubleshooting topic about crashes upon connecting to a server w/different gamedir
|
||
Added mention of RedHat's broken ld.so configuration to Mesa sections
|
||
Added details about using the new gl_driver cvar
|
||
Added troubleshooting bit about mouse permissions
|
||
|
||
Revision 1.0.1.16 1998/12/12 05:34:02 bobz
|
||
updated file links for quake2 version 3.20
|
||
URL change for Linux Game Tome
|
||
Added linuxgames.org to list of Linux Game sites
|
||
Removed nasty references to /usr/games/quake as installation dir
|
||
Removed info about compiling libc5 libraries for use with Q2
|
||
Added a few sentences about /dev/3dfx and mtrr support in the Q1 & Q2 glide sections.
|
||
Added a warning about using the glide library from 3dfx's site
|
||
mentioned that GLX versions no longer require svgalib
|
||
Updated performance FAQ
|
||
Moved mouse in X tip from Tips to FAQ
|
||
Added Vispatch to Related Software
|
||
Added quakelaunch to Related Software
|
||
Added qplog to Related Software
|
||
Added link to server setup guide at 3dgw.com
|
||
Added X color depth FAQ
|
||
Added Quake source code FAQ
|
||
Added new info from JH in Running from X Tip.
|
||
Added fix for POSSIBLE UNKNOWN SCANCODE in glquake
|
||
Minor wording changes and type fixes throughout
|
||
|
||
Revision 1.0.1.15 1998/10/05 21:09:42 bobz
|
||
Fixed a few typos and spelling errors that I missed last time around
|
||
|
||
Revision 1.0.1.14 1998/10/05 19:54:17 bobz
|
||
Removed the long-dead LinQuake page from list of Linux Quake sites
|
||
Removed renaissoft.com link
|
||
Minor wording changes throughout
|
||
Added link to svgalib libc5 binary
|
||
Added info about q2 demo
|
||
Updated q2 installation info for the 3.19 release
|
||
moved section about 3.17 textfile problems to the troubleshooting section
|
||
Added part about lib3dfxgl.so to QW section
|
||
Added part about GLX client to QW section
|
||
Added part about lib3dfxgl.so to Q2 section
|
||
Added part about GLX client to Q2 section
|
||
Updated "slower than windows" FAQ
|
||
Removed obsolete TS tip about glibc & q2
|
||
Removed obsolete TS tip about playing w/CD mounted
|
||
Changed tip about running glquake with lib3dfxgl.so
|
||
Added instructions for Q2 mission pack 2
|
||
Added pointer to svgalib libc5 binary
|
||
Added FAQ about svgalib modes in Q2
|
||
Added Cheapo proxy to software section
|
||
Added screen FAQ
|
||
Added qgraph to software sectoin
|
||
Decided I was lying when I promised a 3Dfx tweak section in the next update
|
||
|
||
Revision 1.0.1.13 1998/09/02 01:35:18 bobz
|
||
Fixed some broken url links
|
||
Restored <author> tag
|
||
added an acknowledgement
|
||
added a reminder to the non-root tip
|
||
added qlog listing
|
||
|
||
Revision 1.0.1.12 1998/08/30 21:35:23 bobz
|
||
Updated QuakeWorld install section for 2.30 release
|
||
Updated QW file list
|
||
Updated Quake 1.01 install info per email suggestion
|
||
Added QW 2.30 caveat to "Glibc considerations" section
|
||
Updated linux vs. windows speed section for new 3dfx miniport
|
||
Added glqwcl versions FAQ
|
||
Added troubleshooting tip about windows focus and glx
|
||
Added a sentence about /dev/3dfx permissions
|
||
Made runvc script usage clearer
|
||
Added tip about using mini-driver with Quake & QuakeII
|
||
|
||
Revision 1.0.1.11 1998/08/15 19:28:49 bobz
|
||
Added glibc topic in Troubleshooting/FAQ section
|
||
Moved non-setuid info to Tips & Tricks section
|
||
Moved rcs log into Revision Hist section
|
||
Changed distribution info a little until LDP wakes up
|
||
Changed references to quake.medina.net to www.linuxquake.com
|
||
Added linuxgames.com to list of places to get current version
|
||
Changed 3dfx Howto pointer
|
||
Moved explanation of change markings (** and ++) to intro section where they'll be noticed
|
||
Mentioned zoid's GL driver port in the Win vs Linux FAQ
|
||
Fixed credit and URL in q2getty
|
||
|
||
Revision 1.0.1.10 1998/08/07 19:07:02 bobz
|
||
Changed XQF url
|
||
Added comments to the revision history section
|
||
Started marking changed sections
|
||
Added OS Considerations to troubleshooting section
|
||
Added rcon to Other Software section
|
||
Added ICE to Other Software section
|
||
|
||
Revision 1.0.1.9 1998/08/04 21:06:22 bobz
|
||
Updated Acknowledgements
|
||
Added discussion of Quake security
|
||
Added QIPX to "Related Software"
|
||
Added ts topic about -noudp
|
||
|
||
Revision 1.0.1.8 1998/08/03 22:09:28 bobz
|
||
Updated and restructured the q2 mods section
|
||
Minor change to gpm troubleshooting info
|
||
Changed sound ts info
|
||
Changed intellimouse ts info
|
||
|
||
Revision 1.0.1.7 1998/08/03 04:55:21 mikeh
|
||
Added "Playing" section of Q2 Mods & Addons section.
|
||
Added "Intelimouse" section of Troubleshooting section
|
||
Added RedHat sndconfig part to Troubleshooting section
|
||
Fixed a few spacing problems, and one error message
|
||
|
||
Revision 1.0.1.6 1998/08/03 02:01:13 bobz
|
||
Changed abstract.
|
||
|
||
Revision 1.0.1.5 1998/07/31 16:07:11 bobz
|
||
Added gpm -k mention in mouse troubleshooting
|
||
mentioned 'sensitivity' in mouse lag troubleshooting
|
||
Added qstat|less tip
|
||
Added "/dev/dsp not configured" to troubleshooting
|
||
Slightly reworded part of the mod compiling section
|
||
Added bit about running mods server side
|
||
corrected required version # in q2 mission pack 1
|
||
Updated acknowledgements section
|
||
|
||
Revision 1.0.1.4 1998/07/30 21:08:46 bobz
|
||
Fixed a problem with broken lines in <sect> tags
|
||
|
||
Revision 1.0.1.3 1998/07/30 17:40:29 bobz
|
||
Fixed broken link to Latex version.
|
||
|
||
Revision 1.0.1.2 1998/07/30 15:46:40 bobz
|
||
Test update.
|
||
|
||
Revision 1.0.1.1 1998/07/30 15:43:59 bobz
|
||
Changed version numbering scheme.
|
||
|
||
Revision 1.10 1998/07/30 13:51:24 bobz
|
||
Minor version reporting change
|
||
|
||
Revision 1.9 1998/07/29 20:42:03 bobz
|
||
Added some server links
|
||
|
||
Revision 1.8 1998/07/29 17:37:15 bobz
|
||
Added a Quake II model viewer to the Other Programs section
|
||
|
||
Revision 1.7 1998/07/29 16:02:23 bobz
|
||
Added some relative links in Other Formats to make it
|
||
more portable.
|
||
|
||
Revision 1.6 1998/07/29 15:18:12 bobz
|
||
Version and date stamps back to the way they were
|
||
|
||
Revision 1.5 1998/07/29 14:52:03 bobz
|
||
Added tags for automatic timestamping
|
||
|
||
Revision 1.4 1998/07/29 13:17:51 bobz
|
||
Changed captured.com's web address per webmaster's request
|
||
|
||
Revision 1.3 1998/07/29 02:11:02 bobz
|
||
Ooops again. Made "Other formats" a <sect> instead of a <sect1>.
|
||
|
||
Revision 1.2 1998/07/29 01:55:41 bobz
|
||
Oops. I deleted the doctype tag...
|
||
|
||
Revision 1.1 1998/07/29 01:48:34 bobz
|
||
Added Other Formats section.
|
||
Changed acknowledgments slightly
|
||
Added ftp.medina.net to list of ftp sites.
|
||
|
||
Revision 1.0 1998/07/28
|
||
First publicly released version
|
||
|
||
Revision 0.9 1998/07/25
|
||
Restructured,rewritten and expanded by Bob Zimbinski.
|
||
|
||
Revision 0.01 1998/06/16
|
||
First Pre-Release version v0.01by Brett A. Thomas and Mike Hallock.
|
||
</code>
|
||
|
||
</article>
|
||
|