Releases: ZDoom/gzdoom
GZDoom 3.2.4
This is yet another point release for GZDoom, which addresses a serious flaw that has appeared since version 3.0.0. Everyone is urged to upgrade ASAP, and no support will be provided for any version prior to this once the binaries for all platforms are available.
Notable features since 3.2.3
- Added
DMG_NO_PAIN
forDamageMobj()
- Fixed bright sprites in sectors with Doom 64 lighting
- Added free space margin aka safe frame for automap
- Fixed rotating sky & model smoothness
- Implemented
win_borderless
CVAR for fake fullscreen in Windows
More-complete changelog since 3.2.3
- Unified implementation of ’directory as resource file' for POSIX targets
- Fixed sky scrolling is now stored in a higher precision data structure; is now smoother than in 3.2.3
- Fixed model rotating is now calculated in a higher precision data structure; is now smoother than in 3.2.3
- Fixed directory creation for POSIX targets
- Fixed backslashes in MD3 skin names
- Fixed overbright screenshots with hardware gamma off
- Increased maximum particle lifespan
- Fixed
screen->FrameTime
should use an adjusted frame start time - Implemented
win_borderless
CVAR for fake fullscreen in Windows - Fixed loading of external DeHackEd patches
- Fixed inconsistent angle of spawned leaves
- Fixed English localization issues
- Added empty space margin aka safe frame for automap
- Repaired the video scaling code in OpenGL for
vid_scalemode
0 andvid_scalefactor
not equal to 1.0 - Fixed crash when loading saved game with missing ACS module
- Added null check for probe in
SectorAction.OnDestroy()
- Fixed error check when saving GL nodes
- Fixed
AActor::UnlinkFromWorld()
must also destroy all portal link nodes for the calling actor - Do not allow outside access to the variable storing the CCMD for
OptionMenuItemCommand
- Added whitelist for
DoCommand
ZScript command - Stop demo recording after ending game with menu_endgame CCMD
- Fixed bright sprites in sectors with Doom 64 lighting
- Added
DMG_NO_PAIN
forDamageMobj()
GZDoom 3.2.3
Notable features since 3.2.1
- New timer code, GZDoom now appears a lot smoother in interpolated frames
- More bugfixes, including some for non-Windows platforms
- Improve speed for ARMv7 processors by setting tuning options to the Cortex-a7 CPU (for Raspberry Pi 2)
- Several ZScript extensions and fixes
- Improved OpenGL profile selection on Linux
- Rather than giving version info, GZDoom now displays the name of the game you are currently playing in the window title. This can be disabled via i_friendlywindowtitle
- Implemented unicode handling in some functions
- Improved handling of temporary files on TiMidity++
- Added latch keyword to CVARINFO
- Added new grenade and ice shard sprites and removed non-GPL copyrighted assets
g3.2.2
- This is version 3.2.2
GZDoom 3.2.1
Changes from 3.2.0:
- Fixed applying of height argument in
A_Fire()
function - Removed all code needed to support macOS earlier than 10.7 Lion
- Fixed crash on attempt to register IDs for undefined class
- Added
vid_cropaspect
. This CVAR turnsvid_aspect
into a letterboxing function that will crop the unused sides of the screen away, instead of stretching it. Requires one of the non-legacy OpenGL framebuffers to work - Removed
vid_tft
andvid_nowidescreen
and associated menu option. Their functionality was superseded and extended byvid_aspect
set to 3 (which has the same effect as setting both to true anyhow), and it was mostly just redundant - Fixed: don't interpolate view movements if a key press didn't result in any changes
- Add default
gzdoom.pk3
directory to File.Search paths on *nix systems - Fixed: inverted color order for post-process textures to BGRA to correctly match the internal texture standard in GZDoom
- Added ability to change slider color using mapinfo's gameinfo
- Added
startuptype
toIWADINFO
, allowing to change the game startup screen with custom iwads - Fixed applying of compatibility settings for IWADs
- Fixed a few cases when IWAD was checked by hardcoded index
- Fixed arch-vile bleeding when damaging target
g3.3pre
- bump for 3.3pre
GZDoom 3.2.0
Major release highlights
zd_extra.pk3
splits off copyright infringing assets, allowing game makers to delete this file and distribute a fully GPL-conforming copy of GZDoom without further changes- Custom IWAD support
- Video render scaling (play in 320x200, or any custom resolution)
- Custom screen shader support
MENUDEF
replacements are now merged, allowing GZDoom to easily present new menu features in older mods that include one- Tons of fixes and improvements
Changes from 3.1.0
- Merged with QZDoom 2.0.0
- "Software" light mode (in OpenGL) now supports radial fog setting
- Unsloped Flats can now use non-power-2 textures in software mode
- Menus now merge in with a mod's custom
MENUDEF
when it provides menu replacements. This is due to older mods' menus becoming very quickly outdated - Rise of the Wool Ball is now supported as an IWAD
- Custom IWAD support is now available. A custom IWAD file must have the extension
ipk3
/iwad
, and contain aIWADINFO
lump similar toGZDoom.pk3
's with only this IWAD's information and no file list - "Classic Transparency" option - turn off ZDoom's additive transparency effects for the original game resources.
- Better non-accelerated buffer support for software rendering - when
vid_hw2d
is disabled or otherwise using an unaccelerated framebuffer, stencils and on-screen objects now show up better - (Windows only)
vid_used3d
is now renamed tovid_glswfb
. This matches the same CVAR that is available on Mac/Linux vid_glswfb
is now exposed to the menur_visibility
now affects GL's Software lightmode as well as Softpoly.- Player Sprite overlays now support the
PSPF_MIRROR
flag which flips the sprite horizontally across the entire screen - Menu Blurring option - when running in OpenGL mode, a mod can now blur the screen when the menu is active
- Unfriendly players - when a
PlayerPawn
object has-FRIENDLY
set, they become a playable monster and interact with the game world as one. Additionally, they become deathmatch opponents, capable of dealing and taking damage from other players - Custom Screen Shaders - mods are now able to include their own post processing shaders, insertable before the bloom pass (
beforebloom
), before 2D objects are drawn (scene
), and after everything is on the screen (screen
) vid_saturation
saturates/desaturates the screen - improves the appearance of the screen when using certain brightness/gamma settings as well as allowing the user to play in 'black and white' (similar to the display control panel option). (Requires post-processing shaders to be active and hardware gamma must be disabled)
Changes since QZDoom 2.0.0
r_visibility
now works in OpenGL (software lightmode only) and SoftPoly
(Software only) Addedr_line_distance_cull
andr_sprite_distance_cull
CVARs that cull lines or sprites beyond the specified distance
(OpenGL only) Added 'enabled' property for post-process shaders, to automatically enable them without the assistance of ZScript- Enable Core Profile on macOS only when OpenGL 3.3 is available
- Use multiple threads for xBRZ upscaling
- Added new "sv_damagefactor*" variables
sv_damagefactorplayer
: Scales damage for player
sv_damagefactorfriendly
: Scales damage for all other+FRIENDLY
objects
sv_damagefactormobj
: Scales damage for everything else including monsters and decorations - Added per-class think time profiling tool
- Fixed crash when drawing untranslated font
- Fixed applying of color to untranslated fonts in hardware renderer
- Added
kill baddies
cheat - does the same thing askill monsters
only it ignores friendly monsters - Changed
gl_ssao_portals
default to 1 - (OpenGL hardware/software framebuffer only) Revamped
vid_max_*
variables. Originally debug variables, they've been redesigned to allow screen resizing based on aesthetics
The variable controlling the entire system is nowvid_scalemode
:
0 == neighbor scaling, controlled byvid_scalefactor
1 == linear scaling, controlled byvid_scalefactor
2 == 320x200, neighbor scaled
3 == 640x400, neighbor scaled
4 == 1280x800, linear scaled vid_scalefactor
added for modes 0 and 1, which changes the render resolution to any arbitrary amount the user specifies >0, and resizes the screen to that amount. Valid values are >0 to <=2.0, where values above 1.0 are super-sampled to the screen (allowing up to SSAAx4 super-resolution). Please note that due to the way this is implemented, screenshots generated using this system will be in their original render resolution, so a super-sampled screenshot will actually come out in higher resolution
Menu options for this system have been added
Please note that this system is not available in the DirectDraw/Direct3D software framebuffers. For those, ZDoom's old -2 and -4 command-line parameters still work. (For now)- Post-process
GLDEFS
parsing is more strict than QZDoom's, and will error out if invalid keywords are used - Lemon parser now uses dynamic stack size comparable to C++'s, allowing deeper nesting of
if
,for
, andwhile
loops in ZScript - Fixed dynamic light clamping in true-color software renderer
- BSP node cache will now no longer write to NTFS alternate streams. In Linux/Mac systems, this means said filenames will no longer contain a colon.
- The classic software renderer now supports use of the
maxviewpitch
CVAR - it still cannot pan to a full 90 degrees, though (sorry folks) ;) - (Source code) Some OpenBSD support is now in the source. Please note that this is currently HUGELY unsupported by the dev team and comes as a user contribution. (From our perspective: 'here be dragons, tread ye carefully')
- Models now have normals in the hardware renderer, allowing them to be affected by dynamic lights and SSAO
sv_singleplayerrespawn
changed from a 'latching' CVAR to a 'cheat' CVAR using the new cheat CVAR system. This means the CVAR can now be enabled dynamically for single player games, however, it is still disabled when cheats are- Added render visibility flags - will selectively make objects disappear on the screen when certain rendering feature criteria is not met. The goal of this is to allow two different objects to appear on the screen based on renderer type, as a deterministic-supporting substitution for the oft-requested "moar reliable vid_renderer checks plzplz" - this feature is also intentionally designed to be future proof (i.e. if you use this feature MODS WON'T BREAK when new features are introduced in the associated renderers!)
- Added
r_showcaps
CCMD to show which render flags are currently active in the renderer - Maximized window state is now saved between sessions as well as when
swtruecolor
is changed - Support binding textures for custom PP shaders
- Added per-level exit texts independent of the current cluster
This is mainly to supportUMAPINFO
which does not have clusters but has been extended to define separate exit texts for each target map that can be reached from a given map
Special namesnormal
andsecret
can be used to define texts specific to the default exits
NewMAPINFO
properties:
exittext = mapname, "text"...
textmusic = mapname, "musicname", order
textflat = mapname, flatname
textpic = mapname, picname
textflat
andtextpic
are likeflat
andpic
for clusters, one defines a tiled background, the other a fullscreen image
Setting an emptyexittext
will disable a cluster-based text screen that may apply to the given map - TiMidity++ fixes for Linux
- Significantly improve shadowmap light performance for faces with a large number of lights but where only a few applies to each individual fragment
- More classic IWAD compatibility fixes for missing textures
- Fixed unset inflictor in
WorldThingDamaged
event - Removed tag 0 check for 3D floors because as seems to be par for course in Doom modding, some people actually exploited this bug.
- Handle state label resolution in a non-actor context more gracefully
- Addressed incorrect ACS printbold implementation: For native Hexen maps it will now be correct, but all others will have to set a flag in
MAPINFO
'sgameinfo
section to avoid problems with numerous ZDoom maps depending on the incorrect implementation. - Reset interpolation coordinates for all actors before the current thinking turn instead of at the start of each actor's own Tick function so that indirect actor movement gets properly interpolated.
- Fixed color for untranslated font was missing its alpha channel.
- Print a warning if a decal definition cannot find an animator. This is important because
DECALDEF
cannot tentatively find animators declared after the decal. - Let
PlayerPawn.ForwardThrust()
use its angle parameter. - Fixed destination-less line portal should be ignored by the sight checking code.
- Added a user reserved range of statnums from 70-90
- Fixed
FastProjectile
's movement code was missing a portal check. - Softpoly now uses a zbuffer, similar to hardware rendering
- Added sprite adjustment to softpoly
- Fixed camera rotation from FraggleScript
- Fixed crash when morph item is used from ACS
- Fixed incorrect damage flags' checks for
A_Kill...()
functions - More softpoly fixes
- Softpoly now supports sloped 3D floors
- Fixed handling of default arguments in
Actor.GiveSecret()
- In software rendering, lights now check if they are too far above or below a certain plane before rendering. An example of this is in
unloved.pk3
where inMAP02
, some lights are above the ceiling - Fixed VM abort with null activator for
SecretTrigger
object - Fixed changing
uiscale
did not always update the screen size properly - Game will now print the version at the start of the log
- Properly handle VM abort exception when occurred in menu
- Added GOG path for Doom 3: BFG Edition
- Fixed: When offsetting the project...
GZDoom 3.1.0
Although this is mainly a bugfix release there are a few notable new features:
- Support of Strife Veteran Edition's extended single player campaign
- Better handling of stereo sounds
- PlayerThink code has been exported to scripting
- On Windows and macOS the system's MIDI synth is no longer the default. Instead, FluidSynth and a small soundfont are now included to provide better default playback quality.
Notable bugfixes:
- Translucency on weapon sprites works properly
- Some layout fixes with SBARINFO based status bars
- Fixed par time display on level summary screen
- Fixed loop tag checks for Ogg files
GZDoom 3.0.1
This is a bugfix release which addresses the following:
- Potential crash when changing the render output in-game and continue playing
- Crash in the software renderer with camera textures
- For 32 bit Windows libsndfile.dll is reverted to the old version due to some incompatibility with the newer one
- Cleanup of dynamic light options
GZDoom 3.0.0
This is the first version that merges all software rendering features from QZDoom.
In addition this is the first release under the GPL v3.
To comply with the GPL, FModEx had to be removed as a sound backend, so this version will only support OpenAL.
New features aside from merging with QZDoom include:
- Scriptable status bars
- Scriptable level status screens
- Static constant arrays in classes
- Support for Doom64-style lighting in the software renderer, with the exception of gradients
- Optimization of the scripting VM by removing some always active debug support
Please note that starting with this version the 32 bit Windows version will require support for SSE2, because the true color software renderer cannot work without it. As a result it can no longer be used on Pentium 3's and older.
GZDoom 2.4.0
New render features
- Doom64-style color properties for sectors (i.e. different color settings for floor, ceiling, walls and sprites)
New scripting features
- Script versioning to account for syntax differences between versions
- Fully scripted inventory system
- Fully scripted menu system
- Scripted event system
- Printf-style string formatting function for ZScript
- Dynamic arrays for ZScript
- More access to map data from ZScript
- User definable actor properties
- Separation of scripts into UI and Play parts to have better access control
- Exported obituary code to ZScript to allow more flexibility when handling special cases
SectorTagIterator
andLineIDIterator
classes to search for tags
Other
- Added GetActorFloorTexture and GetActorFloorTerrain ACS functions
- Added new PRINTNAME_ constants for retrieving next and secret next level in ACS
- Added per-sector settable fog density
- Fixed handling of sector action things with special trigger semantics
- True color fonts can be defined in FONTDEFS
- added a BOUNCE_NotOnShootables flag to address an old design bug in the bouncing system
- added StealthAlpha actor property for defining a minimum visibility value of a stealth monster
... and many more smaller additions and fixes.