qbWinQuakeDX : qbism bjp WinQuake with DirectX video driver
===========================================================

WHAT IS THIS???

This is a slightly repackaged mod of Bengt Jardrup's "Win/GLQuake Mapper Version".
- Only WinQuake.exe has been produced (located in Release folder)
- Includes source code and project file for Codeblocks Advanced with mingw from Reckless
  http://sourceforge.net/projects/cbadvanced/
- uses C rendering functions rather than ASM
- uses mh's DirectX vid_win.c replacement
- faster drawspans replacement by mh, Manoel Kasimer, and qbism
- a few efficient macros from LordHavoc and John Fitz
- other minor changes as commented, mostly to soothe compiler.

WHY DO SUCH A THING???
- Robust and large-capacity Quake in a software renderer package.
- Classic engine updated to work with current weird-resolution laptops.
- Ported to an updated open-source IDE and compiler suite.
- Makes a good reference for testing big maps and comparing other engines.

Enjoy!
Jeff Ford
qbism.com

ORIGINAL README BELOW:

Win/GLQuake Mapper Version
==========================

BACKGROUND

There are a lot of Quake1 engines available now. Most of them have mainly focussed on adding
features and new graphic gizmos and nearly all of them have several limitations that are a problem
for mappers and players. A few engines, mainly FitzQuake and TyrQuake, have tried to improve the
basic functionality, increase stability, capacity and speed while still maintaining the original
look and feel of Quake.

This Win/GLQuake version is meant to be a stable, fast and high-capacity version of the original
Win/GLQuake with many features added. Its main advantage is that it can load and play maps/mods
that other engines fail.

This makes it ideal for mappers who at one time or another experience problems with their maps;
there are leaks, entity overflow or other issues that prevent the map from loading in a normal
engine. These problems should of course be fixed so the map can be loaded in any engine, but
during development this engine can be used to help finding and fixing the problems.

The engine has also many features that will help modders troubleshoot QC or other game contents
issues.

==================================================================================================
FEATURES

* Very large capacity and robustness; all known bsps are loadable and playable.
* Very high limits (e.g. edicts) and almost no engine choking (e.g. packet overflow).
* Fast loading of bsps.
* Low memory requirements, especially when loading many bsps in sequence.
* Low system requirements; most systems should be able to use any of the engines.
* Low CPU load.
* GL: Enhanced brightness (gamma) handling.
* GL: Enhanced texture quality.
* Enhanced sound quality; almost eliminated sound drop out or stuttering.
* GL: Standard skybox and fog support.
* GL: Support for external bsp/mdl/spr textures in three commonly used engine styles.
* GL: Smooth model interpolation.
* GL: Support for transparent entities bsp/mdl.
* GL: Enhanced shadows.
* Enhanced console handling and warning/error messages.
* Many gameplay issues fixed.
* Rudimentary Nehahra support.
* Enhanced QC (progs) validation.
* Enhanced log file handling.

==================================================================================================
NOTES

There is a difference in the gamma (brightness) handling in the older GLQuake 0.97 version and the
1.00 that this version is derived from. If your graphics card supports hardware gamma handling,
you can change gamma via cvar gamma (or slider in options menu) in-game. This is the recommended
mode.

If hardware gamma is unsupported or undesired, add the option "-gamma #" to the command line,
where # could be e.g. 1.1 or some other float value that looks good. Note that in this mode,
GLQuake only sets the gamma at startup so it doesn't help to change it in-game.

Some extensions have broken compatibility. The engine is using a custom network protocol that is
different from the standard protocol 15 and this affects both multiplay and demos. This means that
when using the engine as a server, you must normally have the same engine as a client. However,
the engine can act as a client to any standard server. See also cvar sv_protocol below.

Demos recorded with this engine can't be played back directly in a standard engine, but using the
ConvDem utility, you can convert them to standard format. Any standard demo can of course be
played back using this engine.

==================================================================================================
TIP

Adding option "-condebug +developer 1" to the engine command line is recommended to see and log to
file extra warning messages from the engine that might indicate problems in the map, e.g. missing
model skins. The log is written to qconsole.log in the game directory and is overwritten each time
the engine is started.

==================================================================================================
CHANGES

The changes are as follows :

Win/GLQuake 1.33 (Aug 7 2007)

1. GL: External bsp textures will now first be searched in subdir "textures/<bspname>", e.g.
   "textures/e1m1" (logic similar to JoeQuake/DarkPlaces). This makes it possible to have
   different textures with the same name in different maps in a mod.
2. GL: Added new cvar gl_exttexworld (default 1) to disable external world textures. Bmodels (e.g.
   ammo boxes), models and sprites are not affected by this.
3. Added support for Quoth add-ons with new option "-quoth", similar to "-hipnotic" and "-rogue".
4. GL: Added option "-freemdl" which enables freeing of mdls at map load time. This is primarily
   intended for testing external skins, but may be used also to reduce memory footprint at the
   expense of much slower map loading times. When using this option, OpenGL memory for sprites
   will also be freed at map load time (otherwise avoided for performance reasons).
5. GL: Fixed bug that caused external textures to be loaded in dedicated mode if gl_exttex > 0.
6. Changed so chasecam view is kept mostly inside map, except when in noclip. Set chase_active 2
   to always maintain chase_back distance.
7. GL: Fixed bug that prevented r_waterwarp from working properly when using "-nomtex" option.
8. Added support for automatic renaming of missing bsp textures if external textures are enabled
   (same as JoeQuake/DarkPlaces). If developer > 2, a warning is printed.
9. Win: Fixed a crash bug on some platforms by reducing MAXALIASVERTS to 3984. Bug was introduced
   in 1.31.
10.Reduced view instability when playing back some demos (sds).
11.Added new cvar v_gunkick (default 1) that controls gun kickback (same as JoeQuake). This can
   also help view stability in some recammed demos (e4m8c226).
12.Extended detection and with lower tolerance of excessive mdl/snd caching.
13.Changed so missing animated texture frames won't cause an engine abort, only a warning.
14.Improved so savegame files with EOF in e.g. player name won't cause load failure.
15.Improved error messages when loading savegame files.
16.GL: Added to look for skyboxes also in env directory after gfx/env.
17.GL: Added workaround to load pcx files with some odd data (transfusion).
18.GL: Fixed bug that caused some textures to generate fuzzy mipmaps when using gl_texquality 2.
19.Improved printout for mcache/soundlist to include sizes with better formats.
20.Improved fix to avoid chasecam view sometimes being straight down (transfusion).
21.Fixed bug in timerefresh command that made it very slow. It still doesn't show proper fps, but
   now it can be compared with older engines. It now also shows the rotation visually.
22.GL: Optimized lightmap handling and reduced its memory usage typically by 75%.
23.Fixed bugs in estimation for packet overflows that especially could cause problems when using
   sv_protocol 15.
24.Added protection against removing client entities or making them static from QC (rumble2).
25.GL: Added possibility to have 0-sized textures, but a developer warning is printed (sds).
26.Fixed bug that could cause edicts to be reused too quickly when using edict_reuse 0. Also
   added warning when excessive reusage (shorter than 0.5s) occurs.
