------------------------------ KMQuake2 v0.20 with update 8 Readme.txt ------------------------------ Enhanced Quake2 OpenGL-only engine with integrated Lazarus support (kmquake2.exe & kmq2gamex86.dll && kmquake2.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 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 Christopher "Sherpa" Owen Weapon glow skins in kmquake2_extras.pk3 by Odium and Kman and from Quake2XP 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 (uses some code from Quake2maX) - 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 ------------------------------ 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 ping info from and connect to 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 /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 /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. An OpenGL 1.2 compatible 3D accelerator, OpenGL 1.4 support or higher (GeForce FX/Radeon 9500 or better) recommended. (Note: 3Dfx cards are NOT supported) Pentium III or Athlon 800MHz+ At least 512MB of RAM (1 GB recommended) for 32-bit operating sytems, at least 2GB for 64-bit operating sytsems. If it crashes on startup, make sure that kmq2gamex86.dll is in the baseq2 subdir. 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 directory 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.