thirtyflightsofloving/kmquake2.txt
Knightmare66 4eea7036b8 Added Ethan Lee's Linux porting changes.
Moved loadingMessage, loadingMessages, and loadingPercent variables in client into client_static_t struct.
2021-10-11 15:38:20 -04:00

226 lines
No EOL
8.3 KiB
Text

------------------------------
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
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 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 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.
An 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 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.