27.Win: Fixed some crash bugs when loading some corrupt mdls (cleanq1).
28.Win: Added a hack to avoid unhandled FPU exceptions on non-NT platforms.
29.Fixed a bug that prevented loading saved games properly when coop/deathmatch/teamplay wasn't 0.
   Now a warning is printed if saved game mode is different. Bug was introduced in 1.24.
30.GL: Fixed a bug that prevented some brush models from being rendered when there were missing
   models.
31.Fixed a crash bug when trying to profile when a demo is running.
22.Fixed a crash bug when loading some corrupt progs.
33.Added printout of resource path when developer > 2.
34.Optimized file searches in pak files, this is most noticeable when using external textures.
35.Minor optimization of pak file loading when using options "-hipnotic" or "-rogue".
36.GL: Fixed a crash bug if gl_max_size was set < 2.
37.Fixed bug that sometimes caused ambient sounds to be played after disconnected (e.g. e2m2).
38.Fixed bug that prevented sound channels from being reset in a joined demo if no disconnect
   appeared inbetween (sm82_omg).
39.Increased speed of some console printouts.
40.Win: Prevented some unwanted console printouts.


Win/GLQuake 1.32 (Jan 12 2007)

1. GL: Added support for external model/sprite textures (tga/pcx). Cvar gl_exttex controls
   handling as before and new cvars gl_exttexdp/gl_exttextq controls how and where the textures
   are loaded from. Set the cvars in autoexec.cfg.
   Default, textures will use JoeQuake style; texture file name translation is e.g. model.mdl ->
   model_0.tga in subdirectory "textures/models" ("textures/sprites" for sprites) or "textures",
   in that order. If gl_exttexdp is enabled, DarkPlaces style is used; translation is e.g.
   model.mdl -> model.mdl_0.tga in same directory. If gl_exttextq is enabled, TomazQuake style is
   used; translation is e.g. model.mdl -> model_0.tga in same directory.
2. GL: Improved rendering of shadows via cvar r_shadows significantly. Shadows are now fully
   interpolated, height blended and many of the earlier strange artifacts are gone. You can now
   also specify shadow darkness with the cvar; 0 = no shadows (default), 1 = 0.5 for compatibility
   (recommended) or any other float value between 0 and 1.
3. GL: Added support for transparent entities (bsp/mdl) (same as NehQuake).
4. Improved server speed in physics intensive maps (with many entities and complex QC).
5. GL: Fixed bug that caused some (almost mono-coloured) skins to become black.
6. GL: Fixed a bug in Nehahra 32-bit sprite loading which prevented subsequent frames to be
   loaded. If the old spr32 look is preferred, you can revert by setting new cvar gl_oldspr32 1.
7. GL: Added a hack to improve rendering of sprites, making them more transparent. If the old
   sprite look is preferred, you can revert by setting new cvar gl_oldspr 1.
8. GL: Added automatic generation of alpha channels in external tga/pcx images for sprites if
   there is no alpha channel already. New cvar gl_alphablend controls behaviour (default 1).
9. GL: Added hack to make Nehahra wraiths interpolated.
10.GL: Fixed bug that sometimes prevented objects from being interpolated, e.g. with
   MOVETYPE_BOUNCE (lunk7).
11.GL: Fixed bug that could cause strange interpolation anomalies due to not handling negative
   time intervals (chapter_kell).
12.Improved Nehahra compatibility by adding MOVETYPE_FOLLOW support and added transparency fields
   in the server so a full Neh client can use them.
13.GL: Added cvar r_skytq that will rotate the skybox to match TomazQuake. If current map is
   Invein from Nehahra, the skybox will automatically be rotated.
14.GL: Added cvar cl_altlerp that can improve model interpolation when playing back demos; 0 =
   disabled (default), 1 = mixed/automatic mode, 2 = fully enabled. This is a hack until a better
   solution is found.
15.Changed so cvar host_sleep 2 will revert temporarily to 1 while handling demos.
16.GL: Fixed a crash bug when loading sky boxes with different dimensions on different images. If
   any image was smaller than the last one (down), the engine would crash.
17.Fixed a rare crash bug when loading sounds with corrupt/specific data and added warning
   (conquest).
18.Fixed model pitch bug in chasecam view when aiming up/down.
19.Fixed bug that in big maps could cause chasecam view to be off (marcher beneath the bell).
20.GL: Added hack to prevent jerky interpolation of chasecam player during demo playback.
21.Added more info to the warning for accessing free edicts in progs. Now the edict number,
   classname, and/or model of the freed edict is also printed along with the time since the edict
   was freed. There's also info where the edict was removed in QC.
22.Added new cvar edict_reuse which controls how edicts are reused. The main purpose is to make 
   the warning for accessing free edicts more efficient if the edicts stay free for a longer
   period before being reused. 1 (default) means classic policy; reuse after 0.5s except during
   the first 2 seconds after map load. 0 means reuse sequentially in a loop, utilizing the entire
   edict range. This will typically delay reusage until absolutely necessary.
23.Added more info to the various edict printouts; now there's also info where the edict was
   spawned in QC.
24.Added detection and warning of excessive mdl caching, which usually results in very choppy
   gameplay.
25.Added more logged QC statements for some Host Errors or when developer > 2.
26.Added validation when loading bsps with corrupt vis data.
27.Added protection against modifying or removing the world entity from QC (target).
28.Added more info to the abort error when discovering a NULL think/touch/etc QC function.
29.Added more info to the QC warnings for bad client or write destinations.
30.GL: Fixed a rare memory trashing bug when loading wad pics with sizes < 20 (dbq).
31.GL: Changed so having an odd sized texture won't cause an engine abort, only a warning.
32.GL: Changed so loading a pcx without proper palette id won't cause an engine abort, only a
   warning (tribal).
33.Changed some of the QC functions (e.g. stuffcmd) so they won't cause an engine abort if the
   client destination is unavailable, only print a warning.
34.Fixed a bug that prevented stuffcmd called from PutClientInServer in QC from working.
35.Changed unknown temp entity abort to a warning and added silent parsing of it. This may work in
   some cases.
36.Increased MAX_LBM_HEIGHT (max skin height) from 480 to 1024 and added warning.
37.Added detection of missing disconnects when playing back demos (swatteam).
38.Disabled the disk icon when playing back demos.
39.GL: Fixed a bug that left the conback image on the hunk unnecessarily.
40.Added more info to NaN velocity/origin warnings.
41.Changed some "NULL touch function" QC aborts into warnings and added more info to edict debug
   printouts.
42.Added more info to some hull validation errors.
43.Added coordinates to the "backup past 0" warning and moved it to developer > 2.
44.Minor optimization of pak file loading when using option "-game nehahra".
45.Improved printout while profiling QC.
46.Fixed a potential bug when approaching the 64k clipnode limit.
47.Fixed a potential bug when approaching the 8k max edict limit in the protocol.
48.Fixed a potential bug in console logging when calling va() repeatedly.
49.Fixed a memory trashing bug in COM_FileBase function.
50.Strengthened pak file validation.
51.Minor improvement of host_speeds printout.


