434 lines
18 KiB
HTML
434 lines
18 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||
<HTML>
|
||
<HEAD>
|
||
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
||
<TITLE>Linux Quake HOWTO: Other</TITLE>
|
||
<LINK HREF="Quake-HOWTO-10.html" REL=next>
|
||
<LINK HREF="Quake-HOWTO-8.html" REL=previous>
|
||
<LINK HREF="Quake-HOWTO.html#toc9" REL=contents>
|
||
</HEAD>
|
||
<BODY>
|
||
<A HREF="Quake-HOWTO-10.html">Next</A>
|
||
<A HREF="Quake-HOWTO-8.html">Previous</A>
|
||
<A HREF="Quake-HOWTO.html#toc9">Contents</A>
|
||
<HR>
|
||
<H2><A NAME="s9">9.</A> <A HREF="Quake-HOWTO.html#toc9">Other</A></H2>
|
||
|
||
<H2><A NAME="ss9.1">9.1</A> <A HREF="Quake-HOWTO.html#toc9.1">Nvidia </A>
|
||
</H2>
|
||
|
||
|
||
<P>Nvidia's drivers for all of their modern video cards are not open source.
|
||
Because of this many distributions do not include them. If your Nvidia card is
|
||
running slowly this is probably the cause and you should visit
|
||
<A HREF="http://www.nvidia.com">http://www.nvidia.com</A> to download the Linux installer. In the author's
|
||
experience these drivers are great, but not all versions work 100% with all
|
||
cards and kernels. If you have a misbehaving Nvidia video card, try a different
|
||
driver.</P>
|
||
<P>
|
||
<A NAME="nvagp_"></A> </P>
|
||
<H3>XOrg AGP Issues </H3>
|
||
|
||
|
||
<P>With Nvidia's proprietry drivers installed, Linux can use either AGPGART
|
||
or Nvidia's AGP drivers for AGP access. This option is set by "NvAGP" in your
|
||
/etc/X11/xorg.conf file.</P>
|
||
<P>From Nvidia's README:
|
||
<HR>
|
||
<PRE>
|
||
Option "NvAGP" "integer"
|
||
|
||
Configure AGP support. Integer argument can be one of:
|
||
|
||
Value Behavior
|
||
-------------- ---------------------------------------------------
|
||
0 disable AGP
|
||
1 use NVIDIA's internal AGP support, if possible
|
||
2 use AGPGART, if possible
|
||
3 use any AGP support (try AGPGART, then NVIDIA's
|
||
|
||
Please note that NVIDIA's internal AGP support cannot work if AGPGART is
|
||
either statically compiled into your kernel or is built as a module and
|
||
loaded into your kernel.
|
||
</PRE>
|
||
<HR>
|
||
|
||
In the author's experience, Nvidia's AGP is necessary in order to get the linux kernel's <B>suspend to ram</B> working properly, and is also slightly faster.
|
||
Users with kernels with built-in AGPGART need to add <B>agp=off</B> to their boot
|
||
loader in order to use the NvAGP driver.</P>
|
||
|
||
|
||
<H3>Tweaks </H3>
|
||
|
||
|
||
<P>These tweaks are for users with a GeForce video card (or better) and Nvidia's
|
||
proprietary drivers. They are accessed using the bash command <B>export
|
||
{variable}={value}</B> and then starting the Quake engine from the same
|
||
command line. Alternatively, recent drivers have a <B>nvidia-settings</B>
|
||
command which starts up a user-friendly control panel.</P>
|
||
<P><EM>Full details of these tweaks are in the Nvidia README, normally installed at "/usr/share/doc/NVIDIA_GLX-1.0/README.txt"</EM>
|
||
<DL>
|
||
|
||
<DT><B>Full Screen Antialiasing</B><DD><P><B>export __GL_FSAA_MODE={value}</B>
|
||
<PRE>
|
||
video card effect value
|
||
=====================================================
|
||
all disable 0
|
||
-----------------------------------------------------
|
||
GeForce, GeForce2 1.5x1.5 Supersampling 3
|
||
2x2 Supersampling 4
|
||
-----------------------------------------------------
|
||
GeForce4 2x Bilinear 1
|
||
2x2 Supersampling 4
|
||
-----------------------------------------------------
|
||
GeForce3, GeForce4 Ti, 2x Bilinear 1
|
||
GeForce FX 4x Bilinear 4
|
||
-----------------------------------------------------
|
||
</PRE>
|
||
</P>
|
||
|
||
<DT><B>Synchronize Picture Redraw</B><DD><P><B>export __GL_SYNC_TO_VBLANK=1</B> </P>
|
||
<P>Synchronizes GL output with your monitor's vertical refresh,
|
||
giving a more stable image especially on slower video cards.</P>
|
||
|
||
</DL>
|
||
</P>
|
||
|
||
|
||
<H2><A NAME="ss9.2">9.2</A> <A HREF="Quake-HOWTO.html#toc9.2">3Dfx </A>
|
||
</H2>
|
||
|
||
|
||
<P>While new versions of XFree and XOrg have great support for Voodoo 3, 4 and 5,
|
||
early 3Dfx hardware such as Voodoo1, Voodoo2 and Rush are no longer hardware
|
||
accelerated. To get OpenGL working for these cards, you'll need to download,
|
||
install and/or compile the software libraries called Glide and Mesa, though this is
|
||
not trivial. The author does have precompiled libGL for the Voodoo2,
|
||
and his
|
||
<A HREF="http://prdownloads.sourceforge.net/uhexen2/quake-lq-1.0.1.tgz?download">patched TyrQuake</A> includes proper 3Dfx brightness control.
|
||
<A HREF="http://sourceforge.net/docman/display_doc.php?docid=28982&group_id=124987">Here</A> is a README for old 3Dfx cards.</P>
|
||
|
||
|
||
<P>
|
||
<A NAME="freebsd_"></A> </P>
|
||
<H2><A NAME="ss9.3">9.3</A> <A HREF="Quake-HOWTO.html#toc9.3">FreeBSD </A>
|
||
</H2>
|
||
|
||
|
||
<P>The author has limited experience with this OS and has tested projects on
|
||
FreeBSD 5.3 with Nvidia's proprietary drivers.
|
||
<A HREF="Quake-HOWTO-3.html#darkplaces_">Darkplaces</A>,
|
||
<A HREF="Quake-HOWTO-3.html#quakespasm_">QuakeSpasm</A>,
|
||
<A HREF="Quake-HOWTO-3.html#tyrquake_">TyrQuake</A> and
|
||
<A HREF="Quake-HOWTO-6.html#hexenII_">Hammer of Thyrion</A> work well with this system.</P>
|
||
<P>
|
||
<A HREF="Quake-HOWTO-3.html#qudos_">QuDos</A> has recently ported several
|
||
<A HREF="http://qudos.quakedev.com/linux/quake1">engines</A> to Linux and
|
||
has recently started work on FreeBSD compatibility. His great
|
||
<A HREF="http://qudos.quakedev.com/linux/quake2">Quake II project</A> is
|
||
also now BSD friendly.</P>
|
||
<P>For basic GLQuake support, you can find a hacked FreeBSD binary and source
|
||
tarball
|
||
<A HREF="http://prdownloads.sourceforge.net/uhexen2/GLQuake-FreeBSD-sa-1.0.tgz?download">here</A>.</P>
|
||
<P>
|
||
<A HREF="Quake-HOWTO-3.html#quakeforge_">QuakeForge</A> is a comprehensive Quake project,
|
||
but may have installation issues with newer FreeBSD releases. The memory
|
||
allocator routine "alloca" is not correctly detected on FreeBSD 5.3. The fix
|
||
is, after running "configure", to add "#define C_ALLOCA 1" to
|
||
"include/config.h" and undefine other ALLOCA variables. Another issue is the
|
||
opening of plugins. If the project builds, but you can't get the console or
|
||
menus, you may have to enable static plugins using <B>configure
|
||
LDFLAGS=-lpthread --with-static-plugins</B>.</P>
|
||
|
||
<H2><A NAME="ss9.4">9.4</A> <A HREF="Quake-HOWTO.html#toc9.4">QNX </A>
|
||
</H2>
|
||
|
||
|
||
<P>QNX is a commercial real-time operating system, probably most notable
|
||
to hobbyists as being a successful microkernel OS.
|
||
<A HREF="Quake-HOWTO-3.html#sdlquake_">SDL Quake</A>-1.0.9
|
||
compiles and runs on QNX-NC-6.2.1 after running <B>configure --host=QNX</B>
|
||
and then making these changes:
|
||
<PRE>
|
||
Makefile:
|
||
-LIBS = -L/usr/local/lib -lSDL -lm -lph -lasound
|
||
+LIBS = -L/usr/local/lib -lSDL -lm -lph -lasound -lsocket
|
||
net.h:
|
||
-extern unsigned long htonl (unsigned long hostlong);
|
||
-extern unsigned long ntohl (unsigned long netlong);
|
||
sys_sdl.c:
|
||
-#include <sys/shm.h>
|
||
-int psize = getpagesize();
|
||
+int psize = _SC_PAGESIZE;
|
||
</PRE>
|
||
</P>
|
||
<P>
|
||
<A NAME="watervis_"></A> </P>
|
||
<H2><A NAME="ss9.5">9.5</A> <A HREF="Quake-HOWTO.html#toc9.5">Transparent Water and VisPatch </A>
|
||
</H2>
|
||
|
||
|
||
<P>The game variable "r_wateralpha" allows for water transparency - but most maps
|
||
don't have the necessary "vis" information. There are two ways to get this.
|
||
After setting <B>r_wateralpha</B> < 1.0, issuing the
|
||
console command <B>r_novis 1</B> enables the game to calculate it's own vis
|
||
information at the penalty of cpu cycles. Alternatively, vispatch is a utility
|
||
that patches your Quake/QuakeWorld levels to support transparent water. </P>
|
||
<P>To do this you'll need the vispatch utility, as well as the
|
||
<A HREF="http://www.atomicgamer.com/directory.php?id=3138">vispatch data files</A>
|
||
for the game you are patching.</P>
|
||
<P>To patch the main data files in "id1" -
|
||
from your Quake directory - type <B>vispatch -dir id1 -data id1.vis</B></P>
|
||
<P>
|
||
<A HREF="http://vispatch.sourceforge.net/">Vispatch Homepage</A></P>
|
||
|
||
<H2><A NAME="ss9.6">9.6</A> <A HREF="Quake-HOWTO.html#toc9.6">Quake Inspired XTerms </A>
|
||
</H2>
|
||
|
||
|
||
<P>Quake's in-game console is a great feature and has been adopted by many
|
||
other games. Now you can also use the 'tilda' key to access X terminal windows.
|
||
Both
|
||
<A HREF="http://yakuake.uv.ro/">Yakuake</A> and
|
||
<A HREF="http://tilda.sourceforge.net/">Tilda</A> are projects inspired by this
|
||
idea.</P>
|
||
<P>Unfortunately neither are easy to install from source. Yakuake is a KDE
|
||
application and needs the KDE development packages, and compiling Tilda is more
|
||
complicated. It requires a couple of unusual libraries, and gave this author
|
||
compilation errors, so perhaps looking for a RPM package is a better choice.
|
||
The author can recommend Yakuake as a very handy X terminal.</P>
|
||
|
||
<H2><A NAME="ss9.7">9.7</A> <A HREF="Quake-HOWTO.html#toc9.7">Launching maps and demos </A>
|
||
</H2>
|
||
|
||
|
||
<P>
|
||
<A HREF="http://www.quaddicted.com/?p=374">http://www.quaddicted.com/?p=374</A></P>
|
||
|
||
<H2><A NAME="ss9.8">9.8</A> <A HREF="Quake-HOWTO.html#toc9.8">Interest </A>
|
||
</H2>
|
||
|
||
|
||
<P>
|
||
<UL>
|
||
<LI> Because of the way the original game renders the sky, any map with
|
||
numerous outdoor enemies suffers a big performance hit.
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> You can jump further when strafing than when going forward or back 8-)
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> The <B>timedemo demo1</B> command is a great way to benchmark your system.
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Rocket-jumping is the technique of using a rocket or grenade
|
||
explosion to jump further than normal. For a demonstration see the
|
||
Scourge done Slick speed run.
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Popular games derived from the Quake engine include -
|
||
Return to Castle Wolfenstein, Half-Life, Star Trek Voyager - Elite Force,
|
||
Soldier of Fortune, American McGee's Alice, and - distantly - Doom III.
|
||
</LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<H2><A NAME="ss9.9">9.9</A> <A HREF="Quake-HOWTO.html#toc9.9">Quotes </A>
|
||
</H2>
|
||
|
||
|
||
<P>
|
||
<UL>
|
||
<LI> John Carmack -<BR>
|
||
"At this time (march '97), the only standard opengl hardware that can play
|
||
glquake reasonably is an intergraph realizm, which is a VERY expensive card"
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> From the original Quake How-To -<BR>
|
||
"Hardware-accelerated OpenGL Quake is Quake the way God intended it to
|
||
be. There is no substitute, and once you've experienced it there's no
|
||
going back."
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Func Message Board -<BR>
|
||
"... This Will Produce A Fully Functional Bouncing, Exploding Zombie."<BR>
|
||
Sounds like fun :-)
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Quake Wikipedia -<BR>
|
||
"Quake and its three follow up games, Quake II,Quake III Arena
|
||
and Quake 4 (which many do not regard as true sequels), have sold over
|
||
4 million copies combined. In 2005, a version of Quake was produced
|
||
for mobile phones."
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Moby Games <BR>
|
||
(by Pathogen) <BR>
|
||
"... Quake was the first FPS to introduce realistic lighting and
|
||
shadows. Of course, this came at a price. Quake has taken a lot of
|
||
flak because it's all dull brown and grey. This was necessary because
|
||
it was the only way to get the lighting to work properly. Since each
|
||
surface needs a wide variety of reserved colors for displaying
|
||
darkened/brightened portions of the surface, the game was limited to
|
||
just a few colors and all their respective shades."<BR>
|
||
(by Ashley Pomeroy) <BR>
|
||
"Almost incidentally, Quake introduced the now-standard concept of a FPS
|
||
'console', and popularised 'mouselook' as *the* absolute standard
|
||
control interface. Although the specifications required a Pentium,
|
||
Quake ran acceptably well on a 486 DX4/100"
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Happy Penguin Q3 Forum -<BR>
|
||
|
||
As for [Q3] open source.....earliest date seems to be second half 2005. The
|
||
reason? They are still selling the code, over 5 years later to game devs.
|
||
Either they are stupid devs, or the Q3 code still offers something....I'm
|
||
inclined believe the latter.
|
||
<BR><BR>
|
||
</LI>
|
||
<LI> Slashdot Tenebrae Forum -
|
||
<PRE>
|
||
... this ... now officially labels this guy as a badass graphics programmer. I can hear it now:
|
||
|
||
MR. BURNS: "I need a programmer! Get John Carmack on the line!"
|
||
SMITHERS: "He's unavailable sir."
|
||
MR. BURNS: "Then get me his non-union Belgian equivalent!"
|
||
</PRE>
|
||
|
||
</LI>
|
||
</UL>
|
||
</P>
|
||
|
||
<H2><A NAME="ss9.10">9.10</A> <A HREF="Quake-HOWTO.html#toc9.10">Glossary </A>
|
||
</H2>
|
||
|
||
|
||
<P>
|
||
<DL>
|
||
|
||
<DT><B>ALSA</B><DD><P>
|
||
<A HREF="http://www.alsa-project.org">Advanced Linux Sound Architecture</A>.</P>
|
||
|
||
<DT><B>API</B><DD><P>Application Program Interface. The computer libraries
|
||
which are used when programming, and link the game to the hardware.</P>
|
||
|
||
<DT><B>Bot</B><DD><P>A computer generated player with artificial intelligence (cough), in
|
||
a multiplayer game. Used to play multiplayer when no-one's around or not
|
||
connected to a network.</P>
|
||
|
||
<DT><B>Client</B><DD><P>This word is used in two subtly different ways. In single player,
|
||
the Quake game is known as a client, with different clients using their own
|
||
graphics libraries (for example, the GL client "quake.glx" or the X11 client
|
||
"quake.x11"). The usage is similar in multiplayer games, but also means the
|
||
per-user program which connects to a single "server" program which lets all
|
||
the players exist in the same world.</P>
|
||
|
||
<DT><B>FPS</B><DD><P>First Person Shooter. A shooting game viewed from the "first person" perspective.</P>
|
||
|
||
<DT><B>Mod</B><DD><P>Modification to the original Quake game - varying from a complete game
|
||
overhaul (total conversion) to simple map/model reworks. Quake was designed to
|
||
allow for ease of platform portability with it's own computer language "Quake
|
||
C" giving mappers control over most every aspect of their Quake world.</P>
|
||
|
||
<DT><B>Noob</B><DD><P>Newbie. Someone new to a computer related topic.</P>
|
||
|
||
<DT><B>Patch</B><DD><P>A software patch (or diff) is a single file used to alter
|
||
a source code tree before compilation. It is often used to fix bugs or
|
||
add new features that the original author didn't include.</P>
|
||
<P>Usage of the GNU patch utility is of the form <B>patch [--dry-run] -pNUM
|
||
<FILE </B> where NUM is the number (usually 0 or 1) of directories to
|
||
strip from the patch file. This number is not obvious except to unix gurus, but
|
||
using the "--dry-run" option will let you test run patch so you can find the
|
||
correct NUM. ...Using the wrong number will make patch output all sorts of
|
||
cryptic messages which can be terminated with a <B>control-C</B> character.</P>
|
||
<P>Of course you could always type <B>man patch</B> and learn for yourself
|
||
how to use this powerful unix command. ;-/</P>
|
||
|
||
<DT><B>SDL</B><DD><P>
|
||
<A HREF="http://www.libsdl.org/">Simple DirectMedia Layer</A>
|
||
cross platform hardware API widely used in Linux games.</P>
|
||
|
||
<DT><B>Segfault</B><DD><P>A broad term indicating a program is faulty and terminated
|
||
abruptly. Depending on the bash shell's <B>ulimit -c</B> setting, a dump of
|
||
the program's image (coredump) may be left behind for examination with
|
||
the GNU debugger (GDB).</P>
|
||
|
||
<DT><B>Server</B><DD><P>A program central to multiplayer games to which every player connects.</P>
|
||
|
||
<DT><B>Tarball</B><DD><P>An archive file such as <B>somefile.tar</B> created by the
|
||
"tar" program. It is often compressed using the programs
|
||
"gzip" or "bzip2", in which case it will normally end in the letters
|
||
<B>.gz</B> or <B>.bz2</B>. The extension <B>.tar.gz</B>
|
||
is often shortened to <B>.tgz</B>.</P>
|
||
|
||
</DL>
|
||
</P>
|
||
|
||
<H2><A NAME="ss9.11">9.11</A> <A HREF="Quake-HOWTO.html#toc9.11">Links </A>
|
||
</H2>
|
||
|
||
|
||
<P>
|
||
<DL>
|
||
|
||
<DT><B>id Software</B><DD><P>
|
||
<A HREF="http://www.idsoftware.com">http://www.idsoftware.com</A></P>
|
||
<DT><B>id Downloads</B><DD><P>
|
||
<A HREF="http://http://www.idsoftware.com/business/techdownloads">http://http://www.idsoftware.com/business/techdownloads</A></P>
|
||
<DT><B>id Store</B><DD><P>
|
||
<A HREF="http://www.idsoftware.com/store/index.php?view=quake">http://www.idsoftware.com/store/index.php?view=quake</A></P>
|
||
<DT><B>Icculus</B><DD><P>
|
||
<A HREF="http://www.icculus.org">http://www.icculus.org</A></P>
|
||
<DT><B>Icculus Gamers FAQ</B><DD><P>
|
||
<A HREF="http://www.icculus.org/lgfaq">http://www.icculus.org/lgfaq</A></P>
|
||
<DT><B>Various Engine Links</B><DD><P>
|
||
<A HREF="http://icculus.org/~ravage/quake/">http://icculus.org/~ravage/quake/</A></P>
|
||
<DT><B>The Linux Game Tome</B><DD><P>
|
||
<A HREF="http://www.happypenguin.org">http://www.happypenguin.org</A></P>
|
||
<DT><B>Func_Msgboard - Q1 message board from hell ... No, really</B><DD><P>
|
||
<A HREF="http://www.celephais.net/board/forum.php">http://www.celephais.net/board/forum.php</A></P>
|
||
<DT><B>Quaddicted</B><DD><P>
|
||
<A HREF="http://www.quaddicted.com/">http://www.quaddicted.com/</A></P>
|
||
<DT><B>Planetquake</B><DD><P>
|
||
<A HREF="http://www.planetquake.com/quake1">http://www.planetquake.com/quake1</A></P>
|
||
<DT><B>PlanetQuake3.net</B><DD><P>
|
||
<A HREF="http://www.planetquake3.net/index.php">http://www.planetquake3.net/index.php</A></P>
|
||
<DT><B>Darkplaces Game Engine</B><DD><P>
|
||
<A HREF="http://www.icculus.org/twilight/darkplaces">http://www.icculus.org/twilight/darkplaces</A></P>
|
||
<DT><B>Quake One</B><DD><P>
|
||
<A HREF="http://www.quakeone.com">http://www.quakeone.com</A></P>
|
||
<DT><B>Linux Gamers</B><DD><P>
|
||
<A HREF="http://www.linux-gamers.net">http://www.linux-gamers.net</A></P>
|
||
<DT><B>Quake Terminus</B><DD><P>
|
||
<A HREF="http://www.quaketerminus.com">http://www.quaketerminus.com</A></P>
|
||
<DT><B>Retro Quake</B><DD><P>
|
||
<A HREF="http://www.planetquake.com/retroquake/quake/index.html">http://www.planetquake.com/retroquake/quake/index.html</A></P>
|
||
<DT><B>Quake Basics</B><DD><P>
|
||
<A HREF="http://www.quaketerminus.com/quakebible/index.htm">http://www.quaketerminus.com/quakebible/index.htm</A></P>
|
||
<DT><B>Quake Wikipedias</B><DD><P>
|
||
<A HREF="http://wiki.quakesrc.org/index.php/HomePage">http://wiki.quakesrc.org/index.php/HomePage</A>,
|
||
<A HREF="http://en.wikipedia.org/wiki/Quake">http://en.wikipedia.org/wiki/Quake</A></P>
|
||
<DT><B>J<EFBFBD>rgen's GLQuake Site</B><DD><P>
|
||
<A HREF="http://mfcn.ilo.de/glxquake">http://mfcn.ilo.de/glxquake</A></P>
|
||
<DT><B>LinuxQuake.Org</B><DD><P>
|
||
<A HREF="http://www.linuxquake.org">http://www.linuxquake.org</A></P>
|
||
<DT><B>Linux Hexen II project</B><DD><P>
|
||
<A HREF="http://uhexen2.sourceforge.net">http://uhexen2.sourceforge.net</A></P>
|
||
<DT><B>SDL - Cross platform hardware API</B><DD><P>
|
||
<A HREF="http://www.libsdl.org/">http://www.libsdl.org/</A></P>
|
||
<DT><B>ALSA - Linux sound project</B><DD><P>
|
||
<A HREF="http://www.alsa-project.org">http://www.alsa-project.org</A></P>
|
||
<DT><B>Lowercase utility</B><DD><P>
|
||
<A HREF="http://filerenameutils.sourceforge.net">http://filerenameutils.sourceforge.net</A></P>
|
||
|
||
</DL>
|
||
</P>
|
||
|
||
|
||
<HR>
|
||
<A HREF="Quake-HOWTO-10.html">Next</A>
|
||
<A HREF="Quake-HOWTO-8.html">Previous</A>
|
||
<A HREF="Quake-HOWTO.html#toc9">Contents</A>
|
||
</BODY>
|
||
</HTML>
|