Page 1 of 8

Quake3 1.32e

PostPosted: 2010-12-16 20:44:14
by Cyrax
This is improved client (based on early fork of ioquake3, r1160) for playing Quake 3 Arena mods, introduces many fixes and improvements comparing to last official ID's 1.32c version

Can be downloaded from ...
Permanent link to latest binary:
Sources now located in public Quake3e github repository

Current multiview patch
Multiview binaries will be not built in near future due to incoming server code changes

If you have any questions - join

List of major changes/features:
* 64-bit support
* many security, performance and bug fixes
* much improved autocompletion (map, demo, exec and other commands)
* unlagged raw(win32) mouse input
* \in_minimize - hotkey for minimize/restore main window (direct replacement for Q3Minimizer)
* reduced CPU usage due to highly optimized and secure QVM (Quake Virtual Machine)
* reduced hunk memory usage for dedicated servers
* reduced zone memory usage, improved memory management
* per-pixel dynamic lights
* fast and high-quality bloom with reflections
* fast client downloads (native + http/ftp redirection)
* ALSA support


* Added experimental "screenMap" texture support for shader stages, can be used for real-time on-hand weapon reflections
* Fixed viewport/scissor with \r_fastSky 1
* Fixed depth range for inserted dynamic lights
* Fixed wrong ping times at high uptime

* Added range checks for \sv_timeout and \sv_zombietime cvars to avoid using values that may break server functionality
* Improved server-side flood protection (\sv_floodProtect 1), might be considered as really usable now
* Removed unused \sv_showloss cvar
* Misc. bugfixes

* Faster map loading
* Do not take (blank) screenshots and print warning when minimized and FBO is not active
* Always save CPU when minimized
* Slightly optimized VBO rendering and fixed \r_showtris colors with VBO

* Added \cl_dlDirectory - to specify location to save downloads initiated by \dlmap and \downloads commands:
0 - save in current game directory
1 - save in fs_basegame (baseq3) directory
* Fixed non-working VBO in fullbright mode

* Better FPS control (client and server)
* More precise ping calculation
* Linux multimonitor improvements
* Implemented string comparisons for conditional shaders
* Fixed console messages may leak on screen with \con_notifytime 0
* Removed \username and corresponding functionality
* Botlib security fix

* Fixed missing dynamic lighting with collapsed multitexture shaders

* Win32: do not minimize/restore video mode/gamma when switching out of game window in multimonitor configurations

* Implemented \r_renderWidth and \r_renderHeight, see docs/quake3e.htm for details
* Now releasing mouse with opened console in multimonitor configurations
* Added multimonitor support for Linux, ALSA and window handling improvements
* Removed old non-FBO bloom and its variables, so only new bloom is available from now via \r_bloom:
0 - (disabled)
1 - (without hud)
2 - (with hud)
* Renamed all \r_bloom2* cvars to \r_bloom*
* Now using \timescale 0 to pause demo playback
* Removed \cl_freezeDemo as it never worked as intended
* Various bugfixes

* Backport master dns resolve timeout and dedicated \tell command support from ioq3
* Fixed precision in collision detection module (to avoid incostistency between 32 and 64-bit builds)
* Fixed stuck at "awaiting snapshot..." state when connecting to pure servers and being kicked because of unpure
* Fixed spurious "Invalid .PK3 files referenced" errors on reconnect
* Fixed dlight quality with \r_vbo 1

* Implemented correct fog fading for new dynamic lights
* Actually use only 22 and 11 cases for \s_khz
* Fix SurfIsOffscreen() with enabled VBO

* Fix non-working new dynamic lighting on some maps
* Fix VBO crash
* Another small VBO fix

* Add \r_vbo 1 - GPU-accelerated static map geometry caching, map-dependent, typically adds 5-20% FPS on modern GPUs, but even 200%+ FPS increase was observed as well as zero difference cases
* Win32: restore gamma and hide fullscreen window in case of crash

* Change [automatic] demo naming scheme from demoXXXX to demo-YYYYMMDD-HHmmSS[-NNN]
* Add \s_device cvar to specify output sound device for ALSA
* Clear key states on focus change/vid_restart in linux
* Slight bloom effect performance increase
* Fix \r_anaglyphMode rendering with \r_fbo
* Fix texture numbers generation