Win/GLQuake 1.31 (May 25 2006)

1. GL: Added more texture quality options with new cvar gl_texquality; 0 = GLQuake compatibility,
   1 = default, better resampling and reduced blurring of console graphics, 2 = same as 1, but
   reduced blurring of all textures. Highest level requires much more memory and some slowdown
   when loading maps. Set the cvar in autoexec.cfg.
2. GL: Improved readability of console text font by smoothing it. New command gl_smoothfont
   (default 1) controls behaviour. This helps especially when using odd combinations of screen and
   console width. Also increased brightness of text slightly and removed distortion in-between
   lines.
3. Fixed bug in Nehahra mode that caused problems when reloading saved games. Note: cvar nospr32
   must not be changed between saving and loading a game. This can happen e.g. when saving in
   Neh/GLQuake (with nospr32 default disabled) and then loading in WinQuake (with nospr32 default
   enabled) or vice versa.
4. Increased MAX_SFX from 2048 to 2560 to handle the entire Nehahra movie in one session.
5. Added possibility to run in a window that exactly matches the desktop resolution without any
   title or borders, effectively offering fullscreen operation. This may help some graphic cards
   that have problems switching to real fullscreen mode. It also offers the possibility to have
   other desktop apps on top of the game window, e.g. reminders.
6. Added fuzzy detection of solid entities without models, e.g. a func_door without a brush. This
   might otherwise cause e.g. engine abort "SOLID_BSP with a missing model".
7. Increased MAX_SCOREBOARD (max clients/bots) from 16 to 64 and adjusted the ranking list.
8. GL: Fixed HOM when crossing a liquid surface.
9. GL: Fixed particles z-buffer bug, especially noticeable when having gl_clear 1.
10.GL: Fixed bug that prevented external liquid textures from loading.
11.GL: Fixed bug that prevented textures with identical names but different contents to coexist in
   a bsp. As a result, removed the "cache mismatch" warning.
12.Fixed bug in detection of invalid models when loading saved games. Now the player model won't
   be checked as it may change validly.
13.GL: Fixed bug that prevented missing textures to be displayed properly under water.
14.GL: Fixed several bugs that caused bad results when using gl_picmip 1 or higher.
15.GL: Added possibility to select gl_texturemode numerically (1-6) and all modes are listed when
   specifying an invalid mode.
16.GL: Fixed player stuck bug in GoldCup (same fix as for QRally). Fix will now work regardless of
   mod directory name.
17.Added new command sv_protocol that sets server protocol (default 10002). Currently possible
   values are 15 (std Q1) and 10000-10002. This can be useful to increase compatibility with some
   mods or networked clients. When using protocol 15, server packet sizes will be limited to 1024
   (the old limit).
18.Fixed another crash bug when loading sounds with corrupt data and added more info.
19.Fixed a crash bug in status bar paint when doing a timedemo, using viewsize 100 and e.g. having
   host_framerate 1.
20.Win: Fixed a crash bug that could happen when drawing sprites (e.g. timedemo bigass1 in
   fullscreen 1280x1024). Also added more protection and warnings.
21.GL: Fixed a crash bug when loading a model with more than 2048 triangles. Also increased
   capacity to 4096 and added more protection/warnings.
22.GL: Fixed a crash bug when loading a model that required more than 8192 commands while meshing.
   Also increased capacity to 16384 and added more protection/warnings.
23.Fixed crash bugs when centerprinting a long multi-line string at low screen resolution.
24.Fixed a rare memory trashing bug in model meshing and added warnings (q1a).
25.Fixed a rare bug that would throw the player out of the game when changing/restarting map. It
   seems to be a design flaw in the reconnect logic when playing a local game. The same issue
   occurs when entering reconnect in the console while playing; the console goes to fullscreen and
   the player can't interact with the game anymore (which continues) (q1a: aerowalk).
26.Added hack to load stereo sound samples.
27.Added more info when exceeding command buffer size (cmd_text).
28.Added protection against a rare engine freeze in SV_ClipToLinks (b1rocks).
29.Improved info for missing frame/skin warnings.
30.Improved info for missing precached sounds and added a QC stacktrace if developer is set to 2.
31.Added QC stack trace when exceeding max edicts.
32.Added a warning for excessive QC stack size requirements. If this happens, a normal engine will
   abort.
33.Fixed minor issues when demo playback terminates.
34.Changed so warning for exceeding 32k globals in progs only occurs once.
35.Fixed a minor memory trashing bug in hunk allocation routines.
36.Fixed a potential bug when approaching the 64k max message limit.
37.Increased usable range for cvar host_maxfps to 1-1000.
38.Added new mode 2 for cvar host_sleep which reduces CPU load even more at some performance cost.
   Useful e.g. when having CPU cooling problems or saving batteries.
39.Removed option "-freechk"; the printout is now enabled by setting developer to 2 instead.
40.GL: Increased MAXALIASVERTS from 2000 to 4096 and moved warning for exceeding old limit to
   developer 3.
41.Win: Increased MAXALIASVERTS from 2000 to 4016 and added warning (same as GLQuake).
42.GL: Removed warning for "Invalid player skin ..." as it doesn't seem relevant.
43.Win: Disabled warning for model skin width not being a multiple of 4 as it doesn't seem
   relevant.
44.Added one more player in the mini deathmatch scoreboard to the right in the status bar.
45.Increased default zone size from 256k to 320k.
46.Added some ProQuake network fixes, that e.g. can reduce connect time in some cases.


Win/GLQuake 1.30 (Jan 21 2006)

1. GL: Added support for external bsp textures (tga/pcx) in subdirectory "textures" with the same
   name as the texture (similar to FitzQuake). New cvar gl_exttex controls handling; 0 = disabled
   (default for performance reasons), 1 = enabled, 2 = show external texes in white to ease
   identification.
2. GL: Added smooth model interpolation (default enabled, same as NehQuake). New persistent cvars
   r_interpolate_model_animation/r_interpolate_model_transform control behaviour. It is
   recommended to keep both cvars synchronized for best results and using the single menu option
   "Interpolation" will toggle both values. There is also another new persistent cvar
   r_interpolate_model_weapon that only affects weapon interpolation (default enabled).
3. GL: Improved lighting of models in bright light. Cvar gl_autobright controls behaviour;
   0 = GLQuake compatibility, 1-2 = standard brightening, 3 = high intensity.
4. Win: Fixed bug that prevented fullscreen operation. Bug was introduced in 1.26.
5. Speed optimized build which makes it faster in maps with many monsters (physics intensive).
6. Added rudimentary Nehahra support. To play standard Nehahra, just add the "-game nehahra" and
   "-nehahra" options. To play another Nehahra mod, add "-game mod" and "-nehahra".
7. Fixed bug which caused sky textures with non-standard size (should be 256x128) to be improperly
   displayed and added a developer warning.
8. Added alias command completion.
9. Increased MAX_SOUNDS from 256 to 1k and added warning when exceeding normal limit. This breaks
   protocol/demo compatibility, new server protocol number is 10002. Client can still connect to
   or playback std protocol 15 or previous protocols 10000-.
