home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Quake-HOWTO < prev    next >
Text File  |  1998-10-09  |  109KB  |  3,631 lines

  1.   Linux Quake HOWTO
  2.   Bob Zimbinski bobz@mr.net
  3.   v1.0.1.14, 30 August 1998
  4.  
  5.   This document explains how to install, run and troubleshoot Quake,
  6.   QuakeWorld and Quake II on an Intel Linux system.
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.      1.1 Feedback,Comments, Corrections
  70.      1.2 Acknowledgments **
  71.      1.3 Other Sources of Information
  72.         1.3.1 Linux-Specific Quake Information **
  73.         1.3.2 General Quake Information
  74.         1.3.3 Linux Gaming Information
  75.  
  76.   2. Quake/Quakeworld
  77.  
  78.      2.1 Minimum Requirements
  79.      2.2 Installing Quake
  80.         2.2.1 Download the Necessary Files
  81.         2.2.2 Create the Installation Directory ++
  82.         2.2.3 Installing From a Quake CD ++
  83.         2.2.4 DOS/Windows to Linux Install
  84.         2.2.5 Shareware Version Install
  85.      2.3 Adding the Linux Binaries
  86.      2.4 Setting Permissions
  87.      2.5 X11 Quake
  88.      2.6 SVGAlib Quake
  89.      2.7 GLQuake
  90.         2.7.1 SVGAlib
  91.         2.7.2 Glide
  92.         2.7.3 Mesa
  93.      2.8 Linux-Specific Command Line Options
  94.      2.9 QuakeWorld **
  95.         2.9.1 Installing the RPM packages ++
  96.         2.9.2 Installing the tar.gz packages ++
  97.         2.9.3 Running QuakeWorld ++
  98.      2.10 Servers
  99.      2.11 Mods & Addons
  100.         2.11.1 Capture the Flag
  101.         2.11.2 Mission Packs **
  102.         2.11.3 Quake Tools
  103.  
  104.   3. Quake II
  105.  
  106.      3.1 Prerequisites
  107.      3.2 Installing Quake II
  108.         3.2.1 Download the Necessary Files
  109.         3.2.2 Create the Installation Directory
  110.         3.2.3 Installing from CD
  111.         3.2.4 Windows to Linux install
  112.         3.2.5 Installing the demo version **
  113.      3.3 Adding the Linux Binaries
  114.         3.3.1 Installing the RPM packages **
  115.         3.3.2 Installing the tar.gz packages **
  116.      3.4 Setting Permissions **
  117.         3.4.1 Quake2.conf **
  118.      3.5 The X Renderer
  119.      3.6 The SVGAlib Renderer
  120.      3.7 The OpenGL Renderer
  121.         3.7.1 SVGAlib
  122.         3.7.2 Glide
  123.         3.7.3 Mesa
  124.         3.7.4 lib3dfxgl.so
  125.      3.8 The GLX Renderer
  126.      3.9 Linux-Specific Command Line Options
  127.      3.10 Quake II Servers
  128.         3.10.1 Listen Servers
  129.         3.10.2 Dedicated Servers
  130.         3.10.3 Other Sources of Server Information
  131.      3.11 Mods & Addons
  132.         3.11.1 Client Side Mods
  133.            3.11.1.1 Capture the Flag
  134.         3.11.2 Server Side Mods
  135.         3.11.3 Game Source
  136.         3.11.4 Mission Packs **
  137.  
  138.   4. Related Software
  139.  
  140.      4.1 QStat
  141.      4.2 XQF
  142.      4.3 QuickSpy
  143.      4.4 QPlug for Linux
  144.      4.5 qkHacklib
  145.      4.6 GiMd2Viewer
  146.      4.7 QIPX
  147.      4.8 Ice
  148.      4.9 Q2getty
  149.      4.10 rcon
  150.      4.11 qlog ++
  151.      4.12 Cheapo **
  152.      4.13 qgraph **
  153.  
  154.   5. Troubleshooting/FAQs
  155.  
  156.      5.1 General
  157.         5.1.1 OS difference considerations
  158.         5.1.2 Glibc, RedHat 5.x, Debian 2 considerations
  159.         5.1.3 My mouse doesn't work or seems to respond randomly.
  160.         5.1.4 My Microsoft Intellimouse or Logitech MouseMan+ isn't working correctly.
  161.         5.1.5 My mouse is "laggy" and seems much slower than under Windows.
  162.         5.1.6 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.
  163.         5.1.7 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.
  164.         5.1.8 Sometimes when Quake/Quake II exits abnormally, it leaves my console unusable.
  165.         5.1.9 squake/quake2 fails to start and says "
  166.         5.1.10 Sometimes after  playing one of the Quake games in X, key repeat doesn't work any more.
  167.         5.1.11 Quake/Quake II says "/dev/dsp : device not configured"
  168.         5.1.12 GL Quake/Quake II run slower in Linux than in Windows. **
  169.         5.1.13 How can I start a server and log off, then come back to it later? **
  170.      5.2 Quake/QuakeWorld
  171.         5.2.1 Quake dies at startup with a segmentation fault.
  172.         5.2.2 What's the difference between
  173.         5.2.3 When I run
  174.      5.3 Quake II
  175.         5.3.1 When I try to run Quake II with the GL renderer, it fails and says "LoadLibrary("ref_gl.so") failed: Unable to resolve symbol"
  176.         5.3.2 Quake II fails with the message
  177.         5.3.3 When I update the brightness while using the GL renderer, and hit "apply," nothing happens!
  178.         5.3.4 Note about the 3.17 distribution
  179.         5.3.5 When I run Quake II with
  180.         5.3.6 Why can't I change to some of the SVGA modes that aree in the Quake II Video menu? **
  181.  
  182.   6. Tips & Tricks
  183.  
  184.      6.1 Running X and GL games without setuid
  185.      6.2 Running SVGA and GL games from X
  186.      6.3 Keeping the mouse inside the window in X
  187.      6.4 3Dfx "tweak" settings work in Linux too
  188.      6.5 The Poor Man's Server Browser
  189.      6.6 Using
  190.  
  191.   7. Administrivia
  192.  
  193.      7.1 New Versions of This Document
  194.      7.2 Other Formats of This Document
  195.      7.3 Distribution Policy
  196.      7.4 Revision History
  197.  
  198.  
  199.   ______________________________________________________________________
  200.  
  201.   1.  Introduction
  202.  
  203.   Quake, QuakeWorld and Quake II are tremendously popular 3D action
  204.   games developed by id Software.
  205.  
  206.   If you're not familiar with the Quake games, there are better places
  207.   than this HOWTO to learn about the basics.  See section ``Other
  208.   Sources of Information'' below for a list of some of these better
  209.   places.
  210.  
  211.   This document assumes you have Linux up and running, and in some cases
  212.   the X Window System as well.  X is not required to run these games,
  213.   but it's a nice way to test a basic installation. If you are not
  214.   running X, you may safely skip over any references to it.
  215.  
  216.   Sections of this document that were updated in the last revision have
  217.   a ** after the section heading.  Sections updated in the revision
  218.   prior to the last are marked with a ++.
  219.  
  220.  
  221.  
  222.   1.1.  Feedback,Comments, Corrections
  223.  
  224.   This document certainly does not contain everything there is to know
  225.   about Linux Quake.  With your help, though, we can bring it closer to
  226.   that ideal.  We want this HOWTO to be as complete and accurate as
  227.   possible, so if you notice mistakes or omissions, please bring them to
  228.   our attention.
  229.  
  230.   Questions, comments, or corrections should be sent to Bob Zimbinski
  231.   (bobz@mr.net) or Mike Hallock (mikeh@medina.net).  Constructive
  232.   criticism is welcome.  Flames are not.
  233.  
  234.  
  235.   1.2.  Acknowledgments **
  236.  
  237.   The original version of this document was written by Brett A.Thomas
  238.   (quark@baz.com) and Mike Hallock (mikeh@medina.net).  Bob Zimbinski
  239.   (bobz@mr.net) rewrote and expanded the original document.
  240.  
  241.   Special thanks to the following people for bringing us Quake for
  242.   Linux:
  243.  
  244.   ╖  John Carmack and the rest of id Software for these great games.
  245.  
  246.   ╖  Dave 'Zoid' Kirsch (zoid@idsoftware.com) for the Linux ports.
  247.  
  248.   ╖  Dave Taylor (ddt@crack.com) for starting this whole wacky Linux
  249.      port business.
  250.  
  251.   ╖  Daryll Strauss (daryll@harlot.rb.ca.us) for the Linux glide ports.
  252.  
  253.   ╖  Brian Paul (brianp@elastic.avid.com) for the Mesa graphics library.
  254.  
  255.   ╖  David Bucciarelli (tech.hmw@plus.it) for the Mesa/glide driver.
  256.  
  257.   Thanks to the following people for contributions to this Howto:
  258.  
  259.   ╖  Mike Brunson (brunson@l3.net) for the vid_restart tip.
  260.  
  261.   ╖  Joey Hess (joey@kite.ml.org) for info on running svga & gl games
  262.      from X
  263.  
  264.  
  265.   ╖  Joe S. (jszabo@eden.rutgers.edu) for a steaming pile of suggestions
  266.  
  267.   ╖  Brad Lambert (bradl@dial.pipex.com) for the -noudp reminder.
  268.  
  269.   ╖  agx (gguenthe@iris.rz.uni-konstanz.de) for Quake installation info
  270.      and pointing out QIPX.
  271.  
  272.   ╖  Derrik Pates (dmp8309@silver.sdsmt.edu) for making me think about
  273.      security.
  274.  
  275.   ╖  Michael Dwyer (michael_dwyer@mwiworks.com) for the "OS
  276.      considerations" ideas.
  277.  
  278.   ╖  Derek Simkowiak (dereks@kd-dev.com) for the Quake I CD installation
  279.      procedure.
  280.  
  281.   ╖  sunstorm (sunstorm@glasscity.net) Quake Mission Pack 2 information.
  282.  
  283.   ╖  Neil Marshall (marshall@pssnet.com) for screen info.
  284.  
  285.  
  286.   1.3.  Other Sources of Information
  287.  
  288.  
  289.  
  290.   1.3.1.  Linux-Specific Quake Information **
  291.  
  292.  
  293.   ╖  LQ:Linux Quake & Utilites http://www.linuxquake.com/.
  294.  
  295.   ╖  Linux Quake Page http://captured.com/threewave/linux/
  296.  
  297.   ╖  QuakeWorld.net http://www.quakeworld.net
  298.  
  299.  
  300.   1.3.2.  General Quake Information
  301.  
  302.  
  303.   ╖  id Software http://www.idsoftware.com
  304.  
  305.   ╖  PlanetQuake http://www.planetquake.com
  306.  
  307.   ╖  QuakeWorld Central http://qwcentral.stomped.com
  308.  
  309.   ╖  3Dfx's GL Quake FAQ (somewhat out of date)
  310.      http://www.3dfx.com/game_dev/quake_faq.html
  311.  
  312.   ╖  Farenheit 176 Console Command Listing
  313.      http://www.planetquake.com/f176
  314.  
  315.   ╖  rec.games.computer.quake.* newsgroups
  316.  
  317.  
  318.   1.3.3.  Linux Gaming Information
  319.  
  320.  
  321.   ╖  LinuxGames http://www.linuxgames.com/
  322.  
  323.   ╖  The Linux Game Tome
  324.      http://www.cs.washington.edu/homes/tlau/tome/linux-game.html
  325.  
  326.  
  327.   2.  Quake/Quakeworld
  328.  
  329.   To install Quake on your Linux system, you'll need some flavor of the
  330.   official Quake distribution from id.  This will be either the retail
  331.   DOS/Windows CD-ROM that you bought at your favorite software store, or
  332.   the shareware version you downloaded from the net (see ``below'' for
  333.   details on acquiring the shareware version).   Alternatively, if
  334.   you've already got Quake installed on a DOS/Windows machine, you can
  335.   use the relevant files from that installation.
  336.  
  337.  
  338.   2.1.  Minimum Requirements
  339.  
  340.   You will need, as a bare minimum, the following:
  341.  
  342.  
  343.   ╖  A Pentium 90 or better (133 recommended) computer
  344.  
  345.   ╖  16 MB RAM (24 recommended)
  346.  
  347.   ╖  The Quake CD-ROM or the shareware version (quake106.zip)
  348.  
  349.   ╖  Linux kernel version 2.0.24 or later
  350.  
  351.   ╖  libc 5.2.18 or later
  352.  
  353.   ╖  One of the following:
  354.  
  355.   ╖  X11R5 or later (for xquake)
  356.  
  357.   ╖  SVGAlib 1.2.0 or later (for squake and glquake)
  358.  
  359.   ╖  30-80 megabytes free disk space (depends on how you install)
  360.  
  361.   ╖  Access to the root account of the machine you're installing on
  362.  
  363.  
  364.   Optional:
  365.  
  366.   ╖  A supported soundcard
  367.  
  368.   ╖  A 3Dfx VooDoo Graphics or VooDoo2 3D graphics accelerator card.
  369.  
  370.   ╖  Mesa 2.6 or later (for glquake)
  371.  
  372.  
  373.   2.2.  Installing Quake
  374.  
  375.  
  376.  
  377.   2.2.1.  Download the Necessary Files**
  378.  
  379.   All the necessary files for Linux Quake are available at id Software's
  380.   ftp site, ftp.idsoftware.com.  This site can be quite busy at times,so
  381.   you may want to use one of these mirror sites instead:
  382.  
  383.   ╖  ftp.cdrom.com/pub/idgames/idstuff (California, USA)
  384.  
  385.   ╖  ftp.gamesnet.net/idsoftware (California, USA)
  386.  
  387.   ╖  ftp.linuxquake.com/lqstuff (Michigan, USA)
  388.  
  389.   ╖  ftp.stomped.com/pub/mirror/idstuff (Minnesota, USA)
  390.  
  391.   ╖  mirrors.telepac.pt/pub/idgames (Lisbon, Portugal)
  392.  
  393.   ╖  download.netvision.net.il/pub/mirrors/idsoftware (Haifa, Israel)
  394.  
  395.   The Quake files mentioned in in this section are:
  396.  
  397.   ╖  Shareware Quake for Windows distribution
  398.      ftp://ftp.idsoftware.com/idstuff/quake/quake106.zip
  399.  
  400.   ╖  X11 Quake binary
  401.      ftp://ftp.idsoftware.com/idstuff/unsup/unix/quake.x11-1.0-i386-unknown-
  402.      linux2.0.tar.gz
  403.  
  404.   ╖  SVGAlib Quake binary
  405.      ftp://ftp.idsoftware.com/idstuff/unsup/squake-1.1-i386-unknown-
  406.      linux2.0.tar.gz
  407.  
  408.   ╖  OpenGL/Mesa Quake binary
  409.      ftp://ftp.idsoftware.com/idstuff/unsup/unix/glquake-0.97-i386-unknown-
  410.      linux2.0.tar.gz
  411.  
  412.   ╖  Linux QuakeWorld clients (X11, SVGAlib and GL clients are all
  413.      included in each package)
  414.  
  415.   ╖  libc5 tar.gz package
  416.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-i386-unknown-
  417.      linux2.0.tar.gz
  418.  
  419.   ╖  glibc tar.gz package
  420.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-
  421.      i386-unknown-linux2.0.tar.gz
  422.  
  423.   ╖  libc5 rpm package
  424.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-1.i386.rpm
  425.  
  426.   ╖  glibc rpm package
  427.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwcl-2.30-glibc-1.i386.rpm
  428.  
  429.  
  430.   ╖  Linux QuakeWorld server
  431.  
  432.   ╖  libc5 tar.gz package
  433.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-i386-unknown-
  434.      linux2.0.tar.gz
  435.  
  436.   ╖  glibc tar.gz package
  437.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-
  438.      i386-unknown-linux2.0.tar.gz
  439.  
  440.   ╖  libc5 rpm package
  441.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-1.i386.rpm
  442.  
  443.   ╖  glibc rpm package
  444.      ftp://ftp.idsoftware.com/idstuff/quakeworld/unix/qwsv-2.30-glibc-1.i386.rpm
  445.  
  446.  
  447.   ╖  Capture the Flag client package
  448.      ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip
  449.  
  450.   Other software mentioned:
  451.  
  452.   ╖  lha archive utility
  453.      ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z.
  454.  
  455.   ╖  SVGAlib graphics library
  456.      http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz
  457.  
  458.   ╖  SVGAlib libc5
  459.      binaryhttp://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz
  460.  
  461.   ╖  Glide runtime libraries http://glide.xxedgexx.com/3DfxRPMS.html
  462.  
  463.   2.2.2.  Create the Installation Directory ++
  464.  
  465.   The first thing you'll need to do is decide where you  want to install
  466.   Quake.  Lots of folks like to put it in /usr/games/quake.  Anal system
  467.   administrator that I am, I choose to install anything that's not part
  468.   of my Linux distribution under /usr/local.  So for me, Quake goes in
  469.   /usr/local/games/quake.  If you choose to install somewhere else,
  470.   please substitute the appropriate path wherever /usr/local/games/quake
  471.   is mentioned.
  472.  
  473.   Note to Redhat users:  If you plan on installing QuakeWorld from the
  474.   rpm packages, you should probably install Quake in
  475.   /usr/local/games/quake, since the rpms install to this directory by
  476.   default.
  477.  
  478.   So go ahead and create the directory you'll install Quake in, and cd
  479.   to it.  The rest of these instructions will assume that this is your
  480.   current directory.
  481.  
  482.  
  483.  
  484.             mkdir /usr/local/games/quake
  485.             cd /usr/local/games/quake
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.   2.2.3.  Installing From a Quake CD ++
  493.  
  494.   If you're installing from a Quake CD-ROM, read on.  Otherwise you have
  495.   permission to skip this section.
  496.  
  497.   There are at least two versions of the Quake CD in circulation.  I've
  498.   got one from the early days that has Quake version 1.01 on it.  Iv'e
  499.   seen other CDs that contain version 1.06.  You have 1.01 if you see
  500.   files on your CD called quake101.1 and quake101.2.  If instead you see
  501.   a file called resource.1, you have a newer CD.  Mount your Quake CD
  502.   now and determine which version you've got.  In the example below,
  503.   replace /dev/cdrom and /mnt/cdrom with the device file and mount point
  504.   appropriate for your sysem:
  505.  
  506.  
  507.  
  508.             mount -t iso9660 /dev/cdrom /mnt/cdrom
  509.             ls /mnt/cdrom
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.   ╖  If you have a resource.1 file on your CD, you can skip ahead to the
  517.      next bullet.  For a version 1.01 CD, you'll need to download the
  518.      Quake shareware package to update the .pak files after the
  519.      installation.  The last bullet in this section explains this.
  520.  
  521.  
  522.   ╖  Concatenate the two resource files from your CD to a single file on
  523.      your hard disk:
  524.  
  525.  
  526.             cat /mnt/cdrom/quake101.1 /mnt/cdrom/quake101.2 > resource.1
  527.  
  528.  
  529.   ╖  Now continue on to the next paragraph, but when I refer to
  530.      /mnt/cdrom/resource.1, you should use
  531.      /usr/local/games/quake/resource.1 instead.
  532.  
  533.  
  534.  
  535.  
  536.   ╖  Now it's time to extract the Quake files.  The resource.1 file on
  537.      your CD is really an lha archive (lha is a file compression and
  538.      archiving format like zip or tar).  We'll use the lha(1) command to
  539.      extract it.  If lha is not already installed on your system, you
  540.      can get it from
  541.      ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z.
  542.  
  543.  
  544.  
  545.             lha e /mnt/cdrom/resource.1
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.   When lha is done, your Quake directory will contain a bunch of new
  553.   files.  A directory called id1/ will also be created.  The files in
  554.   this directory are the only ones that are important for Linux Quake,
  555.   so you can safely remove everything else.  If you're totally new to
  556.   Quake, or even if you're not, you may want to hang on to the *.txt
  557.   files.  On my system, I throw all the readmes that accumulate into a
  558.   doc/ directory.  So:
  559.  
  560.  
  561.  
  562.             cd /usr/local/games/quake
  563.             mkdir doc
  564.             mv *.txt doc
  565.             rm -f *
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.   ╖  If you installed from a version 1.01 CD, now you need to overwrite
  573.      your id1/pak0.pak file with the one from the Quake shareware
  574.      version.  Install the shareware version as described in ``Shareware
  575.      Version Install'', only install it in some temporary directory so
  576.      you don't overwrite your real Quake files.  When you've extracted
  577.      all the shareware files, copy the id1/pak0.pak file from the
  578.      temporary shareware directory to your /usr/local/games/quake/id1
  579.      directory.  After that, you can erase the temporary shareware
  580.      files.
  581.  
  582.   That's it for installing from the CD.  You can jump ahead to section
  583.   "``Installing the Linux Binaries''" now.
  584.  
  585.  
  586.   2.2.4.  DOS/Windows to Linux Install
  587.  
  588.   If you have Quake installed under Windows or DOS on a different
  589.   machine, you can transfer the files in quake\id1\ to your Linux system
  590.   via FTP or some other mechanism.  Keep in mind that the filenames on
  591.   your Linux system must be in lower case for Quake to find them, so you
  592.   may have to rename them after the transfer.  Also note that it may be
  593.   necessary to delete your DOS/Win installation after you do this to
  594.   remain in compliance with the terms of id's software license.  It's
  595.   not my fault if you do something illegal.
  596.  
  597.   If your DOS/Win and Linux systems are on the same machine, you have
  598.   two options: copy the files from your DOS/Windows partition to your
  599.   Linux partition, or link to the necessary files from Linux.  Both
  600.   options will work equally well.  You just save around 50 megabytes of
  601.   disk space when you link instead of copy.
  602.  
  603.   Whatever you choose to do, start by cd'ing to your Quake directory and
  604.   creating a new directory below it called id1:
  605.  
  606.  
  607.  
  608.             cd /usr/local/games/quake
  609.             mkdir id1
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.   ╖  If you want to copy the files from your DOS/Windows partition, do
  617.      something like this:
  618.  
  619.  
  620.  
  621.             cp /win95/games/quake/id1/*.pak id1
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.   ╖  To create links to your DOS/Windows Quake files instead, do this:
  629.  
  630.  
  631.  
  632.             cd id1
  633.             ln -s /win95/games/quake/id1/*.pak .
  634.  
  635.  
  636.  
  637.  
  638.  
  639.   Replace /win95/games/quake with the correct path to your DOS/Windows
  640.   partition and Quake installation directory.
  641.  
  642.   The Quake data files are now installed.  Move ahead to "``Installing
  643.   the Linux Binaries''".
  644.  
  645.  
  646.   2.2.5.  Shareware Version Install
  647.  
  648.   The single-episode shareware version of Quake is freely available for
  649.   download from id's ftp site.  It has all the features of the full
  650.   version, with a couple of major limitations:  You can't play
  651.   QuakeWorld with it, and you can't play custom or modified levels.
  652.  
  653.   Installing the shareware version of Quake isn't really much different
  654.   than installing from the CD.
  655.  
  656.   See section ``Download the Necessary Files'' for the location of the
  657.   shareware distribution.  Download it and extract it to your Quake
  658.   directory:
  659.  
  660.  
  661.             cd /usr/local/games/quake
  662.             unzip -L /wherever/you/put/it/quake106.zip
  663.  
  664.  
  665.  
  666.  
  667.  
  668.   Now you've got (among others) a file called resource.1 that's really
  669.   an lha archive (lha is a file compression and archiving format like
  670.   zip or tar).  We'll use the lha(1) command to extract it.  If lha is
  671.   not already installed on your system, you can get it from
  672.   ftp://sunsite.unc.edu/pub/Linux/utils/compress/lha-1.00.tar.Z.
  673.  
  674.  
  675.  
  676.             lha e resource.1
  677.  
  678.  
  679.  
  680.  
  681.  
  682.   When lha is done, your Quake directory will contain a bunch of new
  683.   files.  A directory called id1/ will also be created.  The files in
  684.   this directory are the only ones that are important for Linux Quake,
  685.   so you can safely remove everything else.  If you're totally new to
  686.   Quake, or even if you're not, you may want to hang on to the *.txt
  687.   files.  On my system, I throw all the readmes that accumulate into a
  688.   doc/ subdirectory.  So:
  689.  
  690.  
  691.  
  692.             cd /usr/local/games/quake
  693.             mkdir doc
  694.             mv *.txt doc
  695.             rm -f *
  696.  
  697.  
  698.  
  699.  
  700.  
  701.   Now you're ready to install the Linux binaries.
  702.  
  703.  
  704.   2.3.  Adding the Linux Binaries
  705.  
  706.   Decide which of the three flavors of Quake you'd like to install:
  707.  
  708.   ╖  X11 Quake allows you to run Quake in a window on your X desktop.
  709.      It's the least exciting client, but it's a great, safe way to test
  710.      your installation.
  711.  
  712.   ╖  Squake is the SVGAlib Quake client.  It runs full screen on your
  713.      console.
  714.  
  715.   ╖  GLQuake is the OpenGL Quake client, the One True Way to play Quake
  716.      if you have a 3Dfx accellerator card.
  717.  
  718.   Download the packages you want (see section ``Download the Necessary
  719.   Files'') and extract them to your Quake directory like so:
  720.  
  721.  
  722.  
  723.             cd /usr/local/games/quake
  724.             tar -xzf XXXX-i386-unknown-linux2.0.tar.gz
  725.  
  726.  
  727.   2.4.  Setting Permissions
  728.  
  729.   Quake and QuakeWorld servers can be run by any user.  The Quake
  730.   clients, however,  need access to your sound and graphics cards, which
  731.   requires privileges that normal users don't have.  One (bad) way to
  732.   deal with this is to always run Quake as root.  Responsible system
  733.   administrators will cringe at this filthy suggestion.  Making the
  734.   Quake binaries setuid root is a more acceptable solution.  Quake can
  735.   then be run by regular users and still have the privileges it needs to
  736.   access the sound and graphics devices.  Setuid presents a security
  737.   risk, though.  A clever user could exploit a bug or security hole in
  738.   Quake to gain root access to your system.  Of course, if you don't run
  739.   a multi-user system, this is may not be a big concern.
  740.  
  741.   squake is the only Quake client that must be run with root
  742.   permissions.  With a little work, you can run the X and GL clients
  743.   without setuid.  ``Running X and GL games without setuid'' in the Tips
  744.   and Tricks section tells how to make this work.
  745.  
  746.   If you plan to run squake, make it setuid root with the following
  747.   commands:
  748.  
  749.  
  750.             chown root squake
  751.             chmod 4755 squake
  752.  
  753.  
  754.  
  755.  
  756.  
  757.   If you've decided it's ok to run quake.x11 and glquake setuid root on
  758.   your system, you can repeat the above commands for these binaries as
  759.   well.
  760.  
  761.  
  762.  
  763.   2.5.  X11 Quake
  764.  
  765.   If you installed the X11 client, now's a good time to try it out.  You
  766.   may need to do further configuration for glquake and squake, but at
  767.   this point quake.x11 should be ready to go.
  768.  
  769.  
  770.  
  771.             cd /usr/local/games/quake
  772.             ./quake.x11
  773.  
  774.  
  775.  
  776.  
  777.  
  778.   If all is well, a small Quake window should appear with the first demo
  779.   running in it.  You should hear sound effects and possibly music, if
  780.   the CD is mounted.  If any of this fails to occur, please see the
  781.   ``Troubleshooting'' section for help.
  782.  
  783.  
  784.   2.6.  SVGAlib Quake
  785.  
  786.   Both squake and glquake require SVGAlib to run (glquake uses SVGAlib
  787.   to process keyboard and mouse input, in case you're wondering).
  788.   SVGAlib comes with most modern Linux distributions, and must be
  789.   properly configured before squake or glquake will run correctly.
  790.  
  791.   libvga.config is SVGAlib's configuration file.  On most systems you'll
  792.   find it in either /etc or /etc/vga.  Make sure the mouse, monitor, and
  793.   video card settings in this file are correct for your system.  See the
  794.   SVGAlib documentation for more details.
  795.  
  796.   If you don't already have SVGAlib on your system, download it from the
  797.   location mentioned in ``the files section'' above.  If you have a
  798.   RedHat 5.x or other glibc-based Linux distribution, see ``Glibc,
  799.   RedHat 5.x, Debian 2 considerations'' in the Troubleshooting/FAQs
  800.   section for important information about compiling libraries for use
  801.   with Quake. A precompiled libc5 SVGAlib binary is available at
  802.   http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz
  803.   for those who don't want to deal with the hassle of compiling for
  804.   libc5.
  805.  
  806.   You should run squake from a virtual console.  It won't run from X
  807.   unless you're root when you start it.  And running a game as the root
  808.   user is something that should be avoided.  So if you're in X, do a
  809.   CTRL+ALT+F1, login and then:
  810.  
  811.  
  812.  
  813.             cd /usr/local/games/quake
  814.             ./squake
  815.  
  816.  
  817.  
  818.  
  819.  
  820.   ``Running SVGA and GL games from X'' in the Tips & Tricks section
  821.   below explains how to launch SVGA and GL Quake from X without manually
  822.   switching to a virtual console.
  823.  
  824.  
  825.   2.7.  GLQuake
  826.  
  827.   Hardware-accelerated OpenGL Quake is Quake the way God intended it to
  828.   be.  There is no substitute, and once you've experienced it there's no
  829.   going back.
  830.  
  831.   To run glquake, you need a 3D card with the Voodoo, Voodoo2 or Voodoo
  832.   Rush graphics chipset on it.  There are specific issues to be dealt
  833.   with if you have a Voodoo Rush card, and I won't go into them now
  834.   because frankly, I wouldn't know what I was talking about.  A future
  835.   version of this HOWTO will cover Rush issues (If somebody wants to
  836.   write about Voodoo Rush issues, I'll gladly include it here).
  837.  
  838.   The SVGAlib, Glide, and Mesa libraries must all be installed and
  839.   configured properly on your system for glquake to work.  The following
  840.   sections will very briefly cover what you need to do to get them
  841.   going.
  842.  
  843.   Bernd Kreimeier's (bk@gamers.org) Linux 3Dfx HOWTO
  844.   (http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html) is good
  845.   source for further information.
  846.  
  847.   The 3dfx.glide.linux newsgroup on the 3dfx news server (news.3dfx.com)
  848.   is another good source of information about the intersection of Linux,
  849.   glide, Mesa and Quake.
  850.  
  851.  
  852.   2.7.1.  SVGAlib
  853.  
  854.   glquake uses SVGAlib to get input from the mouse and keyboard, so
  855.   you'll need to configure it as outlined in section ``SVGAlib Quake''.
  856.  
  857.  
  858.  
  859.   2.7.2.  Glide
  860.  
  861.   Glide is a library that provides an API for programming 3Dfx based
  862.   cards.  If you want the Mesa graphics library to use your 3Dfx card,
  863.   you've gotta have it.
  864.  
  865.   The latest version of glide can always be found at
  866.   http://glide.xxedgexx.com/3DfxRPMS.html.  Select the package(s)
  867.   appropriate for your system, and install according to the instructions
  868.   on the web page.
  869.  
  870.   Note that unless you download the 3Dfx device driver package in
  871.   addition to the Glide library, you will only be able to run Glide
  872.   applications (like GLQuake) as root.  Install the /dev/3dfx module and
  873.   you can play GLQuake as a regular user.
  874.  
  875.   Once you have glide installed, try out the test program that comes
  876.   with it.  Remember this program:  it's a good way to reset your
  877.   display if you ever have a glide application (like GLQuake) crash and
  878.   leave your screen switched off.  NOTE: run this test from a VC, not X!
  879.   It's possible for the test app to lose mouse and keyboard focus in X,
  880.   and then you'll have no way of shutting it down.
  881.  
  882.  
  883.  
  884.  
  885.             /usr/local/glide/bin/test3Dfx
  886.  
  887.  
  888.  
  889.  
  890.  
  891.   Your screen should turn blue and prompt you to hit any key.  After you
  892.   press a key you should be returned to the prompt.  3dfx.glide.linux on
  893.   3dfx's news server (news.3dfx.com) is a great source of information
  894.   for Linux glide-specific problems.
  895.  
  896.  
  897.   2.7.3.  Mesa
  898.  
  899.   Once glide's installed, you need to install Mesa, a free OpenGL
  900.   implementation by Brian Paul (brianp@elastic.avid.com).  Luckily, you
  901.   won't have to look far, because Mesa 2.6 is included with the QLQuake
  902.   & QuakeWorld binaries.  All you have to do is move it to the right
  903.   place:
  904.  
  905.  
  906.  
  907.             cd /usr/local/games/quake
  908.             cp libMesaGL.so.2.6 /usr/local/lib
  909.             ldconfig
  910.  
  911.  
  912.  
  913.  
  914.  
  915.   If you want to upgrade Mesa to a more recent version (Mesa 3.0 is the
  916.   most recent version as of this writing), you can download the latest
  917.   from  ftp://iris.ssec.wisc.edu/pub/Mesa If you have a RedHat 5.x or
  918.   other glibc-based Linux distribution, see ``Glibc, RedHat 5.x, Debian
  919.   2 considerations'' in the Troubleshooting/FAQs section for important
  920.   information about compiling libraries for Quake.
  921.  
  922.   After you've built it according to the instructions, you will have to
  923.   do two things:
  924.  
  925.   ╖  Remove your old Mesa installation.  If you previously installed a
  926.      libMesaGL.so.2.6 as described above, you must remove it or Quake
  927.      may not use the new version.
  928.  
  929.  
  930.  
  931.             cd /usr/local/lib/
  932.             rm -f libMesaGL.so.2*
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.   ╖  If the new Mesa has a major version number that's greater than 2,
  940.      you need to create a link to it with the name libMesaGL.so.2:
  941.  
  942.  
  943.  
  944.             cd /usr/local/lib/
  945.             ln -s /wherever/you/installed/it/libMesaGL.so.3.0 libMesaGL.so.2
  946.             ldconfig
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.   Now switch to a VC (CTRL+ALT+F1)  and start glquake.
  954.  
  955.  
  956.  
  957.             cd /usr/local/games/quake
  958.             ./glquake
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.   2.8.  Linux-Specific Command Line Options
  967.  
  968.   This section covers command line options that are specific to the
  969.   Linux versions of Quake.  There are plenty of other Quake options, but
  970.   they're beyond the scope of this HOWTO.  Check out some of the sites
  971.   listed in section ``General Quake Information'' for this kind of
  972.   information.
  973.  
  974.  
  975.      -mem num
  976.         Specify memory in megabytes to allocate (default is 8MB, which
  977.         should be fine for most needs).
  978.  
  979.  
  980.      -nostdout
  981.         Don't do any output to stdout.  Use this if you don't want all
  982.         the console output dumped to your terminal.
  983.  
  984.  
  985.      -mdev device
  986.         Mouse device, default is /dev/mouse
  987.  
  988.  
  989.      -mrate speed
  990.         Mouse baud rate, default is 1200
  991.      -cddev device
  992.         CD device, default is /dev/cdrom
  993.  
  994.  
  995.      -mode num
  996.         Use indicated video mode (squake only)
  997.  
  998.  
  999.      -nokdb
  1000.         Don't initialize keyboard
  1001.  
  1002.  
  1003.      -sndbits 8 or 16
  1004.         Set sound bit sample size.  Default is 16 if supported.
  1005.  
  1006.  
  1007.      -sndspeed speed
  1008.         Set sound speed.  Usual values are 8000, 11025, 22051 and 44100.
  1009.         Default is 11025.
  1010.  
  1011.  
  1012.      -sndmono
  1013.         Set mono sound
  1014.  
  1015.  
  1016.      -sndstereo
  1017.         Set stereo sound (default if supported)
  1018.  
  1019.  
  1020.   2.9.  QuakeWorld **
  1021.  
  1022.   http://www.quakeworld.net says it better than I could:
  1023.  
  1024.  
  1025.        QuakeWorld is an Internet multi-player specific version of
  1026.        Quake.  While the original version of Quake can be played
  1027.        over the Internet, modem users - the majority of players,
  1028.        had less than satisfactory play. Symptoms like excessive lag
  1029.        - actions actually happening much later than you did them;
  1030.        packet loss - the game would freeze and resume several sec¡
  1031.        onds later; and various other difficulties plagued users.
  1032.        After realizing how many people played Quake on the inter¡
  1033.        net, and how many wanted to, but couldn't due to the play
  1034.        being unsatisfactory, John Carmack of id Software decided to
  1035.        create a version of Quake that was optimized for the average
  1036.        modem Internet player. This Internet specific version does
  1037.        only 1 thing, play deathmatch games over a TCP/IP network
  1038.        such as the Internet. It has no support for solo play, and
  1039.        you can't do anything with out connecting to a special
  1040.        server.
  1041.  
  1042.  
  1043.   You need the full, registered or retail version of Quake to play
  1044.   QuakeWorld, and a Linux QuakeWorld client.  QuakeWorld clients come in
  1045.   the same flavors (X11, SVGAlib and Mesa) as normal Quake, but they're
  1046.   all bundled together in one package, so you only need to download one
  1047.   file.  However, you've got four packages to choose from:
  1048.  
  1049.   ╖  a libc5 tar.gz package
  1050.  
  1051.   ╖  a glibc tar.gz package
  1052.  
  1053.   ╖  a libc5 rpm package
  1054.  
  1055.   ╖  a glibc rpm package
  1056.  
  1057.   Install just one of these packages.  Each contains the same files,
  1058.   they're just linked against different libraries.  Redhat 5.x users
  1059.   should choose the the glibc rpm package.  Users of glibc based systems
  1060.   without rpm support should use the glibc tar package.  The libc5 rpm
  1061.   is for Redhat distributions prior to 5.0 and other distributions that
  1062.   use the rpm package format.  The libc5 tar.gz package is for Slackware
  1063.   and everyone else.
  1064.  
  1065.   See the ``Download the Necessary Files'' section for the location of
  1066.   the Linux Quakeworld files.
  1067.  
  1068.   The prerequisites and configuration for these binaries are the same as
  1069.   for Quake, so refer to the previous sections for help on setting up
  1070.   SVGAlib or glide/Mesa.
  1071.  
  1072.  
  1073.   2.9.1.  Installing the RPM packages ++
  1074.  
  1075.   Installation of the rpm packages should be as simple as:
  1076.  
  1077.  
  1078.  
  1079.             su root
  1080.             rpm -Uvh qwcl-xxxxx.i386.rpm
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.   qwcl, glqwcl and glqwcl.glx will be installed setuid root so that they
  1087.   can access the graphics devices on your system.  The X and GL clients
  1088.   can be run without root privileges if you follow the instructions in
  1089.   ``Running X and GL games without      setuid'' below.
  1090.  
  1091.   Rpm may complain that it can't find libglide2x.so.  The Glide library
  1092.   is only necessary if you have a 3Dfx card and want to run QuakeWorld
  1093.   in GL mode (glqwcl).  If you don't plan to use the GL mode, you can
  1094.   override the glide dependency with the --nodeps option:
  1095.  
  1096.  
  1097.  
  1098.             su root
  1099.             rpm -Uvh qwcl-xxxxx.i386.rpm --nodeps
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.   2.9.2.  Installing the tar.gz packages ++
  1107.  
  1108.   To install, just untar the file in your Quake directory.  Do it as
  1109.   root so the proper file permissions get set:
  1110.  
  1111.  
  1112.  
  1113.             cd /usr/local/games/quake
  1114.             su root
  1115.             tar -xzf qwcl2.21-i386-unknown-linux2.0.tar.gz
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.   qwcl, glqwcl and glqwcl.glx will be installed setuid root so that they
  1122.   can access the graphics devices on your system.  The GL and X clients
  1123.   can be run without root privileges if you follow the instructions in
  1124.   ``Running X and GL games without      setuid'' below.
  1125.  
  1126.  
  1127.   2.9.3.  Running QuakeWorld ++
  1128.  
  1129.   Once QuakeWorld is installed alongside your Quake files, you can start
  1130.   it up like:
  1131.  
  1132.  
  1133.             ./qwcl +connect some.server.address
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.   See section ``Related Software'' for info about some nifty front ends
  1140.   for QuakeWorld that make finding servers easy.
  1141.  
  1142.  
  1143.   ╖  lib3dfxgl.so  **
  1144.  
  1145.      With Quakeworld version 2.30, an alternative to the Mesa library is
  1146.      available.  lib3dfxgl.so is a mini-GL driver optimized for Quake
  1147.      that provides slightly better framerates than Mesa.  This is a port
  1148.      of a driver that 3Dfx developed for Quake under Windows, and
  1149.      apparently not all of its features work properly yet.  So hopefully
  1150.      we can expect its performance to improve with time.
  1151.  
  1152.      Like Mesa, lib3dfxgl.so requires Glide in order to access your 3Dfx
  1153.      card.  The Quakeworld packages come with a script, glqwcl.3dfxgl
  1154.      for running Quakeworld with this library on glibc systems.  The
  1155.      next paragraph explains how to run Quakeworld with lib3dfxgl.so on
  1156.      a libc5 system.  On a glibc system in order for this script to
  1157.      work,the glqwcl executable must not be setuid, nor should you run
  1158.      it as root.  glqwcl will silently load Mesa rather than
  1159.      lib3dfxgl.so if it runs with root permissions.  This non-root
  1160.      requirement implies that you have the /dev/3dfx driver installed.
  1161.  
  1162.      On a libc5 system, you need to create a symbolic link to
  1163.      lib3dfxgl.so called libMesaGL.so.2 like so:
  1164.  
  1165.  
  1166.             cd /usr/local/games/quake
  1167.             ln -sf lib3dfxgl.so libMesaGL.so.2
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.   Then start Quakeworld from a script that tells $LD_LIBRARY_PATH to
  1174.   look in the current directory:
  1175.  
  1176.   ______________________________________________________________________
  1177.        #!/bin/sh
  1178.  
  1179.        LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./glqwcl $*
  1180.  
  1181.   ______________________________________________________________________
  1182.  
  1183.  
  1184.  
  1185.   You can tell which driver is being loaded by looking for output like
  1186.   the following in your console as Quakeworld starts:
  1187.  
  1188.  
  1189.        GL_VENDOR: 3Dfx Interactive Inc.
  1190.        GL_RENDERER: 3Dfx Interactive Voodoo^2(tm)
  1191.        GL_VERSION: 1.1
  1192.        GL_EXTENSIONS: 3DFX_set_global_palette WGL_EXT_swap_control GL_EXT_paletted_texture GL_EXT_shared_texture_palette GL_SGIS_multitexture
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.   If GL_VENDOR says Brian Paul rather than 3Dfx Interactive Inc., that
  1199.   means Mesa is still being used rather than the miniport dirver.
  1200.  
  1201.  
  1202.   ╖  glqwcl.glx **
  1203.  
  1204.  
  1205.      glqwcl.glx is linked against standard OpenGL libraries instead of
  1206.      Mesa.  This allows Quakeworld to run on other 3D hardware that is
  1207.      supported by other OpenGL implementations.  At this time, I dont'
  1208.      know of any OpenGL implementations that support hardware other than
  1209.      3Dfx, but this renderer ensures that when they appear, we'll be
  1210.      able to play Quakeworld with them.
  1211.  
  1212.      This is a GLX application, and as such, must be run from X.
  1213.  
  1214.      You can use this client with Mesa/3Dfx if you install Mesa and
  1215.      Glide as explained in the previous section, then set the
  1216.      $MESA_GLX_FX environment variable to "fullscreen" before you run
  1217.      quake2:
  1218.  
  1219.  
  1220.  
  1221.             export MESA_GLX_FX=fullscreen
  1222.             ./glqwcl.glx +_windowed_mouse 1
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.   Why the +_windowed_mouse 1 option?  Remember that this is an X
  1229.   application which happens to use your 3Dfx card.  Even though the
  1230.   display takes up your entire screen, Quakeworld is stil running in a
  1231.   window.  This means that if you're not very careful, you could move
  1232.   the mouse pointer outside the Quakeworld window, and Quakeworld will
  1233.   suddenly stop responding to mouse and keyboard input.
  1234.   +_windowed_mouse 1 avoids this problem by telling glqwcl.glx to grab
  1235.   the mouse and not let it move outside its window.
  1236.  
  1237.  
  1238.  
  1239.   2.10.  Servers
  1240.  
  1241.   Most, if not all, existing information about running a DOS/Windows QW
  1242.   server is equally applicable to running a Linux server.
  1243.  
  1244.   To start a QuakeWorld server, simply do:
  1245.  
  1246.  
  1247.  
  1248.             ./qwsv
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.   The official QuakeWorld server manual lives at
  1256.   http://qwcentral.stomped.com.
  1257.  
  1258.  
  1259.   2.11.  Mods & Addons
  1260.  
  1261.   One of the very cool things about the Quake games is that the authors
  1262.   made them easily extensible.  End users can create their own levels,
  1263.   add new weapons or monsters, or even completely change the rules of
  1264.   the game.
  1265.  
  1266.  
  1267.   2.11.1.  Capture the Flag
  1268.  
  1269.   This is my favorite variation of both Quake and Quake 2.  Instead of
  1270.   just running around and killing everyone you meet (which definitely
  1271.   has its merits, don't get me wrong!), CTF is team-based and more
  1272.   strategic.  Dave 'Zoid' Kirsch, also the maintainer of the Linux Quake
  1273.   ports, created this mod.
  1274.  
  1275.   Everything you need to know about CTF can be found at
  1276.   http://captured.com/threewave/  You need
  1277.   ftp://ftp.cdrom.com/pub/quake/planetquake/threewave/ctf/client/3wctfc.zip
  1278.   to play.  To install the client piece of CTF, simply create a
  1279.   directory called ctf in your Quake directory and unzip the 3wctfc.zip
  1280.   file there.  The accompanying readme.txt file is chock full of good
  1281.   information.
  1282.  
  1283.  
  1284.  
  1285.             cd /usr/local/games/quake
  1286.             mkdir ctf
  1287.             cd ctf
  1288.             unzip -L /wherever/you/put/it/3wctfc.zip
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.   For information on running a CTF server, see the web pages mentioned
  1295.   above.
  1296.  
  1297.  
  1298.   2.11.2.  Mission Packs **
  1299.  
  1300.   Activision released two add-on packs of extra levels for Quake,
  1301.   Scourge of Armagon and Dissolution of Eternity.
  1302.  
  1303.  
  1304.   ╖  Mission Pack 1: The Scourge of Armagon Assuming your CD is mounted
  1305.      on /mnt/cdrom and Quake is installed in /usr/local/games/quake:
  1306.  
  1307.  
  1308.  
  1309.             cd /usr/local/games/quake
  1310.             mkdir hipnotic
  1311.             cp /mnt/cdrom/hipnotic/pak0.pak hipnotic
  1312.             cp /mnt/cdrom/hipnotic/config.cfg hipnotic
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.   Play the mission pack like this:
  1320.  
  1321.        cd /usr/local/games/quake
  1322.        ./quake.x11 -game hipnotic
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.   ╖  Mission Pack 2: Dissolution of Eternity Installing the second
  1330.      mission pack is pretty much the same procedure as installing the
  1331.      first.  Follow the directions for Mission Pack 1, but replace the
  1332.      word hipnotic with the word rogue, and skip the config.cfg step, as
  1333.      this file isn't included on the Mission Pack 2 CD.
  1334.  
  1335.  
  1336.   2.11.3.  Quake Tools
  1337.  
  1338.   Anybody care to contribute some info about qcc, bsp and all that?
  1339.  
  1340.  
  1341.  
  1342.   3.  Quake II
  1343.  
  1344.   To install Quake II on your Linux system, you'll need some flavor of
  1345.   the official Quake II distribution from id.  This will be either the
  1346.   retail Windows CD-ROM that you bought at your favorite software store,
  1347.   or the demo version you downloaded from the net.  See ``Download the
  1348.   Necessary Files'' for details on acquiring the demo version.
  1349.   Alternatively, if you've already got Quake installed on a Windows
  1350.   machine, you can use the relevant files from that installation.
  1351.  
  1352.  
  1353.   3.1.  Prerequisites
  1354.  
  1355.   You will need, as a bare minimum, the following:
  1356.  
  1357.  
  1358.   ╖  A Pentium 90 or better (133 recommended) computer
  1359.  
  1360.   ╖  16 MB RAM (24 recommended)
  1361.  
  1362.   ╖  The Quake 2 CD-ROM or the demo version (q2-314-demo-x86.exe)
  1363.  
  1364.   ╖  Linux kernel version 2.0.24 or later
  1365.  
  1366.   ╖  libc 5.2.18 or later
  1367.  
  1368.   ╖  One of the following:
  1369.  
  1370.   ╖  X11 server that supports the MITSM shared memory extension. 8 and
  1371.      16 bit displays are supported.   (for X renderer)
  1372.  
  1373.   ╖  SVGAlib 1.2.10 or later (for SVGA and GL renderer)
  1374.  
  1375.   ╖  25-400 megabytes free disk space (depending on how you install)
  1376.  
  1377.   ╖  Access to the root account of the machine you're installing on
  1378.  
  1379.  
  1380.   Optional:
  1381.  
  1382.   ╖  A supported soundcard
  1383.  
  1384.   ╖  A 3Dfx Voodoo Graphics or Voodoo2 or Voodoo Rush 3D graphics
  1385.      accelerator card.
  1386.  
  1387.   ╖  3Dfx glide libraries installed (for GL renderer)
  1388.  
  1389.   ╖  Mesa 2.6 or later (for GL renderer)
  1390.  
  1391.  
  1392.   3.2.  Installing Quake II
  1393.  
  1394.  
  1395.  
  1396.   3.2.1.  Download the Necessary Files**
  1397.  
  1398.   All the necessary files for Linux Quake II are available at id
  1399.   Software's ftp site, ftp.idsoftware.com.  This site can be quite busy
  1400.   at times,so you may want to use one of these mirror sites instead:
  1401.  
  1402.   ╖  ftp.cdrom.com/pub/idgames/idstuff (California, USA)
  1403.  
  1404.   ╖  ftp.gamesnet.net/idsoftware (California, USA)
  1405.  
  1406.   ╖  ftp.stomped.com/pub/mirror/idstuff (Minnesota, USA)
  1407.  
  1408.   ╖  mirrors.telepac.pt/pub/idgames (Lisbon, Portugal)
  1409.  
  1410.   ╖  download.netvision.net.il/pub/mirrors/idsoftware (Haifa, Israel)
  1411.  
  1412.   The Quake II files mentioned in in this section are:
  1413.  
  1414.   ╖  Quake II Linux Binaries
  1415.  
  1416.   ╖  libc5 tar.gz package
  1417.      ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-i386-unknown-
  1418.      linux2.0.tar.gz
  1419.  
  1420.   ╖  glibc tar.gz package
  1421.      ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-glibc-
  1422.      i386-unknown-linux2.0.tar.gz
  1423.  
  1424.   ╖  libc5 rpm package
  1425.      ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-2.i386.rpm
  1426.  
  1427.   ╖  glibc rpm package
  1428.      ftp.idsoftware.com/idstuff/quake2/unix/quake2-3.19a-
  1429.      glibc-2.i386.rpm
  1430.  
  1431.   ╖  Quake II Demo Version for Windows
  1432.      ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe
  1433.  
  1434.   ╖  Quake II Game Source
  1435.      ftp://ftp.idsoftware.com/idstuff/quake2/source/q2source-3.14.shar.Z
  1436.  
  1437.   ╖  Quake II Capture the Flag
  1438.      ftp://ftp.idsoftware.com/idstuff/quake2/ctf/102.zip
  1439.  
  1440.   Other software mentioned:
  1441.  
  1442.   ╖  SVGAlib graphics library
  1443.      http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.tar.gz
  1444.  
  1445.   ╖  SVGAlib libc5
  1446.      binaryhttp://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz
  1447.  
  1448.   ╖  Glide runtime libraries http://glide.xxedgexx.com/3DfxRPMS.html
  1449.  
  1450.   ╖  Mesa 3D graphics library http://www.ssec.wisc.edu/~brianp/Mesa.html
  1451.  
  1452.  
  1453.   ╖  unzip archive utility
  1454.      http://sunsite.unc.edu/pub/Linux/utils/compress/unzip-5.31.tar.gz
  1455.  
  1456.  
  1457.   3.2.2.  Create the Installation Directory
  1458.  
  1459.   The first thing you'll need to do is decide where you  want to install
  1460.   Quake II.  Lots of folks like to put it in /usr/games/quake.  Anal
  1461.   system administrator that I am, I choose to install anything that's
  1462.   not part of my Linux distribution under /usr/local.  So for me, Quake
  1463.   II goes in /usr/local/games/quake2.  If you choose to install
  1464.   somewhere else, please substitute the appropriate path wherever
  1465.   /usr/local/games/quake2 is mentioned.
  1466.  
  1467.   So go ahead and create the directory you'll install Quake II in, and
  1468.   cd to it.  The rest of these instructions will assume that this is
  1469.   your current directory.
  1470.  
  1471.  
  1472.  
  1473.             mkdir /usr/local/games/quake2
  1474.             cd /usr/local/games/quake2
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.   3.2.3.  Installing from CD
  1482.  
  1483.   Place your Quake II CD in your CD ROM drive, and mount it:
  1484.  
  1485.  
  1486.  
  1487.             mount -t iso9660 /dev/cdrom /mnt/cdrom
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.   If your CDROM is typically mounted elsewhere, substitute its location
  1494.   for /mnt/cdrom.  If you're not sure where your CDROM is mounted,
  1495.   please see the documentation for your particular distribution.
  1496.  
  1497.  
  1498.   ╖  Full Install The simplest install method is a "full" install, which
  1499.      involves copying the entire contents of your CD to your hard drive.
  1500.      This requires about 350 MB, and is accomplished by issuing the
  1501.      following commands:
  1502.  
  1503.  
  1504.  
  1505.             cd /usr/local/games/quake2
  1506.             cp -r /mnt/cdrom/Install/Data/* .
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.   There'll be a bunch of unnecessary Windows files hanging around that
  1514.   you can safely delete:
  1515.  
  1516.  
  1517.  
  1518.  
  1519.        rm -f /usr/local/quake2/*.dll
  1520.        rm -f /usr/local/quake2/quake2.exe
  1521.        rm -f /usr/local/quake2/baseq2/gamex386.dll
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.   ╖  Medium Install If 450 MB is too much space for you to devote to
  1530.      Quake II, you can skip installing the movie cutscenes and link to
  1531.      them on the CD-ROM instead.  This will reduce the space
  1532.      requirements to about 200 MB:
  1533.  
  1534.  
  1535.  
  1536.             cd /usr/local/games/quake2
  1537.             mkdir baseq2
  1538.             cp /mnt/cdrom/Install/Data/baseq2/pak0.pak baseq2
  1539.             cp -r /mnt/cdrom/Install/Data/baseq2/players baseq2
  1540.             ln -s /mnt/cdrom/Install/Data/baseq2/video baseq2/video
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.   Note that this doesn't mean you have to mount your Quake II CD every
  1548.   time to want to play Quake II.  If the game can't load the videos, it
  1549.   just won't display them.
  1550.  
  1551.  
  1552.  
  1553.   3.2.4.  Windows to Linux install
  1554.  
  1555.   If you have Quake II installed under Windows on a different machine,
  1556.   you can transfer the files in quake2\baseq2\ to your Linux system via
  1557.   FTP or some other mechanism.  Keep in mind that the filenames on your
  1558.   Linux system must be in lower case for Quake II to find them, so you
  1559.   may have to rename them after the transfer.  Also note that it may be
  1560.   necessary to delete your Windows installation after you do this to
  1561.   remain in compliance with the terms of id's software license.  It's
  1562.   not my fault if you do something illegal.
  1563.  
  1564.   If your Windows and Linux systems are on the same machine, you have
  1565.   two options: copy the files from your Windows partition to your Linux
  1566.   partition, or link to the necessary files from Linux.  Both options
  1567.   will work equally well.  You'll just save a lot of disk space when you
  1568.   link instead of copy.  As usual, replace /win95/games/quake2 in the
  1569.   following examples with the correct path to your Windows partition and
  1570.   Quake II installation.
  1571.  
  1572.  
  1573.   ╖  If you want to copy the files from your Windows partition, do
  1574.      something like this:
  1575.  
  1576.  
  1577.  
  1578.             cd /usr/local/games/quake2
  1579.             cp -r /win95/games/quake2/baseq2 .
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.   ╖  To create links to your Windows Quake II files instead, do this:
  1586.  
  1587.  
  1588.  
  1589.             cd /usr/local/games/quake2
  1590.             ln -s /win95/games/quake2/baseq2 .
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.   This second method requires that the Windows partition you're linking
  1598.   to be writeable by users, which may not be appropriate for all sys¡
  1599.   tems.  By making your Windows partition writeable, you are giving all
  1600.   users the opportunity to destroy your entire Windows installation.  If
  1601.   that's ok with you, modify your /etc/fstab to mount the Windows parti¡
  1602.   tion with the options umask=002,gid=XXX, where XXX is the group id
  1603.   number of the "users" group.  Look in /etc/group for this information.
  1604.   When fstab is updated, umount and re-mount the Windows partition and
  1605.   you're done.
  1606.  
  1607.   You're done installing the Quake II data files.  Move ahead to
  1608.   "``Installing the Linux Binaries''".
  1609.  
  1610.  
  1611.  
  1612.   3.2.5.  Installing the demo version **
  1613.  
  1614.   id Software has a freely available demo version of Quake II at their
  1615.   ftp site.  It's a 40 megabyte download.  The demo includes all
  1616.   features of the full version, including multiplayer, but it only comes
  1617.   with three levels, so it may be difficult to find a server to play on.
  1618.  
  1619.   See the section ``Download the      Necessary Files'' above for the
  1620.   location of the Quake II demo.  Download it and place it in your Quake
  1621.   II directory.
  1622.  
  1623.   The demo distribution is a self-extracting zip file (it's self-
  1624.   extracting in other OS's anyway).  You can extract it with the
  1625.   unzip(1) command, which should be included in most modern
  1626.   distributions.  If you don't have unzip, you can download it from the
  1627.   location listed in the ``Download the Necessary Files'' section.
  1628.  
  1629.   cd to your Quake II directory and extract the archive:
  1630.  
  1631.  
  1632.  
  1633.             cd /usr/local/games/quake2
  1634.             unzip q2-314-demo-x86.exe
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.   Now we've got to delete some things and move some other things around:
  1641.  
  1642.  
  1643.             rm -rf Splash Setup.exe
  1644.             mv Install/Data/baseq2 .
  1645.             mv Install/Data/DOCS docs
  1646.             rm -rf Install
  1647.             rm -f baseq2/gamex86.dll
  1648.  
  1649.  
  1650.  
  1651.   The Quake II demo is now installed.  You just need to add the Linux
  1652.   binaries.
  1653.  
  1654.  
  1655.   3.3.  Adding the Linux Binaries**
  1656.  
  1657.   There are four Linux Quake II packages available for download:
  1658.  
  1659.   ╖  a libc5 tar.gz package
  1660.  
  1661.   ╖  a glibc tar.gz package
  1662.  
  1663.   ╖  a libc5 rpm package
  1664.  
  1665.   ╖  a glibc rpm package
  1666.  
  1667.   Install just one of these packages.  Each contains the same files,
  1668.   they're just linked against different libraries.  Redhat 5.x users
  1669.   should choose the the glibc rpm package.  Users of glibc based systems
  1670.   without rpm support should use the glibc tar package.  The libc5 rpm
  1671.   is for Redhat distributions prior to 5.0 and other distributions that
  1672.   use the rpm package format.  The libc5 tar.gz package is for Slackware
  1673.   and everyone else.
  1674.  
  1675.   See the ``Download the Necessary Files'' section for the location of
  1676.   the Linux Quake II files.
  1677.  
  1678.  
  1679.   3.3.1.  Installing the RPM packages **
  1680.  
  1681.   Installation of the rpm packages should be as simple as:
  1682.  
  1683.  
  1684.  
  1685.             su root
  1686.             rpm -Uvh quake2-xxxxx.i386.rpm
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.   Rpm may complain that it can't find libglide2x.so.  The Glide library
  1693.   is only necessary if you have a 3Dfx card and want to run Quake II in
  1694.   GL mode.  If you don't plan to use the GL mode, you can override the
  1695.   glide dependency with the --nodeps option:
  1696.  
  1697.  
  1698.  
  1699.             su root
  1700.             rpm -Uvh quake2-xxxxx.i386.rpm --nodeps
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.   3.3.2.  Installing the tar.gz packages **
  1708.  
  1709.   To install, just untar the file in your Quake II directory.  Do it as
  1710.   root so the proper file permissions get set:
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.        cd /usr/local/games/quake
  1718.        su root
  1719.        tar -xzf qwcl2.21-i386-unknown-linux2.0.tar.gz
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.   3.4.  Setting Permissions **
  1727.  
  1728.   If you ran rpm or tar as root when installing the Quake II package on
  1729.   your system, the file permissions should be properly set already.  The
  1730.   quake2 executable was installed setuid root so that it can access the
  1731.   graphics devices on your system.  For security, the ref_*.so rendering
  1732.   libraries are owned by root and writeable only by him.  If root
  1733.   doesn't own the libraries, or they're world writeable, quake2 will
  1734.   refuse to run.
  1735.  
  1736.   If you plan to only run Quake II with the GL or X renderers, your
  1737.   quake2 doesn't need to be setuid root.  See ``Running X and GL games
  1738.   without setuid'' in the Tips and Tricks section below for information
  1739.   on running Quake II without root permissions.
  1740.  
  1741.  
  1742.   3.4.1.  Quake2.conf **
  1743.  
  1744.  
  1745.   For security reasons, there is a quake2.conf file, which tells Quake
  1746.   II where to find the rendering libraries it needs (ref_*.so).  It
  1747.   contains only one line, which should be the path to your Quake II
  1748.   installation.  Quake II looks for this file in /etc.  If you installed
  1749.   Quake II from an .rpm file, this file was installed for you.  If you
  1750.   installed from a .tar package, you need to create it like so:
  1751.  
  1752.  
  1753.  
  1754.             su root
  1755.             cd /usr/local/games/quake2
  1756.             pwd > /etc/quake2.conf
  1757.             chmod 644 /etc/quake2.conf
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.   3.5.  The X Renderer
  1765.  
  1766.   Quake II should be ready to run under X now.  Give it a try:
  1767.  
  1768.  
  1769.  
  1770.             cd /usr/local/games/quake2
  1771.             ./quake2 +set vid_ref softx
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.   If all is well, after a pretty significant pause, a small Quake II
  1778.   window will appear with the first demo running in it.  You should hear
  1779.   sound effects and possibly music, if the CD is mounted.  If any of
  1780.   this fails to occur, please see section ``Troubleshooting'' for help.
  1781.  
  1782.  
  1783.   3.6.  The SVGAlib Renderer
  1784.  
  1785.   You need SVGAlib installed and configured if you're going to use
  1786.   either the ref_soft or ref_gl renderers.  (Quake II uses SVGAlib to
  1787.   process keyboard and mouse input, in case you're wondering why you'd
  1788.   need it for the GL renderer).   SVGAlib comes with most modern
  1789.   distributions, and must be properly configured before Quake II will
  1790.   run correctly outside of X.
  1791.  
  1792.   libvga.config is SVGAlib's configuration file.  On most systems you'll
  1793.   find it in either /etc or /etc/vga.  Make sure the mouse, monitor, and
  1794.   video card settings in this file are correct for your system.  See the
  1795.   SVGAlib documentation for more details.
  1796.  
  1797.   If you don't already have SVGAlib on your system, download it from the
  1798.   location mentioned in ``the files      section'' above.  If you have a
  1799.   RedHat 5.x or other glibc-based Linux distribution, see ``Glibc,
  1800.   RedHat 5.x,      Debian 2 considerations'' in the Troubleshooting/FAQs
  1801.   section for important information about compiling libraries for Quake
  1802.   II.  A precompiled libc5 SVGAlib binary is available at
  1803.   http://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.3.0.libc5.bin.tar.gz
  1804.   for those who don't want to deal with the hassle of compiling for
  1805.   libc5.
  1806.  
  1807.   You should run Quake II from a virtual console when using the ref_soft
  1808.   or ref_gl renderers.  It won't run from X unless you're root when you
  1809.   start it, and that's not advisable. So if you're in X, do a
  1810.   CTRL+ALT+F1, login and then:
  1811.  
  1812.  
  1813.  
  1814.             cd /usr/local/games/quake2
  1815.             ./quake2
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.   ``Running SVGA and GL games from X'' in the Tips & Tricks section
  1822.   below explains how to launch SVGA and GL Quake II from X without
  1823.   manually switching to a virtual console.
  1824.  
  1825.  
  1826.   3.7.  The OpenGL Renderer
  1827.  
  1828.   Hardware-accelerated OpenGL Quake is Quake the way God intended it to
  1829.   be.  There is no substitute, and once you've experienced it there's no
  1830.   going back.
  1831.  
  1832.   To run Quake II in GL mode, you need a 3D card with the Voodoo,
  1833.   Voodoo2 or Voodoo Rush graphics chipset on it.  There are specific
  1834.   issues to be dealt with if you have a Voodoo Rush card, and I won't go
  1835.   into them now because frankly, I wouldn't know what I was talking
  1836.   about.  A future version of this HOWTO will cover Rush issues (If
  1837.   somebody wants to write about Voodoo Rush issues, I'll gladly include
  1838.   it here).
  1839.  
  1840.   The SVGAlib, Glide, and Mesa libraries must all be installed and
  1841.   configured properly on your system for quake2 to work.  The following
  1842.   sections will very briefly cover what you need to do to get them
  1843.   going.
  1844.  
  1845.   Bernd Kreimeier's (bk@gamers.org) Linux 3Dfx HOWTO
  1846.   (http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html) is good
  1847.   source for further information.
  1848.  
  1849.   The 3dfx.glide.linux newsgroup on the 3dfx news server (news.3dfx.com)
  1850.   is another good source of information about the intersection of Linux,
  1851.   glide, Mesa and Quake.
  1852.  
  1853.  
  1854.  
  1855.   3.7.1.  SVGAlib
  1856.  
  1857.   Quake II uses SVGAlib to get input from the mouse and keyboard, so
  1858.   you'll need to configure it as outlined in section ``SVGAlib
  1859.   Renderer'' section.
  1860.  
  1861.  
  1862.   3.7.2.  Glide
  1863.  
  1864.   Glide is a library that provides an API for programming 3Dfx based
  1865.   cards.  If you want the Mesa graphics library to use your 3Dfx card,
  1866.   you've gotta have it.
  1867.  
  1868.   The latest version of glide can always be found at
  1869.   http://glide.xxedgexx.com/3DfxRPMS.html.  Select the package(s)
  1870.   appropriate for your system, and install according to the instructions
  1871.   on the web page.
  1872.  
  1873.   Note that unless you download the 3Dfx device driver package in
  1874.   addition to the Glide library, you will only be able to run Glide
  1875.   applications (like GLQuake) as root.  Install the /dev/3dfx module and
  1876.   you can play GLQuake as a regular user.
  1877.  
  1878.   Once you have glide installed, try out the test program that comes
  1879.   with it.  Remember this program:  it's a good way to reset your
  1880.   display if you ever have a glide application (like GLQuake) crash and
  1881.   leave your screen switched off.  NOTE: run this test from a VC, not X!
  1882.   It's possible for the test app to lose mouse and keyboard focus in X,
  1883.   and then you'll have no way of shutting it down.
  1884.  
  1885.  
  1886.  
  1887.             /usr/local/glide/bin/test3Dfx
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.   Your screen should turn blue and prompt you to hit any key.  After you
  1894.   press a key you should be returned to the prompt.  3dfx.glide.linux on
  1895.   3dfx's news server (news.3dfx.com) is a great source of information
  1896.   for Linux glide-specific problems.
  1897.  
  1898.  
  1899.   3.7.3.  Mesa
  1900.  
  1901.   Once glide's installed, you need to install Mesa, a free OpenGL
  1902.   implementation by Brian Paul (brianp@elastic.avid.com).  Luckily, you
  1903.   won't have to look far, because Mesa 2.6 is included with the Quake II
  1904.   binaries.  All you have to do is move it to the right place:
  1905.  
  1906.  
  1907.  
  1908.             cd /usr/local/games/quake2
  1909.             cp libMesaGL.so.2.6 /usr/local/lib
  1910.             ldconfig
  1911.  
  1912.  
  1913.  
  1914.  
  1915.   If you want to upgrade Mesa to a more recent version (Mesa 3.0 is the
  1916.   most recent version as of this writing), you can download the latest
  1917.   from  ftp://iris.ssec.wisc.edu/pub/Mesa If you have a RedHat 5.x or
  1918.   other glibc-based Linux distribution, see ``Glibc, RedHat 5.x, Debian
  1919.   2 considerations'' in the Troubleshooting/FAQs section for important
  1920.   information about compiling libraries for Quake.
  1921.  
  1922.   After you've built it according to the instructions, you will have to
  1923.   do two things:
  1924.  
  1925.  
  1926.   ╖  Remove your old Mesa installation.  If you previously installed a
  1927.      libMesaGL.so.2.6 as described above, you must remove it or Quake II
  1928.      may not use the new version.
  1929.  
  1930.  
  1931.  
  1932.             cd /usr/local/lib/
  1933.             rm -f libMesaGL.so.2*
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.   ╖  If the new Mesa has a major version number that's greater than 2,
  1941.      you need to create a link to it with the name libMesaGL.so.2:
  1942.  
  1943.  
  1944.  
  1945.             cd /usr/local/lib/
  1946.             ln -s /wherever/you/installed/it/libMesaGL.so.3.0 libMesaGL.so.2
  1947.             ldconfig
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.   Now switch to a VC (CTRL+ALT+F1)  and start Quake II:
  1955.  
  1956.  
  1957.  
  1958.             cd /usr/local/games/quake2
  1959.             ./quake2 +set vid_ref gl
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.   3.7.4.  lib3dfxgl.so **
  1967.  
  1968.   With Quake II version 3.19, an alternative to the Mesa library is
  1969.   available.  lib3dfxgl.so is a mini-GL driver optimized for Quake that
  1970.   provides slightly better framerates than Mesa.  This is a port of a
  1971.   driver that 3Dfx developed for Quake under Windows, and apparently not
  1972.   all of its features work properly yet.  So hopefully we can expect its
  1973.   performance to improve with time.
  1974.  
  1975.   Like Mesa, lib3dfxgl.so requires Glide in order to access your 3Dfx
  1976.   card.  The Quake II packages come with a script, quake2.3dfxgl for
  1977.   running Quake II with this library on glibc systems.  The next
  1978.   paragraph explains how to run Quake II with lib3dfxgl.so on a libc5
  1979.   system.  On a glibc system, the glqwcl executable must not be setuid,
  1980.   nor should you run it as root.  glqwcl will silently load Mesa rather
  1981.   than lib3dfxgl.so if it runs with root permissions.  This non-root
  1982.   requirement implies that you have the /dev/3dfx driver installed.
  1983.  
  1984.   On a libc5 system, the non-root requirements mentioned above apply,
  1985.   but you also need to create a symbolic link to lib3dfxgl.so called
  1986.   libMesaGL.so.2 like so:
  1987.  
  1988.  
  1989.             cd /usr/local/games/quake2
  1990.             ln -sf lib3dfxgl.so libMesaGL.so.2
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.   Then start Quake II from a script that tells $LD_LIBRARY_PATH to look
  1997.   in the current directory:
  1998.  
  1999.   ______________________________________________________________________
  2000.        #!/bin/sh
  2001.  
  2002.        LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./quake2 +set vid_ref gl $*
  2003.  
  2004.   ______________________________________________________________________
  2005.  
  2006.  
  2007.  
  2008.  
  2009.   You can tell which driver is being loaded by looking for output like
  2010.   the following in your console as Quake II starts:
  2011.  
  2012.  
  2013.  
  2014.             GL_VENDOR: 3Dfx Interactive Inc.
  2015.             GL_RENDERER: 3Dfx Interactive Voodoo^2(tm)
  2016.             GL_VERSION: 1.1
  2017.             GL_EXTENSIONS: 3DFX_set_global_palette WGL_EXT_swap_control GL_EXT_paletted_texture GL_EXT_shared_texture_palette GL_SGIS_multitexture
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.   If GL_VENDOR says Brian Paul rather than 3Dfx Interactive Inc., that
  2024.   means Mesa is still being used rather than the miniport dirver.
  2025.  
  2026.  
  2027.   3.8.  The GLX Renderer **
  2028.  
  2029.  
  2030.   ref_glx.so is linked against standard OpenGL libraries instead of
  2031.   Mesa.  This allows Quake II to run on other 3D hardware that is
  2032.   supported by other OpenGL implementations.  At this time, I dont' know
  2033.   of any OpenGL implementations that support hardware other than 3Dfx,
  2034.   but this renderer ensures that when they appear, we'll be able to play
  2035.   Quake II with them.
  2036.  
  2037.   This is a GLX application, and as such, must be run from X.
  2038.  
  2039.   You can use this client with Mesa/3Dfx if you install Mesa and Glide
  2040.   as explained in the previous section, then set the $MESA_GLX_FX
  2041.   environment variable to "fullscreen" before you run quake2:
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.        export MESA_GLX_FX=fullscreen
  2048.        ./quake2 +set vid_ref glx +set _windowed_mouse 1
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.   Why the +set _windowed_mouse 1 option?  Remember that this is an X
  2055.   application which happens to use your 3Dfx card.  Even though the
  2056.   display takes up your entire screen, Quake II is stil running in a
  2057.   window.  This means that if you're not very careful, you could move
  2058.   the mouse pointer outside the Quake II window, and Quake II will
  2059.   suddenly stop responding to mouse and keyboard input.  +set
  2060.   _windowed_mouse 1 avoids this problem by telling quake2 to grab the
  2061.   mouse and not let it move outside its window.
  2062.  
  2063.  
  2064.   3.9.  Linux-Specific Command Line Options
  2065.  
  2066.   This section will cover command line options that are specific to the
  2067.   Linux version of Quake II.  There are plenty of other Quake II
  2068.   options, but they're beyond the scope of this HOWTO.  Check out some
  2069.   of the sites listed in section ``General Quake Information'' for this
  2070.   kind of information.
  2071.  
  2072.   These are actually cvars (client variables) that you can set in the Q2
  2073.   console, but it makes the most sense to set them on the command line.
  2074.   Set them with +set on the command line, like:
  2075.  
  2076.  
  2077.  
  2078.             ./quake2 +set cd_dev /dev/hdc
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.      cd_dev device
  2086.         Name of the CD-ROM device.
  2087.  
  2088.  
  2089.      nocdaudio value
  2090.         Disable CD audio if value is nonzero
  2091.  
  2092.  
  2093.      sndbits num
  2094.         Set  sound bit sample size.  Default is 16.
  2095.  
  2096.  
  2097.      sndspeed num
  2098.         Set sound sample speed.  Usual values are 8000, 11025, 22051 and
  2099.         44100.  If set to zero, causes the sound driver to attempt
  2100.         speeds in the following order: 11025, 22051, 44100, 8000.
  2101.  
  2102.  
  2103.      sndchannels num
  2104.         Indicates stereo or mono sound.  Defaults to 2 (stereo). Use 1
  2105.         for mono.
  2106.  
  2107.  
  2108.      nostdout value
  2109.         Don't do any output to stdout.  Use this if you don't want all
  2110.         the console output dumped to your terminal.
  2111.  
  2112.  
  2113.   3.10.  Quake II Servers
  2114.  
  2115.   Linux's strength as an internet server make it a perfect platform for
  2116.   running an internet Quake II server.  This section will touch on the
  2117.   basics and Linux-specific aspects of starting up a Quake II server.
  2118.   More detailed information about running Quake II servers is available
  2119.   elsewhere (see section ``Other Sources of Information'' earlier in
  2120.   this document.
  2121.  
  2122.  
  2123.   3.10.1.  Listen Servers
  2124.  
  2125.   You can start a Quake II "Listen" server from within the game via the
  2126.   Multiplayer menu.  This allows you to host a game and participate in
  2127.   it at the same time.
  2128.  
  2129.   To start a Listen server, start Quake II, bring up the Quake II menu
  2130.   with the ESC key, and select Multiplayer.  It should be pretty self-
  2131.   explanatory from there.
  2132.  
  2133.  
  2134.   3.10.2.  Dedicated Servers
  2135.  
  2136.   For a permanent, stand-alone Quake II server that needs to run without
  2137.   constant attention, using the Listen server is impractical.  Quake II
  2138.   has a Dedicated server mode that is better suited to this type of use.
  2139.   A dedicated server is started from the command line and uses fewer
  2140.   system resources than a Listen server because it doesn't start the
  2141.   graphical client piece at all.
  2142.  
  2143.   To start a dedicated server, use the command line option +set
  2144.   dedicated 1.  You can set additional server parameters either on the
  2145.   command line or in a config file that you +exec on the command line.
  2146.   Your config file should reside in the baseq2 directory.
  2147.  
  2148.   A few common server options are listed below.  To set options on the
  2149.   command line, do +set fraglimit 30.  Options are set the same way in a
  2150.   config file, only you don't want the + before the set.  Invoke your
  2151.   config file like this: +exec server.cfg.
  2152.  
  2153.  
  2154.      fraglimit
  2155.         Number of frags required before the map changes
  2156.  
  2157.      timelimit
  2158.         Time in minutes that must pass before the map changes
  2159.  
  2160.      hostname
  2161.         The name of your Quake II server.  This is an arbitrary string
  2162.         and has nothing to do with your DNS hostname.
  2163.  
  2164.      maxclients
  2165.         The maximum number of players that can connect to the server at
  2166.         once.
  2167.  
  2168.   For enough Quake II console and command line information to choke a
  2169.   horse, see Farenheit 176 (http://www.planetquake.com/f176).
  2170.  
  2171.  
  2172.   3.10.3.  Other Sources of Server Information
  2173.  
  2174.  
  2175.   ╖  The Q2 Server FAQ has a basic step-by-step guide to set up a Q2
  2176.      Server under Linux: http://www.bluesnews.com/faqs/q2s-faq.html
  2177.  
  2178.  
  2179.   ╖  Grant Cornelius Reticulus Copernicus Sperry (flubber@xmission.com)
  2180.      has some basic Q2 server config files and startup scripts at
  2181.      http://www.atomicage.com:80/quake/server/server_cfg/.
  2182.  
  2183.  
  2184.  
  2185.   3.11.  Mods & Addons
  2186.  
  2187.   Quake II modifications like Capture the Flag, Jailbreak, and Lithium
  2188.   II are very popular extensions of the original Quake II game.  Some
  2189.   mods reside entirely on the server (Lithium), and some also require
  2190.   changes to your client (CTF).  For server only mods, you just connect
  2191.   normally and play.  Client-side mods require you to install additional
  2192.   files in your quake2 directory before you can play.
  2193.  
  2194.  
  2195.   3.11.1.  Client Side Mods
  2196.  
  2197.   Generally, installation of a client-side mod consists of just
  2198.   downloading the client package and upacking it in your Quake II
  2199.   directory, but you should refer to the mod's documentation for
  2200.   specific details.  It may be necessary to download a Linux-specific
  2201.   package in addition to the main (Windows) client package.  Also be
  2202.   aware that all mods may not be available for Linux.
  2203.  
  2204.   Client-side mod packages usually contain a new gamei386.so file and
  2205.   one or more .pak files.  Other new files may be included as well.
  2206.   These new files will be installed in a subdirectory below your Quake
  2207.   II directory.  Use +set game mod-dir on the command line to run the
  2208.   mod.  Rocket Arena 2, for example, gets installed in a directory
  2209.   called arena.  To play RA2, your would start your client like so:
  2210.  
  2211.  
  2212.              ./quake2 +set game arena
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.   3.11.1.1.  Capture the Flag
  2220.  
  2221.   Since this is by far the most popular variation of multiplayer Quake
  2222.   II, I've included specific instructions for installing this mod.
  2223.   Capture the Flag for Quake II is available from id's ftp site.
  2224.   Download it, then install like so:
  2225.  
  2226.  
  2227.  
  2228.             cd /usr/local/games/quake2
  2229.             mkdir ctf
  2230.             cd ctf
  2231.             unzip -L /wherever/you/put/it/q2ctf102.zip
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.   Start Quake II with +set game ctf to play CTF.
  2238.  
  2239.  
  2240.   3.11.2.  Server Side Mods
  2241.  
  2242.   Running a Quake II mod on a server isn't much different than running
  2243.   one on the client side.  Generally you'll need to install gamei386.so
  2244.   and server.cfg files in a new subdirectory and then start your server
  2245.   like
  2246.  
  2247.  
  2248.             ./quake2 +set game XXXX +set dedicated 1 +exec server.cfg
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.   Where XXXX above is the name of the mod's new subdirectory.  The exact
  2255.   procedure will vary from mod to mod, of course.  See the mod's docu¡
  2256.   mentation for specific details.
  2257.  
  2258.  
  2259.   3.11.3.  Game Source
  2260.  
  2261.   The entire game, with the exception of the engine itself, resides in a
  2262.   shared library, gamei386.so.  Quake II mods are created by changing
  2263.   the contents of this file.  The C source is freely available (section
  2264.   ``Download the Necessary Files'' above) for anyone to download and
  2265.   modify.
  2266.  
  2267.   After you've downloaded the source, here's how to get started with it:
  2268.  
  2269.  
  2270.  
  2271.              cd /usr/local/games/quake2
  2272.              mkdir mymod
  2273.              cd mymod
  2274.              gunzip /wherever/you/put/it/q2source-3.14.shar.Z
  2275.              sh /wherever/you/put/it/q2source-3.14.shar
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.   You'll be presented with a bunch of legalese that you must answer yes
  2282.   to, then the game source will be extracted.  Building a new
  2283.   gamei386.so out of these sources is accomplished with a simple make.
  2284.   You can run Quake II with the newly compiled library like so:
  2285.  
  2286.  
  2287.  
  2288.              cd /usr/local/games/quake2
  2289.              ./quake2 +set game mymod
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.   Not too exciting yet, since what you just built is identical to the
  2296.   "stock" gamei386.so, but this should be good information for aspiring
  2297.   mod authors.
  2298.  
  2299.  
  2300.   3.11.4.  Mission Packs **
  2301.  
  2302.  
  2303.   ╖  Mission Pack 1: The Reckoning The Reckoning requires Quake II
  2304.      version 3.15 or later to run.  You'll need at least 95 MB for a
  2305.      minimum installation.  Another 90 MB are required if you want to
  2306.      install the video sequences as well.  Assuming your CD is mounted
  2307.      on /mnt/cdrom and Quake II is installed in /usr/local/games/quake2:
  2308.  
  2309.  
  2310.  
  2311.        cd /usr/local/games/quake2
  2312.        cp -r /mnt/cdrom/Data/all/* xatrix/
  2313.        rm -f xatrix/gamex86.dll
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.   If you want to install the video sequences:
  2321.  
  2322.  
  2323.  
  2324.             cp -r /mnt/cdrom/Data/max/xatrix/video xatrix
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.   Play The Reckoning like this:
  2332.  
  2333.  
  2334.             cd /usr/local/games/quake2
  2335.             ./quake2 +set game xatrix
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.   ╖  Mission Pack 2: Ground Zero It requires Quake II version 3.17 or
  2343.      later to run.  You'll need at least 120 MB for a minimum
  2344.      installation.  Another 115 MB are required if you want to install
  2345.      the video sequences as well.  Assuming your CD is mounted on
  2346.      /mnt/cdrom and Quake II is installed in /usr/local/games/quake2:
  2347.  
  2348.  
  2349.  
  2350.             cd /usr/local/games/quake2
  2351.             cp -r /mnt/cdrom/Data/all/* rogue/
  2352.             rm -f rogue/gamex86.dll
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.   If you want to install the video sequences:
  2360.  
  2361.  
  2362.  
  2363.             cp -r /mnt/cdrom/Data/max/rogue/video rogue
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.   Play Ground Zero like this:
  2371.  
  2372.  
  2373.             cd /usr/local/games/quake2
  2374.             ./quake2 +set game rogue
  2375.  
  2376.  
  2377.   4.  Related Software ++
  2378.  
  2379.  
  2380.  
  2381.   4.1.  QStat
  2382.  
  2383.   Qstat is a command line based program that returns the status of
  2384.   internet Quake, QuakeWorld, and Quake 2 servers created by Steve
  2385.   Jankowski mailto:steve@activesw.com.
  2386.  
  2387.   Here's the feature summary from the QStat homepage:
  2388.  
  2389.   ╖  Supports Windows 95, NT, and most Unixes
  2390.  
  2391.   ╖  Comes with C source code and a binary for Windows
  2392.  
  2393.   ╖  Supports old Quake (NetQuake), QuakeWorld, Hexen II, and Quake II
  2394.      servers
  2395.  
  2396.   ╖  Can display all available statistics, including player info and
  2397.      server rules
  2398.  
  2399.   ╖  Output templates for automatic HTML generation
  2400.  
  2401.   ╖  Raw display mode for integration with HTML page generators
  2402.  
  2403.   ╖  Built-in host name cache
  2404.  
  2405.   ╖  Sort by ping time, game, or both
  2406.  
  2407.   ╖  More options than you can wiggle a mouse at
  2408.  
  2409.   Qstat is a must-have tool if you're planning on doing any net play.  A
  2410.   number of front-ends for qstat have been written as well.  Some of
  2411.   them are listed later in this section.
  2412.  
  2413.   You can get the latest version of qstat from the QStat Homepage
  2414.   (http://www.activesw.com/people/steve/qstat.html.
  2415.  
  2416.  
  2417.   4.2.  XQF
  2418.  
  2419.   XQF is a graphical front-end to QStat that uses the GTK toolkit.  This
  2420.   is the best QuakeWorld/Quake2 server browser that currently exists,
  2421.   and Roman Pozlevich (roma@botik.ru), is still cranking out revisions
  2422.   at the rate of about one per month.
  2423.  
  2424.   If you're familiar with GameSpy for the Windows platform, this is the
  2425.   closest thing to it for Linux.
  2426.  
  2427.   The XQF homepage is at http://www.linuxgames.com/xqf.
  2428.  
  2429.  
  2430.   4.3.  QuickSpy
  2431.  
  2432.   QuickSpy is a text-based QuakeWorld server browser.  It's another
  2433.   front-end to QStat and it works pretty well.  If you don't run X and
  2434.   you don't have Quake II, this is a decent option.  Beware though, it's
  2435.   no longer under development.
  2436.  
  2437.  
  2438.   You can get QuickSpy at
  2439.   http://diana.ecs.soton.ac.uk/~rht96r/quake/quickspy/.
  2440.  
  2441.  
  2442.  
  2443.   4.4.  QPlug for Linux
  2444.  
  2445.   Qplug is a Netscape plugin which retrieves and displays QuakeWorld and
  2446.   Quake II server information embedded in a web page. A Windows Qplug
  2447.   has been around for some time.  The author, Olivier Debon
  2448.   (odebon@club-internet.fr) wrote the Linux version from scratch without
  2449.   ever having seen the Windows version.
  2450.  
  2451.   QPlug for Linux can be got at
  2452.   http://www.geocities.com/TimesSquare/Labyrinth/5084/qplug.html.
  2453.  
  2454.  
  2455.   4.5.  qkHacklib
  2456.  
  2457.   David Bucciarelli (tech.hmw@plus.it), author of the 3Dfx driver for
  2458.   Mesa, has written a library called qkHack, which tries to emulate all
  2459.   the SVGAlib/fxMesa functions used by Quake and Quake II.  This would
  2460.   remove the need for SVGAlib when running glquake or Quake II with
  2461.   ref_gl.  Other features from the qkHacklib README:
  2462.  
  2463.  
  2464.   ╖  You can dynamically switch between fullscreen rendering and the in
  2465.      window rendering just pressing the TAB key (you must start your X
  2466.      server in 16 bpp mode in order to use this feature)
  2467.  
  2468.   ╖  You can press Ctrl-C in the shell or kill the Quake process without
  2469.      problems
  2470.  
  2471.   ╖  you can enable/disable the mouse and keyboard 'grabbing' pressing
  2472.      F11/F12
  2473.  
  2474.   ╖  you can iconify and pause Quake pressing the F10 (it will not eat
  2475.      more CPU cycles). You can restart everything with a double click in
  2476.      the "****" icon
  2477.  
  2478.   ╖  you can run Quake with any Mesa driver (for example with the X11
  2479.      driver but you must recompile the Mesa without the Voodoo driver)
  2480.  
  2481.   ╖  you can run Quake under any Linux box and get the hardware
  2482.      acclerated output on a SGI box (OK, this is a bit exotic and
  2483.      theoretical as feature but it is an example of how powerful can be
  2484.      an GLX/OpenGL application)
  2485.  
  2486.   I've tried qkHacklib and it works great for Quake on my system.  In
  2487.   Quake II, however, the mouse response becomes really slow.  Others
  2488.   report complete success, though, so give it a try it it sounds like
  2489.   something you need.
  2490.  
  2491.   David Bucciarelli's qkHacklib web page is at http://www-
  2492.   hmw.caribel.pisa.it/fxmesa/fxqkhack.html.
  2493.  
  2494.  
  2495.   4.6.  GiMd2Viewer
  2496.  
  2497.   GiMd2Viewer is a Quake 2 model viewer written for Gtk and OpenGL by
  2498.   Lionel Ulmer (bbrox@mygale.org). It loads models and textures from
  2499.   either plain files or .PAK files.  It will also animate the models
  2500.   (with frame interpolation).
  2501.  
  2502.   This program is still under developement and I haven't tried it yet,
  2503.   but it sounds pretty nifty.  Check it out at
  2504.   http://www.mygale.org/~bbrox/GiMd2Viewer/.
  2505.  
  2506.  
  2507.  
  2508.  
  2509.   4.7.  QIPX
  2510.  
  2511.   QIPX is a set of programs that allow Linux Quake clients (using
  2512.   TCP/IP) to connect with DOS Quake clients (using IPX).  I guess this
  2513.   is useful if you're playing netquake on a LAN.  QIPX is available at
  2514.   http://www.geocities.com/SiliconValley/Park/6083/qipx.html.
  2515.  
  2516.  
  2517.   4.8.  Ice
  2518.  
  2519.   Ice is a Quake map editor for UN*X created by C.J. Beyer and John
  2520.   Watson.  I haven't used this program, nor do I know what its
  2521.   development status is.  The Ice homepage is at
  2522.   http://styx.phy.vanderbilt.edu/~ice/.
  2523.  
  2524.  
  2525.   4.9.  Q2getty
  2526.  
  2527.   Q2getty is a hack of mingetty by Mike Gleason (mgleason@ncftp.com)
  2528.   that allows you to automatically run and respawn a program (like a
  2529.   Quake server) on a virtual console.  This program is available in the
  2530.   files section at http://www.ncftpd.com/unixstuff/q2getty.html.
  2531.  
  2532.  
  2533.   4.10.  rcon
  2534.  
  2535.   Rcon is a pair of tools that allow remote administration of a Quake II
  2536.   server using the RCON protocol.  Michael Dwyer
  2537.   (michael_dwyer@mwiworks.com) is the author.  Rcon 1.1 is available at
  2538.   .
  2539.  
  2540.  
  2541.   4.11.  qlog ++
  2542.  
  2543.   Qlog is a GPL'ed QuakeWorld/Quake II server log parser that generates
  2544.   comprehensive player statistics.   Craig Knudsen (cknudsen@radix.net)
  2545.   is the author.  The qlog homepage is
  2546.   http://www.radix.net/~cknudsen/qlog/.
  2547.  
  2548.  
  2549.   4.12.  Cheapo **
  2550.  
  2551.   Cheapo is a proxy that can be used to route QuakeWorld network
  2552.   traffic. Additionally, the proxy can modify the data and has features
  2553.   for enhancing gameplay. You can connect to cheapo as if it were a
  2554.   Quakeworld server, and then give it commands that forward you to a
  2555.   real server.  The proxy can also be run on a firewall machine
  2556.   incapable of handling Quake traffic, so that machines inside the
  2557.   firewall can be used for playing.  The Cheapo homepage is at
  2558.   http://www.saunalahti.fi/~softech/.
  2559.  
  2560.  
  2561.   4.13.  qgraph **
  2562.  
  2563.   QGraph (Quake Graph) is a utility to help people in managing Quake's
  2564.   DeathMathes, turnments and Quakeworld games.  QGraph is a program who
  2565.   connects (via Lan or the Internet) to a Quake, QuakeII, Quakeworld and
  2566.   Hexen2 Servers and shows you realtime data about the game running on
  2567.   that server.  The QGraph homepage is at http://www.frag.com/qgraph.
  2568.  
  2569.  
  2570.  
  2571.   5.  Troubleshooting/FAQs
  2572.  
  2573.  
  2574.  
  2575.   5.1.  General
  2576.  
  2577.  
  2578.  
  2579.   5.1.1.  OS difference considerations
  2580.  
  2581.  
  2582.   ╖  Case sensitivity - In DOS and Windows, case is not important.
  2583.      BASE1.TXT is the same as base1.txt.  Under Linux and other unices,
  2584.      case IS significant.  MOTD.TXT and motd.txt are different files.
  2585.      This can cause problems with player models and skin files if
  2586.      they're installed with upper- or mixed-case filenames.
  2587.      players/male/santa.PCX needs to be renamed to santa.pcx in order to
  2588.      work in Linux.  The fixskins.sh script included with quakeworld
  2589.      will convert all filenames in a directory to lowercase. It's
  2590.      reproduced below for your convenience:
  2591.  
  2592.      ___________________________________________________________________
  2593.           #!/bin/sh
  2594.           for x in *; do
  2595.              y=`echo $x | tr '[A-Z]' '[a-z]'`
  2596.              if [ $x != $y ]; then
  2597.                 mv $x $y
  2598.              fi
  2599.           done
  2600.  
  2601.      ___________________________________________________________________
  2602.  
  2603.  
  2604.  
  2605.   ╖  Path delimiters - DOS and Windows use the backslash "\" character
  2606.      to separate file pathname elements.  In Unix, the backslash is an
  2607.      escape character.  If you use file pathnames in your config files
  2608.      (or your mod code, or anywhere else, for that matter), be sure
  2609.      you're using "/" and not "\".
  2610.  
  2611.   ╖  End of line characters - Under DOS/Windows, each line of a text
  2612.      file ends with a carriage return character (CR) and a linefeed
  2613.      character (LF).  Unix textfiles just have a linefeed at the end of
  2614.      each line.  Using DOS/Win formatted textfiles in Unix can cause all
  2615.      kinds of mysterious Quake problems.  Using the incorrectly
  2616.      formatted quake2.conf file from the Quake2 3.17 package, for
  2617.      example, gives the error "LoadLibrary("ref_XXX.so") failed: No such
  2618.      file or directory".  LMCTF-TE reports a floating point exception.
  2619.      If you've got an problem you can't explain, try removing the CRs
  2620.      from your text files:
  2621.  
  2622.  
  2623.             mv file.txt file.bak; tr -d '\r' < file.bak > file.txt
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.   5.1.2.  Glibc, RedHat 5.x, Debian 2 considerations**
  2631.  
  2632.   The following applies the Quake I binaries (squake, glquake, and
  2633.   quake.x11) only.  As of versions 2.30 and 3.19 respectively,
  2634.   QuakeWorld and Quake II are available in both libc5 and glibc
  2635.   versions.
  2636.  
  2637.   The Quake executables were compiled with libc5.  Newer Linux
  2638.   distributions like RedHat 5.1 and Debian 2.0 use the incompatible
  2639.   glibc as their default C library.  If you're running Quake on a glibc
  2640.   system, there are a few things to watch out for:
  2641.   ╖  Both RedHat 5 and Debian 2 have libc5 compatibility packages that
  2642.      allow you to run libc5-based applications.  Make sure you have
  2643.      these packages installed.  Both distributions put the libc5-based
  2644.      libraries in /usr/i486-linux-libc5/lib.
  2645.  
  2646.   ╖  Make sure Quake uses the correct libraries.  Create a script like
  2647.      the one below that points $LD_LIBRARY_PATH to your compatibility
  2648.      libraries directory before it runs Quake.
  2649.  
  2650.      ___________________________________________________________________
  2651.           #!/bin/sh
  2652.           export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib
  2653.           ./quake2 +set vid_ref gl $*
  2654.  
  2655.      ___________________________________________________________________
  2656.  
  2657.  
  2658.  
  2659.   ╖  If you are going to compile a library like SVGAlib or Mesa for use
  2660.      with Quake, it must be compiled with libc5 and friends.  Simply
  2661.      building a new library according its installation instructions will
  2662.      result in a library that is linked against your default library,
  2663.      glibc.  You must ensure your new library is linked only with libc5
  2664.      and libc5-based libraries so it will be compatible with Quake.  See
  2665.      your distribution's documentation for information on linking to the
  2666.      non-default libraries.
  2667.  
  2668.  
  2669.  
  2670.   5.1.3.  My mouse doesn't work or seems to respond randomly.
  2671.  
  2672.  
  2673.   ╖  Is gpm running?  gpm is a program that enables you to cut and paste
  2674.      with the mouse in virtual consoles.  Many distributions enable it
  2675.      by default.  It may be interfering with Quake.  Check if it's
  2676.      running with the following command:
  2677.  
  2678.  
  2679.             ps aux | grep gpm
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.   If you get output like
  2686.  
  2687.  
  2688.             root      6115  0.0  0.4   832   316  ?  S   17:54   0:00 gpm -t PS/2
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.   then gpm is running and interfering with Quake.  gpm -k (as root)
  2695.   ought to stop gpm.  If it doesn't (gpm -k doesn't always work on my
  2696.   system),  kill gpm with the command killall gpm.
  2697.  
  2698.   If you never use gpm, you may want to stop it from running at startup.
  2699.   See the documentation for your distribution for information on how to
  2700.   do this.
  2701.  
  2702.  
  2703.   ╖  Is your mouse defined properly in libvga.config?  This file usually
  2704.      lives in /etc or /etc/vga.  Open it up and look for a line like
  2705.  
  2706.  
  2707.        mouse Microsoft
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.   On my system, this is the first option in the file.  Make sure the
  2714.   mouse type is appropriate for your hardware.
  2715.  
  2716.  
  2717.  
  2718.   5.1.4.  My Microsoft Intellimouse or Logitech MouseMan+ isn't working
  2719.   correctly.
  2720.  
  2721.   SVGAlib, which handles mouse input for SVGA and GL Quake/QW/Q2, didn't
  2722.   directly support the Intellimouse until version 1.3.0.  If you have a
  2723.   version of SVGAlib prior to 1.3.0, you should upgrade, then use mouse
  2724.   type IntelliMouse (for serial mice) or IMPS2 (for PS/2 mice) in your
  2725.   libvga.config file.
  2726.  
  2727.  
  2728.   5.1.5.  My mouse is "laggy" and seems much slower than under Windows.
  2729.  
  2730.  
  2731.   ╖  For many people, just cranking up the value of sensitivity in the
  2732.      game console cures the problem.  Setting sensitivity by hand in the
  2733.      console or in a .cfg file allows you to increase the mouse
  2734.      sensitivity more than the slider in the Options menu.  sensitivity
  2735.      15, for example.
  2736.  
  2737.   ╖  From Zoid's 1/7/98 .plan update:
  2738.  
  2739.        If you are experience video 'lag' in the GL renderer (the
  2740.        frame rate feels like it's lagging behind your mouse move¡
  2741.        ment) type "gl_finish 1" in the console. This forces update
  2742.        on a per frame basis.
  2743.  
  2744.  
  2745.  
  2746.   ╖  The latest version of SVGAlib (1.3.0) provides a slew of parameters
  2747.      in libvga.config that you can use to customize the behavior of your
  2748.      mouse.  With the proper settings it should be possible to make your
  2749.      mouse feel any way you want.  On my system, just changing
  2750.      mouse_accel_type to normal (default is power) gave me the results I
  2751.      wanted.  I haven't messed with the other settings, and I don't
  2752.      pretend to have a clue about what they all do.
  2753.  
  2754.   ╖  The little slider
  2755.  
  2756.  
  2757.   5.1.6.  I have a Voodoo2, and, when I try to run with the gl renderer,
  2758.   it reports that I don't have a Voodoo card installed.
  2759.  
  2760.   There are different versions of Glide for Voodoo and Voodoo 2 cards.
  2761.   Be sure you downloaded the correct one for your system.
  2762.  
  2763.  
  2764.  
  2765.   5.1.7.  When I'm playing any of the Quake games under SVGAlib or GL
  2766.   and press CTRL-C, the game exits and sometimes leaves my console in an
  2767.   unusable state.
  2768.  
  2769.   5.1.8.  Sometimes when Quake/Quake II exits abnormally, it leaves my
  2770.   console unusable.
  2771.  
  2772.  
  2773.   Yes.  This bites.  SVGAlib catches the CTRL-C and decides what to do
  2774.   with it instead of allowing Quake to handle it.  I know of no way
  2775.   around this short of hacking SVGAlib.
  2776.  
  2777.   If you run your Quake games from a script that resets the keyboard and
  2778.   terminal like the one below, you'll run less chance of ending up with
  2779.   a hosed terminal if this does happen, though.
  2780.  
  2781.  
  2782.   ______________________________________________________________________
  2783.        #!/bin/sh
  2784.        ./quake2 $*
  2785.        kbd_mode -a
  2786.        reset
  2787.  
  2788.   ______________________________________________________________________
  2789.  
  2790.  
  2791.  
  2792.  
  2793.   5.1.9.  squake/quake2 fails to start and says " svgalib: cannot get
  2794.   I/O permissions"
  2795.  
  2796.   The Quake executables must run as root, so you must either run them as
  2797.   root or make them setuid root.  See the installation instructions in
  2798.   this document for details.
  2799.  
  2800.  
  2801.   5.1.10.  Sometimes after  playing one of the Quake games in X, key
  2802.   repeat doesn't work any more.
  2803.  
  2804.   For some reason, the X11 versions of Quake disable key repeat while
  2805.   they're running.  If the program exits abnormally for some reason, key
  2806.   repeat never get turned back on. Do
  2807.  
  2808.  
  2809.             xset r on
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.   to reenable it.
  2816.  
  2817.  
  2818.   5.1.11.  Quake/Quake II says "/dev/dsp : device not configured"
  2819.  
  2820.   Your sound hardware is not properly configured.  You may simply need
  2821.   to do a insmod sound, or it may be necessary to rebuild your kernel.
  2822.   RedHat users may need to invoke the sndconfig(8) utility.  See the
  2823.   documentation for your Linux distribution and/or the Linux Sound HOWTO
  2824.   for information on configuring your system's sound hardware.
  2825.  
  2826.  
  2827.   5.1.12.  GL Quake/Quake II run slower in Linux than in Windows. **
  2828.  
  2829.   The Windows 3Dfx GL miniport is heavily optimized for the things Quake
  2830.   II does.  Mesa on the other hand, is more general and less optimized
  2831.   As a result, Linux Quake II runs slower than under Windows.  This
  2832.   isn't a limitation of Linux, but a limitation of the current drivers.
  2833.  
  2834.   With the most recent releases of QuakeWorld and Quake II, the 3Dfx
  2835.   miniport mentioned above is available for Linux.  While it still
  2836.   doesn't bring Linux Quake performance to par with Windows Quake, it's
  2837.   another step in that direction.
  2838.  
  2839.   Additionally, for Pentium Pro and Pentium II users, there are some
  2840.   tweaks than can be done with memory buffering - the latest /dev/3dfx
  2841.   device driver has support for automatically setting this up for you.
  2842.   Enabling MTRRs can result in significant (10 fps on my system) GL
  2843.   Quake speedups. See http://glide.xxedgexx.com/MTRR.html for some more
  2844.   detailed information about this.
  2845.  
  2846.  
  2847.   5.1.13.  How can I start a server and log off, then come back to it
  2848.   later? **
  2849.  
  2850.   screen(1) is a great utility for this sort of thing.  It allows you to
  2851.   create many virtual screens in one tty and switch between them.
  2852.   Screen comes with most distributions.  You can download it from
  2853.   ftp://prep.ai.mit.edu/pub/gnu or any GNU mirror.
  2854.  
  2855.   Start screen by typing the command screen, then create a new screen
  2856.   window by pressing CTRL-A CTRL-C.  You won't see much as you do these
  2857.   things, but be assured, something is happening.
  2858.  
  2859.   Start a Quakeworld server:
  2860.  
  2861.  
  2862.             /usr/local/games/quake/qwsv
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.   Now open a new screen window with CTRL-A CTRL-C and start up a Quake
  2869.   II server:
  2870.  
  2871.  
  2872.             /usr/local/games/quake2/quake2 +set dedicated 1
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.   You can switch back and forth between your servers by pressing CTRL-A
  2879.   CTRL-N.
  2880.  
  2881.   Press CTRL-A CTRL-D to detach from the screen program.  Screen and
  2882.   your servers are still running, but they're no longer visible in your
  2883.   terminal window.  You can logoff now and your processes will continue
  2884.   to run normally.
  2885.  
  2886.   Use screen -r to re-attach to your previous screen process and access
  2887.   your servers again.
  2888.  
  2889.   That's all there is to it.  See the screen(1) man page for more
  2890.   detailed information.
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.   5.2.  Quake/QuakeWorld
  2897.  
  2898.  
  2899.   5.2.1.  Quake dies at startup with a segmentation fault.
  2900.  
  2901.   This usually means your network setup isn't right.  Try starting quake
  2902.   with the -noudp option and see if the error goes away.  If that fixes
  2903.   it, check your /etc/hosts file and verify there's an entry for your
  2904.   machine in it.  Use 127.0.0.1 for your IP address if you have a dialup
  2905.   account that gives you a different address each time you connect.
  2906.  
  2907.  
  2908.   5.2.2.  What's the difference between glqwcl , glqwcl.3dfxgl , and
  2909.   glqwcl.glx ? ++
  2910.  
  2911.  
  2912.   ╖  glqwcl is the standard GL Quakeworld client you've seen in previous
  2913.      versions.  It's linked against libMesaGL.so.2.
  2914.  
  2915.   ╖  glqwcl.3dfxgl is a script that runs glqwcl after preloading the
  2916.      3Dfx GL miniport library, lib3dfxgl.so.  Preloading the minport
  2917.      library causes its GL functions to get used instead of Mesa's.
  2918.      Since the GL minport is optimized for Quake, this is a good thing.
  2919.  
  2920.   ╖  glqwcl.glx is linked against standard OpenGL libriaries instead of
  2921.      Mesa.  This will allow glquake to run on other 3D hardware that is
  2922.      supported by some other OpenGL implementation.  This is an X
  2923.      application and so must be run from X.
  2924.  
  2925.  
  2926.   5.2.3.  When I run glqwcl.glx  fullscreen from X, I can't use my mouse
  2927.   or keyboard. ++
  2928.  
  2929.  
  2930.   Run glqwcl.glx with the +_windowed_mouse 1 option. GLX Quakeworld is
  2931.   running in a window, even though it appears to take up your whole
  2932.   screen.  If you move the mouse while the WM is in focus-follows-mouse
  2933.   mode, you're likely to move the pointer outside this window, and then
  2934.   Quake will stop responding to mouse and keyboard input.
  2935.   +_windowed_mouse 1 makes Quakeworld grab the mouse exclusively.
  2936.  
  2937.  
  2938.   5.3.  Quake II
  2939.  
  2940.  
  2941.   5.3.1.  When I try to run Quake II with the GL renderer, it fails and
  2942.   says "LoadLibrary("ref_gl.so") failed: Unable to resolve symbol"
  2943.  
  2944.   If immediately prior to the "Unable to resolve symbol" line, you have
  2945.   messages like "can't resolve symbol 'fxMesaCreateContext'", your Mesa
  2946.   library doesn't have glide support compiled in.  See section ``The GL
  2947.   renderer'' in the Quake II installation section for information on
  2948.   installing Mesa and glide.
  2949.  
  2950.  
  2951.   5.3.2.  Quake II fails with the message LoadLibrary("ref_XXX.so")
  2952.   failed: No such file or directory
  2953.  
  2954.  
  2955.   ╖  /etc/quake2.conf doesn't have the correct path to your Quake II
  2956.      directory in it.  This file should contain one line that is the
  2957.      directory Quake II lives in.
  2958.  
  2959.   ╖  If /etc/quake2.conf does contain the correct path, try removing the
  2960.      file and re-creating it by hand.  Some versions of Quake II for
  2961.      Linux included an incorrectly formatted quake2.conf file.
  2962.  
  2963.  
  2964.   ╖  Do you have SVGAlib installed?  Check /lib, /usr/lib and
  2965.      /usr/local/lib for a file called libvga.so.1.X.X, where the X's are
  2966.      some numbers.  If nothing turns up, you need to get and install
  2967.      SVGAlib to run Quake II outside of X.
  2968.  
  2969.   ╖  If the renderer in question is ref_gl.so, Mesa may not be properly
  2970.      installed.  Did you copy libMesaGL.so.2.6 to a library directory
  2971.      like the installation instruactions told you to?
  2972.  
  2973.  
  2974.   ╖  If the renderer in question is ref_gl.so, did you install the glide
  2975.      libraries?
  2976.  
  2977.  
  2978.  
  2979.   5.3.3.  When I update the brightness while using the GL renderer, and
  2980.   hit "apply," nothing happens!
  2981.  
  2982.  
  2983.   Type vid_restart in the console to make the changes take affect.
  2984.  
  2985.  
  2986.  
  2987.   5.3.4.  Note about the 3.17 distribution
  2988.  
  2989.  
  2990.   As of this writing, the most recent Quake II version is 3.19.  If for
  2991.   some reason, you're running version 3.17 instead, the following
  2992.   information may be helpful to you.
  2993.  
  2994.   Two text files (quake2.conf and fixperms.sh) in the 3.17 distribution
  2995.   were inadvertently saved in MS-DOS CR/LF text-file format instead of
  2996.   the unix LF format.  This means there's an extra carriage return
  2997.   character at the end of each line in these files and they're not going
  2998.   to behave right until you fix them.
  2999.  
  3000.   We'll run them through tr(1) to strip out the CR's.
  3001.  
  3002.  
  3003.  
  3004.             for i in fixperms.sh quake2.conf
  3005.             do
  3006.             mv $i $i.bak
  3007.             tr -d '\r' < $i.bak > $i
  3008.             done
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.   5.3.5.  When I run Quake II with +set vid_ref glx  fullscreen from X,
  3016.   I can't use my mouse or keyboard. ++
  3017.  
  3018.  
  3019.   Run GLX quake2 with the +set _windowed_mouse 1 option. GLX Quake2 is
  3020.   running in a window, even though it appears to take up your whole
  3021.   screen.  If you move the mouse while the WM is in focus-follows-mouse
  3022.   mode, you're likely to move the pointer outside this window, and then
  3023.   Quake II will stop responding to mouse and keyboard input.  +set
  3024.   _windowed_mouse 1 makes Quake II grab the mouse exclusively.
  3025.  
  3026.  
  3027.   5.3.6.  Why can't I change to some of the SVGA modes that aree in the
  3028.   Quake II Video menu? **
  3029.  
  3030.   SVGAlib probably doesn't know how to create the modes on your card.
  3031.   When Quake II starts up with the SVGA renderer (ref_soft.so), it
  3032.   prints a list of all the modes that SVGAlib tells it are available:
  3033.  
  3034.  
  3035.  
  3036.  
  3037.        ------- Loading ref_soft.so -------
  3038.        Using RIVA 128 driver, 4096KB.
  3039.        mode 320: 200 1075253220
  3040.        mode 320: 240 1075253220
  3041.        mode 320: 400 1075253220
  3042.        mode 360: 480 1075253220
  3043.        mode 640: 480 1075253220
  3044.        mode 800: 600 1075253220
  3045.        mode 1024: 768 1075253220
  3046.        mode 1280: 1024 1075253220
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.   These are the only modes you will be able to successfully switch to
  3053.   from the Video menu.  If say, 512x384 isn't on the list, selecting it
  3054.   from the Video menu won't work.
  3055.  
  3056.   SVGAlib does let you define new video modes for some chipsets in
  3057.   libvga.config, so you may be able create your own video mode this way.
  3058.   See the SVGAlib documentation for more detail on this topic.
  3059.  
  3060.  
  3061.  
  3062.   6.  Tips & Tricks
  3063.  
  3064.  
  3065.  
  3066.  
  3067.   6.1.  Running X and GL games without setuid
  3068.  
  3069.   If you only run the X and GL versions of Quake, QuakeWorld or Quake
  3070.   II, you don't need to run them with root permissions.  SVGA is the
  3071.   only mode that must be run as root.  The X versions just need access
  3072.   to /dev/dsp, the sound device.  The GL versions need access to the
  3073.   3Dfx card as well as to /dev/dsp.
  3074.  
  3075.   /dev/dsp needs to be readable and writeable by Quake.  Most
  3076.   distributions give it 662 (rw-rw--w-) permissions by default.  The
  3077.   simplest solution is to just chmod 666 /dev/dsp.  On most systems, the
  3078.   ability to read from the sound device will not pose a significant
  3079.   security threat.  If this approach is unacceptable for your system,
  3080.   create a group that owns /dev/dsp and make your Quake players members
  3081.   of that group.
  3082.  
  3083.   You need the /dev/3dfx driver from Daryll Strauss' glide page
  3084.   (http://glide.xxedgexx.com/3DfxRPMS.html) in order run glide
  3085.   applications (like GLQuake) non-root.  Download the Device3Dfx.xxx.rpm
  3086.   package and install according to the instructions on the web page.
  3087.   After you've installed the driver, make sure /dev/3dfx has 666
  3088.   permissions (chmod 666 /dev/3dfx).
  3089.  
  3090.   When /dev/dsp and /dev/3dfx are properly set up, you can remove the
  3091.   setuid bit from your Quake/QW/Q2 executables.  Just do (as root) chmod
  3092.   0755 XXXXX, where XXXXX is either glquake, quake.x11, or quake2.
  3093.  
  3094.   If you've been playing as root prior to making these changes, many of
  3095.   your Quake files (like savegames) may be owned by root and
  3096.   inaccessible to a normal user, so remember to change the files'
  3097.   ownership before you attempt to play the game non-root.
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.   6.2.  Running SVGA and GL games from X**
  3104.  
  3105.   The GLX Quakeworld and Quake II clients are native X applications, but
  3106.   since they use Mesa rather than the 3Dfx mini-driver, they're slower
  3107.   than the lib3dfxgl.so versions.  For this reason, you may still favor
  3108.   this way of starting games from X over using the GLX clients.
  3109.  
  3110.   This is based on a Linux Gazette 2 Cent Tip by Joey Hess
  3111.   (joey@kite.ml.org) The original is at
  3112.   http://www.ssc.com/lg/issue20/lg_tips20.html#squake
  3113.  
  3114.   Yes, it's possible to run the Quake games from X if you're root, but
  3115.   such behavior is naughty, and you still run the risk of having Quake
  3116.   crash and leave the console unresponsive.  With a little work you can
  3117.   make it possible for a regular user to run SVGA and GL Quake from X
  3118.   AND automatically switch back to X when the program is finished,
  3119.   regardless of whether it exited normally or not.
  3120.  
  3121.   Note: when I say "Quake" in the text below, I really mean "quake,
  3122.   glquake squake, qwcl, glqwcl, qwcl.x11 or quake2".
  3123.  
  3124.  
  3125.   ╖  First, you'll need the open(1) package by Jon Tombs. This is a set
  3126.      of two very small programs that allow you to switch between virtual
  3127.      consoles and start programs on them.  Download open from
  3128.      http://sunsite.unc.edu/pub/Linux/utils/console/.  You shouldn't
  3129.      have to do much more than make;make install to compile and install
  3130.      it. Once it's installed, you need to make the open and switchto
  3131.      executables setuid root.  So do this:
  3132.  
  3133.  
  3134.             cd /usr/local/bin
  3135.             chown root open switchto
  3136.             chmod 4755 open switchto
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.   ╖  Next, save the following code to a file called getvc.c:
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.      ___________________________________________________________________
  3170.              /* getvc.c
  3171.               * Prints the number of the current VC to stdout. Most of this code
  3172.               * was ripped from the open program, and this code is GPL'd
  3173.               *
  3174.               * Joey Hess, Fri Apr  4 14:58:50 EST 1997
  3175.               */
  3176.  
  3177.               #include <sys/vt.h>
  3178.               #include <fcntl.h>
  3179.  
  3180.               main () {
  3181.                 int fd = 0;
  3182.                 struct vt_stat vt;
  3183.  
  3184.                 if ((fd = open("/dev/console",O_WRONLY,0)) < 0) {
  3185.                   perror("Failed to open /dev/console\n");
  3186.                   return(2);
  3187.                 }
  3188.                 if (ioctl(fd, VT_GETSTATE, &vt) < 0) {
  3189.                   perror("can't get VTstate\n");
  3190.                   close(fd);
  3191.                   return(4);
  3192.                 }
  3193.                 printf("%d\n",vt.v_active);
  3194.               }
  3195.  
  3196.               /* End of getvc.c */
  3197.  
  3198.      ___________________________________________________________________
  3199.  
  3200.  
  3201.   Compile it and install it somewhere in your $PATH:
  3202.  
  3203.  
  3204.             gcc getvc.c -o getvc
  3205.             strip getvc
  3206.             mv getvc /usr/local/bin
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.   ╖  Now create a script called runvc: your $PATH:
  3214.  
  3215.      ___________________________________________________________________
  3216.           #!/bin/sh
  3217.           # Run something on a VC, from X, and switch back to X when done.
  3218.           # GPL Joey Hess, Thu, 10 Jul 1997 23:27:08 -0400
  3219.           exec open -s -- sh -c "$* ; chvt `getvc`"
  3220.  
  3221.      ___________________________________________________________________
  3222.  
  3223.  
  3224.   Make it executable and put it somewhere in your $PATH:
  3225.  
  3226.  
  3227.             chmod 755 runvc
  3228.             mv runvc /usr/local/bin
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.   Now you can use the runvc command to start Quake. Continue to use
  3236.   whatever command line you usually use to start your game, but put
  3237.   runvc at the beginning:
  3238.  
  3239.  
  3240.             runvc ./quake2 +set vid_ref gl +connect quake.foo.com
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.   You'll automatically switch to a VC, run Quake and then switch back to
  3247.   X when it's done!
  3248.  
  3249.  
  3250.  
  3251.   6.3.  Keeping the mouse inside the window in X
  3252.  
  3253.   From the Quake II readme.linux file:
  3254.  
  3255.        By default, the mouse will not be 'tied' to the Quake2 win¡
  3256.        dow.  To cause Quake2 to grab the mouse, select 'Windowed
  3257.        Mouse' from the video menu, or type '_windowed_mouse 0' at
  3258.        the console.  Do the reverse to release it.  You can bind
  3259.        keys to grab and release the mouse in the console, like so:
  3260.        bind i "_windowed_mouse 1" bind o "_windowed_mouse 0" Then
  3261.        "i" will grab the mouse and "o" will release it.
  3262.  
  3263.  
  3264.  
  3265.   6.4.  3Dfx "tweak" settings work in Linux too
  3266.  
  3267.   You may have seen or heard mention of ways to "tweak" Quake's OpenGL
  3268.   performance by setting various environment variables.  These variables
  3269.   are equally valid under Linux. You just set them slightly differently.
  3270.   If a Windows/DOS "tweak" guide tells you to:
  3271.  
  3272.  
  3273.             SET SST_GRXCLK=59
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.   Under Linux, do it like this:
  3280.  
  3281.  
  3282.             export SST_GRXCLK=59
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.   6.5.  The Poor Man's Server Browser
  3290.  
  3291.   Joe S. (jszabo@eden.rutgers.edu) suggests:
  3292.  
  3293.  
  3294.             a trick I do with qstat:
  3295.             I make a file of my favorite servers, then do
  3296.             qstat -f /C/quake2/file.txt | less
  3297.  
  3298.  
  3299.  
  3300.  
  3301.   hit control z to suspend, then copy the ip address or hostname I want
  3302.   with gpm to a command line like:
  3303.  
  3304.  
  3305.  
  3306.             ./quake2 +connect expert.eqclans.com
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.   Then I can use fg to go back to the list later...
  3313.  
  3314.  
  3315.   6.6.  Using lib3dfxgl.so  for Quake I**
  3316.  
  3317.   You can use the 3Dfx mini-driver (lib3dfxgl.so) from Quakeworld or
  3318.   Quake II with glquake too. Simply copy the glqwcl.3dfxgl or
  3319.   quake2.3dfxgl scripts to a new file, say glquake.3dfxgl. Then edit the
  3320.   glquake.3dfxgl script so it runs glquake instead of glqwcl.  The same
  3321.   restrictions about running as root apply here, as do the differences
  3322.   between running under glibc and libc5.  See the ``Quakeworld'' or
  3323.   ``Quake II'' sections for more information on lib3dfxgl.so.
  3324.  
  3325.  
  3326.   7.  Administrivia
  3327.  
  3328.  
  3329.  
  3330.   7.1.  New Versions of This Document
  3331.  
  3332.   New versions of this document will be periodically posted to
  3333.   comp.os.linux.answers and rec.games.computer.quake.misc.  They will
  3334.   also be uploaded to various WWW and FTP sites, including the LDP home
  3335.   page.
  3336.  
  3337.   New versions of this document will be periodically posted to
  3338.   rec.games.computer.quake.misc and comp.os.linux.misc.
  3339.  
  3340.   The latest version of the Linux Quake HOWTO can always be found at the
  3341.   following sites:
  3342.  
  3343.  
  3344.   ╖  http://www.linuxquake.com/
  3345.  
  3346.   ╖  http://webpages.mr.net/bobz/
  3347.  
  3348.   ╖  http://www.linuxgames.com/quake
  3349.  
  3350.  
  3351.   7.2.  Other Formats of This Document
  3352.  
  3353.  
  3354.   This document is available in a variety of different formats.  Far
  3355.   more than is necessary, actually.  You can find them at
  3356.   http://www.linuxquake.com/howto/other-formats.
  3357.  
  3358.   ╖  ASCII text
  3359.  
  3360.   ╖  ASCII text with backspace-overstrikes , suitable for viewing with
  3361.      man(1)
  3362.  
  3363.   ╖  HTML all zipped up and ready to be dropped into your web site
  3364.  
  3365.   ╖  Postscript
  3366.  
  3367.   ╖  PRC for viewing on your Palm Pilot with Aportis Doc
  3368.  
  3369.   ╖  SGML
  3370.  
  3371.   ╖  LaTeX
  3372.  
  3373.   ╖  All of the above are also available in a single convenient package
  3374.  
  3375.  
  3376.   7.3.  Distribution Policy
  3377.  
  3378.  
  3379.   Copyright (c) 1998, Bob Zimbinski, Brett A. Thomas and Mike Hallock.
  3380.   This document may be distributed under the terms set forth in the LDP
  3381.   license at sunsite.unc.edu/LDP/COPYRIGHT.html.
  3382.  
  3383.   This HOWTO is free documentation; you can redistribute it and/or
  3384.   modify it under the terms of the LDP license.  This document is
  3385.   distributed in the hope that it will be useful, but without any
  3386.   warranty; without even the implied warranty of merchantability or
  3387.   fitness for a particular purpose.  Heck, even if this document kills
  3388.   your dog, it's not our fault.
  3389.  
  3390.   See the LDP license for more details.
  3391.  
  3392.  
  3393.   7.4.  Revision History
  3394.  
  3395.   Sections of this document that were updated in the last revision have
  3396.   a ** after the section heading.  Sections updated in the revision
  3397.   prior to the last are marked with a ++.
  3398.  
  3399.   Below is the full revision history of this document.  It is not
  3400.   intended to be useful to anyone but the document authors.
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.   ______________________________________________________________________
  3434.        $Log: Quake-HOWTO.sgml,v $
  3435.        Revision 1.0.1.14  1998/10/05 19:54:17  bobz
  3436.        Removed the long-dead LinQuake page from list of Linux Quake sites
  3437.        Removed renaissoft.com link
  3438.        Minor wording changes throughout
  3439.        Added link to svgalib libc5 binary
  3440.        Added info about q2 demo
  3441.        Updated q2 installation info for the 3.19 release
  3442.        moved section about 3.17 textfile problems to the troubleshooting section
  3443.        Added part about lib3dfxgl.so to QW section
  3444.        Added part about GLX client to QW section
  3445.        Added part about lib3dfxgl.so to Q2 section
  3446.        Added part about GLX client to Q2 section
  3447.        Updated "slower than windows" FAQ
  3448.        Removed obsolete TS tip about glibc & q2
  3449.        Removed obsolete TS tip about playing w/CD mounted
  3450.        Changed tip about running glquake with lib3dfxgl.so
  3451.        Added instructions for Q2 mission pack 2
  3452.        Added pointer to svgalib libc5 binary
  3453.        Added FAQ about svgalib modes in Q2
  3454.        Added Cheapo proxy to software section
  3455.        Added screen FAQ
  3456.        Added qgraph to  software sectoin
  3457.        Decided I was lying when I promised a 3Dfx tweak section in the next update
  3458.  
  3459.        Revision 1.0.1.13  1998/09/02 01:35:18  bobz
  3460.        Fixed some broken url links
  3461.        Restored <author> tag
  3462.        added an acknowledgement
  3463.        added a reminder to the non-root tip
  3464.        added qlog listing
  3465.  
  3466.        Revision 1.0.1.12  1998/08/30 21:35:23  bobz
  3467.        Updated QuakeWorld install section for 2.30 release
  3468.        Updated QW file list
  3469.        Updated Quake 1.01 install info per email suggestion
  3470.        Added QW 2.30 caveat to "Glibc considerations" section
  3471.        Updated linux vs. windows speed section for new 3dfx miniport
  3472.        Added glqwcl versions FAQ
  3473.        Added troubleshooting tip about windows focus and glx
  3474.        Added a sentence about /dev/3dfx permissions
  3475.        Made runvc script usage clearer
  3476.        Added tip about using mini-driver with Quake & QuakeII
  3477.  
  3478.        Revision 1.0.1.11  1998/08/15 19:28:49  bobz
  3479.        Added glibc topic in Troubleshooting/FAQ section
  3480.        Moved non-setuid info to Tips & Tricks section
  3481.        Moved rcs log into Revision Hist section
  3482.        Changed distribution info a little until LDP wakes up
  3483.        Changed references to quake.medina.net to www.linuxquake.com
  3484.        Added linuxgames.com to list of places to get current version
  3485.        Changed 3dfx Howto pointer
  3486.        Moved explanation of change markings (** and ++) to intro section where they'll be noticed
  3487.        Mentioned zoid's GL driver port in the Win vs Linux FAQ
  3488.        Fixed credit and URL in q2getty
  3489.  
  3490.        Revision 1.0.1.10  1998/08/07 19:07:02  bobz
  3491.        Changed XQF url
  3492.        Added comments to the revision history section
  3493.        Started marking changed sections
  3494.        Added OS Considerations to troubleshooting section
  3495.        Added rcon to Other Software section
  3496.        Added ICE to Other Software section
  3497.  
  3498.        Revision 1.0.1.9  1998/08/04 21:06:22  bobz
  3499.        Updated Acknowledgements
  3500.        Added discussion of Quake security
  3501.        Added QIPX to "Related Software"
  3502.        Added ts topic about -noudp
  3503.  
  3504.        Revision 1.0.1.8  1998/08/03 22:09:28  bobz
  3505.        Updated and restructured the q2 mods section
  3506.        Minor change to gpm troubleshooting info
  3507.        Changed sound ts info
  3508.        Changed intellimouse ts info
  3509.  
  3510.        Revision 1.0.1.7  1998/08/03 04:55:21  mikeh
  3511.        Added "Playing" section of Q2 Mods & Addons section.
  3512.        Added "Intelimouse" section of Troubleshooting section
  3513.        Added RedHat sndconfig part to Troubleshooting section
  3514.        Fixed a few spacing problems, and one error message
  3515.  
  3516.        Revision 1.0.1.6  1998/08/03 02:01:13  bobz
  3517.        Changed abstract.
  3518.  
  3519.        Revision 1.0.1.5  1998/07/31 16:07:11  bobz
  3520.        Added gpm -k mention in mouse troubleshooting
  3521.        mentioned 'sensitivity' in mouse lag troubleshooting
  3522.        Added qstat|less tip
  3523.        Added "/dev/dsp not configured" to troubleshooting
  3524.        Slightly reworded part of the mod compiling section
  3525.        Added bit about running mods server side
  3526.        corrected required version # in q2 mission pack 1
  3527.        Updated acknowledgements section
  3528.  
  3529.        Revision 1.0.1.4  1998/07/30 21:08:46  bobz
  3530.        Fixed a problem with broken lines in <sect> tags
  3531.  
  3532.        Revision 1.0.1.3  1998/07/30 17:40:29  bobz
  3533.        Fixed broken link to Latex version.
  3534.  
  3535.        Revision 1.0.1.2  1998/07/30 15:46:40  bobz
  3536.        Test update.
  3537.  
  3538.        Revision 1.0.1.1  1998/07/30 15:43:59  bobz
  3539.        Changed version numbering scheme.
  3540.  
  3541.        Revision 1.10  1998/07/30 13:51:24  bobz
  3542.        Minor version reporting change
  3543.  
  3544.        Revision 1.9  1998/07/29 20:42:03  bobz
  3545.        Added some server links
  3546.  
  3547.        Revision 1.8  1998/07/29 17:37:15  bobz
  3548.        Added a Quake II model viewer to the Other Programs section
  3549.  
  3550.        Revision 1.7  1998/07/29 16:02:23  bobz
  3551.        Added some relative links in Other Formats to make it
  3552.        more portable.
  3553.  
  3554.        Revision 1.6  1998/07/29 15:18:12  bobz
  3555.        Version and date stamps back to the way they were
  3556.  
  3557.        Revision 1.5  1998/07/29 14:52:03  bobz
  3558.        Added tags for automatic timestamping
  3559.  
  3560.        Revision 1.4  1998/07/29 13:17:51  bobz
  3561.        Changed captured.com's web address per webmaster's request
  3562.  
  3563.        Revision 1.3  1998/07/29 02:11:02  bobz
  3564.        Ooops again.  Made "Other formats" a <sect> instead of a <sect1>.
  3565.        Revision 1.2  1998/07/29 01:55:41  bobz
  3566.        Oops.  I deleted the doctype tag...
  3567.  
  3568.        Revision 1.1  1998/07/29 01:48:34  bobz
  3569.        Added Other Formats section.
  3570.        Changed acknowledgments slightly
  3571.        Added ftp.medina.net to list of ftp sites.
  3572.  
  3573.        Revision 1.0 1998/07/28
  3574.        First publicly released version
  3575.  
  3576.        Revision 0.9 1998/07/25
  3577.        Restructured,rewritten and expanded by Bob Zimbinski.
  3578.  
  3579.        Revision 0.01 1998/06/16
  3580.        First Pre-Release version v0.01by Brett A. Thomas and Mike Hallock.
  3581.  
  3582.   ______________________________________________________________________
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.