* Fix non-working \r_ignorehwgamma 1 with \r_fbo 1
* Use RGBA16 instead of RGBA12 textures for \r_hdr 1 - should fix errors on nvidia cards
* Fix some drivers reporting invalid preferred texture format
* Print detailed format of used FBO

* Escape always closes console
* Fix sound muted when minimized with \s_muteWhenMinimized 0
* Fix sounds leaks when muted
* Fix unfocused/minimized window state adding delays during video capture
* No more zone allocation errors, no need to tune \com_zoneMegs at all because of new multi-segment allocator
* Reduce \com_zoneMegs from 25 to 9 by default
* Fix bot routing cache growing to com_zoneMegs-1 (and potentially unlimited with new multi-segment allocator), use explicit 2MB limit which is enough even for route-heavy maps like q3dm12 with 60+ bots
* Increase MIN_DEDICATED_COMHUNKMEGS from 1 to 8 because common snapshot storage always uses 6.7MB i.e. there is no sense is smaller values
* Fix dynamic lights not working well with AMD drivers
* Add \r_hdr - use high dynamic range pixel format for framebuffers, improves visual quality
* Many bloom changes:
add \r_bloom2_passes [1..8] - number of downscaled textures used for final bloom composition
add \r_bloom2_filter_size [1..20]- number of texture lookups for blur
add \r_bloom2_intensity - scale factor applied to final bloom texture before adding to main frame
add \r_bloom2_blend_base - to select from which hi-level buffer start blending final bloom texture, default is 1 (i.e. do not blend first full-resolution intensity buffer)
add \r_bloom2_threshold_mode to specify color extraction condition:
    0 - (r|g|b) >= threshold
    1 - (r+g+b)/2 >= threshold
    2 - luminosity(r,g,b) >= threshold
add \r_bloom2_modulate to modify extracted bloom intensity:
    0 - do not modulate
    1 - modulate by itself
    2 - modulate by luminosity
always use hdr buffers for bloom
add \r_bloom2_reflection - bloom lens reflection effect, negative values will apply only lens effect and disable bloom
\r_bloom 3 now doesn't affect console
fix bloom intensity extractor
remove \r_bloom2_cap
* Remove old platform-dependent multisample setup code, leave only fbo version
* Allow changing \r_ext_multisample and \r_hdr on the fly (in \r_fbo 1 mode)
* Allow more than 32 surfaces in skin files
* Remove unused \r_ext_gamma_control
* Fix OpenGL 1.4 version detection
* Do light pass right before SS_UNDERWATER if possible
* Add \video-pipe command - redirect captured video stream to ffmpeg input pipe and save as mp4
you need to install ffmpeg package (on linux) or put ffmpeg binary near quake3e executable (on windows)
* Add \cl_aviPipeFormat - encoder parameters used for \video-pipe, see ffmpeg documentation for details

* Add \screenshotBMP command
* Add \screenshotBMP clipboard command - to copy screenshot in clipboard, works only in windows atm
* Add some hardcoded key binds:
    PrintScreen - "\screenshotBMP clipboard"
    Shift+PrintScreen - "\screenshotBMP"
* Add dedicated \r_nomip cvar instead of negative \r_picmip values to apply picmip only on worldspawn textures
as negative \r_picmip values is breaking cross-engine config compatibility
* Fix \r_greyscale validation
* Add descriptions for some renderer cvars
* Accept only HTTP(S)/FTP(S) protocols for download redirection

* Add \s_muteWhenUnfocused and \s_muteWhenMinimized cvars
* Sound muting now works during video recording
* Fix memory allocation error caused by listing large directories

* Package now shipped with baseq3a patch (baseq3/pak8a.pk3)
* Clear key states on disconnect
* Clean some server cvars on server shutdown
* Fix crash in TeamArena
* Fix main menu recorded in video after disconnect
* Fix slight sound corruption during video recording
* Fix MSVC compilation from paths that contains whitespace
* Rework cvar validation
* Range check \cl_packetdup cvar
* Detect and skip files with unsupported compression method inside pk3 archives