10.Win: Fixed repaint of skins when r_fullbright is toggled.
11.GL: Fixed several serious bugs in pcx loading code.
12.GL: Fixed bug which caused RLE-compressed tga skyboxes to be improperly displayed.
13.Added total # known sounds to the soundlist command. Note that this is not the same as the
   total # sounds in the current map; it's only a summary of the sound list.
14.Added workaround to handle huge maps with >64k clipnodes. All entities will be stuck.
15.Added support for services for svc_skybox and svc_fog. WinQuake will just silently parse these
   services.
16.Fixed bug and increased tolerance in progs strings validation.
17.Added a large amount of validations and info to QC builtin functions and progs loading.
18.Added more protection against string overwrites.
19.Added cvar host_maxfps (default 72, usable range 10-1000), same as FitzQuake.
20.Win: Added cvar gl_polyblend which enables palette shift (default 1, same as in GLQuake).
21.Added cvar value host_speeds 2 which enables a slower averaging display.
22.Improved precision in ftos QC function which e.g. enables better fog control.
23.GL: Fixed player stuck bug in QRally. Make sure mod is installed in directory "rally".
24.Changed so invalid QC sound parameters only result in a warning.
25.Changed so killed monsters > total monsters warning is suppressed when playing a demo and
   developer cvar is 0.
26.Fixed a crash bug when loading sounds with corrupt data.
27.Changed so a break statement in QC doesn't result in an engine crash anymore.
28.Added support for 64k globals in progs.
29.Added developer printout of # statements/globals in progs. Normal globals limit is 32k and
   there's a warning when it's exceeded.
30.Added option "-freechk" which enables warnings for accessing already free edicts in progs.
31.Added option "-nocrash" which enables some extra performance sapping progs validations.
32.GL: Added option "-nofreetex" which disables freeing of bsp textures at map load time. This is
   primarily intended for 3dfx miniGL users, in which case it can significantly reduce memory
   footprint. Using standard OpenGL, this option will speed up repeated map loading at the expense
   of higher memory requirements. Increased MAX_GLTEXTURES from 1k to 2k again as a result.
33.GL: Minor improvement of skybox display (reduction of bilerp seam).
34.Fixed a bug which caused MAX_MOD_KNOWN limit to be exceeded when many files couldn't be found.
35.Increased # video modes from 128 to 600.
36.Fixed rare abort bug when loading savegames (atfe1m1).
37.Added more info to some parsing errors in client.
38.Added more info to some memory allocation errors.
39.Reduced heapsize requirements for maps with big light/visdata lumps.
40.Changed Sys_Error into a Host_Error when encountering a too large demo message or trying to
   load a non-existing model.
41.Fixed several invalid direct manipulations of cvar values in the engine.
42.Fixed minor fullscreen menu cursor issue.
43.Win: Reduced heapsize requirements when using large screen resolutions.
44.Win: Fixed a crash bug when specifying a screen height larger than 1024 (max allowed).
45.Minor speedup when r_fullbright is enabled.


Win/GLQuake 1.29 (Sep 7 2005)

1. GL: Added cvar "gl_autobright" that affects light levels for some models. 0 is for GLQuake
   compatibility, 1 (default) means automatic brightening of some models (mainly flames, torches,
   keys etc), 2 adds more brightness to some models (typically bolts) and 3 increases brightness
   even more.
2. Added command "viewpos" which just prints current position and mangle for the player (same as
   FitzQuake). Useful e.g. when finding intermission spots.
3. GL: Fixed a crash bug when loading textures with invalid dimensions.
4. GL: Removed logic for cached model meshes and printouts.
5. Added more validations and info when loading textures with invalid dimensions.
6. Added many more validations and info when loading paks/progs/bsps/models/sprites with corrupt
   data.
7. Added warning when killed monsters > total monsters.
8. Improved memory allocation for temporary files to use memory outside the hunk if necessary.
9. Added warnings when exceeding some texture buffers.
10.Added more info to missing frame/skin warnings.
11.Added hack to avoid synchronized flame animations.
12.GL: Increased MAXALIASVERTS from 1024 to 2000, same as WinQuake.
13.Improved sound when having many particles and added check for excessive particles.
14.Disabled sound when displaying abort message box.
15.Reduced runaway loop from 10000000 to 5000000, added progress info and disabled sound while
   looping.
16.Increased MAX_SFX from 512 to 1024.
17.GL: Fixed a potential crash bug in R_TranslatePlayerSkin.


Win/GLQuake 1.28 (Jun 6 2005)

1. Improved performance for dynamic lighting.
2. Improved sound when having many entities.
3. GL: Fixed a crash bug when loading a map with some models missing.
4. Increased tolerance when parsing entity keys to avoid some Host_Errors.
5. Fixed intermission camera when playing back demo.
6. Modified intermission display to handle 4-digit monster counts.
7. Win: Increased MAX_BMODEL_VERTS from 500 to 1000 and MAX_BMODEL_EDGES from 1000 to 3000.
8. Increased default zone size from 48k to 256k.
9. Strengthened client parsing and added more info to error messages.
10.Changed so pressing a key during demo playback doesn't bring up the menu anymore.
11.Improved error handling when reading/writing demofile.
12.GL: Fixed bug that enabled fog from worldspawn even if density was set to zero.


Win/GLQuake 1.27 (Apr 9 2005)

1. Improved console key handling similar to FitzQuake; added console freeze while not at end of
   buffer, Ctrl-Home/End for begin/end of buffer, Ctrl-PgUp/PgDn for page up/down (same as
   Home/End). Also improved handling at low resolutions and bound the CapsLock key.
2. Fixed a lock-up bug regarding triggered entities (reproducible with Reaper bots on dm3) and 
   rewritten handling to avoid similar problems.
3. Fixed rare crash bug in beam handling when having many shamblers attacking.
4. Added cvar scr_showedicts which displays current active and max edicts in the lower right
   corner of the screen (default 0).
5. GL: Added command "lightmaps" which just prints # lightmaps for current map.
6. Added command "staticents" which just prints # static entities for current map.
7. Added cvar con_logtime which sets # seconds between time stamps in log file (default
   0 = disabled).
8. Reduced CPU load in low-stress situations. To disable this, set new cvar host_sleep to 0.
9. Added more edict info (classname etc) when finding invalid fields and fixed a bug when finding
   e.g. "light " or "angle " keys.
10.Fixed a bug in the signon buffer size warning.
11.Increased MAX_MSGLEN and MAX_DATAGRAM from 32k to 64k and made server signon_buf size dependant
   on MAX_MSGLEN.
12.Fixed a bug that caused stack corruption when finding invalid ev_vector values (requires three
   separated float values, e.g. "mangle" "1 2 3").
13.Added more protection when parsing entity keys.
14.Added more info to some error messages when exceeding limits.
15.GL: Expanded video mode menu list.
16.GL: Changed default value for cvar gl_subdivide_size from 128 to 512 and set a lower limit of
   32.
