------------------------------
KMQuake2 v0.20 with update 8 Test Build

Readme.txt
------------------------------
Enhanced Quake2 OpenGL-only engine with integrated Lazarus support
(kmquake2.exe & kmq2gamex86.dll & kmq2_pak00.pk3 & kmq2_pak01.pk3)

	By Knightmare (knightmare66@yahoo.com)

Other code by:

	Aaron Reeves
	Anthony Jacques
	Backslash
	Barnes
	Berserk
	Berserker
	Bitshifter
	BramBo
	CDawg
	David M. Pochron
	Discoloda
	DarkOne
	Dopefish
	Dukey
	Echon
	Ethan Lee
	Frank Sapone
	Fuh
	Harven
	Heffo
	Idle
	Jalisko
	Jay Dolan
	Jitspoe
	MaxED
	MH
	MrG
	NeVo
	Nexus
	NiceAss
	Nicolas
	Odium
	Pat Aftermoon
	Pooy
	Psycospaz
	QuDos
	Scarface
	Serge
	[SkulleR]
	Spike
	Steve Yeager
	Tomaz
	Vic
	VoiD
	Yamagi
	And anyone else I forgot...

Menu dogtags, HUD numbers, and F1 computer icon by Pieter Verhoeven

Menu screen by MDK

Load screen by Fabian Rosten

Weapon glow skins in kmq2_pak01.pk3 by Odium and Kman and from Quake2XP

Doom3 HUD by Odium

Uses Zlib compression library, (C) 1995-2017 Jean-loup Gailly and Mark Adler

