mirror of https://github.com/tLDP/LDP
2916 lines
123 KiB
Plaintext
2916 lines
123 KiB
Plaintext
|
<!doctype linuxdoc system
|
|||
|
[ <!entity RCSID "$Id$" >
|
|||
|
<!entity CurrentDate "30 August 1998" >
|
|||
|
<!entity CurrentVer "1.0.1.14" >
|
|||
|
] >
|
|||
|
<article>
|
|||
|
|
|||
|
<title>Linux Quake HOWTO
|
|||
|
<author>Bob Zimbinski <tt/bobz@mr.net/
|
|||
|
<date>v1.0.1.14, 30 August 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 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>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.
|
|||
|
|
|||
|
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.
|
|||
|
</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>LinuxGames <htmlurl
|
|||
|
url="http://www.linuxgames.com/" name="http://www.linuxgames.com/">
|
|||
|
<item>The Linux Game Tome <htmlurl
|
|||
|
url="http://www.cs.washington.edu/homes/tlau/tome/linux-game.html"
|
|||
|
name="http://www.cs.washington.edu/homes/tlau/tome/linux-game.html">
|
|||
|
</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/lqstuff" name="ftp.linuxquake.com/lqstuff">
|
|||
|
(Michigan, 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. Lots of folks like to put it in <tt>/usr/games/quake</tt>. Anal
|
|||
|
system administrator that I am, I choose to install anything that's not
|
|||
|
part of my Linux distribution under <tt>/usr/local</tt>. So
|
|||
|
for me, Quake goes in <tt>/usr/local/games/quake</tt>. 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 the
|
|||
|
CD is mounted. 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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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>
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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.19a-i386-unknown-linux2.0.tar.gz"
|
|||
|
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-i386-unknown-linux2.0.tar.gz">
|
|||
|
<item>glibc tar.gz package <htmlurl
|
|||
|
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-i386-unknown-linux2.0.tar.gz"
|
|||
|
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-i386-unknown-linux2.0.tar.gz">
|
|||
|
<item>libc5 rpm package <htmlurl
|
|||
|
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-2.i386.rpm"
|
|||
|
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-2.i386.rpm">
|
|||
|
<item>glibc rpm package <htmlurl
|
|||
|
url="ftp://ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-2.i386.rpm"
|
|||
|
name="ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-2.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/q2source-3.14.shar.Z"
|
|||
|
name="ftp://ftp.idsoftware.com/idstuff/quake2/source/q2source-3.14.shar.Z">
|
|||
|
<item>Quake II Capture the Flag <htmlurl
|
|||
|
url="ftp://ftp.idsoftware.com/idstuff/quake2/ctf/102.zip"
|
|||
|
name="ftp://ftp.idsoftware.com/idstuff/quake2/ctf/102.zip">
|
|||
|
</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. Lots of folks like to put it in <tt>/usr/games/quake</tt>. Anal
|
|||
|
system administrator that I am, I choose to install anything that's not
|
|||
|
part of my Linux distribution under <tt>/usr/local</tt>. So
|
|||
|
for me, Quake II goes in <tt>/usr/local/games/quake2</tt>. 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 it needs
|
|||
|
(<tt>ref_*.so</tt>). 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 the CD is mounted. 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. 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 II.
|
|||
|
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 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
|
|||
|
</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"> section.
|
|||
|
|
|||
|
<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.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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 <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>
|
|||
|
|
|||
|
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>
|
|||
|
|
|||
|
Now switch to a VC (CTRL+ALT+F1) and start Quake II:
|
|||
|
|
|||
|
<tscreen><verb>
|
|||
|
cd /usr/local/games/quake2
|
|||
|
./quake2 +set vid_ref gl
|
|||
|
</verb></tscreen>
|
|||
|
|
|||
|
<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 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 Quake II packages come with a script,
|
|||
|
<tt>quake2.3dfxgl</tt> for running Quake II with this
|
|||
|
library on glibc systems. The next paragraph explains how to run
|
|||
|
Quake II with <tt>lib3dfxgl.so</tt> on a libc5 system. On a
|
|||
|
glibc system, 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, the non-root requirements mentioned above apply,
|
|||
|
but you also 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/quake2
|
|||
|
ln -sf lib3dfxgl.so libMesaGL.so.2
|
|||
|
</verb></tscreen>
|
|||
|
Then start Quake II 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" ./quake2 +set vid_ref gl $*
|
|||
|
</code>
|
|||
|
|
|||
|
|
|||
|
You can tell which driver is being loaded by looking for output
|
|||
|
like the following in your console as Quake II 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.
|
|||
|
|
|||
|
<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.
|
|||
|
|
|||
|
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. More
|
|||
|
detailed information about running Quake II servers is available elsewhere
|
|||
|
(see section <ref id="other-sources" name="Other Sources of Information">
|
|||
|
earlier in this document.
|
|||
|
|
|||
|
<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/q2source-3.14.shar.Z
|
|||
|
sh /wherever/you/put/it/q2source-3.14.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 it 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">.
|
|||
|
|
|||
|
|
|||
|
<!--==============================================================-->
|
|||
|
<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>. 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 to work 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. 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. Using the
|
|||
|
incorrectly formatted <tt>quake2.conf</tt> file from the Quake2 3.17 package, for
|
|||
|
example, gives 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 <label id="glibc">**
|
|||
|
<p>
|
|||
|
The following applies 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
|
|||
|
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.
|
|||
|
|
|||
|
</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. <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.
|
|||
|
|
|||
|
<item>The little slider
|
|||
|
</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, 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. While it
|
|||
|
still doesn't bring Linux Quake performance to par with Windows
|
|||
|
Quake, it's another step in that direction.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
<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.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<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 WM 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.19. 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 aree 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.
|
|||
|
|
|||
|
|
|||
|
<!--==============================================================-->
|
|||
|
<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 XXXXX 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!
|
|||
|
</itemize>
|
|||
|
|
|||
|
|
|||
|
<sect1>Keeping the mouse inside the window in X
|
|||
|
<p>
|
|||
|
From the Quake II <tt>readme.linux</tt> file:
|
|||
|
<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>
|
|||
|
|
|||
|
<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>.
|
|||
|
|
|||
|
<!--==============================================================-->
|
|||
|
<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>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>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.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>
|
|||
|
|