17.Changed default value for cvar scr_conspeed from 300 to 5000.
18.Added total # known models to the mcache command. Note that this is not the same as the total
   # models in the current map; it's only a summary of the mcache list.
19.Increased static client message size from 1k to 8k.
20.Increased capacity and added protection for some cmd buffer related operations.
21.Increased runaway loop again from 300000 to 10000000 to avoid some rare Host_Errors.
22.Added option "-nomsgbox" which just disables the abort message box.
23.Increased MAX_TEMP_ENTITIES again from 256 to 512 and MAX_BEAMS from 24 to 256.
24.Disabled beams when game is paused.
25.Win: Removed some hopefully unnecessary stack checks and dead code.
26.Fixed a potential bug in SZ_Print.


Win/GLQuake 1.26 (Feb 18 2005)

1. GL: Added skybox support (tga/pcx) from console or worldspawn via command/key "sky" (like
   FitzQuake). New cvar r_oldsky toggles between skybox and standard animated sky.
2. GL: Added fog support via new cvars gl_fogenable, gl_fogdensity, gl_fogred, gl_foggreen and
   gl_fogblue. Use cvars directly or command/key "fog" (similar to FitzQuake).
3. GL: Added cvar gl_skyclip (default 4608) to control far clip for sky in fog.
4. GL: Improved texture usage to reduce memory footprint. As a result, MAX_GLTEXTURES has been
   restored to 1k.
5. GL: Fixed bug that could cause memory corruption or crash if e.g. console background was too
   big. Also made memory allocation for texture scaling more flexible.
6. GL: Reduced virtual memory usage by typically 30MB by making the lightmaps array dynamic. As a
   result, up to 1k lightmaps can now be handled.
7. GL: Fixed bug that caused HOMs when using non-default fov (field of view, e.g. 110) values in
   some resolutions.
8. Improved sound handling when framerates are low due to big map with many entities.
9. GL: Added hack for more fullbright flame/candle/lantern models.
10.Win: Fixed several bugs regarding weapon display and chase camera.
11.Fixed annoying waterjump when in noclip mode.
12.Fixed bug that caused the signon buffer size warning to appear too often.
13.GL: Changed default value for cvar gl_keeptjunctions to 1.
14.GL: Removed support for 8-bit shared texture palette as it caused problems on some systems.
   This means that the engine behaves like the "-no8bit" option always is enabled.
15.Increased buffer size (cmd_text) for commands and scripts from 8k to 64k.
16.Fixed rare crash bug when loading leafs lump with invalid data.
17.Fixed rare crash bug when loading clipnodes with invalid data.
18.Fixed rare crash bug when loading edges or vertexes with invalid data.
19.Fixed rare bug that allowed deletion of worldspawn via spawnflags.
20.Improved handling when correcting missing NUL in entity lump.
21.Fixed bug that prevented some strings from being logged to file.
22.Fixed bug that prevented some startup developer messages from being printed or logged.
23.Optimized console log file handling.
24.Fixed bugs that prevented saved games from loading if '}' or EOF (0x1A) existed in an entity
   string.
25.Added warnings for missing/invalid models when loading saved games.
26.Fixed bug when saving games with newlines/EOF in map title.
27.Fixed status bar updating when using "give" command.
28.Fixed bugs and added more info in progs.dat stacktrace handling.
29.Added more info to some parse related messages.
30.Increased # video modes from 30 to 128.
31.GL: Removed printout of OpenGL extensions.
32.Added more info to the "SZ_GetSpace: ..." overflow errors.


Win/GLQuake 1.25 (Nov 21 2004)

1. Increased clipnode capacity from 32k to almost 64k.
2. Added warning for excessive server signon buffer size. If it appears, the map might have
   problems loading in a normal engine.
3. GL: Fixed slowdown when having r_fullbright enabled while restarting map.
4. Fixed long titles covering secrets info in status bar.
5. GL: Fixed large models (shamblers, shub) disappearing near edge of screen.
6. Fixed a crash bug in multiplay when map was missing on client.
7. Slowed down printout for "SV_StartSound: ... not precached" warning and added more info.
8. GL: Increased MAX_GLTEXTURES from 1k to 2k.
9. Added autorepeat for cursor up/down.


Win/GLQuake 1.24 (Oct 13 2004)

1. Increased MAX_MODELS from 256 to 1k and added warning when exceeding normal limit. This breaks
   protocol/demo compatibility, new server protocol number is 10000. Client can still connect to
   or playback std protocol 15.
2. Changed warning for excessive # faces from 64k to 32k when loading map. If it appears, the map
   might have problems loading in a normal engine.
3. Fixed loading of saved games with newlines in the map title.
4. Fixed annoying screen stutter while moving vertically when lightning events occurred.
5. Added cvar con_logcenterprint which enables logging of centerprint messages to console
   (default 1). If 2, logging will also occur in DM (same logic as FitzQuake).
6. Strengthened check for excessive edicts, now printed also while playing or loading saved games.
7. Added command "mapname" which displays the filename of current map (same as FitzQuake).
8. Fixed some crash bugs in multiplay client and dedicated modes.
9. Fixed a bug when loading saved games after switching singleplay/deathmatch/coop mode.
10.Added more information when loading invalid saved games.
11.Increased # lines to print from console from 4 to 5.
12.Slowed down printout for "Unstuck" warning.


Win/GLQuake 1.23 (Sep 13 2004)

1. GL: Added hardware gamma handling and enabled modification via cvar gamma (similar to
   FitzQuake). If option "-gamma #" is used, hardware gamma is disabled and the old behaviour is
   restored.
2. Added several warnings for excessive # objects when loading map. If they appear, the map might
   have problems loading in a normal engine.
3. GL: Worked around a problem when having excessive # vertexes might cause the engine to abort
   with "AllocBlock: full".
4. Changed the "... too many nodes ..." error into a warning and attempted to load as much of the
   crippled bsp tree as possible. The map will most likely look incomplete in-game.
5. GL: Changed the "cache mismatch" error into a warning and added texture name.
6. GL: Reduced loading time for bsps with many lightmaps.
7. GL: Fixed missing texture (checkerboard pattern) bug if all textures were missing.
8. Increased MAX_CHANNELS from 128 to 516 and MAX_DYNAMIC_CHANNELS from 8 to 128. This seems to
   cure most disappearing sound issues in big maps.
9. Added cvar r_particles which enables particles (default 1).
10.Fixed a bug that could cause an abort with error message "SOLID_BSP with a non bsp model". The
   abort can also occur when there are entities with missing bmodels in the map (e.g. a
   func_button without a brush). All related error messages have now additional information.
11.Fixed a bug that could cause an abort with error message "Trigger in clipping list" and added
   more information to the message. A warning will still be printed in some cases.
12.Increased MAX_EFRAGS from 640 to 2048 and added extra info when exceeding the limit.
13.Added more information to the "... unexpected unlink of trigger ..." (e2m2 easy skill) warning.
14.Increased MAX_STACK_DEPTH from 32 to 256 and runaway loop from 100000 to 300000 to avoid some
   rare Host_Errors.