Uses libjpeg (Independent JPEG Group's software) Copyright (C) 1994-2013, Thomas G. Lane, Guido Vollbeding

Uses libpng image library, Copyright (c) 1998-2017 Glenn Randers-Pehrson

Uses libogg and libvorbis audio libraries, Copyright (c) 2002-2015 Xiph.org Foundation

Uses libcurl data transfer library, Copyright (c) 1996 - 2020, Daniel Stenberg

------------------------------
Key Features
------------------------------
- Eliminates the limit of 256 each on models, sounds, and images- no more index: overflow errors!
- No more SZ_Getspace: overflow errors
- Supports up to 8000 entities per map, up to 2000 in view at once
- Supports maps with large coordinate ranges, maximum of +/-16384
- Supports maps compiled with large chop values, up to 1024
- Supports server-side player speed control for class-based mods, etc.
- Supports server-side control of entity transparency
- Supports server-side control of looped sound attenuation
- Includes default Lazarus DLL with ACE bots, CTF and 3Team CTF support
- Uses modified Quake2maX particle effects
- Improved menus and console
- Streamlined, more memory-efficent adaptation of decal system from Quake2maX
- TGA, PNG, and JPG texture, skin, and pic autoloading
- Autoscaling of hi-res replacement textures
- Support for MD3 models
- *.pak and pk3 support
- Ogg Vorbis soundtrack support
- RoQ support
- Alpha test surface support for easy rendering of textures with holes/cut-outs
- Trans33 and Trans66 flag combining for textures with alpha-channel controlled transparency
- Supports rendering transparent surfaces with lightmaps
- Supports moving and animated transparent surfaces
- Integrated support for Lazarus footstep sounds

------------------------------
System Requirements
------------------------------
- OpenGL 1.2 compatible 3D accelerator, OpenGL 1.4 support or higher
	(GeForce FX/Radeon 9500 or better) recommended.
	Absolutely MUST have GL_ARB_multitexture support, 3Dfx cards are NOT supported.
- Pentium III or Athlon 800MHz+
- At least 512MB of RAM (1 GB recommended) for 32-bit operating systems, at least 2GB for 64-bit operating systems.

------------------------------
How To Run
------------------------------
	Unzip into your Quake2 directory (where quake2.exe is) and make a shortcut with path

	x\quake2\kmquake2.exe +set game gamedir (for singleplayer, LAN games, and net client use)

	where X is your Quake2 dir's parent dir (for example, C: or D:\games), and gamedir
	is the game subdirectory (if any) where the mod you want to run is.  NOTE: for the
	mod's code to run, it must be compiled into a kmq2gamex86.dll (see end of file for
	instructions).

	To mount assets from the mission packs for use with any mod, add
	
	+set basegame missionpackdir
	
	You can have up to 3 basegames set:
	
	+set basegame xatrix +set basegame2 rogue +set basegame3 zaero

	To ensure connection to all standard Quake2 protocol (34) servers, add
	
	+set cl_servertrick 1
	
	to the command line.  Or you can set the "client protocol compatbility" option in the Join Server menu
	to version 34 (stock Quake2).  This is disabled by default.
	
	If you want to enable the playing of cinematics off the game or mission pack CD, add

	+set scanforcd 1

	to the command line.  This is disabled by default.

	KMQuake2 writes/reads savegames, config files, demos, etc. to <userprofile>/Saved Games/KMQuake2 on Windows Vista
	and later, and to My Documents/My Games/KMQuake2 on Windows 2000/XP/2003.
	Auto-downloaded files are saved to <userprofile>/Downloads/KMQuake2 on Windows Vista and later, and
	My Documents/My Downloads/KMQuake2 on Windows 2000/XP/2003.
	
	The classic Quake 2 behavior of writing config files/savegames/etc to the Quake2 folder can be restored by adding the parameter
	"-portable" to the command line, or by placing an empty text file called "portable.cfg" in the baseq2 folder.

	If it crashes on startup, make sure that kmq2gamex86.dll is in the baseq2 folder.

	If the controls are missing in the menus and particle effects don't appear properly,
	make sure that kmquake2.pk3 is in the baseq2 folder.

	If you experience lockups on an ATI video card, set entity shell type to solid or flowing
	in the advanced section of the video menu.  The envmap effect may be causing the lockups.

	If performance is too slow, or there are no visible or all black textures, type
	"exec lowend.cfg; vid_restart" in the console.  If you still get all-black
	textures, remove all config files from the game and savegame directories you are running in and restart.
	This will make KMQ2 fall back on the internal cvar defaults.

	It is strongly recommened that you copy the idlog.cin file from the Quake2 CD to your
	baseq2/video folder.  This will allow you to always open the menu before any demos start playing.
	
	To hear Ogg Vorbis tracks ingame, rip the Q2 CD's audio tracks (2-11) to track02-track11.ogg
	and put them in baseq2/music.  For the mission pack audio tracks, rip the Ground Zero CD's
	audio tracks (2-11) to track12-track21.ogg.  Don't bother ripping the tracks from the
	Reckoning CD, as they're a mix of the tracks on the Q2 and Ground Zero CDs.  Everything else
	will be taken care of internally by KMQuake2.

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

			MOD SUPPORT INSTRUCTIONS

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

To compile your mod for KMQuake2, substitute the files game/q_shared.c, game/q_shared.h,
and game/game.h from the engine's source code into the mod's source after backing up the mod's originals.
Or you can just search for all my changes, which are marked with my name, if you don't want to use
GPLed headers.  Just don't forget to include the #ifdef compiler directives around my changes.
Some mods may make additions or changes to these 3 files, so in that case you will need to use
a diff utility like Windiff to find said changes and hand-merge them into the files from
KMQ2's source.

Next, in g_save.c, change the assignment of the "maxentities" cvar from this:

maxentities = gi.cvar ("maxentities", "1024", CVAR_LATCH);

to this:

maxentities = gi.cvar ("maxentities", va("%i",MAX_EDICTS), CVAR_LATCH);

Then, change all references to modelindex 255 to MAX_MODELS-1 (for most mods,
p_client.c, p_view.c, and p_weapon.c are the only files that need changes).

Before compiling, make sure that this line in q_shared.h is uncommented:

#define	KMQUAKE2_ENGINE_MOD

You can revert your mod to compatibility with other engines by commenting out this line.

Finally, after compiling, rename the resulting gamex86.dll to kmq2gamex86.dll so
that the new engine will load it (don't overwrite your existing game DLL!).

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

If you downloaded this engine mod without source code, the complete source is
available at www.markshan.com/knightmare

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

Copyright (C) 1997-2001 Id Software, Inc.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.