GZDoom 3.2.3 Released

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

Moderator: GZDoom Developers

User avatar
Rachael
Posts: 13629
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

GZDoom 3.2.3 Released

Post by Rachael »

This is an additional point release to address some issues with the 3.2.2 point release and add even more features. Due to the way this release was handled, the change log will include 3.2.2's changes as well.

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
  • new grenade and ice shard sprites, removed non-GPL copyrighted assets


More-complete changelog since 3.2.1:
  • let the 3 relevant text functions handle UTF-8 strings

    These functions are: DCanvas::DrawTextCommon, V_BreakLines and FFont::StringWidth.
    This will allow strings from UTF-8 encoded assets to display properly, but also handle the OpenAL device name on international systems, as this will be returned as an UTF-8 string.

    Due to backwards compatibility needs the decoding function is rather lax to allow both UTF-8 and ISO 8859-1 to pass through correctly - and this also implies that it will allow mixed encodings which may happen if strings from different sources get concatenated.
  • sanitization of temporary file stuff for Timidity++.
    • do not use the global temp directory. Instead create one in the AppData folder.
    • removed lots of unneeded code from tmpfileplus.
    • use C++ strings in there.
  • fixed potential memory leak in M_VerifyPNG.
  • Fixed incomplete ACS string pool state after loading of saved game
  • Added 'static' to CreateCeiling (base.txt)
  • Fix 'Requested invalid render buffer sizes' when executing the reverbedit command from fullscreen
  • fixed upscaled fuzz drawing in swrenderer
  • UMAPINFO parser, including some convenience additions to FScanner.
  • fix shader targets being case sensitive
  • i_friendlywindowtitle cvar: Show name of the game instead of GZDoom's version/last commit data
  • Fixed applying of brightmaps to overridden textures
  • Fixed detection of the first entry from internal IWADINFO
  • fixed: high uptime was causing overloads in uint32_t and float structures (float losing loss of precision) - this caused any computer online for more than a few days to experience jankiness with internal animations such as rotations and shader timers. Unfortunately, this sounds the death knell for 32-bit platforms, since uint64_t is now required in time-critical structures, which will hurt performance tremendeously, but 64-bit systems will be unaffected.
  • exported P_Thing_Warp to ZScript.
  • Inside the renderer, use only the time value being passed to RenderView.
  • get the timer used for animation only once at the very beginning of the frame and pass it on to the renderer to avoid any dependencies on the timer's implementation.
  • Exposed String.Remove() function to ZScript
  • Upgrade timer code to use nanosecond accuracy internally
  • Fixed return state of player entered event
  • Switch to C++11 steady clock, and Remove the platform specific timer implementations
  • add doom e1m6 to rebuildnodes list.
  • Fix freeze interpolation bug
  • added latching CVARs to CVARINFO
  • fixed: put limits on A_SoundVolume
  • Improved OpenGL profile selection in SDL backend
  • Extended LineAttack() with offsets and new flags
  • Place the HUD model correctly in the world so that shader light calculations work
  • Removed unused parameter from several functions in FStateDefinitions class
  • Fix wrong math for model/light distance check
  • Added runtime check for negative array indices in VM
  • Added implicit scope for if/else, while and do/while statements in ZScript

    Scope is added only for variable or constant definition so it will no longer leak to outer scope
  • Added string representation of 'static const' token - No more 'Unknown(-141)' in 'Expecting ...' error message
  • Extended String.LastIndexOf() with endIndex parameter
  • de-init DoomStartupInfo on 'restart' ccmd so that the window title always contains the correct game information.
  • Added workaround for MSVC 2017 internal compiler error
  • Added Wads.CheckNumForFullName() to ZScript
  • Added Wads.ReadLump() to ZScript
  • Added Wads.FindLump() to ZScript
  • Exposed string split functionality to ZScript
  • Added ability to split FString on tokens
  • Fixed potential crash in resolving of multiple assignment
  • Fixed wrong owner for *evillaugh sound
  • improve speed for ARMv7 processors by specifying hardware float calculations, and tuning it specifically for the Cortex-a7 CPU (for Raspberry Pi 2).
  • Made dynamic array's Find() and Max() functions contant
  • Added ZScript functions GetBool() and SetBool() to CVar class
  • Fixed non-portable usage of __solaris__ preprocessor definition
  • Added ability to get texture name from script
    Use TexMan.GetName(TextureID tex) member function
  • removed the ugly grenades from the extra .pk3, now that the main file contains a much nicer and unproblematic replacement.
  • added 'classicflight' user cvar which allows players to move forward and backward without pitch when flying
  • Fixed out of bound read in zip file loader
  • New grenade sprites

    sprites from Eriguns1:
    https://github.com/XaserAcheron/eriguns
  • added new Ice Shards, and removed the zd_extra version