* Call glFinish() only if requested by r_finish
* Fix sound stutter caused by filesystem operations
* Verbose bot kick message on map change
* Filter "connect" packet length to avoid overflows in dynamic huffman decoder
* Improve overflow handling in MSG_ReadBits/MSG_WriteBits
* Warn about userinfo and pure checksums truncation on client-side
* Do not send more than MAX_PACKETLEN (1400 bytes) in single statusResponse packet
* Read sv_pure directly from systeminfo, not local cvar
* Do not set following local cvars from remote userinfo:
sv_pure, sv_serverid, sv_paks, sv_pakNames, sv_referencedPaks, sv_referencedPakNames
* ioq3: Fix friction in AAS_ClientMovementPrediction ( ground and water friction were reversed )
* Add trap_R_AddLinearLightToScene - linear light source, suitable for rail trails, lightsabers etc.
can be resolved via extension interface
* Do not issue late cull tests on modern gfx hardware or for linear lights - as CPU may bottleneck in these cases
* Fix FreeBSD compilation (partially)
* Fix some errors reported by clang' undefined behavior sanitizer
* Move \r_greyscale functionality to FBO/ARB shaders so now it requires \r_fbo 1, on other side:
- you can change \r_greyscale on the fly
- now it applies to everything including cinematics
* Parse systeminfo as big string on client side, rest of strings - as normal strings
* Add \systeminfo and \serverinfo commands on client side
* Read systeminfo and serverinfo from corresponding configstrings on server side
* Add "tcGen environment firstPerson" shader stage parameter - fixes non-working environment mapping for first-person (on-hand) models
* Increase shader loading speed
* Add complex token parser
* Add experimental conditional shader stages, see docs/quake3e.htm for details

* Experimental: unconditionally complete \callvote command and its arguments for all mods
* Print screenshot filename after executing render commands so it won't appear on screenshot itself
* Add engine extension system, remove old r_floatfix hack
* Allow multiple mirror views to be rendered
* Fix non-working depth/stencil tests for extra refdefs in \r_bloom 2 mode
* Fix crash caused by window movements during map load

full changelog >>//www

Re: Quake3 1.32e

PostPosted: 2011-02-17 15:17:35
by LeopolD
As mentioned in the ESR thread,
./quake3e +connect
puts quake3e in an infinite loop while loading the map, like constantly doing a vid_restart.
Tested on 2 OSP servers.

System is OpenSuSE 11.3, i386 with ATI drivers (fglrx)

Oh, and don't forget to release the source before the GPL-zealots get mad at you:P

Re: Quake3 1.32e

PostPosted: 2011-02-18 09:17:54
by Cyrax
Thanks for report ;) Its OSP-specific behavior, however fix is ready, updated zip will be posted a bit later with other small fixes.
Source file named quake3-1.32e-src.7z and located in the same directory

Re: Quake3 1.32e

PostPosted: 2011-02-18 13:37:07
by LeopolD
Cool, thx. Stupid me ofc did not check against other mods, shame on me:)

Re: Quake3 1.32e

PostPosted: 2011-02-18 19:53:04
by Cyrax
Archive updated, needs your feedback :)

Re: Quake3 1.32e

PostPosted: 2011-02-18 21:14:06
by LeopolD
Hmm, link still seems to point to the old one (md5sum is the same). Source, however, is there.
But maybe I'm too tired, will try again tomorrow:)

Re: Quake3 1.32e

PostPosted: 2011-02-18 21:22:52
by LeopolD
Compiled it, seems to be fixed, thx:D

Re: Quake3 1.32e

PostPosted: 2011-02-22 20:12:10
by LeopolD
I think I found another one. When started with:
./quake3e +set fs_game cpma
(latest release of CPMA) and then going to the demo browser via menu, only the pk3-ed demos are shown (four.dm_68 (baseq3), apheleon_cpm15.dm_68 (cpma)) and a few others.
So it seems to not look at baseq3/demos on the filesystem. ioquake3 works.
Again Linux x86 32bit as above.

Re: Quake3 1.32e

PostPosted: 2011-02-23 19:07:06
by Cyrax
LeopolD wrote:So it seems to not look at baseq3/demos on the filesystem.
Thanks for feedback, fixed :) Also added \r_mode -2 - sets current desktop mode (just like in QL)

Re: Quake3 1.32e

PostPosted: 2011-02-24 20:23:40
by LeopolD
Cyrax wrote:Thanks for report ;) Its OSP-specific behavior, however fix is ready, updated zip will be posted a bit later with other small fixes.
Source file named quake3-1.32e-src.7z and located in the same directory

Arrgh, didn't test proberly. Now the vid_restart (at least not looping:) happens after warmup count down is finished.