------------------------------------ Changes as of v0.20 update 8: ------------------------------------ - Added 3840x1600 and 4096x2160 video modes. - Added 160Hz, 165Hz, 180Hz, and 240Hz refresh rates to the video menu (uses cvar r_displayrefresh, up to 240 Hz). - Added automatic setting of r_maxfps based on refresh rate set in video menu (r_displayrefresh). This can be disabled by setting the cvar r_maxfps_autoset to 0. - Removed the old, decrepit single-texturing surface rendering mode. GL_ARB_multitexture support is now required. - Added borderless window support. Set vid_fullscreen to 2 to select borderless window. - Added r_mode_desktop cvar. Forces borderless window mode to desktop resolution when enabled. - Added support for triple-monitor surround modes via custom resolutions. Monitors must be bound as a single logical display. Keeps all menu/HUD elements on the center screen in triple-monitor configs (when aspect ratio >= scr_surroundthreshold (default 3.6)). Set the cvar scr_surroundlayout to 0 to disable this. Cvars scr_surroundleft and scr_surroundright set placement of left and right of center screen. Default values are 0.333333333333 and 0.666666666667, respectively. - Added Windows DPI scaling detection from Yamagi Quake2. - Now reads/writes 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. Autodownloaded files are now written 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 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. - Now compresses .sav and .sv2 savegame files into .savz files. It will still read savegames from earlier KMQ2 versions (with the same game DLL). This should improve load and save times in multi-level units. - Added UDP fallback from HTTP downloads and support for Q2Pro-style HTTP URLs. This can be disabled by setting the cvar cl_http_fallback to 0 or disabling "HTTP fallback" in the download options menu. - Added support for quake2:// URLs. - Added client detection of server protocol from challenge message. Client also auto-reconnects with cl_servertrick set correspondingly when a "wrong version" rejection message is received. - Changed protocol version to 57. This was necessitated by fixing an old protocol bug in how extended HUD stats were sent to the client. Also changed protocol for svc_sound servercommand to separate channel and entity values from a merged short to a byte and a short. - Added cel shading support. Uses cvars r_celshading to enable, and r_celshading_width for line width (1-10). - Added Z-Pass shadow mode due to patent issues w/ commercial games. Set the cvar r_shadow_zfail to 0 to enable this. - Added non-self-shadowing option. Set the cvar r_shadow_self to 0 to enable this. - Shadow volumes will now be drawn even if the model isn't in view. - Added horizontal offset to third-person mode. Offset distance is controlled by cvar cg_thirdperson_offset. - Added unique muzzleflashes for the Ripper Guard, Hyperblaster Guard and Beta-class Gladiator in The Reckoning and Railgun Turret in Ground Zero. - Added unique muzzleflashes for the LMCTF/LMSP plasma rifle and Plasma Guard (bounce and spread). - Added separate cvars ui_font and scr_font for menu and screen fonts, respectively. Con_font now only changes the font in the console. - Now allows changing of anisotropic filter settings without a video restart. - Added r_subdivide_size cvar, which controls the chop size of warp surfaces; its default value is 64. A vid_restart is necessary after altering this cvar to properly set warp texture turbulence. - Added font upscaling (with optional blending by Skuller from Q2Pro) for old 128x128 fonts. Use cvar r_font_upscale to enable, value of 1 is pixel copy, value of 2 enables blending. Requires vid_restart for changes to take effect. - Added upscaling of the scrap image (with optional blending by Skuller from Q2Pro) used to atlas 8-bit HUD pics. Use cvar r_scrap_upscale to enable, value of 1 is pixel copy, value of 2 enables blending. Requires vid_restart for changes to take effect. - Can now stream Ogg Vorbis soundtracks from inside .pak files. Streaming from inside .pk3s was previously supported. - Renamed cvars hud_scale, hud_alpha, and hud_squeezedigits to scr_hudsize, scr_hudalpha, and scr_hudsqueezedigits. - Added dedicated server option to start server menu. - Added descriptions for most cvars. - Added dumpcvars command to output a list of cvars with their descriptions to cvarlist.txt. Takes an optional wildcard. Usage: dumpcvars - Added ignorenick/unignorenick and ignoretext/unignoretext client commands from Q2Pro. - Added display of numerical cvar value to sliders and improved mouse interaction, making them more useable. - Added new graphics for text fields, text boxes, and sliders. Use cvars ui_new_textfield and ui_new_textbox to toggle the new text fields and boxes, respectively. - Changed screenshot filenames to kmquake2_####, now supporting up to 10,000 screenshots. - Removed size limit of 512x256 for .wal textures. This fixes the "GL_Upload8: too large" error with 512x512 or larger .wal textures. - Added cvar r_fog_skyratio, for proportional sky fog distance. Default is 10. - Added basegame3 cvar to load data from up to 3 other other mods. Works in conjunction with basegame and basegame2, which must be set first. - Added SGIS mipmaps menu option and cvar r_sgis_generatemipmap, for toggling SGIS mipmap generation. Default is 1, set to 0 and use vid_restart to disable. - Added changeable gl_clear color controlled by cvars r_clearcolor_r, r_clearcolor_g, and r_clearcolor_b. Values are normalized (0-1). - Added doubled entity lighting to mimic Q2's original entity lighting. Set the cvar r_entity_doublelight to 1 to enable this. - Added ifeq, ifneq, ifgt, ifge, iflt, ifle, ifbit, and ifnbit layout script commands. - Added a check to prevent game code from sending unicasts to non-present clients (i.e. bots). This would previously cause a fatal server error. - Fixed Shift-Ins to paste text not working in menus. - Fixed misaligment of left-handed player model in player config menu. - Fixed player model/skin changes not being saved when exiting player config menu via the back action. - Fixed crash when loading a map with too many submodels. Increased renderer model limit to 2 x MAX_MODELS. - Fixed crash when rapidly pressing the Esc key during a map load. - Fixed potential crash caused by infinite recursion in client footstep code. - Fixed fatal error when too many alias models are loaded (such as many unique player models in a multiplayer game). - Fixed light blooms killing performance if texture compression is enabled. - Fixed screen redraw artifacting with blooms enabled on a video mode with height less than 512. - Fixed players in multiplayer games with models/skins not installed on the local client showing as the player's model/skin. The original default of male/grunt has been restored for multiplayer games. - Fixed missing menu text when joining a Rocket Arena 2 server. - Fixed missing HUD text when joining an OSP Tourney server. - Fixed fog disappearing after a vid_restart. - Fixed text scale not changing after changing video modes. - Fixed handling of high-bit alt color strings. - Fixed alignment issue with colored text on help computer and centerprints. - Fixed text color and formatting disappearing after word wrap in console. - Fixed oversized 404 message from aborting all HTTP downloads. - Fixed HTTP download of the first pak in a filelist from aborting other paks. - Fixed plats with high accel/decel getting stuck near their top or bottom. - Fixed plats with PLAT_LOW_TRIGGER flag breaking when a high lip value is set. - Fixed doors getting looped sound stuck on when blocked by a monster. - Added missing key_message implementaion for trigger_key. - Fixed crash when patching dead soldier model. - Now ignores maps.lst file inside pak/pk3 files when the same file can be loaded from outside paks in the same game folder. - Added support for loading .arena files from disk. Previously they were only loaded from inside pak/pk3 files. - Removed target_animation from Lazarus DLL, as it breaks when loading/saving game and there's no good way to implement it properly. - Cleaned up memory allocation and fixed railgun infinite loop (hang) bug in all included game DLLs. - Added the CTF tech models and sounds to kmquake2_extras.pk3 so the techs can be readily used in deathmatch. This includes the two new techs from 3 Team CTF. ------------------------------------ Changes as of v0.20 update 7: ------------------------------------ - Added HTTP download support from R1Q2. Uses cvars cl_http_proxy, cl_http_filelists, cl_http_downloads, and cl_http_max_connections. - Decoupled video framerate from network framerate. This should allow higher framerates as well as better network performance. The old, synchronous mode can be re-enabled by setting the cvar cl_async to 0. The new cvars are r_maxfps (default 125) for maximum rendering framerate, and net_maxfps (default 60) for maximum packet rate. Synchronous mode still uses the cl_maxfps cvar. - Added .loc file support. Loads .loc files (locs/.loc) from the current mod dir and baseq2. Both 1/8th precision integer and floating-point formats are supported. Here are the supported commands and cvars: loc_add - Adds a location point at this position with the given name. loc_del - Deletes location point at this position. loc_save - Saves locations for this map. cl_drawlocs - Set to 1 to enable drawing of location points. loc_here - The location you're at, e.g. say_team $loc_here. loc_there - What you're aiming at, e.g. say_team $loc_there. - Fixed cl_servertrick and allow_download cvars being forced to 0 when starting a single-player game. Cl_servertrick is now saved to config. - Capped connect message size to 1200 bytes in multiplayer to fix problems with clients geting hung up on connect. This can be changed with the cvar sv_baselines_maxlen. Acceptable values are from 400 to 1400. - Multiplayer network messages are now limited to 2800 bytes (does not apply to local client on a listen server). This can be disabled by setting the cvar sv_limit_msglen to 0. Doing so is only recommended for LAN games. - Fixed imbalance in mouse pitch and yaw sensitivity in widescreen video modes with autosensitivity enabled. - Fixed overloaded playerskins configstrings on some servers causing the client to get stuck trying to download non-existant skins. - Fixed save path being set to Quake2 root instead of baseq2 when gamedir is set to a blank string. - Fixed crash on map load with long map names. - Fixed undersized viewport and corrupt screenshots at 1366x768 resolution. - Gamma ramping now switches off and the desktop resolution is restored when alt-tabbing out of the game. The cvar win_alttab_restore_desktop can be set to 0 to disable restoring the desktop resolution. - Added 5K (5120x2880) and 3440x1440 video modes. - Added custom width and height fields to video menu. - Added support for PNG textures/images. - Added option for PNG screenshots (r_screenshot_format, jpg, png, or tga). - Added format-specific screenshot commands (screenshot_tga, screenshot_jpg, screenshot_png). - Added basegame and basegame2 cvars to load data from other mods. - Added option for new Q3-style console background (cvar con_newconback). - Added download speed counter by Frank Sapone. - Changed savegame format for included Lazarus DLL. Savegames will now work cross-version as long as no changes to data structures (edict_t, etc) are made. - Cleaned up memory allocation in in default Lazarus DLL. ------------------------------------ Changes as of v0.20 update 6: ------------------------------------ - Added writeconfig command. Usage: writeconfig Using no parameter will write kmq2config.cfg. - Added 3200x1800, 3840x2160, and 3840x2400 video modes. - Inventory and help computer/scoreboard are now always scaled up from 640x480, instead of sizing based on status bar scale. - Added support for high-res menu graphics. - Added 3D cursor to main menu. - Added higher-res 128x128 HUD icons. - Added impact decals for the BFG and disruptor. - Optimized load times with filename hashing. - Added simplified load screen. The original load screen can be re-enabled in the interface menu. - Fixed savegames in baseq2 being visible in the save and load menus when running with a different game dir. - Increased MAX_OSPATH to 256 characters. This should improve compatibility when Quake2 is installed under C:\Program Files. - Fixed lag/stutter on opening save and load game menus. - Fixed tag mode not working when set from the start server menu. - Added option to display 4-digit numbers on the default HUD. This can be changed with the status bar digit squeezing option in the screen options menu. - Saveshots are now sized to the nearest power of two for each dimension, so a game saved at 1024x768 will have a 1024x512 saveshot. - Tweaked cvar defaults for bloom effect to be more subtle. ------------------------------------ Changes as of v0.20 update 5: ------------------------------------ - Added an option to the video menu to enable or disable non-power-of-2 mipmapped textures. Some video drivers don't properly support NPOT textures and will screw up the mipmaps for these textures. - Changed crosshair scaling to be derived from a fixed size, preventing the first 3 crosshairs from ever being misaligned. - Added better error handling for model scripts. - Added optimization to R_Clear by bitshifter. - Now prevents certain files that shouldn't be in paks/pk3s from loading (.cfg files, saves, screenshots, etc). - Fixed a crash that can happen when no hardware acceleration is found. - Fixed graphical corruption that could occur from certain errors during map loads. - Optimized surface rendering with batching surfaces and lightmap updates, and also using a more efficent format for lightmaps. Requires OpenGL 1.2 for the new lightmap format to enable. Set the cvar r_newlightmapformat to 0 if you happen to get fullbright lightmaps from this change. - Fixed railgun infinite loop (hang) bug in default Lazarus DLL. ------------------------------------ Changes as of v0.20 update 4: ------------------------------------ - Fixed the missing audio in the intermission cinematics. - Fixed texture names with backslashes not loading from inside pak files. - Fixed memory leak in JPEG loading code. - Fixed long startup times on Windows 7. - Added multitexture rendering optimizations. ------------------------------------ Changes as of v0.20 update 3: ------------------------------------ - Fixed a potential crash with blood effects in certain situations. - Fixed shadow volume errors with certain models. ------------------------------------ Changes as of v0.20 update 2: ------------------------------------ - Fixed problem with surround video modes (multi-monitor). The FOV adjustment algorithm has been changed so that it no longer breaks in such extremely wide modes. - Fixed misalignment with crosshairs 1-3. - Fixed an issue that was introduced with the release of nVida's 191.xx drivers. The OpenGL extension string in these drivers is longer than the text output buffer, causing a crash. - Fixed round-off error that was limiting the accuracy of the crosshair. - Fixed disappearing textures on bmodels with mixed standard and warp faces (e.g. the moving pillar by the laser array in city3). - Fixed camera glitch with thirdperson mode and demos. As the original demos in baseq2/pak0.pak don't show the correct player model, this is disabled by default. Use the cvar cg_thirdperson_indemo to enable this. ------------------------------------ Changes as of v0.20 beta3: ------------------------------------ - Added QuDos' item bobbing. This can be enabled in the effects section of the options menu. - Added Ogg vorbis commands based on the Linux port Of KMQ2 0.19 by QuDos. The commands are: ogg play Plays a given .ogg file ogg pause Pauses playback ogg resume Resumes playback ogg stop Stops playback ogg status Outputs file playing and position ogg list Lists available .ogg files - Added support for 1280x720, 1280x768, 1440x900, 1920x1080, and 2560x1600 widescreen modes. - Removed oddball 1024x480 mode. - Tweaked FOV autoscaling code. It was previously making the FOV too wide. - Tweaked FPS counter code for better accuracy with framerates over 100 fps. - Cinematics are now displayed in anamorphic form. - Textures are now displayed at their native resolution on video cards that support the GL_ARB_texture_non_power_of_two extension. This greatly improves the appearance of most monster and item models, as well as the display of text in intermission cinematics. Set r_arb_texturenonpoweroftwo to 0 if this causes crashes on your system (likely due to a buggy driver). - Fixed dark corners on most warp surfaces when vertex lighting is enabled. - Added support for the type field in Quake3-style .arena files. The start server menu's maplist is filtered by the currently selected gametype. Here are the valid type tokens: Deathmatch: dm teamdm ffa team Cooperative: coop CTF: ctf 3Team CTF: 3tctf - Console font size is now resolution-independent. Default size is 8 pixels scaled up from 640x480 resolution. - Added support for widescreen-aspect levelshots, named levelshots/_widescreen.jpg. The image size should still be a power of 2, e.g. 512x512. - Changed network protocol version to 56 to avoid conflicts with R1Q2. - Added autodownloading of pk3 files containing maps. Both the client and sever must be running this version for it to work. - Added silent screenshot command (screenshot_silent). - Renamed cl_3dcam* cvars to cg_thirdperson*. ------------------------------------ Changes as of v0.20 beta2: ------------------------------------ - Added support for the game DLL to set the attentuaion of looped sounds. Support has been added to both the Lazarus and integrated missionpack DLLs for mappers to override the attenuation for any bmodel entity, as well as target_speaker. Func_train, func_tracktrain, and func_vehicle now default to idle attenuation. This changes the protocol and game DLL interface again, so DLLs from the last beta will no longer work. - Added support for lightmaps on trans surfaces. Set transparent lighting to lightmap in the advanced video menu to enable this. - Added GL_ARB_fragment_program water warping. This replaces the GL_NV_texture_shader effect on cards that support it. - Added optional fragment program warping to caustics. To enable, set underwater caustics to hardware warp in the advanced video menu. - Added support for camera effect and letterbox screen modes. These effects can be enabled by setting the RDF_CAMERAEFFECT and RDF_LETTERBOX bits in a client's refdef flags in the game DLL. - Reorganized the ingame section of the options menu into screen and effects sections. - Added option for old-style explosion effects in the effects section of the options menu. - Reduced default intensity of light blooms. - Added cvar toggling (toggle ). - Changed r_speeds output to show the actual number of brush polygons drawn, in addition to the number of surfaces. - Changed savegame slot names to better cohabitate with other engines. - Added Jalisko's fix for black lines appearing when light blooms are enabled at 1280x1024 resolution. ------------------------------------ Changes as of v0.20 beta1: ------------------------------------ - Increased max coordinate range. Note that this breaks all existing game DLLs and demos. Be sure to download updated game DLLs that are compatible with this version. Clients and servers will have to upgrade to maintain compatibility. - Greatly improved md3 support. Md3's render faster, are frustum-culled, and are properly vertex-lit. Per-mesh, per-skin rendering scripts are also added (see md3_scripting.txt). - Overall optimizations to rendering. - Added support for two-sided stenciling (GL_EXT_stencil_two_side or GL_ATI_separate_stencil) for a performance boost to projection shadows. This is disabled by default due to rendering artifacts with some models, but can be enabled in the advanced video menu. - Added support for alpha test surfaces (textures with holes, bypassing the problems of TRANS33+TRANS66 rendering). This can be enabled on a texture with an alpha channel (TGA's) or color 255 (pink) areas (.wals) by setting the 0x02000000 surface flag in the surface inspector (only QERadiant 1.47 seems to show this flag). Use KMQBSP3 1.13 or higher to compile maps with these surfaces. - Added support for static glow textures. For example, texturedir/mytexture_glow will be drawn as a glow over texturedir/mytexture if it can be found. This is similar to the glows supported in DarkPlaces. These are rendered without a second pass on quad-texturing or higher cards, so there should be no fps hit. - Added improved version of Barnes's underwater caustics and view warping. - Added fov auto-adjustment for widescreen modes. This feature can be toggled in the video menu. - Improved scaling system for menus. - Added support for Quake3-style .arena files for multiplayer maps. Maps that have an arena file (e.g. scripts/mapname.arena for mapname.bsp) will be added to the maplist in the start server menu. Currently only the map and longname fields are used. - Added modified version of debug/dedicated console from Quake2Evolved. - Renamed all gl_* renderer cvars to r_*. - Removed support for ancient, decrepit SGIS multitexture. - Fixed particle overdraw option so it only redraws on top of alpha surfaces. - Now supports streaming Ogg Vorbis files from inside pak/pk3 files. - Added saveshots to quicksaves (savegames named "quick" or "quik"). ------------------------------ Changes as of v0.19: ------------------------------ - Integrated renderer into exe. Ref_kmgl.dll is no longer needed. - Added support for custom resolutions. Uses cvars r_customwidth and r_customheight when gl_mode is set to -1. - Added projection entity shadows. This is selectable from the advanced section of the video menu. - Added Jalisko's light blooms. This is selectable from the advanced section of the video menu. - Added support for Ogg Vorbis music. - Added support for Quake3's RoQ format cinematics. - Added support for 1024x1024 skyboxes. - Anisotropic filtering now works properly and video menu allows selection from modes supported by the video card. - Changed texture quality filter. Low caps texture resolution at 128x128, medium at 256x256, high at 512x512, and highest has no cap. - Reset defaults option in the menus now loads cvar defaults for all settings in that menu. - Added support for custom door, plat, and button sounds. See kmquake2_lazarus.txt. - Fixed looped sound sourcing bug with bmodel entities (func_door, func_plat, etc). - Added Jitspoe's Fix for sliding bug where steep sloped surfaces meet floors. - Added cvar cl_rail_length to control length of rail trails for performance purposes. Defaults to 2048. Rail trails are now drawn starting from the point closest to the player. - Added changegame command to change game dirs while preserving key binds in cfg files. Usage: changegame Use this instead of game . - Scanning for the game CD (for cinematics) is now disabled by default. This scan can take too long on some systems with network drives mapped. To enable it, add +set scanforcd 1 to the command line. - Fixed crash on exiting biggun map. ------------------------------ Changes as of v0.18: ------------------------------ - Added pk3 support from Quake2Evolved. - Added improved version of decal system from Quake2Max. - Added new default font based on one from Jitspoe's Digital Paint Paintball 2.0. - Added enhanced player setup display from Quake2Max. - Made crosshair display in ingame menu clickable. - Added levelshots to start server menu. - Load game menu now shows levelshots for autosaves. - Added option for hi-res saveshots to advanced video menu. - Added option for model shading (off, low, high) to advanced video menu. Also, dynamic lights now light models by the vertices. - Added option for flowing shell effect to advanced video menu. - Now opens menu when disconnected. - Revamped load screens. - Blaster puffs now bounce off walls and brush models. - Added support for JPG skies and 512x512 rotating skies. - Added support for JPG and TGA endscreens. Requires the presence of a PCX file with the same filename. E.g. pics/victory.jpg and pics/victory.pcx The PCX file should be in the Q2 palette and no larger than 256x256. The 24-bit image can be very high res- up to 1024x1024. - Fixed command buffer overflow vulnerability. - Fixed crash with ACE bot print commands. - Now includes the Lazarus essential data in the pak file. - Renamed Lazarus "id" command to "entid" to fix conflict with ctf "id" command. - Added new surface flag for trans and warp surfaces- 0x01000000, specifies no lightmap or glass envmap for that surface. Useful for volumetric light effects. ------------------------------ Changes as of v0.16a: ------------------------------ - Fixed network error handling. - Added server ping to join server menu. - Fixed minor bug with sliders being affected by opening options submenus with mouse. ------------------------------ Changes as of v0.16: ------------------------------ - Added Harven's support for .md3 models. Tested with alias scripted model_spawns, and works great. Will also replace .md2 models with identically named .md3s. Tags are not yet supported. - Added ACE bots to the included Lazarus DLL. See kmquake2_lazarus.txt for more info. - Added 3Team CTF support to the integrated Lazarus DLL. CTF and 3Team CTF modes are now selectable from the start server menu. See kmquake2_lazarus.txt for more info. - Removed obsolete 8-bit texture paletting and point paramenter code. - Fixed surface-specific footstep sounds for other players. - Added Pooy and DarkOne's CPU usage fix. - Added Backslash's support for mouse buttons 4 and 5 on newer MS mice. - Added icon and close button in windowed mode. - Added new HUD icons for both official mission packs, CTF, and Lazarus. - Now supports maps with large chop sizes (up to 1024), for lower r_speeds in large outdoor areas. - Added overbright bits on models. - Added screenshots to load game menu. - Added support for up to 100 crosshairs, selectable from ingame section of options menu. Now includes some additional crosshairs from Quake2Evolved, in addition to the ones by me and Psychospaz. - Added new blood effect types, selectable from ingame section of options menu. - Added option to scale complexity of particle effects to ingame section of options menu. - Fixed dynamic light effects on bmodels and bmodel alpha surfaces. - Added mouse sensitivity scaling for reduced FOV. - Fixed missing textures on TNT/TNT2 cards. - Texture filter now defaults to bilinear. This should fix some compatibility problems. - Integrated the Lazarus "texture" and "surf" commands into the client. They are available in singleplayer mode when the cvar "developer" is set to 1. - Added light glows to blaster puffs and bullet impacts. - Fixed crash when starting up without kmquake2.pak. - Fixed crash on fact2 when running with the included Lazarus DLL. ------------------------------ Changes as of v0.15: ------------------------------ - Now prevents demos from changing the current game dir. To change the game dir, type disconnect, hit enter, then type game (without brackets) and hit enter. If you changed the game cvar first, disconnect and then hit ESCAPE. - Added support for transparent HUD. - Now uses a compatible build of the Lazarus mod (www.planetquake.com/lazarus). See the included kmquake2_lazarus.txt for more info. This DLL supplants the vanilla Q2 and CTF ones, as it does everyting they do and then some. The source code of these old DLLs is included in the source archive. Compiled binaries are available upon request (email me). - Will now load footstep surface defintions from a file called texsurfs.txt. Can be disabled in the ingame section of the options menu. - Now inlcudes the footstep sounds and barrel gib models from Lazarus. - Added server-side speed control. Very useful for class-based and other mods. See the new player state members in q_shared.h. - Added ListPak, LoadFile, and FreeFile game import functions, allowing mods to easily load files, even from inside pak files. - Added engine support for a +attack2 key, bindable with +use through the customize controls menu. - Added Psychospaz's map loading screen with mapshots by me, and a default background pic by Christopher "Sherpa" Owen. - Added splash screen on startup. Uses code from TomazQuake. - Added support for scaled console text and HUD. Includes odium's new icons from Quake2Evolved. - Added Pooy's pak0-pak99 support. - Added CDawg's support for stereo sound samples. - Added Psychospaz's fix for trans surface rendering, trans bmodels can now move and rotate. - Added support for animated textures on trans surfaces. - Increased max .cfg file size to 32KB, was 8KB. - Now loads kmq2gamex86.dll instead of gamex86.dll. This allows for better cohabitation, since it will no longer try to load a standard DLL (and then crash). - Changed screenshot filenames to kmquake2_###.*, supporting up to 1000 screenshots. - Added command auto-completion (hit TAB to auto-complete). - Added cvar defaults. - (New discovery) Will load credits from a file named "credits" (no extension) in the current game dir or in the root of a pak file. You can use text formatting codes in this file. - Added the colored text support from Quake2Max. The color of secondary text can be changed from the interface section of the options menu. In addition, warnings are displayed in yellow and errors in red. Here are the formatting codes ripped directly from the Quake2Max readme: -------------------------------- Text Formatting -- Instructions -------------------------------- Sort of like Quake3, if you type out ^ with a character following you can set up colors and stuff for the rest of the string. Here are the codes (colors are Q3 format colors): ^1: color red ^2: color green ^3: color yellow ^4: color blue ^5: color teal ^6: color purple ^7: color white ^8: color black ^9: color orange ^0: color grey ^a: specified by alt_text_color cvar ^s: toggle shadow ^i: toggle italic ^b: toggle bold ^r: set to default (normally: white, no shadow, no italic, no bold) ^^: just a plain ^ character example: ^1p^7sychospaz^r (this would be psychospaz with a red "p", followed by a white "ychospaz", and finally a reset so following text would be normal) *note: Quake2 has a 16 character limit on names per mod. You'll have to make a new mod to extend the limit. -------------------------------- - Added scaled menus from Quake2Max. This can be disabled from the interface section of the options menu. - Added the mouse support in menus from Quake2Max. Uses cursor graphics from Quake2Max 0.30. - Fixed bug where the plasma beam and grapple were drawn from the viewpoint instead of from player model in chasecam mode. - Added red blaster particle effects- TE_REDBLASTER temp event, EF_BLASTER|EF_IONRIPPER overload for red blaster, EF_HYPERBLASTER|EF_IONRIPPER overload for red hyperblaster. Also changed hyperblaster bolt effect, the bolts are now all particles and look much better. - The current player weapon model is now shown in the player config menu. If there is none, it defaults to that PPM's default weapon model. - Fixed bug where the player config menu couldn't find any valid player models when there was a patched player model in the current mod dir (used by Lazarus to add skin references for misc_actor). - Removed MP3 support to comply with the GPL now that Frauenhofer is charging royalties for commercial MP3 decoders. - Added advanced video options menu, using code from Quake2Max. You can now adjust or disable most of the newer graphical features from this menu. - Added Vic's overbright rendering, which greatly improves the display of 24-bit textures. Set gl_modulate and intensity to 1 for best results. - Lightmaps are now drawn on trans and warp surfaces. Set gl_trans_lightmaps to 0 to disable this if some surfaces seem too dark. - Added Psychospaz's spheremapping on non-warp trans surfces and color shells. Set gl_spheremaps and gl_window_spheremaps to 0 to disable. - The player options menu will now automatically find .tga and .jpg skins that don't have .pcx counterparts, and will also now show the default weapon model for each player model that has one. - Added Psychospaz's chasecam. Use the cl_3dcam cvar or the controls section of the options menu to enable. You can enable the cl_3dcam_alpha cvar to make the player model transparent when the camera viewpoint moves in close (when backed up against a wall, etc). Includes Vic's fix for male/grunt flicker after map load. - Added Psychospaz's fading centerprints and HUD notify. - Now saves config data to a separate file named kmq2config.cfg to better cohabitate with other engine mods. If this config file does not exist, it will read the config data from config.cfg. Previously, the vid_ref cvar being forced to "kmgl" would crash other engines when they attempted to execute a config.cfg used by this engine. - Added 1280x1024, 1400x1050, and 1024x480 video modes. - Changed r_speeds so that it no longer floods the console. Instead, it outputs to the lower right of the screen. - Added Psychospaz's dynamic shadows. Set gl_shadows to 2 to enable. - Added proportioned shadows for trans ents: the opacity of the shadow is proportional to the opacity of the entity casting it. - Beams no longer cast shadows. - The GeForce3 water warp effect can now be disabled by setting gl_pixel_shader_warp to 0. - Added r_waterwave cvar, which when set to a nonzero value sets the amplitude of Half-Life style choppy water. - Added Psychospaz's variable sized crosshair to the options menu, and support for up to 8 different crosshairs. Included are 3 of mine and 5 of Psychospaz's. - Changed a few cvar defaults. Gl_texsize now defaults to 1024, and is decreased as necessary on startup for compatibility. R_skydistance defaults to 4600, and gl_lightcutoff defaults to 0. Also, shadows are now always rendered with stencil-buffering if the vid card supports that. - Changed cvarlist so that it now works with wildcards and shows flags and the latched value. Also, typing the name of the cvar shows both the current value and the latched value. - Added support for the s.alpha entity state member. This allows mod makers to specify an entity's transparency server-side, with any float value between 0 and 1. To make entities fade, set their alpha to 1 and then decrement it by small amounts. - Added gunskin, gunindex2, gunframe2, and gunskin2 player state fields and support for a second weapon model, as well as changing the weapon model skin in the game dll. Be sure to update your mod(s) with the new q_shared.h to support this change. - Is now compatible with all version 34 demos. Previously, stray bits set in the flags for entity deltas could foul things up, but those bits are now ignored when a version 34 demo is playing. - Added client protocol compatibility option to the join server menu, which can be set to make the client lie about its version number to the server (34 instead of 35), thus allowing pinging and joining version 34 servers (most existing Quake2 servers using the stock engine) from the join server menu. - Added option to download options menu to auto-download 24-bit textures (JPG and TGA). - Non-dedicated server no longer bombs out with WSAECONNRESET error when a client crashes or quits without disconnecting first. - Fixed bug where player footsteps would crash a non-local client. This was caused by using a server-side trace to get the flags of the surface the player is walking on. This has been replaced by a modified client-side trace. - Fixed exploitable bug in TGA and JPEG loading code where setting the player skin to the name of a reserved system device woud bomb out the client. Malicious players whose clients don't have the TGA and JPEG loading code were exploiting this to kick other players off servers. - Added the hardware gamma control from Vic's l33t engine, which I believe was taken from MrG's BeefQuake. - The gl_modulate cvar now has a dynamic effect, you no longer need to do vid_restart. - The temp event TE_BLUEHYPEBLASTER now works properly, generating a blue splash, while TE_FLECHETTE now generates a lighter blue splash. - Added gl_drawbbox cvar, which when set to 1 draws a bounding box around all models. - Added Nicolas' fix for odd-colored lines at the top and bottom of cinematics. - Added NET_SERVER_BUILD preprocessor option in game/q_shared.h. Enable this to compile an executable suitable for hosting games over the internet. - Increased MAX_STATS to 256. Be sure to update your mod(s) with the new q_shared.h to support this change. ------------------------------ Changes as of v0.04: ------------------------------ - Decreased MAX_EDICTS to 8192, and MAX_PARTICLES to 8192, saving lots of memory. Be sure to update your mod(s) to support this change-MAX_EDICTS in q_shared.h and maxentities in g_save.c should both be changed to 8192 - Changed login and logout sounds to same as player teleport (makes more sense). - Fixed security issue with rcon_password. - Added David M. Pochron's gl_lightcutoff cvar- set to 0 for smoother light falloff, default 64. - Added Psychospaz's con_alpha cvar to control console alpha, also in options. (default 0.5) - Added Psychospaz's gl_shellstencil cvar for stencil buffering color shells. - Added Psychospaz's enhanced particle system, making this now an OpenGL-only engine; It will automatically load ref_kmgl.dll on startup (to disable, comment out #define ENHANCED_PARTICLES line in q_shared.h, and recompile both the exe and ref_kmgl.dll) ------------------------------ Changes as of v0.03: ------------------------------ - Added GuyP's gl_showtris fix (now works without having to disable mulitexturing) - Added JPEG (.jpg) image support, also JPEG screenshots (use cvar gl_screenshot_jpeg) Use gl_screenshot_jpeg_quality to control quality (1-100, worst-best) Uses libjpeg library, source for which is available from http://www.ijg.org - Added Nexus's improved high-res texture replacement support (replace old .wal textures with higher-res .tga or .jpg images, scales them down to fit in proper alignment (use gl_texsize cvar to set max tex size, default 256) - Added NEW_ENTITY_STATE_MEMBERS define in q_shared.h that allows compiling of exe's that are compatible with modified Eraser bot builds. Comment it out to enable comaptibility. ------------------------------ Changes as of v0.02: ------------------------------ - Added support for modelindex5, 6, 7, and 8 (see game/q_shared.h) - Implemented client-side Lazarus footstep sounds (see client/cl_fx.c and game/p_view.c) - Added Nexus's and Serge's support for hi-res (up to 1024x1024) console pics - Added David M. Pochron's 44 and 48 KHz sound support - Added Heffo's rudimentary MP3 playback (22KHz mono only) ------------------------------ Changes as of v0.01: ------------------------------ - Removed limits that caused *Index: overflow: * Increased Max_models and Max_sounds to 8192 each * Increased Max_images to 2048 - Increased entity limit: * Increased Max_edicts to 16384 - Effectively removed probability of SZ_Getspace: overflow errors: * Increased max net message size to 44800 bytes - Increased ammout of things that can be displayed on screen: * Increased Max_particles to 65536 * Increased max visible entities to 2048 - Kept compatibility with existing demos - Added MZ_BLUEBLASTER and MZ_GREENHYPERBLASTER muzzle flashes. - Added EF_BLUEBLASTER effect: generated by using both EF_BLASTER and EF_BLUEHYPERBLASTER effects flags. - Added EF_FLAG3 effect: generated by setting both EF_FLAG1 and EF_FLAG2; this is useful for 3-Team CTF. - Doesn't overwrite existing quake2.exe or ref_gl.dll (select KMQuake2 OpenGL from video menu) - MrG's enhanced shadows (gl_shadows 2), 32-bit texture, skin and HUD pic support, default to trilinear filtering, and GeForce3 water warp. - BramBo's FPS counter (set cl_drawfps to 1 to enable). - David M. Pochron's variable sized skybox (get rid of world disappearing into sky)- use "r_skydistance" cvar to set maximum visable distance - Aaron Reeves's shadowless explosions - VoiD's *.pak support