diff options
| author | Leonard Kugis <leonard@kug.is> | 2026-10-05 02:21:31 +0200 |
|---|---|---|
| committer | Leonard Kugis <leonard@kug.is> | 2026-10-05 02:21:31 +0200 |
| commit | 020e596314b29fa5e9504db94a314f8070ba0b3b (patch) | |
| tree | 4b10874f92f36b66e1abfce08bb0160fb32da95b /README | |
| parent | 57fdd82018e8f3449987cca19f3a41f630d7d62e (diff) | |
| download | quake-pum-020e596314b29fa5e9504db94a314f8070ba0b3b.tar.gz | |
Added documentation and moved old doc to README-old.txt
Diffstat (limited to 'README')
| -rw-r--r-- | README | 198 |
1 files changed, 0 insertions, 198 deletions
@@ -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 - |