Win/GLQuake 1.22 (Aug 18 2004)

1. Increased MAX_MSGLEN from 16000 to 32k, MAX_DATAGRAM from 1k to 32k and NET_MAXMESSAGE from 16k
   to 64k. This seems to cure most "packet overflow" issues in big maps.
2. Increased MAX_VISEDICTS from 256 to 4k and MAX_TEMP_ENTITIES from 64 to 256. This seems to
   prevent entities from disappearing in big maps. Also added warning when the limits are
   exceeded.
3. Increased MAX_EDICTS from 2k to 4k.
4. Fixed several bugs in console background handling. Now the engine version text is printed at
   the bottom right of the console.
5. Added more info to and slowed down some more missing frame/skin/sprite warnings.
6. GL: Fixed repaint of skins when r_fullbright is toggled.
7. GL: Added support for GL_ARB multitexture (some newer cards/drivers require this). GL_SGIS is
   used if no GL_ARB extensions can be found or option "-nomtexarb" is enabled.
8. Changed so setting cvar r_novis to 2 will completely disregard vis information in bsp. This
   means that all entities will also come into view which can have a large impact on r_speeds.
9. Win: Added cvar r_novis with same functionality as in GLQuake.
10.GL: Added cvar r_flatlightstyles which disables animated (styled) lights (e.g. torches). This
   can significantly improve r_speeds in big unvised maps with many torches.
11.GL: Added cvar r_waterwarp which enables underwater warping (default 1, same as WinQuake).
12.GL: Added cvar r_clearcolor to control void colour (default 251 = bright red).
13.Added cvar sv_altnoclip which enables Q2 style noclip (default 0).
14.Win: Fixed a bug that could mask the original error.
15.Win: Restored the max surface extents warning to 256. It can still be exceeded but will
   probably generate another error later.
16.Changed so abort error message will also be written to console log if enabled.
17.Slowed down printout for "backup past 0" warning.
18.Win: Tried to improve palette change behaviour.


Win/GLQuake 1.21 (Jul 22 2004)

1. Win: Same enhancements as for GLQuake 1.20 (where applicable).
2. GL: Fixed a memory leak bug in OpenGL texture loading and added check for excessive amounts.
3. Win: Replaced the windowed 800x600 vid_mode 2 with 1024x768 and changed the default screen
   stretching for this and the 640x480 mode. You must probably also edit the config.cfg
   (vid_config_x 1024, vid_config_y 768 and vid_stretch_by_2 0) to access the 1024x768 mode.
4. Win: Increased default values for r_maxsurfs and r_maxedges to 100000.
5. GL: Added warning and replacement for missing skins.
6. Win: Slowed down printout for "R_AliasSetupSkin: no such skin ..." warning.
7. Win: Worked around a bug that could cause strange palette changes in other applications when
   exiting.
8. Fixed a bug that could cause unpredictable behaviour when a script file was missing a final
   newline ("\n") character.
9. Corrected error message "MOVETYPE_PUSH with a non bsp model".
10.Fixed (changed to a controlled abort) a rare crash bug regarding efrags.


GLQuake 1.20 (Jul 1 2004)

1. Fixed a bug that could prevent map loading if sky texture names in bsp were uppercase
   (e.g. "SKY4").
2. Advanced version number to avoid mixup with existing engines (specifically GLQuake 1.13).


GLQuake 1.11 (Jun 7 2004)

1. Fixed a crash bug that could occur if there were missing sky/liquid textures in bsp.
2. Fixed a rare crash bug regarding triggered entities (e2m2 easy skill crash).
3. Added check for too many models (256) in bsp.
4. Increased speed of console printout when there are many items.
5. Slowed down printout for "too many efrags!" and "total channels == max_channels" warnings.


GLQuake 1.10 (May 5 2004)

1. Increased MAX_LIGHTMAPS from 64 to 512. This hopefully fixes the "AllocBlock: full" error.
2. Increased MAX_MAP_LEAFS from 8k to 32k, a major engine abort cause.
3. Added several warnings for invalid or excessive # objects when loading map. If they appear, the
   map might have problems loading in a normal engine.
4. Added printout of # missing textures when loading map.
5. Changed the "Bad surface extents" error into a warning with more info.
6. Fixed bug that prevented maps with > 32767 marksurfaces to load and function properly.
7. Increased MAX_STATIC_ENTITIES from 128 to 256.
8. Increased NET_MAXMESSAGE from 8k to 16k, MAX_MSGLEN from 8000 to 16000 and server signon_buf
   size from 8k to 16k, common causes to the "SZ_GetSpace: ..." overflow errors.
9. Increased MAX_EDICTS from 600 to 2k.
10.Fixed bug that prevented maps with dashes '-' in their name (e.g. outpost-alpha) from loading
   from command line.
11.Increased far clipping distance from 4096 to 16384.
12.Fixed missing texture (checkerboard pattern) bug.
13.Fixed repaint of status bar when gl_clear is enabled.
14.Fixed repaint of screen when r_fullbright is toggled.
15.Increased console buffer from 16k to 256k.
16.Increased speed of console printout when there are many items, typically when the wrong
   progs.dat is used.
17.Fixed several bugs in console printout handling.
18.Improved console key handling; added autorepeat and Home/End keys for page up/down.
19.Slowed down printout for "packet overflow" and "player stuck" warnings.
20.Fixed some player stuck situations.
21.Disabled engine abort for some errors, e.g. touching a teleporter that has no destination.
22.Increased default amount of hunk memory (heapsize) allocated from 16MB to 32MB.
23.Increased MAX_HANDLES from 10 to 100.

==================================================================================================
NEW OR CHANGED COMMAND LINE OPTIONS

-freemdl        Enable freeing of mdls between maps (GL only). Useful when testing external skins
                or reducing memory footprint at the expense of much slower map loading times. When
                using this option, OpenGL memory for sprites will also be freed at map load time
                (otherwise avoided for performance reasons).

-gamma x        Set gamma to x and disable in-game hardware gamma (GL only). Use only if hardware
                gamma is not present or undesired.

-nehahra        Enable Nehahra support. To play standard Nehahra, just add the "-game nehahra" and
                "-nehahra" options. To play another Nehahra mod, add "-game mod" and "-nehahra".

-no8bit         Removed, the engine behaves like this option is always enabled (GL only).

-nocrash        Enable extra QC validations to avoid crashes, may slow down operation. Normally
                not needed.

-nofreetex      Disable freeing of OpenGL textures between maps (GL only). Useful to improve
                performance at the expense of higher memory consumption or to work around
                limitations in 3dfx's miniGL (can't free textures at all).

-nomsgbox       Disable message box when aborting with a system error, useful for automation.
                Error will still be written to log file.

-nomtexarb      Disable OpenGL ARB multitexture (if present, SGIS will be used instead, GL only).

-quoth          Enable Quoth support. To play standard Quoth, just add the "-game quoth" and
                "-quoth" options. To play another Quoth mod, add "-game mod" and "-quoth".

