GZDoom 4.6.0 released

News about ZDoom, its child ports, or any closely related projects.
[ZDoom Home] [Documentation (Wiki)] [Official News] [Downloads] [Discord]
[🔎 Google This Site]

[Tap Here for Mobile-Friendly Forums]

Moderator: GZDoom Developers

GZDoom 4.6.0 released

Postby Graf Zahl » Sat May 22, 2021 8:48 am

Notice: The survey is currently closed. GZDoom 4.6.0 does not include the survey code that 4.2.0 did.

Please do not post bugs or issues in release threads! Click here

Download (OpenGL 3.3 and higher for hardware rendering, Direct3D 9 or later for software rendering)

  • Widescreen graphics for Heretic and Hexen
  • Sprite shadows like in the Build engine. Both in software and hardware renderer.
  • 16 bit channel PNG files can be read
  • DEHEXTRA working properly now
  • various enhancements and fixes for ZScript.

  • Account for portals when spawning missiles in A_FireBullets/A_CustomBulletAttack
  • fixed return type of Actor.GetCVarString()
  • update widescreen submodule
  • strip trailing spaces off the lines for intermission texts.
  • gave the Raven invulnerability items the BIGPOWERUP flag to ensure proper respawning behavior.
  • change switch checking back to vanilla order.
  • use stb-image to handle PNGs with 16 bit color channels.
  • do not use M_EPI1 and M_EPI2 in any Doom 2 context.
  • fixed: explicit float to int casts should not emit truncation warnings.
  • tweaked Hexen's weapon pieces so they do not floatbob into the floor with the hardware renderer.
  • moved the handling of ending PowerWeaponLevel2 into PlayerPawn.Tick and restored the immediate weapon switch.
  • never run the shader timer on the 0th frame. fixes this bug: viewtopic.php?f=2&t=62693
  • backend update from Raze.
  • fixed time positioning on stat screen.
  • pick the proper dot for cutting off the extension in ExtractFileBase.
  • added proper string labels for Doom 2 episodes.
  • let the CSV parser for the string table handle hex escapes.
  • added a few missing statusbar constants-
  • don't display keys on the HUD in deathmatch.
  • fixed A_CheckTerrain's check for instant death sectors. This was still checking the sector special even though this had been reactored 5 years ago.
  • fixed: The PrisonPass's TryPickup method did not properly report successful pickup.
  • make the title music only play once, unless a real demo is successfully played.
  • SDL: Report Vulkan initialization errors
  • give the first 16 DEHEXTRA states proper content.
  • make `DI_ALPHAMAPPED` change the style to `STYLE_Shaded` in the status bar drawer
  • missing key scan code constants added.
  • Screen.ClearScreen and Screen.SetScreenFade script exports.
  • PushV function for int and string arrays.
  • change `vid_allowtrueultrawide` - -1 allows for any arbitrary ratio for hud aspects, 0 changed to old behavior (max 16:9), 1 changed to old behavior except at 21:9, 1 is now the default.
  • `vid_allowtrueultrawide` is now placed in game-specific config, instead of global.
  • Don't print the weapon tag if the game is paused
  • Allow settable render styles for status bar drawing functions DrawTexture, DrawImage and DrawString
  • Made OptionMenuSliderBase::IsGrayed virtual
  • Default Heretic's, Hexen's and Strife's default screen wipe styles to match their original counterparts.
  • Add sprite shadows for the hardware renderer
  • Add sprite shadows for the software renderer
  • Expose level_info_t to scripting + helper functions.
  • Allow ACS SpawnDecal zoffset and distance args to be fixed point
  • Add Polyobj_StopSound special
  • handle empty command names when getting key binds
  • Don't warn about UDMF comments or user fields
  • allow AddPoly for 2D drawer without index buffer, treating the data as a list of triangles.
  • filter out macOS resource fork data when loading Zips.
  • added a A_SetFriendly function
  • remove Vulkan button on startup if Vulkan compilation is disabled
  • Fix crash with fog and software light modes.
  • Removed depthClamp requirement (note: portals will not render correctly on such devices)
  • set libADL and libOPN bank settings (only) to game specific
  • A software implementation for gamma, brightness, contrast and saturation effects on SoftPoly. Based on original code by @dpjudas, thanks for the code.
  • Bug fix in invulnerability in Doom Software Render Mode and True Color SW Render in SoftPoly.
  • Don't let the game start if the saved game passed to -loadgame is invalid. the
  • improved multithreaded rendering for the software renderer.
  • Make i_timescale cvar virtual. Changing i_timescale in a netgame would cause its callback to recurse
  • into itself infinitely. CVAR_VIRTUAL prevents this.
  • Fixed crash with voodoo dolls in MP after players quit the game.
  • account for KEEPDEPLETED flag when destroying items with InterHubAmount of 0 upon leaving a level
  • Fix camera texture aspect ratio in hardware renderer
  • Add missing tag for Strife's KneelingGuy.
  • New letter И for Strife
  • Add GetCharacterName() to retrieve an NPC's name as defined in its dialogue script, if it exists. Otherwise it will just return the same output as GetTag().
  • Add tag properties to Strife's enemies.
  • removed config updates for pre-GZDoom versions of ZDoom.
  • adapt mod_dumb_mastervolume to the increased default volume in ZMusic.
  • do not sort level names in the statistics output when saving. Instead do this when creating the data to avoid trashing manual edits. The old sorter resorted all data loaded from the old file as well.
  • print a message if saving the statistics file fails.
  • implemented replay gain calculation and management. This is done entirely on the streamed sound data, unlike the old relative volume which uses the backend's volume setting.
  • Show subtitles for the Entity's greeting lines in Strife.
  • Fix crash with wind effect on special water sectors.
  • Add SetSubtitleNumber(int num, str sound) ACS function. Works exactly like its ZScript counterpart. The activator of the script must be a player.
  • bumped CMake version to 3.1.0 in all projects to reduce warning spam in recent versions.
  • escape double quotes in Cocoa IWAD picker's extra arguments
  • Fix random crash when travelling between hub maps in multiplayer.
  • ported Eternity's Line_QuickPortal
  • fixed memory leak in UDMF loader.
  • DrawRotated function for status bar.
  • Fix portals not working in softpoly (#1323)
  • Add a null check in PlayerPawn::CheckFOV
  • added m_swapbuttons CVAR for the Windows RawInput and DirectInput backends. The problem I discovered is that these backends do not respect the GUI-side system setting for swapping the buttons, so this needs to be done in-application so that swapped buttons can behave the same in the menu and the game.
  • Don't make the switch that reveals the computer core in Strife MAP15 to be repeatable.
  • fix: MBF's A_Spawn DEH codepointer should use misc2 as spawnheight, not distance
  • adjust defaults for DEHEXTRA states to match other ports:
  • Properly abort the program if the SDL window can't be created at all (#1296)
  • Dynamic number of models per frame instead of a hard limit of four. (#1298)
  • Made Strife NPC's dialog voice audible for all players.
  • Fix player not being able to talk to a Strife NPC during netplay, if another player talked to that NPC first. (#1312)
  • restored sound-related developer messages
  • SoftPoly: Fixed the md3 models, you can now correctly display the frame of the model, in addition, interpolation is added to the model.
  • Add missing ZScript constants for the Strife targeter PSprite layers
  • SoftPoly: Fixed the screen turning white with invulnerability sphere in Doom and in Heretic avoiding color errors in some pixels when activating the "ring of invincibility". (#1307)
  • Added a new intrinsic for class pointers to check if the class is abstract (#1308)
  • remove doom2 from the wadsmoosh filter in iwadinfo
  • Fixed sprites were not affected by dynamic lights on SoftPoly.
  • fixed missing 'player left the game' message
  • Softpoiy: Fix black wall sprites
  • Softpoiy: Fix line portal clipping bug
  • add `-noautoexec` command line parameter to disable the execution of autoexec.cfg files
  • add Pi and some other constants to ZScript (#1304)
  • Fix Additive Shaded renderstyle for UDMF things bugged
  • backend update from Raze.
  • another wallsprite crash fix: viewtopic.php?f=56&t=71450
  • Add support for zero size buffers as the hwrenderer uses that!
  • Fix crash when trying to open unreadable IWAD files
  • Fix crash when following symlinks to nonexistent IWAD files
  • fixed incorrect extension of overridden function prototype. Prototype of overridden function with optional argument(s) missing could extend unrelated prototype of previously defined function when their arguments and return value(s) match
  • Fix dancing sprites regression
  • fixed uninitialized global rolloff in sound engine. Depending on SNDINFO definitions, type of global rolloff could left uninitialized, and linear rolloff might be treated as logarithmic
  • fixed: FTextureManager::ReplaceTexture did not calculate the upscale flags.
  • add "hidepartimes" MAPINFO/GameInfo property
  • Hitscan attacks can now hit SPECTRAL actors if the hitscan puff has SPECTRAL flag set
  • Add progress bar for SDL backend
  • Fixed "Messages ON" not being printed.
  • added initialization of linked sectors. Resizing of linked sectors arrays during serialization could lead to processing of pointers to junk data
  • Fixed nodes were not rebuilt after loading broken extended nodes.
  • vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27
  • screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false
  • Fix ScriptCall missing default arguments
  • Add alternate "Full" mode for PowerIronFeet that prevents leaky damage.
  • Fix ALWAYSFAST actor flag.
  • Side By Side Letterbox Display mode (#1255)
  • add sv_instantreaction dmflag
  • Fixed: Monster reaction time was always zero with fast monsters and not just on nightmare.
  • fixed incorrect sound definition for DSMANATK in Dehacked.
  • Fix the "Max" constant being incorrect for unsigned int types.
  • add new detection hashes for newer versions of nerve.wad
  • update $musicalias to allow iwad remapping when used from game_support.pk3
  • add music aliases for the unity version of Doom/Doom2 for digitized game soundtrack
  • Modify Shape2D so that it manages its own vertex buffer rather than using the draw list (#1249)
  • add support for DEHEXTRA's extended sound range (#1258)
  • Fix IfItem amount not being checked (#1262)
  • Fix MAPINFO definitions for "enableskyboxao"
  • Always allow skyboxes by default
  • Add option to disable skyboxes through mapinfo
  • Disable AO for skybox portals (can be forced back with MAPINFO flag).
  • Add autodetection for GOG's releases of Heretic and Hexen. (#1259)
  • Fix model normals being distorted by MODELDEF scaling.
  • added check for M_IsAnimated to TryRunTics.
  • added the option to look for music by using a truncated 8-character variant of the given name.
  • fixed: strbin did not check for a terminating 0-character right after an escaping backslash.
  • allow targeting ARM64 on Windows
  • fix keyboard repeat events not being sent to menus if TranslateKeyboardEvents is true
  • Fixed: RandomSpawner spawning another RandomSpawner spawning a missile could result in the second RandomSpawner being erroneously destroyed.
  • Simplify manual sound rolloff handling
  • change all optional game support archive loaders to scan the program folder
  • allow drawing text using fonts with an external translation
  • fixed: IceGuyFX2 set its owner too late.
  • implement slider background color change - viewtopic.php?f=15&t=70616
  • Fixed: If AbsorbDamage resulted in an item having been destroyed, the following items in the inventory chain were not processed.
  • Fixed weapon bob jittering.
  • fix missing SKILLP property in zscript code
  • do not keep impact decal that fails to stick to a wall
  • fixed inverted menu setting for 'Disable menu clean scaling'
  • fixed crash when drawing status bar on automap
  • fixed issue with parsing useowncoloradd UDMF flags
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Joined: 19 Jul 2003
Location: Germany

Re: GZDoom 4.6.0 released

Postby Nash » Sat May 22, 2021 8:51 am

Enjoy your fully-widescreen-ified Heretic and Hexen, and sprite shadows, everyone! :D

And solid release as usual, Graf and the rest of the team.
Last edited by Nash on Sat May 22, 2021 10:22 am, edited 1 time in total.
User avatar
AKA Nash Muhandes! Twitter/Facebook/Youtube: nashmuhandes
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes

Re: GZDoom 4.6.0 released

Postby Major Cooke » Sat May 22, 2021 8:55 am

This includes the ability to add in rotated status bar elements, in particular DrawTexture/ImageRotated, so this is very nice and welcome.
User avatar
Major Cooke
QZDoom Maintenance Team
Joined: 28 Jan 2007

Re: GZDoom 4.6.0 released

Postby TheOxingey » Sat May 22, 2021 8:56 am

omg, this is just cool
User avatar
Joined: 03 Aug 2020
Discord: TheOxingey#2689
Operating System: Windows Vista/7/2008 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: ATI/AMD (Legacy GZDoom)

Re: GZDoom 4.6.0 released

Postby Rachael » Sat May 22, 2021 8:57 am

Enjoy your GZFoom!
User avatar
^ walking stack of unfinished projects ^
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle

Re: GZDoom 4.6.0 released

Postby Enjay » Sat May 22, 2021 8:58 am

Thank you very much for this release.

I don't see it mentioned but I think I'm right in saying that this version also uses the updated OpenAL dll that is better at avoiding harsh "clicks" on overlapping sounds such as rapid instances of multiple pickups.
User avatar
Everyone is a moon, and has a dark side which he never shows to anybody. Twain
Joined: 15 Jul 2003
Location: Scotland

Re: GZDoom 4.6.0 released

Postby NeuralStunner » Sat May 22, 2021 9:01 am

Nash wrote:Enjoy your fully-widescreen-ified Heretic and Hexen, everyone! :D
User avatar
Not "Neutral"
Joined: 21 Jul 2009
Location: capital N, capital S, no space
Discord: NeuralStunner#4201
Operating System: Windows Vista/7/2008 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: GZDoom 4.6.0 released

Postby Doom_Dude » Sat May 22, 2021 9:41 am

Sprite shadows! That's a nice touch. :mrgreen:
User avatar
Linedef Pusher
Joined: 31 May 2004
Location: Canada
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: GZDoom 4.6.0 released

Postby MentzWolf » Sat May 22, 2021 10:00 am

How do you enable sprite shadows?

EDIT: Found it, my vision's failing me oof
Last edited by MentzWolf on Sat May 22, 2021 10:01 am, edited 1 time in total.
User avatar
Renaissance Man
Joined: 25 May 2016
Discord: Frosted_Moontips#2454
Twitch ID: Frosted_Moontips
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: nVidia with Vulkan support

Re: GZDoom 4.6.0 released

Postby A_D_M_E_R_A_L » Sat May 22, 2021 10:00 am

MentzWolf wrote:How do you enable sprite shadows?

In display options.
User avatar
Joined: 16 Apr 2017
Discord: A_D_M_E_R_A_L#7602

Re: GZDoom 4.6.0 released

Postby Redneckerz » Sat May 22, 2021 10:03 am

Native sprite shadows (Which is a totally unique feature to have) + DEHEXTRA makes this a very solid release. This one will stick around, i feel.

Well done Graf and consorts!
User avatar
To it's ports i may have seen
Spotlight Team
Joined: 25 Nov 2019
Discord: Redneckerz#8399
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: Intel (Modern GZDoom)

Re: GZDoom 4.6.0 released

Postby Marisa the Magician » Sat May 22, 2021 10:04 am

Congratulations on release. Glad to have contributed once more.
User avatar
Marisa the Magician
ZScript Crimester
Joined: 08 Feb 2008
Location: Vigo, Galicia
Discord: Marisa the Magician#1666
Twitch ID: MarisaDOOM
Github ID: OrdinaryMagician
Operating System: Other Linux 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: GZDoom 4.6.0 released

Postby Warrex » Sat May 22, 2021 10:13 am

Congrats on the release!

Redneckerz wrote:Native sprite shadows (Which is a totally unique feature to have)

It is great to have it directly in the engine without having to use Nash's mod but Doom Retro has had shadows for quite a while now.
Joined: 08 Aug 2013

Re: GZDoom 4.6.0 released

Postby Exl » Sat May 22, 2021 10:19 am

Great work! The sprite shadows are my personal favourite new feature this release. And while its not listed in the changelog, LOOP_ comments for Opus audio are now also supported to bring it up to par with other audio formats.
User avatar
Joined: 01 Jul 2009

Re: GZDoom 4.6.0 released

Postby Warrex » Sat May 22, 2021 10:22 am

Yeah and this is also the first official release to support Apple Silicon natively. Too many changes in total I guess... :wink:
Joined: 08 Aug 2013


Return to ZDoom (and related) News

Who is online

Users browsing this forum: No registered users and 0 guests