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

outdated - 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


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