aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README684
1 files changed, 342 insertions, 342 deletions
diff --git a/README b/README
index e0122ee..2d5c58e 100644
--- a/README
+++ b/README
@@ -1,342 +1,342 @@
- ,---------------------------------------.
- | _ _ ____ |
- | (_)___ __ _ _ _ __ _| |_____|__ / |
- | | / _ \/ _` | || / _` | / / -_)|_ \ |
- | |_\___/\__, |\_,_\__,_|_\_\___|___/ |
- | |_| |
- | |
- `---------- http://ioquake3.org --------'
-
-The intent of this project is to provide a baseline Quake 3 which may be used
-for further development. Some of the major features currently implemented are:
-
- * SDL backend for unix-like operating systems
- * OpenAL sound API support (multiple speaker support and better sound
- quality)
- * Full x86_64 support on Linux
- * MinGW compilation support on Windows and cross compilation support on Linux
- * AVI video capture of demos
- * Much improved console autocompletion
- * Persistent console history
- * Colorized terminal output
- * Optional Ogg Vorbis support
- * Much improved QVM tools
- * Support for various esoteric operating systems (see
- http://ioquake3.org/?page=status)
- * HTTP/FTP download redirection (using cURL)
- * Multiuser support on Windows systems (user specific game data
- is stored in "%APPDATA%\Quake3")
- * Many, many bug fixes
-
-The map editor and associated compiling tools are not included. We suggest you
-use a modern copy from http://www.qeradiant.com/.
-
-The original id software readme that accompanied the Q3 source release has been
-renamed to id-readme.txt so as to prevent confusion. Please refer to the
-web-site for updated status.
-
-
---------------------------------------------- Compilation and installation -----
-
-For *nix
- 1. Change to the directory containing this readme.
- 2. Run 'make'.
-
-For Windows, using MinGW
- 1. Download and install MinGW and MSys from http://www.mingw.org/.
- 2. Download http://www.libsdl.org/extras/win32/common/directx-devel.tar.gz
- and untar it into your MinGW directory (usually C:\MinGW).
- 3. Open an MSys terminal, and follow the instructions for compiling on *nix.
-
-For Windows, using MSVC
- 1. Run Visual Studio and open the quake3.sln file in the code/win32/msvc
- directory.
- 2. Build.
- 3. Copy the resultant Quake3.exe to your quake 3 directory, make a backup if
- you want to keep your original. If you wish to use native libraries, copy
- the resultant dlls to your baseq3 directory.
-
-For Mac OS X, building a Universal Binary
- 1. Install the MacOSX10.2.8.sdk and MacOSX10.4u.sdk which are included in
- XCode 2.2 and newer.
- 2. Change to the directory containing this README file.
- 3. Run './make-macosx-ub.sh'
- 4. Copy the resulting ioquake3.app in /build/release-darwin-ub to your
- /Applications/ioquake3 folder.
-
-Installation, for *nix
- 1. Set the COPYDIR variable in the shell to be where you installed Quake 3
- to. By default it will be /usr/local/games/quake3 if you haven't set it.
- This is the path as used by the original Linux Q3 installer and subsequent
- point releases.
- 2. Run 'make copyfiles'.
-
-It is also possible to cross compile for Windows under *nix using MinGW. A
-script is available to build a cross compilation environment from
-http://www.libsdl.org/extras/win32/cross/build-cross.sh. The gcc/binutils
-version numbers that the script downloads may need to be altered. After you
-have successfully run this script cross compiling is simply a case of using
-'./cross-make-mingw.sh' in place of 'make'.
-
-If the make based build system is being used (i.e. *nix or MinGW), the
-following variables may be set, either on the command line or in
-Makefile.local:
-
- OPTIMIZE - use this for custom CFLAGS
- DEFAULT_BASEDIR - extra path to search for baseq3 and such
- BUILD_SERVER - build the 'ioq3ded' server binary
- BUILD_CLIENT - build the 'ioquake3' client binary
- BUILD_CLIENT_SMP - build the 'ioquake3-smp' client binary
- BUILD_GAME_SO - build the game shared libraries
- BUILD_GAME_QVM - build the game qvms
- USE_SDL - use the SDL backend where available
- USE_OPENAL - use OpenAL where available
- USE_OPENAL_DLOPEN - link with OpenAL at runtime
- USE_CURL - use libcurl for http/ftp download support
- USE_CURL_DLOPEN - link with libcurl at runtime
- USE_CODEC_VORBIS - enable Ogg Vorbis support
- USE_LOCAL_HEADERS - use headers local to ioq3 instead of system ones
- USE_CCACHE - use ccache compiler caching tool
- COPYDIR - the target installation directory
-
-The defaults for these variables differ depending on the target platform.
-
-
------------------------------------------------------------------- Console -----
-
-New cvars
- cl_autoRecordDemo - record a new demo on each map change
- cl_aviFrameRate - the framerate to use when capturing video
- cl_aviMotionJpeg - use the mjpeg codec when capturing video
-
- s_useOpenAL - use the OpenAL sound backend if available
- s_alPrecache - cache OpenAL sounds before use
- s_alGain - the value of AL_GAIN for each source
- s_alSources - the total number of sources (memory) to
- allocate
- s_alDopplerFactor - the value passed to alDopplerFactor
- s_alDopplerSpeed - the value passed to alDopplerVelocity
- s_alMinDistance - the value of AL_REFERENCE_DISTANCE for
- each source
- s_alMaxDistance - the maximum distance before sounds start
- to become inaudible.
- s_alRolloff - the value of AL_ROLLOFF_FACTOR for each
- source
- s_alGraceDistance - after having passed MaxDistance, length
- until sounds are completely inaudible.
- s_alMaxSpeakerDistance - ET_SPEAKERS beyond this distance are
- culled
- s_alDriver - which OpenAL library to use
- s_alDevice - which OpenAL device to use
- s_alAvailableDevices - list of available OpenAL devices
-
- s_sdlBits - SDL bit resolution
- s_sdlSpeed - SDL sample rate
- s_sdlChannels - SDL number of channels
- s_sdlDevSamps - SDL DMA buffer size override
- s_sdlMixSamps - SDL mix buffer size override
-
- ttycon_ansicolor - enable use of ANSI escape codes in the tty
- r_GLlibCoolDownMsec - wait for some milliseconds to close GL
- library
- com_altivec - enable use of altivec on PowerPC systems
- s_backend - read only, indicates the current sound
- backend
- in_shiftedKeys - non-SDL Linux only; enables binding to
- shifted keys
- in_joystickNo - SDL only; select which joystick to use
- cl_consoleHistory - read only, stores the console history
- cl_platformSensitivity - read only, indicates the mouse input
- scaling
- r_ext_texture_filter_anisotropic - anisotropic texture filtering
- cl_cURLLib - filename of cURL library to load
- sv_dlURL - the base of the HTTP or FTP site that
- holds custom pk3 files for your server
-
-New commands
- video [filename] - start video capture (use with demo command)
- stopvideo - stop video capture
-
-
------------------------------------------------------------- Miscellaneous -----
-
-Using shared libraries instead of qvm
- To force Q3 to use shared libraries instead of qvms run it with the following
- parameters: +set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0
-
-Using Demo Data Files
- Copy demoq3/pak0.pk3 from the demo installer to your baseq3 directory. The
- qvm files in this pak0.pk3 will not work, so you have to use the native
- shared libraries or qvms from this project. To use the new qvms, they must be
- put into a pk3 file. A pk3 file is just a zip file, so any compression tool
- that can create such files will work. The shared libraries should already be
- in the correct place. Use the instructions above to use them.
-
- Please bear in mind that you will not be able to play online using the demo
- data, nor is it something that we like to spend much time maintaining or
- supporting.
-
-64bit mods
- If you wish to compile external mods as shared libraries on a 64bit platform,
- and the mod source is derived from the id Q3 SDK, you will need to modify the
- interface code a little. Open the files ending in _syscalls.c and change
- every instance of int to intptr_t in the declaration of the syscall function
- pointer and the dllEntry function. Also find the vmMain function for each
- module (usually in cg_main.c g_main.c etc.) and similarly replace the return
- value in the prototype with intptr_t (arg0, arg1, ...stay int).
-
- Add the following code snippet to q_shared.h:
-
- #ifdef Q3_VM
- typedef int intptr_t;
- #else
- #include <stdint.h>
- #endif
-
- Note if you simply wish to run mods on a 64bit platform you do not need to
- recompile anything since by default Q3 uses a virtual machine system.
-
-Creating mods compatible with Q3 1.32b
- If you're using this package to create mods for the last official release of
- Q3, it is necessary to pass the commandline option '-vq3' to your invocation
- of q3asm. This is because by default q3asm outputs an updated qvm format that
- is necessary to fix a bug involving the optimizing pass of the x86 vm JIT
- compiler. See http://www.quakesrc.org/forums/viewtopic.php?t=5665 (if it
- still exists when you read this) for more details.
-
-Using HTTP/FTP Download Support (Server)
- You can enable redirected downloads on your server even if it's not
- an ioquake3 server. You simply need to use the 'sets' command to put
- the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads
- is set to 1
-
- sv_dlURL is the base of the URL that contains your custom .pk3 files
- the client will append both fs_game and the filename to the end of
- this value. For example, if you have sv_dlURL set to
- "http://ioquake3.org", fs_game is "baseq3", and the client is
- missing "test.pk3", it will attempt to download from the URL
- "http://ioquake3.org/baseq3/test.pk3"
-
- sv_allowDownload's value is now a bitmask made up of the following
- flags:
- 1 - ENABLE
- 2 - do not use HTTP/FTP downloads
- 4 - do not use UDP downloads
- 8 - do not ask the client to disconnect when using HTTP/FTP
-
- Server operators who are concerned about potential "leeching" from their
- HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER
- that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}". For,
- example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.
-
-Using HTTP/FTP Download Support (Client)
- Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads
- assuming ioquake3 was compiled with USE_CURL=1 (the default).
- like sv_allowDownload, cl_allowDownload also uses a bitmask value
- supporting the following flags:
- 1 - ENABLE
- 2 - do not use HTTP/FTP downloads
- 4 - do not use UDP downloads
-
- When ioquake3 is built with USE_CURL_DLOPEN=1 (default on some platforms),
- it will use the value of the cvar cl_cURLLib as the filename of the cURL
- library to dynamically load.
-
-Multiuser Support on Windows systems
- On Windows, all user specific files such as autogenerated configuration,
- demos, videos, screenshots, and autodownloaded pk3s are now saved in a
- directory specific to the user who is running ioquake3.
-
- On NT-based such as Windows XP, this is usually a directory named:
- "C:\Documents and Settings\%USERNAME%\Application Data\Quake3\"
-
- Windows 95, Windows 98, and Windows ME will use a directory like:
- "C:\Windows\Application Data\Quake3"
- in single-user mode, or:
- "C:\Windows\Profiles\%USERNAME%\Application Data\Quake3"
- if multiple logins have been enabled.
-
- In order to access this directory more easily, the installer may create a
- Shortcut which has its target set to:
- "%APPDATA%\Quake3\"
- This Shortcut would work for all users on the system regardless of the
- locale settings. Unfortunately, this environment variable is only
- present on Windows NT based systems.
-
- You can revert to the old single-user behaviour by setting the fs_homepath
- cvar to the directory where ioquake3 is installed. For example:
- ioquake3.exe +set fs_homepath "c:\ioquake3"
- Note that this cvar MUST be set as a command line parameter.
-
-------------------------------------------------------------- Contributing -----
-
-Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the
-mailing list (quake3-subscribe@icculus.org) and submit your patch there. The
-best case scenario is that you submit your patch to bugzilla, and then post the
-URL to the mailing list. If you're too lazy for either method, then it would be
-better if you emailed your patches to zakk@icculus.org directly than not at
-all.
-
-The focus for ioquake3 to develop a stable base suitable for further
-development, and provide players with the same Quake 3 experience they've had
-for years. As such ioq3 does not have any significant graphical enhancements
-and none are planned at this time. However, improved graphics and sound
-patches will be accepted as long as they are entirely optional, do not
-require new media and are off by default.
-
-
---------------------------------------------- Building Official Installers -----
-
-We need help getting automated installers on all the platforms that ioquake3
-supports. We don't neccesarily care about all the installers being identical,
-but we have some general guidelines:
-
- * Please include the id patch pk3s in your installer, which are available
- from http://ioquake3.org/?page=getdata subject to agreement to the id
- EULA. Your installer shall also ask the user to agree to this EULA (which
- is in the /web/include directory for your convenience) and subsequently
- refuse to continue the installation of the patch pk3s and pak0.pk3 if they
- do not.
-
- * Please don't require pak0.pk3, since not everyone using the engine
- plans on playing Quake 3 Arena on it. It's fine to (optionally) assist the
- user in copying the file or tell them how.
-
- * It is fine to just install the binaries without requiring id EULA agreement,
- providing pak0.pk3 and the patch pk3s are not refered to or included in the
- installer.
-
- * Please include at least an SDL so/dylib on every platform but Windows
- (which doesn't use it yet).
-
- * Please include an OpenAL so/dylib/dll, since every platform should be using
- it by now.
-
- * We'll bump the version to 1.34 as soon as we get enough people who can
- demonstrate a competent build for Windows and Mac.
-
- * Please contact the mailing list and/or zakk@timedoctor.org after you've
- made your installer.
-
- * Please be prepared to alter your installer on the whim of the maintainers.
-
- * Your installer will be mirrored to an "official" directory, thus making it
- a done deal.
-
------------------------------------------------------------------- Credits -----
-
-Maintainers
- Aaron Gyes <floam at sh dot nu>
- Ludwig Nussel <ludwig.nussel@suse.de>
- Ryan C. Gordon <icculus@icculus.org>
- Thilo Schulz <arny@ats.s.bawue.de>
- Tim Angus <tim@ngus.net>
- Tony J. White <tjw@tjw.org>
- Zachary J. Slater <zakk@timedoctor.org>
-
-Significant contributions from
- Andreas Kohn <andreas@syndrom23.de>
- Joerg Dietrich <Dietrich_Joerg@t-online.de>
- Stuart Dalton <badcdev@gmail.com>
- Vincent S. Cojot <vincent at cojot dot name>
- optical <alex@rigbo.se>
+ ,---------------------------------------.
+ | _ _ ____ |
+ | (_)___ __ _ _ _ __ _| |_____|__ / |
+ | | / _ \/ _` | || / _` | / / -_)|_ \ |
+ | |_\___/\__, |\_,_\__,_|_\_\___|___/ |
+ | |_| |
+ | |
+ `---------- http://ioquake3.org --------'
+
+The intent of this project is to provide a baseline Quake 3 which may be used
+for further development. Some of the major features currently implemented are:
+
+ * SDL backend for unix-like operating systems
+ * OpenAL sound API support (multiple speaker support and better sound
+ quality)
+ * Full x86_64 support on Linux
+ * MinGW compilation support on Windows and cross compilation support on Linux
+ * AVI video capture of demos
+ * Much improved console autocompletion
+ * Persistent console history
+ * Colorized terminal output
+ * Optional Ogg Vorbis support
+ * Much improved QVM tools
+ * Support for various esoteric operating systems (see
+ http://ioquake3.org/?page=status)
+ * HTTP/FTP download redirection (using cURL)
+ * Multiuser support on Windows systems (user specific game data
+ is stored in "%APPDATA%\Quake3")
+ * Many, many bug fixes
+
+The map editor and associated compiling tools are not included. We suggest you
+use a modern copy from http://www.qeradiant.com/.
+
+The original id software readme that accompanied the Q3 source release has been
+renamed to id-readme.txt so as to prevent confusion. Please refer to the
+web-site for updated status.
+
+
+--------------------------------------------- Compilation and installation -----
+
+For *nix
+ 1. Change to the directory containing this readme.
+ 2. Run 'make'.
+
+For Windows, using MinGW
+ 1. Download and install MinGW and MSys from http://www.mingw.org/.
+ 2. Download http://www.libsdl.org/extras/win32/common/directx-devel.tar.gz
+ and untar it into your MinGW directory (usually C:\MinGW).
+ 3. Open an MSys terminal, and follow the instructions for compiling on *nix.
+
+For Windows, using MSVC
+ 1. Run Visual Studio and open the quake3.sln file in the code/win32/msvc
+ directory.
+ 2. Build.
+ 3. Copy the resultant Quake3.exe to your quake 3 directory, make a backup if
+ you want to keep your original. If you wish to use native libraries, copy
+ the resultant dlls to your baseq3 directory.
+
+For Mac OS X, building a Universal Binary
+ 1. Install the MacOSX10.2.8.sdk and MacOSX10.4u.sdk which are included in
+ XCode 2.2 and newer.
+ 2. Change to the directory containing this README file.
+ 3. Run './make-macosx-ub.sh'
+ 4. Copy the resulting ioquake3.app in /build/release-darwin-ub to your
+ /Applications/ioquake3 folder.
+
+Installation, for *nix
+ 1. Set the COPYDIR variable in the shell to be where you installed Quake 3
+ to. By default it will be /usr/local/games/quake3 if you haven't set it.
+ This is the path as used by the original Linux Q3 installer and subsequent
+ point releases.
+ 2. Run 'make copyfiles'.
+
+It is also possible to cross compile for Windows under *nix using MinGW. A
+script is available to build a cross compilation environment from
+http://www.libsdl.org/extras/win32/cross/build-cross.sh. The gcc/binutils
+version numbers that the script downloads may need to be altered. After you
+have successfully run this script cross compiling is simply a case of using
+'./cross-make-mingw.sh' in place of 'make'.
+
+If the make based build system is being used (i.e. *nix or MinGW), the
+following variables may be set, either on the command line or in
+Makefile.local:
+
+ OPTIMIZE - use this for custom CFLAGS
+ DEFAULT_BASEDIR - extra path to search for baseq3 and such
+ BUILD_SERVER - build the 'ioq3ded' server binary
+ BUILD_CLIENT - build the 'ioquake3' client binary
+ BUILD_CLIENT_SMP - build the 'ioquake3-smp' client binary
+ BUILD_GAME_SO - build the game shared libraries
+ BUILD_GAME_QVM - build the game qvms
+ USE_SDL - use the SDL backend where available
+ USE_OPENAL - use OpenAL where available
+ USE_OPENAL_DLOPEN - link with OpenAL at runtime
+ USE_CURL - use libcurl for http/ftp download support
+ USE_CURL_DLOPEN - link with libcurl at runtime
+ USE_CODEC_VORBIS - enable Ogg Vorbis support
+ USE_LOCAL_HEADERS - use headers local to ioq3 instead of system ones
+ USE_CCACHE - use ccache compiler caching tool
+ COPYDIR - the target installation directory
+
+The defaults for these variables differ depending on the target platform.
+
+
+------------------------------------------------------------------ Console -----
+
+New cvars
+ cl_autoRecordDemo - record a new demo on each map change
+ cl_aviFrameRate - the framerate to use when capturing video
+ cl_aviMotionJpeg - use the mjpeg codec when capturing video
+
+ s_useOpenAL - use the OpenAL sound backend if available
+ s_alPrecache - cache OpenAL sounds before use
+ s_alGain - the value of AL_GAIN for each source
+ s_alSources - the total number of sources (memory) to
+ allocate
+ s_alDopplerFactor - the value passed to alDopplerFactor
+ s_alDopplerSpeed - the value passed to alDopplerVelocity
+ s_alMinDistance - the value of AL_REFERENCE_DISTANCE for
+ each source
+ s_alMaxDistance - the maximum distance before sounds start
+ to become inaudible.
+ s_alRolloff - the value of AL_ROLLOFF_FACTOR for each
+ source
+ s_alGraceDistance - after having passed MaxDistance, length
+ until sounds are completely inaudible.
+ s_alMaxSpeakerDistance - ET_SPEAKERS beyond this distance are
+ culled
+ s_alDriver - which OpenAL library to use
+ s_alDevice - which OpenAL device to use
+ s_alAvailableDevices - list of available OpenAL devices
+
+ s_sdlBits - SDL bit resolution
+ s_sdlSpeed - SDL sample rate
+ s_sdlChannels - SDL number of channels
+ s_sdlDevSamps - SDL DMA buffer size override
+ s_sdlMixSamps - SDL mix buffer size override
+
+ ttycon_ansicolor - enable use of ANSI escape codes in the tty
+ r_GLlibCoolDownMsec - wait for some milliseconds to close GL
+ library
+ com_altivec - enable use of altivec on PowerPC systems
+ s_backend - read only, indicates the current sound
+ backend
+ in_shiftedKeys - non-SDL Linux only; enables binding to
+ shifted keys
+ in_joystickNo - SDL only; select which joystick to use
+ cl_consoleHistory - read only, stores the console history
+ cl_platformSensitivity - read only, indicates the mouse input
+ scaling
+ r_ext_texture_filter_anisotropic - anisotropic texture filtering
+ cl_cURLLib - filename of cURL library to load
+ sv_dlURL - the base of the HTTP or FTP site that
+ holds custom pk3 files for your server
+
+New commands
+ video [filename] - start video capture (use with demo command)
+ stopvideo - stop video capture
+
+
+------------------------------------------------------------ Miscellaneous -----
+
+Using shared libraries instead of qvm
+ To force Q3 to use shared libraries instead of qvms run it with the following
+ parameters: +set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0
+
+Using Demo Data Files
+ Copy demoq3/pak0.pk3 from the demo installer to your baseq3 directory. The
+ qvm files in this pak0.pk3 will not work, so you have to use the native
+ shared libraries or qvms from this project. To use the new qvms, they must be
+ put into a pk3 file. A pk3 file is just a zip file, so any compression tool
+ that can create such files will work. The shared libraries should already be
+ in the correct place. Use the instructions above to use them.
+
+ Please bear in mind that you will not be able to play online using the demo
+ data, nor is it something that we like to spend much time maintaining or
+ supporting.
+
+64bit mods
+ If you wish to compile external mods as shared libraries on a 64bit platform,
+ and the mod source is derived from the id Q3 SDK, you will need to modify the
+ interface code a little. Open the files ending in _syscalls.c and change
+ every instance of int to intptr_t in the declaration of the syscall function
+ pointer and the dllEntry function. Also find the vmMain function for each
+ module (usually in cg_main.c g_main.c etc.) and similarly replace the return
+ value in the prototype with intptr_t (arg0, arg1, ...stay int).
+
+ Add the following code snippet to q_shared.h:
+
+ #ifdef Q3_VM
+ typedef int intptr_t;
+ #else
+ #include <stdint.h>
+ #endif
+
+ Note if you simply wish to run mods on a 64bit platform you do not need to
+ recompile anything since by default Q3 uses a virtual machine system.
+
+Creating mods compatible with Q3 1.32b
+ If you're using this package to create mods for the last official release of
+ Q3, it is necessary to pass the commandline option '-vq3' to your invocation
+ of q3asm. This is because by default q3asm outputs an updated qvm format that
+ is necessary to fix a bug involving the optimizing pass of the x86 vm JIT
+ compiler. See http://www.quakesrc.org/forums/viewtopic.php?t=5665 (if it
+ still exists when you read this) for more details.
+
+Using HTTP/FTP Download Support (Server)
+ You can enable redirected downloads on your server even if it's not
+ an ioquake3 server. You simply need to use the 'sets' command to put
+ the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads
+ is set to 1
+
+ sv_dlURL is the base of the URL that contains your custom .pk3 files
+ the client will append both fs_game and the filename to the end of
+ this value. For example, if you have sv_dlURL set to
+ "http://ioquake3.org", fs_game is "baseq3", and the client is
+ missing "test.pk3", it will attempt to download from the URL
+ "http://ioquake3.org/baseq3/test.pk3"
+
+ sv_allowDownload's value is now a bitmask made up of the following
+ flags:
+ 1 - ENABLE
+ 2 - do not use HTTP/FTP downloads
+ 4 - do not use UDP downloads
+ 8 - do not ask the client to disconnect when using HTTP/FTP
+
+ Server operators who are concerned about potential "leeching" from their
+ HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER
+ that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}". For,
+ example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.
+
+Using HTTP/FTP Download Support (Client)
+ Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads
+ assuming ioquake3 was compiled with USE_CURL=1 (the default).
+ like sv_allowDownload, cl_allowDownload also uses a bitmask value
+ supporting the following flags:
+ 1 - ENABLE
+ 2 - do not use HTTP/FTP downloads
+ 4 - do not use UDP downloads
+
+ When ioquake3 is built with USE_CURL_DLOPEN=1 (default on some platforms),
+ it will use the value of the cvar cl_cURLLib as the filename of the cURL
+ library to dynamically load.
+
+Multiuser Support on Windows systems
+ On Windows, all user specific files such as autogenerated configuration,
+ demos, videos, screenshots, and autodownloaded pk3s are now saved in a
+ directory specific to the user who is running ioquake3.
+
+ On NT-based such as Windows XP, this is usually a directory named:
+ "C:\Documents and Settings\%USERNAME%\Application Data\Quake3\"
+
+ Windows 95, Windows 98, and Windows ME will use a directory like:
+ "C:\Windows\Application Data\Quake3"
+ in single-user mode, or:
+ "C:\Windows\Profiles\%USERNAME%\Application Data\Quake3"
+ if multiple logins have been enabled.
+
+ In order to access this directory more easily, the installer may create a
+ Shortcut which has its target set to:
+ "%APPDATA%\Quake3\"
+ This Shortcut would work for all users on the system regardless of the
+ locale settings. Unfortunately, this environment variable is only
+ present on Windows NT based systems.
+
+ You can revert to the old single-user behaviour by setting the fs_homepath
+ cvar to the directory where ioquake3 is installed. For example:
+ ioquake3.exe +set fs_homepath "c:\ioquake3"
+ Note that this cvar MUST be set as a command line parameter.
+
+------------------------------------------------------------- Contributing -----
+
+Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the
+mailing list (quake3-subscribe@icculus.org) and submit your patch there. The
+best case scenario is that you submit your patch to bugzilla, and then post the
+URL to the mailing list. If you're too lazy for either method, then it would be
+better if you emailed your patches to zakk@icculus.org directly than not at
+all.
+
+The focus for ioquake3 to develop a stable base suitable for further
+development, and provide players with the same Quake 3 experience they've had
+for years. As such ioq3 does not have any significant graphical enhancements
+and none are planned at this time. However, improved graphics and sound
+patches will be accepted as long as they are entirely optional, do not
+require new media and are off by default.
+
+
+--------------------------------------------- Building Official Installers -----
+
+We need help getting automated installers on all the platforms that ioquake3
+supports. We don't neccesarily care about all the installers being identical,
+but we have some general guidelines:
+
+ * Please include the id patch pk3s in your installer, which are available
+ from http://ioquake3.org/?page=getdata subject to agreement to the id
+ EULA. Your installer shall also ask the user to agree to this EULA (which
+ is in the /web/include directory for your convenience) and subsequently
+ refuse to continue the installation of the patch pk3s and pak0.pk3 if they
+ do not.
+
+ * Please don't require pak0.pk3, since not everyone using the engine
+ plans on playing Quake 3 Arena on it. It's fine to (optionally) assist the
+ user in copying the file or tell them how.
+
+ * It is fine to just install the binaries without requiring id EULA agreement,
+ providing pak0.pk3 and the patch pk3s are not refered to or included in the
+ installer.
+
+ * Please include at least an SDL so/dylib on every platform but Windows
+ (which doesn't use it yet).
+
+ * Please include an OpenAL so/dylib/dll, since every platform should be using
+ it by now.
+
+ * We'll bump the version to 1.34 as soon as we get enough people who can
+ demonstrate a competent build for Windows and Mac.
+
+ * Please contact the mailing list and/or zakk@timedoctor.org after you've
+ made your installer.
+
+ * Please be prepared to alter your installer on the whim of the maintainers.
+
+ * Your installer will be mirrored to an "official" directory, thus making it
+ a done deal.
+
+------------------------------------------------------------------ Credits -----
+
+Maintainers
+ Aaron Gyes <floam at sh dot nu>
+ Ludwig Nussel <ludwig.nussel@suse.de>
+ Ryan C. Gordon <icculus@icculus.org>
+ Thilo Schulz <arny@ats.s.bawue.de>
+ Tim Angus <tim@ngus.net>
+ Tony J. White <tjw@tjw.org>
+ Zachary J. Slater <zakk@timedoctor.org>
+
+Significant contributions from
+ Andreas Kohn <andreas@syndrom23.de>
+ Joerg Dietrich <Dietrich_Joerg@t-online.de>
+ Stuart Dalton <badcdev@gmail.com>
+ Vincent S. Cojot <vincent at cojot dot name>
+ optical <alex@rigbo.se>