Download links:
  • removed
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3142
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: GZDoom 3.2.3 Released

Post by drfrag »

The link to the 32 bit version is broken.
User avatar
Major Cooke
Posts: 8186
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: GZDoom 3.2.3 Released

Post by Major Cooke »

This one includes the modeldef's ability to read skins via TEXTURES lump. Thank you Rachael!
User avatar
Rachael
Posts: 13629
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 3.2.3 Released

Post by Rachael »

drfrag wrote:The link to the 32 bit version is broken.
Fixed. Thanks.
User avatar
SenteyHunter
Posts: 14
Joined: Fri Apr 04, 2014 4:58 pm
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support
Location: Space

Re: GZDoom 3.2.3 Released

Post by SenteyHunter »

Wow, Finally (b'- ')b. Thanks!
User avatar
Rachael
Posts: 13629
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 3.2.3 Released

Post by Rachael »

Mac OS X and Ubuntu builds uploaded.

As usual, thanks again to _mental_ and Blzut3 for these.
User avatar
theleo_ua
Posts: 165
Joined: Sun Feb 07, 2016 11:38 am
Operating System Version (Optional): Windows 10
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Ukraine

Re: GZDoom 3.2.3 Released

Post by theleo_ua »

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

Is it possible to implement 3 values:
1) game you are currently playing
2) version info
3) Both (for example like "The Ultimate Doom - GZDoom 3.2.3 x64 bla bla bla")

?

Thank you in advance
Blue Shadow
Posts: 4955
Joined: Sun Nov 14, 2010 12:59 am

Re: GZDoom 3.2.3 Released

Post by Blue Shadow »

Feature suggestions go here: viewforum.php?f=15
User avatar
GFD
Posts: 347
Joined: Mon May 31, 2010 7:42 pm
Preferred Pronouns: He/Him
Location: Canada

Re: GZDoom 3.2.3 Released

Post by GFD »

Thanks for the clarification, Chris. I never knew Doom's tic rate was a result of using a 70 Hz video mode, or that ZDoom's timings were actually unfaithful.
I know the sound effect syncing hypothetical is not an example of good practice, but neither are a lot of Doom mods... :P

I'm surprised that this timing change could result in any perceivable improvement in the smoothness of interpolated rendering. I'm personally not able to see any difference. But in any case, more accuracy is a good thing overall, and the timing code changes look quite extensive, so thanks to the developers for working on this. i_timescale is fun to play with! And I think I'll also find it useful for debugging small timing problems that would be difficult to see at full speed.
User avatar
Rachael
Posts: 13629
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 3.2.3 Released

Post by Rachael »

The reason why things are so much smoother is because of the change in the way the timing system works, not the new timing, itself.

It uses the system performance timer, rather than ZDoom's old method, and it is re-checked before drawing a frame. The result is a much smoother-looking interpolation for the systems that are fast enough to actually draw said interpolation frames.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49096
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 3.2.3 Released

Post by Graf Zahl »

The old timer code comes from Windows 9x times when the MMSystems's millisecond timer was the best thing Windows had to offer. And as long as there was no frame interpolation it actually didn't make any difference in how it was perceived.

Regarding the old timer code, I guess the perception of smoothness is very subjective. The main issues here wasn't the timing itself, actually, but that the frame interpolation wasn't done right. In several places it took the actual current time instead of the time when the current frame started - and that resulted in some gross inconsistencies. Now all these things have been fixed.

The change back to proper 1/35 second tics was just a natural result of having a higher resolution timer available now.
User avatar
Hexereticdoom
Posts: 660
Joined: Thu Aug 08, 2013 1:30 pm
Graphics Processor: nVidia with Vulkan support
Location: Spain

Re: GZDoom 3.2.3 Released

Post by Hexereticdoom »

Wow man, two new GZDoom versions released almost at same time... :o

Thanks a lot for all your big efforts in development! Downloading latest file now... :thumb:
User avatar
Rachael
Posts: 13629
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 3.2.3 Released

Post by Rachael »

The archives have been recompressed remotely, so they should not error out on Windows Explorer anymore.

Nevertheless, here's the Microsoft bug report: https://aka.ms/F8jf7r

Return to “ZDoom (and related) News”