1 Minor OS-oriented changes to id Software's Quake2 3.21: 2 "Sorry, real life (tm) got in the way,0.16" 3 4*************************************************************************** 5Important Note: If you received an installer which installed the Quake II 6demo levels, you may not distribute that installer or the demo levels in 7anyway except electronically. The Quake II demo levels are still Copyright 8Id Software and are not covered by the Gnu Public License which governs the 9source code. Id has been kind enough to allow us to distribute these 10levels with an installer to show users just how cool Quake II is in the 11jopes that it will lead them to buy full versions. Please do not harm 12our relationship with Id by distributing the demo installer electronically. 13*************************************************************************** 14 15(NOTE: throughout this document, references to i386 [debugi386, releasei386, 16 gamei386.so] are used. If your architecture is not i386, just substitute 17 that for i386. The Makefile gives some hints as to what is supported.) 18 19For this to be of any use, you _must_ own a copy of Quake 2. The demo would 20also work, but you might as well buy the full thing now. 21 22These modifications are intended for Linux users, as I do not have have 23access to other platforms. 24 25Be sure to install SDL 1.2 (http://www.libsdl.org) if you want to use the 26softsdl or sdlgl drivers, or the sdlquake2 binary. 27 28'make' will, by default, build both the debug and release files. 29To build just the optimized binaries: make build_release 30The resulting binaries are then put in releasei386. 31 32Known Bugs 33------------ 34ALSA sound support is not 100% there. I would stick with SDL or OSS for now. 35 36 37Makefile options: 38----------------- 39(quake2 and gamei386.so are always built, but the following options can be 40 changed by editing the Makefile) 41BUILD_SDLQUAKE2 Build sdlquake2, a quake2 binary that uses SDL for 42 CD audio and sound access (default = YES). 43BUILD_SVGA Build ref_soft.so, a quake2 video driver that uses 44 SVGAlib (default = NO). 45BUILD_X11 Build ref_softx.so, a quake2 video driver that uses 46 X11 (default = YES). 47BUILD_GLX Build ref_glx.so, a quake2 video driver that uses 48 X11's GLX (default = YES). 49BUILD_FXGL Build ref_gl.so [might be renamed to fxgl later], 50 a quake2 video driver that uses fxMesa (default = 51 NO). This option is currently untested because I do 52 not have a Voodoo 1 or 2. 53BUILD_SDL Build ref_softsdl.so, a quake2 video driver that 54 uses SDL (default = YES). 55BUILD_SDLGL Build ref_sdlgl.so, a quake2 video driver that uses 56 OpenGL with SDL (default = YES). 57BUILD_CTFDLL Build the Threewave CTF gamei386.so (default = NO). 58BUILD_XATRIX Build the Xatrix gamei386.so for the "The Reckoning" 59 Mission Pack (default = NO). [see notes below] 60BUILD_ROGUE Build the Rogue gamei386.so for the "Ground Zero" 61 Mission Pack (default = NO). [see notes below] 62HAVE_IPV6 Build quake2 with IPv6 support (currently only 63 tested on FreeBSD, see below for info) (default = NO). 64BUILD_JOYSTICK Build quake2 with support for SDL and Linux joysticks, 65 [default = YES]. 66BUILD_ARTS Build support for the aRts sound system 67 (src/linux/snd_arts.c) [default = NO] 68BUILD_ALSA Build support for the ALSA sound system [default = NO] 69BUILD_DEDICATED Build the quake 2 dedicated server q2ded. 70BUILD_QMAX Build the eye-candy oriented Quame2 Max (see below) 71BUILD_AA Build the aalib text mode renderer. 72BUILD_RETEXTURE Build support for retextured textures, see: 73http://http://3d.kicks-ass.net/texturepaks/ 74 75To install the Quake2 demo data: 76-------------------------------- 77(installdir is whereever you want to install quake2) 781. download ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe 792. unzip -L q2-314-demo-x86.exe into a temp directory 803. cp baseq2/pak0.pak to <installdir>/baseq2/pak0.pak 81 82Continue with the "To Install This Program" directions bellow 83 84To install the Quake2 gamedata from game CD: 85------------------------------- 86(installdir is wherever you want to install quake2, and cdromdir is wherever 87you mount the Quake 2 CD-ROM) 881. copy <cdromdir>/Install/Data/baseq2/pak0.pak to <installdir>/baseq2/ 892. copy <cdromdir>/Install/Data/baseq2/video/ to <installdir>/baseq2/ 90 (optional) 913. download q2-3.20-x86-full.exe from 92 ftp://ftp.idsoftware.com/idstuff/quake2/ or a mirror site, and extract the 93 contents to a temporary directory (use unzip -L, as this is a standard zip 94 file). 954. copy <q2-3.20-x86-full.exe temp directory>/baseq2/pak1.pak to 96 <installdir>/baseq2/ 975. copy <q2-3.20-x86-full.exe temp directory>/baseq2/pak2.pak to 98 <installdir>/baseq2/ 996. copy <q2-3.20-x86-full.exe temp directory>/baseq2/players/ to 100 <installdir>/baseq2/ 1017. if you really want to use the crakhor model, you can find the 102 skins/sounds on websites like http://www.mike-d.com/games/modskins.html 103 (optional) 104 105To install this program: 106------------------------ 107(builddir is either debugi386 or releasei386) 1080. edit Makefile if needed, then 'make' 1091. copy <builddir>/gamei386.so to <installdir>/baseq2/ 1102. copy <builddir>/ref_*.so to <installdir> 1113. copy <builddir>/quake2 to <installdir> 1124. copy <builddir>/sdlquake2 to <installdir> (optional) 1135. copy <builddir>/ctf/gamei386.so to <installdir>/ctf/ (optional) 114 115To install the "The Reckoning" Mission Pack (Xatrix): 116----------------------------------------------------- 117(cdromdir is wherever you mount The Reckoning CD-ROM) 1181. enable BUILD_XATRIX in Makefile 1192. download xatrixsrc320.shar.Z from 120 ftp://ftp.idsoftware.com/idstuff/quake2/source/ or a mirror site, extract 121 it (it's a compressed shell script) and place the contents in 122 <quake2-rX.X.X>/src/xatrix/ 1233. make 1244. copy <builddir>/xatrix/gamei386.so to <installdir>/xatrix/ 1255. copy <cdromdir>/Data/all/pak0.pak to <installdir>/xatrix/ 1266. copy <cdromdir>/Data/max/xatrix/video/ to <installdir>/xatrix/ (optional) 1277. when starting quake2, use "+set game xatrix" on the command line 128 129To install the "Ground Zero" Mission Pack (Rogue): 130-------------------------------------------------- 131(cdromdir is wherever you mount the Ground Zero CD-ROM) 1321. enable BUILD_ROGUE in Makefile 1332. download roguesrc320.shar.Z from 134 ftp://ftp.idsoftware.com/idstuff/quake2/source or a mirror site, extract 135 it (it's a compressed shell script) and place the contents in 136 <quake2-rX.X.X>/src/rogue/ 1373. make 1384. if the compilation fails, change line 31 of src/rogue/g_local.h from: 139#define _isnan(a) ((a)==NAN) 140 to: 141#define _isnan(a) isnan(a) 142 and try again. 1434.5 if the compilation fails on the include, change #include <nan.h> to 144#include <bits/nan.h> 1455. copy <builddir>/rogue/gamei386.so to <installdir>/rogue/ 1466. copy <cdromdir>/Data/all/pak0.pak to <installdir>/rogue/ 1477. copy <cdromdir>/Data/max/Rogue/video/ to <installdir>/rogue/ (optional) 1488. when starting quake2, use "+set game rogue" on the command line 149 150To Build Quake2 Max. 151------------------- 152Quake2 Max is a set of GL improvements to the Quake2 source base by 153psychospaz, <http://modscape.telefragged.com/q2max/> the 0.25 version 154has been merged into the Quake2 for Linux source tree. To build the 155added visual candy: 1561. make clean 1572. set BUILD_QMAX to YES in the makefile 1583. make 159 160You will also need to download http://www.icculus.org/quake2/files/maxpak.pak 161and place it in your quake2/baseq2 directory. 162 163Please note that the resulting Quake2 binaries and video drivers are 164incompatible with binaries and drivers built with BUILD_QMAX set to NO. 165 166For right now, the driver gets built as ref_glx.so and ref_sdlgl.so. 167In the future this will change so that both drivers can be build in parallel. 168 169 170AALib Video Driver 171------------------ 172The AALib video driver is written by jfedor@jfedor.org it provides text 173rendering for Quake2. It requires the aalib package to build, which is 174available at http://aa-project.sourceforge.net. 175 176Retexturing Support 177------------------ 178There has been an effort to retexture Quake2 with 24-bit textures to replace 1798-bit ones. The resulting textures look *good* but take up more space and 180makes quake2 run slower. 181 182If you wish to run retextured quake2 you need to download pak1x (currently 0-6) from http://3d.kicks-ass.net/texturepaks/ 183 184Thanks to Karen Pouelle for the code to support this. 185 186To run: 187------- 188cd <installdir> && ./quake2 189Or: 190quake2 +set basedir <installdir> 191 192Add +set game <moddir> to load a mod (like the mission packs). 193 194/etc/quake2.conf is no longer used; instead, the ref_*.so files are loaded 195from basedir (basedir is "." by default, and can only be set at the command 196line). 197 198Configuration files and such are saved in ~/.quake2/, so <installdir> can be 199made read-only or whatever. 200 201WARNING: Please do not make quake2 or any of the libraries suid root! Doing 202so is at your own risk. 203 204NOTE: Save games will not work across different versions or builds, because 205of the way they are stored. 206 207 208Binary-Only Mods: 209----------------- 210Chances are that they will not work. I suspect that it has something to do 211with the mods being built with older versions of gcc/glibc2. EraserBot, for 212example, has source available except for one file, p_trail.o. Trying to 213use an EraserBot gamei386.so results in a crash somewhere inside p_trail.o. 214 215Dedicated Server: 216----------------- 217Dedicated Server support has been added (thanks to Wesley Bear) just modify 218the Makefile so that BUILD_DEDICATED=YES (default NO) that should build a 219q2ded binary in the release directory. 220 221CTF Server: 222----------- 223To run Capture The Flag, you need to do the following: 2241) download q2-3.20-x86-full-ctf.exe from 225ftp://ftp.idsoftware.com/idstuff/quake2 2262) unzip that file (using unzip -L) in a temp directory 2273) copy ctf to <installdir>/ctf 2284) build the ctf shared library (BUILD_CTF=YES in the Makefile) 2295) cp releas<arch>/ctf/game<arch>.so to <installdir>/ctf/game<arch>.so 2306) quake2 +set game ctf +set dedicated 1 2317) on the console enter "map Q2CTF1" that will load up the first ctf 232map, then connect using a client with multi-player. For the other maps use 233Q2CTF2, etc. 234 235*Note if you are using the demo version and not the full version, some 236textures are missing from the CTF levels* 237 238IPv6 Support: 239------------- 240Currently experimental, so it may or may not work. Here is some information 241about it from Florent Parent: 242 243quake2 +set dedicated 1 244 Runs server listening on both IPv4 and IPv6 sockets 245 246quake2 +set dedicated 1 +set multicast <interface> 247 IPv6 server joins quake2 multicast group ff12::666 248 249quake2 +set dedicated 1 +set ip <IPv6 address> +set multicast <interface> 250 IPv6 server only. Listens on <IPv6 address> 251 Examples of <IPv6 address>: 252 3ffe:b00:c18::666 (global IPv6 address) 253 fe80::202:b3ff:fe04:1234%fxp0 (link-local address. scope required) 254 :: (unspecified, binds on all IPv6 255 addresses) 256quake2 +set dedicated 1 +set ip <IPv4 address> 257 IPv4 server only. Listens on <IPv4 address> 258 0.0.0.0 can be used to bind on all IPv4 addresses 259 260Joystick Support: 261----------------- 262***Important note**** 2635/12/04 264The joystick code has been modified to be more in line 265with the joystick functionality detailed in src/docs/joystick.txt 266********************* 267 268Joystick should function on all compatible SDL platforms using the sdlquake2 269binary as well as on linux using the linux kernel joystick API. If you want 270to build with joystick support (the default) set BUILD_JOYSTICK to YES in 271the Makefile. 272 273Have a look at src/docs/joystick.txt for the details 274 275There is a single linux specific option: 276 * joy_dev : this sets the device name of the joystick to use (/dev/js*) 277 278 279Windows Support: 280---------------- 281In order to compile the source: 282 283If you don't already have it, you'll need to download: 284http://oss.sgi.com/projects/ogl-sample/ABI/glext.h 285 286Commonly used commands: 287----------------------- 288cd_nocd 0 // disable CD audio 289s_initsound 0 // disable sound 290_windowed_mouse 0 // disable mouse-grabbing 291gl_ext_multitexture 0 // disable OpenGL Multitexturing (requires a 292 vid_restart) 293vid_ref <driver> // select a video driver (softx is the original 294 X11-only, softsdl is SDL software, sdlgl is 295 SDL OpenGL) 296vid_fullscreen 0 // disable fullscreen mode 297vid_restart // restart video driver 298snd_restart // restart sound driver 299basedir <dir> // point quake2 to where the data is 300gl_driver <libGL.so> // point quake2 to your libGL 301dedicated 1 // run quake2 as a dedicated server 302game <subdir> // load the quake2 mod in that directory 303sensitivity <int> // Adjust the sensivity (accelleration) of the mouse. 304crosshair <int> // Choose your crosshair [1-3] Normal [1-9] Q2Max 305crosshair_scale <int> // Scale your crosshair (Q2Max only for now...) 306 307When using these commands on the quake2 command line, use +set to cause the 308variables be set before the config files are loaded (important for 309gl_driver). e.g. 310./quake2 +set vid_ref glx +set gl_driver /usr/lib/libGL.so.1 311Note that variables like basedir and game _require_ using +set to ensure 312the desired functionality. 313 314If quake2 crashes when trying to load an OpenGL based driver (glx, sdlgl), 315make sure its not loading the wrong libGL. 316 317Have a NVIDIA card and it _still_ crashes? Try 318export LD_PRELOAD=/usr/lib/libGL.so, and run quake2 again. 319 320Is lighting slow in OpenGL (while firing, explosions, etc.)? Disable 321multitexturing (gl_ext_multitexture 0; vid_restart). 322 323More information can be found in src/docs/. 324 325Known Bugs and Workarounds: 326--------------------------- 327FAQ: 328---- 329Q: Quake2 crashes when starting a new game. 330A: It's most likely that the gamei386.so was not installed correctly. 331 Do not use the version that comes with the 3.20 release! See the 332 installation instructions above. 333 334Q: Quake2 doesn't want to load mods correctly with +game. 335A: Use +set game. 336 337Q: ErasorBot doesn't work. 338A: Not all the source was released for ErasorBot. See explanation above. 339 340Website: 341-------- 342I'll post any updates I make at http://www.icculus.org/quake2/ 343 344Mailing List and Contact: 345------------------------- 346to subscribe: send a blank email to quake2-subscribe@icculus.org 347to post: send email to quake2@icculus.org 348 349Anonymous CVS access: 350--------------------- 351cvs -d:pserver:anonymous@icculus.org:/cvs/cvsroot login 352 (password is "anonymous" without the quotes.) 353cvs -z3 -d:pserver:anonymous@icculus.org:/cvs/cvsroot co quake2 354 355Bugzilla: 356--------- 357https://bugzilla.icculus.org 358 359TODO: 360----- 361Fix save games. 362Verify that FXGL works. 363Fullscreen/DGA support in X11 driver. 364Make a list of tested mods. 365Make Q2 as Arch/OS independent as possible. 366 367Many Thanks to all these people: 368-------------------------------- 369John Allensworth 370Stephen Anthony 371William Aoki 372Michele Balistreri 373Wesley Bear 374Robert B�uml 375Vincent Cojot 376Michel D�nzer 377Ryan C. Gordon 378Angelo Grossini 379Nicolai Haehnle 380Thijmen Klok 381Hampton Maxwell 382Ludwig Nussel 383Peter van Paassen 384Florent Parent 385Victor Shkamerda 386Zachary 'zakk' Slater 387Matti Valtonen 388Rusty Mellinger 389Karen Pouelle 390Toni Spets 391Nicolas Regnault 392Nick Warne 393 394v 0.16 [09/13/04] 395Load more pakfiles [Toni Spets] 396Load bigger PCX images [Toni Spets] 397Railgun easter egg bug fixed [Nick Warne] 398Preliminary x86_64 support [Nicolas Regnault] 399Red/Blue 3D support <http://www.jfedor.org> 400Retexturing support (thanks to Karen Pouelle) 401Better FreeBSD support (thanks to /danfe) 402Added ALSA sound support 403Advanced Joystick Support 404Some miscelaneous fixes which I've forgotten about 405 406 407v 0.15 [10/08/02] 408Solaris updates from Vincent 409TiBook and Vaio video modes 410Stencil Shadows in non-quake2-max 411Spark o' death bug fixed (thanks to Rusty Mellinger!) 412Crosshair scale support for q2-max 413 414v 0.14 [9/5/02] 415Massive Solaris updates including packaging code [Vincent Cojot] 416Explosions are back after Brendan accidentally removed them in 0.13 417 418v 0.13: [7/10/02] 419----- 420Added Quake2-Max GL extensions <http://modscape.telefragged.com/q2max/> 421Added aalib video renderer <http://www.jfedor.org/> 422 423v 0.12: [6/11/02] 424----- 425Added Joystick support to GLX, start migration to unified X event handling 426Modified video driver selection to reflect drivers actually present (Stephen 427Anthony) 428 429v 0.11: [5/10/02] 430----- 431Added dedicated server support [Wesley Bear] 432Fixed a bug in key repeat handling under X11. 433Added gamma adjustment on the fly [Victor Shkamerda] 434Added aRts sound support [Michele Balistreri] 435 436v 0.10: [4/01/02] (no fooling...) 437----- 438+ Extensive improvments to Solaris support (thanks to Vincent Cojot!) 439+ Joystick support 440+ Fixed R_CON_PASSWORD server security hole. 441 442v0.9: [03/10/02] 443----- 444+ X selection support (softx/glx only). 445+ Mouse Wheel support (softx/glx). 446+ CD Audio fixes. (W.P. van Paassen) 447+ Swapped SDL buttons 2/3 to be correct. 448+ Big Gun+save game crash fixed. 449+ FreeBSD support (Hampton Maxwell). 450+ Mouse buttons 4/5 supported (sdl only). (Angelo Grossini) 451+ IPv6 support. (Florent Parent) 452+ Documentation updates. 453 454v0.0.8: [01/04/02] 455------- 456+ Fixed C-only ref_soft building. 457+ SDL CD audio looping fix (Robert B�uml) 458+ ~/.quake2/<game> added to the search path for mods. (Ludwig Nussel) 459+ Minor change to fix compilation with OpenGL 1.3 headers. 460+ Fixed changing video drivers using the menu. 461+ Fixed autoexec.cfg on startup. 462+ Sparc Linux support (Vincent Cojot) 463 464v0.0.7: [12/28/01] 465------- 466+ Merged in Quake2 3.21 source. 467 468v0.0.6: [12/27/01] 469------- 470+ Made Makefile somewhat easier to configure. 471+ X11 GLX driver now included. 472+ Added "ctrl-g" (toggle mouse grab) and "alt-enter" (toggle fullscreen) 473 to SDL drivers. 474+ SDL audio and cdrom support. (Robert B�uml) 475+ ~/.quake2/ support (Stephen Anthony, Ludwig Nussel) 476+ LinuxPPC support (William Aoki) 477 478v0.0.5: [12/23/01] 479------- 480+ Better SDL de/initialization (fixes crashes for some people). 481+ Removed trailing '\r's from files; removed a few files. 482 483v0.0.4: [12/23/01] 484------- 485+ Mouse Wheel (SDL buttons 4 and 5). 486+ Fixed bug with changing the sound options in game (using the menus). 487+ Fixed Makefile to build both build_debug and build_release by default. 488 489v0.0.3: [12/22/01] 490------- 491+ Fixed the texture wrapping with movies. 492+ Enabled the OpenGL extensions under Linux. 493+ Added support for GL_ARB_multitexture. 494 495v0.0.2: [12/22/01] 496------- 497+ Added ref_sdlgl.so (SDL OpenGL Renderer). 498+ v0.0.1 Bugfixes. 499 500v0.0.1: [12/22/01] 501------- 502+ Updates to Linux Makefile (it was missing a few files). 503+ Added ref_softsdl.so (Software SDL Renderer). 504- OpenGL not yet supported. 505