You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 a IWADINFO lump similar to GZDoom.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 to vid_glswfb. This matches the same CVAR that is available on Mac/Linux
vid_glswfb is now exposed to the menu
r_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) Added r_line_distance_cull and r_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 as kill 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 now vid_scalemode:
0 == neighbor scaling, controlled by vid_scalefactor
1 == linear scaling, controlled by vid_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, and while 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 support UMAPINFO 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 names normal and secret can be used to define texts specific to the default exits
New MAPINFO properties: exittext = mapname, "text"... textmusic = mapname, "musicname", order textflat = mapname, flatname textpic = mapname, picname textflat and textpic are like flat and pic for clusters, one defines a tiled background, the other a fullscreen image
Setting an empty exittext 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's gameinfo 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 in MAP02, 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 projectile for testing, P_CheckMissileSpawn must also reset the projectile's sector to its new location
Fixed: When stepping through a sector portal and touching a two sided line on the opposite side, its opening must be used, regardless of the FFCF_NOFLOOR flag
Fixed struct field compiler did not check for forward declared type references that hadn't been resolved yet
Added per-actor camera FOV
Player FOV changes are now transmitted over the network using floats
Fixed Infinity and NaN floating point values formatting as string
(8-bit software) Fixed overflow for precise blend mode
Added Actor.A_SoundVolume(int slot, double volume) function to ZScript
Fixed crash caused by script number collision of ACS typed scripts
Fixed: Do not call DoEffect when predicting player movement
Fixed crash when defining a global constant which references a class member constant in its value
Fixed: For original Hexen, executing a death special should not clear it. This addresses the bell in HexDD's Badlands being rung before it is ready to use. This also removes the redundant special handling in the ZBell actor
gzdoom.pk3 has now been GPL-ized and has had many assets replaced with free GPL-conforming assets
zd_extra.pk3 is now included in the GZDoom distribution. This file contains the assets replaced in gzdoom.pk3 to their original assets, with the exception of the MBF German Shepherd, which now uses Nash's dog sprite replacement. If you are creating a commercial game, you may now simply remove zd_extra.pk3 to avoid copyright issues
Static executable assets now replaced as well. The Doom marine is now completely gone, the crash logger now shows a dying marine from FreeDoom, instead. GZDoom sports its own logo icon
Unsafe math operations removed from armv8 - they were deterministic breaking and broke original monster behavior
Added: m_showinputgrid == '-1' allows for on-screen keyboard to never show when inputting text, even when using a mouse
Shadowmap quality is now exposed to the menu
OpenGL 3.0 is now allowed for software OpenGL framebuffer (aka vid_glswfb) - The Mesa rendering library supports this just fine, and it seems it runs without trouble on known troublesome 3.0 cards
OpenGL 3.3 is now required for the modern rendering path for hardware rendering. This means that ALL OpenGL cards prior to this version will revert to the legacy rendering path; no longer using shaders or clip planes. This was done due to there being too many compatibility issues and bugs with cards and drivers from this era
Fixed playersprite calculations in softpoly
Classic software renderer now supports pixelratio mapinfo definition - allowing mappers to now create square pixel maps in all 3 renderers
Softpoly now supports dynamic lights in truecolor mode
Updated cream and olive definitions in TEXTCOLO to be more readable
Added four text colors: ice, fire, sapphire, teal
Added TID to actorlist and similar console commands output
Fixed read beyond buffer boundary during font color parsing
Fixed speed of sound and unit scale
Fixed bugs with Line_PortalSetTarget and added more portal geometry warnings
Fixed bug with portals that have been deactivated with Line_PortalSetTarget cannot be reactivated, even if given a valid target
Fixed bug with portals that were created in an inactive state (using a target line tag of 0) could never be activated
Linked portals that have been demoted to teleport portals because they do not have a return portal now emit a warning
Portals that are supposed to be traversable, but do not have back-sector now demote to visual portals and emit a warning, because nothing could ever possibly traverse them anyway.
Fixed flags when demoting interactive portals
Interactive portals demoted to visual due to not having a back-sector would not have their interactive flag properly cleared