-startwindowed  Run game in a window (WinQ only). If window size (-width/-height) is same as the
                desktop resolution, title bar and borders are automatically removed, effectively
                offering fullscreen operation. This may help some graphic cards that have problems
                switching to real fullscreen mode. It also offers the possibility to have other
                desktop apps on top of the game window, e.g. reminders.

-window         Run game in a window (GL only). Same functionality as above.

==================================================================================================
NEW OR CHANGED CVARS AND COMMANDS

Graphics, textures
------------------

  gl_alphablend 0/1     Enable automatic generation of alpha channels in external tga/pcx images
                        for sprites if there is no alpha channel already (default 1).

  gl_autobright 0-3     Set automatic brightness handling for some models. 0 = disabled (GLQuake
                        compatibility), 1 (default) = brightening of some models (mainly flames,
                        torches, keys etc), 2 = more brightness to some models (typically bolts)
                        and 3 = increase brightness even more overall.
  
  gl_exttex 0-2         Enable external textures (tga/pcx). 0 = disabled (default for performance
                        reasons), 1 = enabled, 2 = show external texes in white to ease
                        identification. Set the cvar in autoexec.cfg.

                        Bsp textures must be put in subdirectory "textures/<bspname>" or
                        "textures", in that order and with the same name as the texture. Mdl/spr
                        textures will default use JoeQuake style; texture file name translation is
                        e.g. model.mdl -> model_0.tga in subdirectory "textures/models"
                        ("textures/sprites" for sprites) or "textures", in that order.

  gl_exttexdp 0/1       Enable DarkPlaces style for mdl/spr textures; translation is e.g.
                        model.mdl -> model.mdl_0.tga in same directory. Set the cvar in
                        autoexec.cfg.
  
  gl_exttextq 0/1       Enable TomazQuake style for mdl/spr textures; translation is e.g.
                        model.mdl -> model_0.tga in same directory. Set the cvar in autoexec.cfg.
  
  gl_exttexworld 0/1    Enable external world textures (default 1). If set to 0, world textures
                        will always be loaded from bsp even if gl_exttex > 0.
  
  gl_oldspr 0/1         Enable old sprite handling (not recommended).
  
  gl_smoothfont 0/1     Enable improved readability of console text font by smoothing it (default
                        1). This helps especially when using odd combinations of screen and
                        console width.

  gl_texquality 0-2     Set texture quality; 0 = GLQuake compatibility, 1 = better resampling and
                        reduced blurring of console graphics (default), 2 = same as 1, but reduced
                        blurring of all textures. Highest level requires much more memory and some
                        slowdown when loading maps. Set the cvar in autoexec.cfg.
  
  gl_texturemode x      Set new texture mode. Use one of the six identifiers or numerically 1-6.
                        All modes are listed when specifying an invalid mode.
  

Graphics, skybox/fog
--------------------

  fog d r g b           Enable/disable/modify/show fog parameters density/red/green/blue, all
                        values are floats, 0-1 (GL only). The command has several modes. Without
                        parameters, it just shows current values. Specifying just density (one
                        parameter), you can disable (set 0) or enable/modify density without
                        affecting other values.
                        
                        By specifying density and common colour (two parameters) for all rgb
                        channels, you can quickly tune main fog characteristics. Finally by using
                        all four parameters, you control all values.
  
  gl_fogblue 0-1        Set blue component of fog.
  
  gl_fogdensity 0-1     Set density of fog.
  
  gl_fogdisable 0/1     Globally disable fog. This overrides gl_fogenable and can be used e.g. in
                        Nehahra to disable fog independently of QC setting.
  
  gl_fogenable 0/1      Enable fog. This can be overridden with gl_fogdisable.
  
  gl_foggreen 0-1       Set green component of fog.
  
  gl_fogred 0-1         Set red component of fog.
  
  gl_skyclip x          Set far clip distance for sky in fog (default 4608). This is a tradeoff
                        between fog density and the ability to handle skyboxes in big maps.
                        
  r_oldsky 0/1          Disable current skybox and use standard Q1 animated sky (GL only).

  r_skytq 0/1           Enable compatibility for maps with skyboxes in TomazQuake style (i.e.
                        invalidly rotated 90 degrees to the left) (GL only).

  sky x                 Enable/set current skybox to x (GL only). The six skybox images (tga/pcx)
                        must be in subdirectory gfx/env or env and have names like x_bk, x_dn,
                        x_ft, x_lf, x_rt and x_up (for back/down/front/left/right/up), standard
                        VRML style.
  

Graphics, interpolation
-----------------------

  cl_altlerp 0-2                        Enable improved model interpolation when playing back
                                        demos (GL only); 0 = disabled (default), 1 = mixed,
                                        automatic mode, 2 = fully enabled (recommended).

  r_interpolate_model_animation 0/1     Enable model animation (frame) interpolation (default 1,
                                        GL only).

  r_interpolate_model_transform 0/1     Enable model transformation (movement) interpolation
                                        (default 1, GL only).

  r_interpolate_model_weapon 0/1        Enable model animation (frame) interpolation for the
                                        weapon (GL only). This is default the same as
                                        r_interpolate_model_animation, but can be separately
                                        disabled for better weapon animation (recommended).
    

Graphics, Nehahra
-----------------

  gl_oldspr32 0/1       Enable old and buggy Nehahra spr32 handling (not recommended).
  
  nospr32 0/1           Disable Nehahra spr32 handling (not recommended).


Graphics, misc
--------------

  chase_active 0-2      Control chasecam view, 0 = disabled (default), 1 = enabled with view
                        mostly kept inside map, 2 = enabled with fixed view distance controlled by
                        std chase_back cvar.

  gl_polyblend 0/1      Enable palette shift (default 1, same in Win/GLQuake).

  r_clearcolor 0-255    Set void colour (default 251 = bright red).

  r_flatlightstyles 0/1 Disable animated (styled) lights (e.g. torches). This can significantly
                        improve r_speeds in big unvised maps with many torches.
  
  r_novis 0-2           Disable use of world vis information in bsp. Setting it to 2 will disable
                        all vis information in bsp and this means that all entities will also come
                        into view, which can have a large impact on r_speeds.

  r_particles 0/1       Enable particles (default 1).

  r_shadows 0-1         Enable projected entity shadows (GL only). Shadows are fully interpolated,
                        height blended and many of the earlier strange artifacts are gone. You can
                        also specify shadow darkness; 0 = no shadows (default), 1 = 0.5 for
                        compatibility (recommended) or any other float value 0-1.
  
  r_waterwarp 0/1       Enable underwater warping (default 1).

  v_gunkick 0/1         Enable gun kickback (default 1).


