aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorLeonard Kugis <leonard@kug.is>2026-10-05 02:21:31 +0200
committerLeonard Kugis <leonard@kug.is>2026-10-05 02:21:31 +0200
commit020e596314b29fa5e9504db94a314f8070ba0b3b (patch)
tree4b10874f92f36b66e1abfce08bb0160fb32da95b /README
parent57fdd82018e8f3449987cca19f3a41f630d7d62e (diff)
downloadquake-pum-020e596314b29fa5e9504db94a314f8070ba0b3b.tar.gz
Added documentation and moved old doc to README-old.txt
Diffstat (limited to 'README')
-rw-r--r--README198
1 files changed, 0 insertions, 198 deletions
diff --git a/README b/README
deleted file mode 100644
index fe0942e..0000000
--- a/README
+++ /dev/null
@@ -1,198 +0,0 @@
-A brief readme added by Wyatt Ward.
-
-I added this readme and some updated Makefiles, as well as tweaking a few of
-Quake's source files, to make it work properly on a modern Linux system.
-I did _not_ change any parts of the game to make it look all pretty, or
-to bring new improvements in graphics to the game. I only changed what was
-_absolutely essential_ to run the game, plus some things that desperately
-needed to be changed to work *properly* on modern Linux/Unix systems.
-
-Specifically, I am most interested in preserving the software-rendered version
-of Quake, since no one seems to care about it and everyone uses the later
-OpenGL port.
-
-Perhaps on account of me not knowing almost any 3D graphics programming
-already, I am not too intimidated by the concept of working on software
-quake... OpenGL would probably be just as hard. And I prefer how software
-rendered quake looks.
-
-Some more recent noteworthy changes, features, and notes (as of 2023):
-
-In the `WinQuake` (original "NetQuake") directory:
-* Bumped maximum window resolution from 1280x1024 to 2560x2048 for software
- rendered Quake. Patched some assembly routines related to it, too (for i386).
-* Added SDL audio backend (borrowed and adapted from Quakespasm). This allows
- for playing music with a CD drive emulator and getting sound effects
- simultaneously, without needing two sound cards (since OSS DMA doesn't play
- nice with software mixing).
-* Some bad hacks in the makefile to make it link to everything it needs to.
-* XQuake and GLQuake both function; XQuake is more thoroughly tested.
-
-In the `QW` (QuakeWorld) directory (NEW!):
-* Added support for 24-bit RGB color in X11 software rendered quakeworld.
- The sources in the `WinQuake` directory supported this already, but
- QuakeWorld's did not. In many ways, QW seems to be based on an older
- version of the code.
-* Bumped maximum window resolution from 1280x1024 to 2560x2048 for software
- rendered quakeworld. Note that this was more difficult here than in
- `WinQuake` due to more hardcoded values. Patched some related assembly
- routines, too (for i386).
-* Added SDL audio backend (borrowed and adapted from Quakespasm). This allows
- for playing music with a CD drive emulator and getting sound effects
- simultaneously, without needing two sound cards (since OSS DMA doesn't play
- nice with software mixing).
-* Fixed a crash related to going underwater on some larger screen resolutions.
-* Some bad hacks in the makefile to make it link to everything it needs to.
-* XQuakeWorld functions; I play with a friend online using it.
-* GLQuakeWorld is completely untested and likely needs work.
-* Extended maximum length of user info string, for partial compatibility with
- some more "modern" (i.e., incompatible) quakeworld server variants.
-
-The original, unmodified source can be found here:
-https://github.com/id-Software/Quake
-
-A good how-to for arguments and troubleshooting and such is here:
-http://www.linuxdoc.org/HOWTO/Quake-HOWTO-1.html
-
-Very old version of this readme from 2014 follows, half the information is no
-longer valid but I don't really feel up to the task of replacing it yet.
-
-=================================================
-: WHAT THIS IS / GENERAL BACKGROUND INFO :
-=================================================
-
-
-The how-to did not mention a few problems, which I created fixes for. These
-include the mouse not working to allow input and no input whatsoever (not even
-the keyboard) working in fullscreen. I also fixed a buffer overflow caused by
-the sheer number of OpenGL extensions that modern systems support (the game
-tries to print them to the console, and in doing so causes a buffer overflow
-because the string containing all of the extensions is larger than the game
-expected). The only noticeable difference my tweaks have caused (besides the
-fact that you now can play the game) is that this string of OpenGL extensions
-is no longer printed to the terminal (which I doubt most people care about,
-anyway). I promise I made no tweaks to functionality or controls that would
-make it differ from the original.
-
-=================================================
-: COMPILING QUAKE FOR LINUX :
-=================================================
- ++++++++++++++
- | DISCLAIMER |
- ++++++++++++++
-
- I have only built this on 32-bit Linux Mint 14.
- It should work on 64 bit, but will have to be
- Compiled with 32-bit libraries and binaries. I
- think this is merely due to some assembly used,
- and some changes to update the assembly to the
- x86_64 architecture could make this work in 64
- bit OSes natively. Also, there is a "pure C"
- implementation of everything that needs assembly
- on x86; I just need to remember how I used it.
- I have it working on my Powerbook G4 (PowerPC).
-
-With that out of the way here is how to compile it:
-For the OpenGL GLX version (the high-quality version most sane people want),
-go to the directory 'WinQuake' and type
-
- $ make build_release
-
-The makefile named 'Makefile.linuxi386' is the original one from id, which
-does not work anymore. The GLX and X11 makefiles are derived from this one,
-but do successfully build. Use them instead!
-
-The file 'Makefile.Linuxi386.glx' should be the same as the normal 'Makefile'.
-
- ++++++++++++
- | X11 Port |
- ++++++++++++
-
-For the X11 version, the only version I even tried to port and which works
-well, is simpler to build, has fewer dependencies, and has fewer hardcoded
-paths, but is lower quality graphics-wise, do
-
- $ make -f Makefile.Linuxi386.X11 build_release
-
-=================================================
-: POTENTIAL BUILD PROBLEMS :
-=================================================
- +++++++++++++
- | Libraries |
- +++++++++++++
-
-If you are missing libraries, headers or whatnot, it will let you know about
-it quite loudly. You will need a few headers from the linux kernel; if you
-use ubuntu or an ubuntu variant, the headers should be under something like
-
-/usr/src/linux-headers-3.5.0-44/arch/x86/include
-
-and
-
-/usr/src/linux-headers-3.5.0-44-generic/include
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- $ YOU DO NOT HAVE TO COMPILE THE KERNEL. $
- $ YOU DO NOT HAVE TO COMPILE THE KERNEL. $
- $ YOU DO NOT HAVE TO COMPILE THE KERNEL. $
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ...Although if you do, enable OSS while you are at it.
- This can be worked around if you don't compile.
- All we need is the source files. We have no reason to
- compile it unless that's something you would normally do
- anyway.
-
-These will have to be edited in the makefile if you have a different version
-or architecture of the kernel than I did. Search one of the above strings to
-find where I included them. Replace them appropriately with your kernel
-versions. If you don't have sources, they are obtainable from most package
-managers, including apt. A few other paths may have to be changed in the
-Makefile that I hardcoded, but you can figure those out I think.
-
-(Look for 'wyatt' in the makefile; those paths are hardcoded, but there
-may be more. I honestly don't remember. I only know that when I got the
-source, id had hardcoded paths in the makefile and i simply changed the
-paths to fit my environment.)
-
-Good luck!
-
-___________________________________________________________________________
-
-
-=================================================
-: PROBLEMS RUNNING THE GAME :
-=================================================
-
-After building, it will be in the directory 'releasei386'.
-You will need to copy the directory 'id1' from a quake CD-ROM
-and place it in the 'bin' directory that your compiled game is in.
-
-I have yet to have this problem in Linux, but in windows, I have had
-blank (white) textures and a flickering display. To fix these, you can
-add the parameters '-no8bit' '+gl_ztrick 0' to the launching parameters.
-Note that 'gl_ztrick' _should_ have a "+" sign preceeding it instead of
-a "-".
-
-=================================================
-: SOUND PROBLEMS :
-=================================================
-
-This game uses OSS on Linux; Most modern computers running linux (e.g.
-Ubuntu, unless you built your own kernel) do not supply this. To fix,
-install 'aoss' (ALSA OSS wrapper) and run the game using
-
- $ aoss ./glquake.glx <parameters>
-
-to make it see a fake OSS. The alternative (which will disable sounds but
-does not require any more package installations) is to pass '-nosound' to
-the game when invoking.
-
-I have not had luck getting sound in Linux Quake. I may need to have the
-CD-ROM in the drive, but I lost mine years ago and only have the
-installed version of the game on a old PC's hard disk. I cannot test why
-sound isn't working, but I can tell you Quake complains about not seeing
-a CD-ROM. I cannot answer questions about sound support.
-
--Wyatt Ward, 2014-01-06 16:04 EST
- Last Edited: 2014-01-14 9:25 EST
-