-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Fitzquake version 0.65, July 8, 2002 Filename : fitzquake065.exe Author : john fitzgibbons Email Address : johnfitz@u.washington.edu Author's Homepage : http://www.celephais.net/ Fitzquake Homepage : http://www.celephais.net/fitzquake Fitzquake is a modified glquake based on the source code released by id Software. My primary focus is fixing a lot of the rendering bugs which made glquake inferior to the software renderer. My secondary focus is adding conveniences for mappers and general users. I am also slowly adding support for new modding or mapping features such as skyboxes, fog, and colored light. While I have made extensive changes to the code, I pretty much use the same OpenGL features that the original glquake uses. Therefore, if you can run glquake, you can probably run Fitzquake. I am not finished working on this project, so bug reports and feature requests are welcome. Acknowlegements -------------------------------------------------------------------------------- id Software (quake and quake2 code) LordHavoc (code and assistance) additional thanks to: Topaz, Tomaz, Tonik, Radix, EvilTypeGuy, NightBringer, MH, Maddes, Fett, FrikaC, Craig Wills, Heffo, SmallPileOfGibs, Riot, and others for their tutorials, code, and assistance. Copyright / Permissions -------------------------------------------------------------------------------- Copyright (C) 1996-2001 Id Software, Inc. Copyright (C) 2002 John Fitzgibbons and others 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. History ================================================================================ Changes in 0.65 --------------- - gamma cvar now supported. (see cvar "gamma") - fullbrights on models now supported. - odd-sized world textures are now bilinearly resampled (instead of glquake's nearest pixel resample) - removed all fixed-size buffers for loading textures; now the only limit is the size of your memory heap (textures will still be downsampled if they are bigger than the hardware can handle) - styled lights (torch flicker, etc.) can now be disabled (see cvar "r_flatlightstyles") - sky now uses multitexture if available. - centerprints are now optionally logged to the console (see cvar "con_logcenterprint") - number of savegame slots increased to 20 (from 12) - if a map title is longer than 22 characters, it scrolls marquee-style in the statusbar. - gl_flashblend defaults to 1 again. (consistency with glquake) - gl_ztrick defaults to 1 again. (consistency with glquake) - command line gamma now defaults to 1.0 for all cards. (consistency with glquake, plus hardware gamma is better) - now checks hardware for maximum texture size. Users of later voodoo cards should be able to see large textures now. (see cvar "gl_max_size") - now shows AM/PM when scr_clock is 2 - fixed crash when starting dedicated server - fixed crash when loading too many textures. (now it throws a sys_error and quits) - fixed fitzquake-specific crash when player goes near water in a demo playback. - scr_conalpha now actually works. - keypad enter in the console works again. - optional 2x overbrightening on models. (see cvar "gl_overbright_models") - optional quake2-style noclip. (see cvar "sv_altnoclip") - new icon cvars: - con_logcenterprint: If 1, centerprint messages will be logged to the console in sp/coop. If 2, they will also be logged in deathmatch. Default 1. - gamma: Brighten or darken the screen to compensate for differences between monitors. This is now supported by using your video card's gamma support. Just like in winquake, values less than 1 are brighter and values greater than one are darker. Default 1. Notes: I have added special code so that this will work on 3dfx cards too, but i have no way to check that it works. If fitzquake crashes, your hardware gamma may be stuck at the wrong value. You can use the "display settings" control panel fix this, or you could try lordhavoc's useful "setgamma" utility (available on this page.) Also note that if texture-brightening gamma has been requested at the command line (fitzquake.exe -gamma ), harware gamma will not be used and the gamma cvar will have no effect. - gl_max_size: Now defaults to 0. If 0, textures will be as large as the hardware allows. Positive values can be used to impose a limit smaller than the hardware's reported maximum. - gl_overbright_models: If 1, models will be rendered using 2x overbrightening and will appear at roughly the same brightness as they do in software quake, which is noticably brighter than the default fitzquake / glquake appearance. I disabled this cvar by default becuase this is still a poorly supported feature -- it currently takes 2 or 3 passes to render a model when this feature is enabled, compared to only 1 pass when it is disabled. Default 0. - r_flatlightstyles: If 1, styled lights (torch flicker, etc.) will be displayed as a steady light. If 2, the peak intensity will be used instead of the average intensity. Default 0. - sv_altnoclip: If 1, enable the alternative noclip movement which resembles quake2 and is not constrained to the horizontal plane. Set to 0 to retain quake's original noclip behavior. Default 1. notes: Skins are typically larger than world textures, and the converting of textures into fullbright masks for opengl was already fairly sluggish. The result is that map load times are noticably higher in 0.65, especially the first map you load after starting quake (or after loading a mod.) This is entirely due to skin loading. With luck i will find a way to streamline the process, becuase i'm too impatient to wait an extra couple seconds to load a level. Another embarrassingly unoptimized process is the drawing of overbright models. At the moment they don't even use multitexture. I just whipped the overbrightening together in the last day, and i've been itching to release a build, so that's why it's in the state it is. That's also why the feature is disabled by default. Changes in 0.60 --------------- - graphics: - better sky projection, configurable for performance - menus and other overlays are now centered on the screen, and can optionally stretch to fit resolution. - all 2d graphics now obey gl_texturemode and all texturemode changes take effect immediately - underwater warping now resembles quake3's perspective munging, and obeys r_waterwarp - fixed frustum culling b0rked (giving HOM at certain FOV / vidsize / screensize combinations) - fixed lack of support for VP_PARALLEL_ORIENTED, VP_PARALLEL_UPRIGHT, and FACING_UPRIGHT sprites - fixed fullbrights not displayed on world/bmodels - fixed texture cache mismatch error - fixed pink edges on sprites, menu items, etc - fixed particle z-buffer bug (apparent when a particle is in front of a water surface) - fixed ugly resampling of non-power of two gfx, skins, sprites - fixed large models (shamblers, shub) dissapearing near edge of screen - fixed statusbar not visible when gl_clear = 1 - fixed r_fullbright change not immedate when gl_texsort = 0 - fixed alias models still dark when r_fullbright = 1 - fixed HOM when screen is partially underwater - fixed gunshot decals not showing up on some walls - sky and water warp now freeze when you pause, as well as lightning bolts - r_novis changes now take effect immediately, rather than when you cross a leaf boundary - removed mirror code - two particle styles, circle and square (cvar controlled) - console: - improved tab completion: - hitting tab once will display a list of possible matches and complete the line using the first match - hitting tab or shift-tab will cycle through the matches - autocomplete will now match against aliases as well as commands and cvars. - autocomplete will now complete later in the string (e.g. "bind mouse1 +att" + tab will complete '+attack') - autocomplete will even complete inside the string (e.g. "bind m +attack" + tab will complete 'mouse1' if the cursor is right after the 'm') - new key functionality: - tab -- autocomplete, cycle through multiple matches - shift-tab -- cycle backwards through multiple matches - ins -- toggle insertmode - del -- delete current character - backspace -- delete previous character - ctrl-v -- paste from windows clippboard - leftarrow -- move cursor one character left in line - rightarrow -- move cursor one character right in line. or, get one character from the previous command. - home -- move cursor to beginning of line - end -- move cursor to end of line - ctrl-pgup -- scroll up a screen at a time - ctrl-pgdn -- scroll down a screen at a time - ctrl-home -- scroll to top of console history - ctrl-end -- scroll to bottom of console history - carets indicate that you are scrolled back, like in quakeworld/quake2 - left arrow, right arrow, pgup, pgdn keys now auto-repeat - quadrupled the length of the console history - commands: - "game " to load a mod. - "reset " to reset a cvar to default. Note that this is the engine default, not the default.cfg value - resetall. resets all cvars. - mods. lists all child folders of quake directory which contain either a progs.dat or a pak file - maps. lists all addon levels available (i.e. all levels that are not in id1/*.pak) - mapname. outputs the short name of the current level (e.g. "e1m5") - cmdlist. alphabetized. 'cmdlist blah' will list only cmds that start with 'blah' - cvarlist. alphabetized. 'cvarlist blah' will list only cvars that start with 'blah' - "inc [amount]" to increment a cvar by amount. amount defaults to 1. - "toggle " to invert the value of a cvar (nonzero -> 0 and 0 -> 1) - god, noclip, notarget, and fly can now be explicitly set. example: "god 0" will disable god mode - viewpos. outputs (X,Y,Z) pitch yaw roll - "give a " now gives you armour. type depends on value - bindlist. lists all key bindings - "alias " now outputs the current command string - "unalias " to delete an alias - unaliasall. delete all aliases. - condump. dumps console to condump.txt - fog. set global fog. syntax is "fog ", "fog ", or "fog " See section on modding for details. Set density to 0 to disable fog. - "sky " to load a skybox. if skyname is "", this will turn off skybox rendering. - stuffcmds now parses the "cmdline" cvar rather than the args actually passed to the program. This is useful for loading mods dynamically, so you can edit the cmdline before execing quake.rc (which calls "stuffcmds") - cvars: - scr_stretch_menus. default 1. if 1, menus and other overlays are stretched to fill the screen - scr_conalpha. default 1. This is the opacity when the console is halfscreen. 0.6 will mimic glquake - scr_clock. default 0. if 1, game time is displayed. If 2, system time is displayed. - scr_showfps. default 0. if 1, FPS are displayed. - r_waterwarp recognized. default 1. if zero, no underwater warping will take place - r_drawflat recognized. default 0. if 1, polygons will be drawn as a solid color with no lightmap or texture - r_particles. default 1. 0 = no particles, 1 = circular particles, 2 = square particles - r_fastsky. default 0. if 1, sky will be rendered as solid color, for added performance - r_sky_quality. default 8. Higher number divides the sky more, for a smoother effect and slower performance. - r_clearcolor now supported. default 2. specify a palette index from 0 to 255. - gl_fullbrights. default 1. set to 0 to disable fullbrights - gl_farclip. default 8192. set to 4096 to mimic glquake. note that the skybox will be drawn somewhat closer than this value. - cl_maxpitch. default 90 (straight down.) set to 80 to mimic normal quake - cl_minpitch. default -90 (straight up.) set to -70 to mimic normal quake - cl_keypad. default 1. if 0, keypad keys will respond as in quake.exe (for example, pushing 'KP_END' will be the same as pushing '1') - gl_flashblend now defaults to 0. - gl_ztrick now defaults to 0. - gl_keeptjunctions now defaults to 1. (note, contrary to the name of this cvar, what is being kept is the extra polygon verts which *eliminate* tjunctions. This is a good thing, so i made it default to 1) - chase_alpha. default 1. lower values make the chasecam player model translucent. Buggy. - keyboard - keypad keys are now bindable: KP_NUMLOCK, KP_SLASH, KP_STAR, KP_MINUS, KP_HOME, KP_UPARROW, KP_PGUP, KP_PLUS, KP_LEFTARROW, KP_5, KP_RIGHTARROW, KP_END, KP_DOWNARROW, KP_PGDN, KP_ENTER, KP_INS, KP_DEL - command line: - running with -gamma at the command line will set the gamma. There is still no way to change this value in game. Default is 1.0 for 3dfx cards, 0.7 for all others - if unspecified, -conwidth now defaults to -width - modding extensions: - skyboxes (worldspawn and qc settable), currently only targa and pcx formats accepted - global fog (worldspawn and qc settable) - physics - fixed sliding around while standing on solid entities' bounding boxes (monsters, players, etc) - misc - default heapsize is now 32mb (was 16mb) - default zonesize is now 256k (was 48k)