Client/server, troubleshooting
------------------------------

  developer 0-3         Enable more or more detailed warning/error messages. This is highly
                        recommended and should be used with command line option "-condebug", which
                        enables logging to file. 0 = disabled (default, not recommended), 1 =
                        normal (recommended for players), 2 = high (recommended for mappers or
                        modders), 3 = highest (only for specific troubleshooting). Set the cvar in
                        autoexec.cfg.

  edict_reuse 0/1       Control edict reuse policy. The main purpose is to make the warning for
                        accessing free edicts more efficient if the edicts stay free for a
                        longer period before being reused. 1 = classic policy (default); reuse
                        after 0.5s except during the first 2 seconds after map load. 0 = reuse
                        sequentially in a loop, utilizing the entire edict range. This will
                        typically delay reusage until absolutely necessary.

  host_speeds 0-2       Enable display of server/renderer speeds. 0 = disabled (default), 1 =
                        enabled, 2 = enabled with slower, averaging display.

  lightmaps             Show lightmaps requirement for the current map (GL only).

  mcache                Show list of currently loaded models. Note that this is not the same as
                        the total # models in the current map; it's only an accumulative snapshot.

  scr_showedicts 0/1    Enable continuous display of current active/peak edicts.

  soundlist             Show list of currently loaded sounds. Note that this is not the same as
                        the total # sounds in the current map; it's only an accumulative snapshot.

  staticents            Show # static entities for the current map.

  sv_protocol x         Set server protocol (default 10002). Currently possible values are 15 (std
                        Q1) and 10000-10002. This can be useful to increase compatibility with
                        some mods, networked clients or for recording std demos. When using
                        protocol 15, server packet sizes will be limited to 1024 (the old limit).
                        
                        Also note that using protocol 15 only ensures structural protocol
                        compatibility; the server is still using high limits internally, so its
                        behaviour will still be different from limited engines. Limited clients
                        can still abort due to e.g. edict overflow or other contents problems.


Client/server, misc
-------------------

  host_maxfps 1-1000    Set max framerate (default 72).

  host_sleep 0-2        Enable brief sleeping for significantly lower CPU load. 0 = disabled, 1 =
                        sleep when framerate is higher than host_maxfps (default), 2 = sleep more
                        often with minor performance loss, useful e.g. when having CPU cooling
                        problems or saving batteries.
                        
                        When recording/playing back demos, host_sleep will automatically be
                        lowered to max 1 for smooth operation.

  mapname               Show current name of bsp.

  sv_altnoclip 0/1      Enable alternative Q2-like noclip movement.

  viewpos               Show current player position and mangle. Useful e.g. when finding
                        intermission spots.


Console
-------
  
  con_logcenterprint 0-2        Enable console logging of centerprint messages. 0 = disabled, 1 =
                                enabled (default), 2 = logging will also occur in DM.

  con_logtime x                 Set # seconds between time stamps in log file (default 0 =
                                disabled).

==================================================================================================
RECOMMENDED SETTINGS

Always use option "-condebug" and if your system can handle it, try the following:

  cl_altlerp 2
  developer 2
  gl_max_size 2048
  gl_texquality 2
  r_interpolate_model_weapon 0
  r_shadows 1
  scr_showedicts 1

Set the cvars in autoexec.cfg.
  
==================================================================================================
PERFORMANCE/COMPATIBILITY TIPS

Do not use an excessive heapsize, the default size is sufficient and fastest in most cases. If you
have a lot of available RAM or you're using the old 3dfx miniGL, try adding the "-nofreetex"
command line option to speed up repeated map loading.

If you want to speed up renderer, try the following:

  gl_subdividesize 2048 // helps in outdoor areas
  gl_texquality 0       // helps loading times a little
  r_dynamic 0           // no dynamic lights
  r_flatlightstyles 1   // helps a lot when many torches
  r_fullbright 1        // if you're desperate for speed
  r_particles 0         // no particles
  r_shadows 0           // helps a lot when many entities

If your machine seems to be choking on a small map for no obvious reason (e.g. no excessive disk
activity), you may have exceeded the texture memory of your graphics card. Try the following:

  gl_max_size 512       // or even lower; 256
  gl_picmip 1           // or even higher; 2,3,4

If you get client aborts in a certain mod, try using lower values for sv_protocol.
  
If you prefer the original look of GLQuake, try the following:

  gl_autobright 0
  gl_oldspr 1
  gl_smoothfont 0
  gl_texquality 0
  r_interpolate_model_animation 0
  r_interpolate_model_transform 0

In each case, set the cvars in autoexec.cfg and restart engine for max effect.
  
==================================================================================================
CURRENT LIMITS (GL/Win)


Bsp                                     Normal limit    Comment
---                                     ------------    -------
                                        
  Clipnodes             ~64k            32k             If >64k, all entities are stuck
  Faces                 64k             32k
  Lightmaps             1024            64
  Marksurfaces          64k             32k
  Nodes                 ~32-64k         32k             Nodes+leafs < 64k
  Planes                >32k            32k
  Static entities       256             128
  Surface extents       >512/256        512/256
  Texinfo               >32k            32k
  Visleafs              32k             8k
  Vis/light data        2048M           heapsize        Allocated outside Quake heap


Mdl                                     Normal limit    Comment
---                                     ------------    -------

  Mesh commands         16384           8192
  Mesh strips           256             128
  Skin height           1024            480
  Triangles             4096            2048
  Vertices              4096/3984       1024/2000


Sounds                                  Normal limit    Comment
------                                  ------------    -------

  Channels              516             128
  Dynamic channels      128             8


Client/Server                           Normal limit    Comment
-------------                           ------------    -------

  Clients               64              16
  Packet size           ~64k            1k
  Progs globals         64k             32k
  Runaway loop, QC      5000000         100000
  Signon buffer size    ~64k            ~8k
  Stack size, QC        256             32
  Static client message 8192            1024


Graphics                                Normal limit    Comment
--------                                ------------    -------

  Beams                 256             24
  Console background    1024M           640x480/320x200 Upsampled 32-bit image < 1024M
  Far clip distance     16384           4096
  GL textures           2048            1024            Bsp textures are default freed when changing map
  Temporary entities    512             64
  Texture size          1024M           1200k           Upsampled 32-bit image < 1024M
  Texture size, sky     any             =256x128        Odd sized sky tex will be resized to 256x128
  Video modes           600             30
  Visible edicts        4096            256
  WinQ bmodel edges     3000            1000
  WinQ bmodel vertices  1000            500


Misc                                    Normal limit    Comment
----                                    ------------    -------

  Command/script buffer 64k             8k
  Console buffer size   256k            16k
  Edicts                4096            600
  Efrags                2048            640
  File handles          100             10
  Models, precached     1024            256
  Mods, unique          2048            512
  Sounds, precached     1024            256             One sound service is unsupported with sv_protocol 10002 (default)
  Sounds, unique        2560            512
  Temporary files       1024M           heapsize        May be allocated outside Quake heap
  Zone size, default    320k            48k

==================================================================================================

Original Win/GLQuake source code by John Carmack,        http://www.idsoftware.com
Many modifications inspired by Metlslime's FitzQuake,    http://www.celephais.net/fitzquake
Ender/LordHavoc's NehQuake,                              http://www.planetquake.com/nehahra
Tyrann's TyrQuake,                                       http://disenchant.net
QIP Quake,                                               http://www.inside3d.com/qip
LordHavoc's DarkPlaces,                                  http://icculus.org/twilight/darkplaces
ProQuake,                                                http://www.planetquake.com/proquake
JoeQuake                                                 http://joequake.quake1.net

