News

GZDoom 4.2.1 released

Posted by on at 01:14
(14) Comments
Notice: The survey is currently closed. GZDoom 4.2.1 does not include the survey code that 4.2.0 did.

Download (OpenGL 3.3 and higher)


Highlights
  • to be compiled


Details
  • Dutch translation
  • give P_ExplodeMissile a damage type when being called from P_Damage…
  • rename sprite names with '^' in the hires namespace.
  • compatibility option for Daedalus MAP19 which depends onan old scriptwait implementation.
  • added dlg_vgafont and log_vgafont to the menu.
  • add empty line in menu after standard options
  • Make the build work with fluidsynth 2.x.
  • Level compatibility additions for Scythe 2 and Hell Revealed
  • fixed: saving game to read-only file was erroneously reported as success
  • Add current, max and average velocity as stat (#912)
  • added ability to specify deprecation messages in ZScript
  • GME update with bug-fixes
  • Vulkan: release any references to command buffer when flushed
  • fixed crash on parsing bad hex number
  • Let Hexen Cleric and Mage use unique health chains
  • Allow custom status bars to override notification and centered message display
  • Improve crosshair health color to be more informative
  • Converted keyboard turnspeeds into global CVars
  • added obituary fallbacks for actors that do not have any defined.
  • fixed bad default alpha for 3D floors.
  • fixed attached dynamic light setup.
  • added check for multiple parsing of the same MAPINFO
  • exposed xBRZ scaler options as CVARs
  • updated xBRZ scaler to version 1.7
Comments

GZDoom 4.2.0 released.

Posted by on at 11:48
(45) Comments
A new release is available.

Notice:The survey has been re-enabled for this version so that we can get some information about how the state of systems being used for GZDoom has developed over the last year. We would like to ask as many users as possible to participate, so that we can make the right decisions based on the information we obtain. Like previous surveys this does not collect any private information - all it sends is basic info about the operating system, the number of CPU cores, the graphics card and supported OpenGL/Vulkan versions.

Download
Get the downloads over at Github. The linked page will host all binaries that are ready.


Highlights
  • Restored original vanilla behavior of Lost Souls' charging attack
  • exposed Append() method to ZScript dynamic array
  • fixed handling of the "ouch" face.
  • fixed an inconsistency with missiles bouncing off actors.
  • added option to print a map author's name on the summary screen
  • Adds option to use a rotation of quicksaves instead of having one quicksave slot that needs to be manually created.
  • allow switching the Strife conversation screen to the VGA font for all languages by a CVAR.
  • Added A_SoundPitch and an optional pitch parameter to A_PlaySound and S_Sound.
  • Hacx and Harmony now support localization
  • new supported languages: Czech, Finnish, Japanese, Polish and Serbian.
  • RenderUnderlay feature.
  • Attachable dynamic lights with ZScript or DECORATE.

Details
  • fix a couple issues with sigil.wad:
  • e5m2: floating skulls disappear on lower skill levels
  • e5m4: the platform with the baron of hell that led to the invulnerability secret had a missing texture
  • fixed the extremely long standing bug that Lost Souls didn't reacquire their target when slamming into something.
  • fixed: The OriginalSmallFont must always be created, even when the actual SmallFont is not the IWAD default.
  • exposed Append() method to ZScript dynamic array
  • fixed: Do not use BasicArmor's save percentage when no armor present.
  • do not blur the background for portrait-less conversations.
  • fixed bad texture canvas checks when in truecolor software rendering.
  • fixed: in order to ensure that all font characters are of texture type FontChar it is necessary to clone the texture instead of changing its use type.
  • fixed: The frozen state was not reset when the global level variable was reset.
  • fixed handling of the "ouch" face.
  • fixed an inconsistency with missiles bouncing off actors.
  • fixed incorrect write barrier in sound sequence code.
  • fixed: Takedown of an expired HUD message did not properly detach it from the list.
  • call vkDeviceWaitIdle before RAII tears down buffers
  • fixed mouse coordinate checks when using the generic VGA font with Strife conversations.
  • Made reverb editor localizable
  • fixed buggy ArmorFactor behavior when set to a value other than 1.0
  • recreate Vulkan swapchain in case of surface lost error
  • added option to print a map author's name on the summary screen
  • added an option to always display the log and the subtitles with the generic font.
  • updated bzip2 to version 1.0.8
  • Adds option to use a rotation of quicksaves instead of having one quicksave slot that needs to be manually created.
  • allow switching the Strife conversation screen to the VGA font for all languages by a CVAR.
  • added ability to specify display duration of subtitles
  • fixed: The numcommands value in A_KoraxCommand needs to be decremented by one because the max parameter of the random function is inclusive.
  • Added A_SoundPitch and an optional pitch parameter to A_PlaySound and S_Sound.
  • fixed crash on player unmorph after falling death
  • for the map name on the automap, fall back to the original SmallFont if the actual one cannot print it.
  • use proper interface calls to give the initial BasicArmor to the player.
  • added the two missing subtitle texts for Strife.
  • added PSprite.bMirror flag to ZScript class definition
  • the fallback BigFont now can also be loaded by IWADs which declare themselves as GAME_Heretic or GAME_Hexen.
  • add +ZDOOMTRANS to BFGExtra in order to force classic transparency per user setting.
  • renamed zd_extra.pk3 to game_support.pk3
  • setup Harmony localization.
  • moved iwadinfo.txt to zd_extra.pk3. This removes the stock IWAD definitions for custom games that distribute the engine along with their data, so that it doesn't pick up on Steam and GOG installations and shows an inappropriate IWAD picker.
  • added the missing WISLASH for Hacx.
  • allow setting the font used for the status screen's content text.
  • adjustments for the level summary screen.
  • added Hacx localization support.
  • dynamic light definitions for Hacx.
  • fixed: The countdown for the subtitles display was never counted down so the messages remained forever.
  • Shape2D drawing will gracefully abort the VM on any out of bounds access.
  • added validation for presence of drop item classes
  • do not set crouch player sprites on voodoo dolls
  • fixed crash on starting ACS script without level
  • fixed LevelLocals.isFrozen() return value with JIT disabled
  • fixed missing dive and surface player sounds
  • Added RenderUnderlay.
  • added validation of LevelCompatibility.Apply() signature
  • User definable dynamic lights
  • updated bzip2 to version 1.0.7
  • added detection of macOS Catalina
  • fixed: endgame menu no longer resets player's userinfo
  • fixed incorrect implementation of "episode = clear" in UMAPINFO.
  • fixed incomplete parsing of UMAPINFO when map already exists
  • fixed missing skill menu for episodes defined by UMAPINFO
  • fixed: all UMAPINFO definitions were applied to default map slot
  • give UMAPINFO the ability to disable cluster-based exit texts.
  • restored indication of console scrolling
  • made console cursor fill whole character box
  • switched to unconditional level exit in scriptified actors
  • exported unconditional level exit to ZScript
  • compat_pointonline for doom2 map14
  • Fixed "if (!(lhs ~== rhs))" breaking with vectors.
  • localize custom menu titles in option search results
  • add nullptr checks for double-frame model interpolation
  • fixed: light mode from mapinfo had no effect
  • delay postprocess texture destruction until the end of the frame
  • fix wipe screen when using -loadgame
  • fixed crash on loading map in Hexen format without any nodes
  • added a linear transformation system to Shape2D so that things like rotations and scales can be changed without having to clear and push a large amount of data
Comments

LZDoom replacing QZDoom on the download page

Posted by on at 06:11
(7) Comments
Since there are no planned future "official" releases for QZDoom and it pretty much just serves as a beta test bench now, the decision was made to replace it on the download page with LZDoom.

LZDoom is a port created by drfrag in the community, and should serve as a more maintained code base than the Vintage version did. While it aims to keep feature parity with GZDoom with regards to modding features, it does lag behind quite a lot in renderer code. (So much so, in fact, that it can be used to run on older systems that GZDoom has long since deprecated).

Please keep in mind that LZDoom is independently supported, and the GZDoom team can only offer limited support. Its development is not directly supervised by the GZDoom team, so this should be seen as more of a simple alternative to GZDoom than a real "vintage build" for it. As always, if you need help getting things working, you can post in the tech forum and see if someone can help you!

Here is a quote from drfrag's post for LZDoom v3.82 that by itself will complete this post:
drfrag wrote:Fixes/features since 3.61b4
  • Fake splitscreen support: you need to enable the 'vid_activeinbackground', 'i_soundinbackground' and the new 'joy_background' cvars.
    Start two copies of LZDoom from different folders (e.g. with ZDL), one with -host 2 and another one with '-join 127.0.0.1'. You need a dual core CPU, you'll probably get the best results using software D3D and setting 'r_multithreaded' to 0. Set player two to use the gamepad (left stick to move, right one to look around) and give the focus to player one, works for DInput and SDL.
  • Gives a warning instead of error out on unsupported ZScript version (3.8.3), hacked to run most mods with the original fonts.
  • Support for SIGIL and NERVE as iwads.
  • More DOOM2 compatibility fixes.
  • Auto level compatibility is now optional by Enjay's request: 'sv_njnoautolevelcompat' cvar. Gives a warning on level load.
  • Fixed crash with Eviternity on level end.
  • Huge update with tons of stuff from GZDoom such as the JIT compiler for 64 bit.
  • Reminder: savegames in LZDoom are sorted by filename (slot), to restore the old order use the 'oldsaveorder' cvar.

Download


Enjoy LZDoom!
Comments

GZDoom 3.8.2 Vintage Released

Posted by on at 05:25
(32) Comments
Notice: This might be the last vintage version.

Please note that the survey is currently closed. GZDoom 3.8.2 does not include the survey code that 3.5.0 did.


Download (Vintage, OpenGL 2.0)

Highlights
  • bug fixes
  • fixed broken multiplayer
  • add dithering support to emulate higher BPC displays than your real one (from 3.5.1, requires GL 3.3)
  • improvements to Doom64 colouring (from 3.7.0, requires GL 3.3)
  • added RenderUnderlay
Comments

GZDoom 3.8.1 Vintage Released

Posted by on at 14:59
(4) Comments
This release contains a fix to an exploit - please update as soon as you can!

Notice: This might be the last vintage version.

Please note that the survey is currently closed. GZDoom 3.8.1 does not include the survey code that 3.5.0 did.


Download (Vintage, OpenGL 2.0)


Highlights
  • bug fixes
  • added native double round(double) function
  • added a crosshair on/off toggle
  • cl_blockcheats 2 blocks cheats without showing any messages, useful for streamers who happen to be mappers/modders/etc
  • fixed Strife dialogues
Comments

GZDoom 4.1.3 Released

Posted by on at 12:07
(13) Comments
This release contains a fix to an exploit - please update as soon as you can!

Notice: There is currently no Vintage version planned for this release.

Please note that the survey is currently closed. GZDoom 4.1.3 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)


Highlights
  • bug fixes for both zscript and vulkan (the vulkan renderer is pretty much complete at this point)
  • added native double round(double) function
  • added a crosshair on/off toggle
  • cl_blockcheats 2 blocks cheats without showing any messages, useful for streamers who happen to be mappers/modders/etc


Details
  • cleaned up SDL mouse event handling
    • Right/middle clicking no longer cancels out the mouse motion events
    • The events for the side mouse buttons (EV_GUI_BackButtonDown/Up, EV_GUI_FwdButtonDown/Up) were never fired
    • The EV_GUI_WheelRight/Left events were never fired
    • The key bindings for mouse buttons above 3 (from 4-8) were broken - pressing MOUSE4 would bind to MOUSE6, for example
  • fixed access to wrong event data in SDL backend - Wrong button state event data were read on mouse motion
  • report implicitly initialized variable in code generator once
  • added implicit initialization of reused register variables in ZScript
  • added null check for self pointer before calling a native function
  • removed erroneous assignment of dialog reply
  • language update
  • check for presence of fonts in message box menu
  • fix loadgame crash
  • fixed hires texture lookup in Doomsday style .pk3
  • fixed the write barriers for the HUD message linked list. To ensure that no broken relations occur, any change in the list must be handled by a write barrier, not just the single message that gets added.
  • FXAA_DISCARD should never be enabled. It only works when the output framebuffer is the same as the original.
  • fixed PlaySpawnSound call in A_ThrowGrenade
  • Really fixed arrays of dynarrays this time.
  • Cephes code is released under BSD license
  • implemented GPU vendor string assingment in Vulkan backend
  • added a third state for cl_blockcheats. ==2 now blocks them silently.
  • added native double round(double) function
  • reset internal console state on clear CCMD 'last line needs update' flag cannot be set when console is empty as there are no lines at all in this case
  • Fixed uninitialized variable in case GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS does not exist. Old graphics (Intel Sandybridge Mobile, GL 3.0 Mesa) do not support this, therefore most of the time RFL_SHADER_STORAGE_BUFFER wasn't unset (I found no consequence of this on my machine, but better safe than sorry). Found out by Valgrind.
  • Fixed a buffer overflow with Timidity++ when playing Sigil e5m5 music.
  • Fix OBJ face normal direction
  • Inclusion of check symbol cmake's module.
  • Check for execinfo.h and add libexecinfo if needed Some systems (e.g. musl) do not have execinfo.h header. Check if libexecinfo (library that provides execinfo.h header and its functions) is installed in the system, and add its linker flag if needed.
  • Add support for musl-fts library
  • fixed fillSimplePoly for indexed data. On OpenGL this merely caused some visual glitches on the cheat automap - but the bad data in the buffer can make Vulkan abort entirely.
  • fixed crash when loading a saved game with unknown class During serialization, when map shutdown because of unknown class stored inside saved game may occur, level member is not assigned yet to already spawned thinkers
  • adjusted condition for ZScript global variable deprecation warning The message is always printed for any use of deprecated global variable If such variable is accessed inside a deprecated function from a core script lump, the message is printed only when verbosity level is set to highest
  • fixed missing deprecation warnings for ZScript global variables
  • fixed: version wasn't set for ZScript global variables
  • fixed code generation for ternary operator with vector result types
  • fixed crash on message output during decorate parsing Script position is now initialized at the very beginning of decorate parsing process Script position no longer contains uninitialized file name
  • Improved SMALLFONT letter Ч for Doom In its past appearance, the letter was based on the number 4, which looks inconsistent among all letters. This new one is a modified Y.
  • fixed conversation links with pages referenced by name
  • fixed 'Pause by <playername>' message in multiplayer
  • fixed wrong native call for Actor.Vec2Offset()
  • fixed character position assignment for multi-lump fonts
  • Fixing crash when loaded module, using proper function liberate them.
  • fixed loading of 32-bit TGA textures with alpha channel
  • removed array length() function from shadowmap shader
  • create a new error class for vulkan errors as they are only recoverable during initialization (unlike CRecoverableError which is recoverable during normal processing)
  • improve vulkan errors by including the status code returned by vulkan if they fail
  • add some debugging information for GZSDF pagenames feature
  • do not pass TObjPtr<> instances as ScriptUtil::Exec() arguments There was no read barrier inserted for AActor object while it's a subject of garbage collection Pointer stored in TObjPtr<> was reinterpreted as void* because of vararg function
  • fixed bad statnum in Light_Stop.
  • fixed text color setup for added console message.
  • allow certain replacements to be valid for CanPrint The Romanian letters with comma below, the second Greek Sigma variant and a few special Cyrillic letters have replacements that should not result in rejection.
  • don't run the custom shaders twice on screenshots
  • apply present shader on screenshots
  • made the colorset names and the texts in the color picker localizable.
  • fixed erroneous texture mipmapping in Vulkan render
  • implemented subtitle display for Blackbird's voiceover messages.
  • implemented subtitles for intermission slideshows.
  • changed menu scaling so that on 1366x768 a factor of 2 gets used.
  • renamed misplaced characters.
  • added European Portuguese to the menu. This is sufficiently complete with only some intermission texts and the Strife dialogues falling back to the Brazilian version.
  • Raven smallfont fixes
  • Force STATIC for internal GZDoom libraries
  • improved control over MoltenVK logging capabilities
  • added missing Latin characters to the Raven small font.
  • made "netevent cannot be used outside of a map" message a warning
  • added a crosshair on/off toggle
  • use one render pass for the entire scene or until postprocess or command buffer flushing forces it to end
  • avoid creating a new render pass if a pipeline bind will suffice
  • centralize how image transitions are done in the vulkan backend
  • transition scene images used for the screenshot to color attachment optimal before rendering to them
Comments

Downtime 2019/Jun/04

Posted by on at 02:02
(6) Comments
So, you know how when you live in an apartment, you can have nasty neighbors? The ones that keep you up at night and blast their stereo whenever you're sleeping or studying?

That's what zdoom.org had. We had a nasty neighbor move in. It's been moved to another host now, in the same datacenter, and hopefully we'll have nice neighbors.

I know the site was a little touch and go yesterday. Things have seemed to improve quite a lot after the migration. We were on a blade that had a neighbor who was overusing their resources and it caused us some major hassles. And me a lot of headaches. Hopefully this doesn't happen again. :)
Comments

GZDoom 4.1.2 Released

Posted by on at 09:46
(24) Comments
Notice: There is currently no Vintage version planned for this release.

Please note that the survey is currently closed. GZDoom 4.1.2 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)


Highlights
  • bug fixes and vulkan improvements


Details
  • always apply vid_maxfps even when vid_vsync is on. Some users may override the application in their driver control panel and this helps stabilize their fps if they did it this way
  • SIMPLE is never ever defined for main.fp
  • fix stencil test not being active when applying SSAO to portals
  • fix some vulkan warnings
  • removed useless assertions
  • do not show par time when it's zero
  • fix validation error for shader input not declared by main.vp
  • fix model chasecam crash
  • Fixes for Door_AnimatedClose (#838)
  • fixed: The software renderer was accessing the global viewpoint in several places. Aside from using incorrect values this could crash the renderer if used in the very first rendering frame because the software renderer always operates on a copy.
  • fixed crash when VM exception is raised during entering a level
  • added missing newline to scriptstat CCMD output
  • fix wrong screenshot gamma
  • made DUMB library always static DUMB uses dumb_decode_vorbis() function from the main executable, so it failed to link as a dynamic library
  • made setting actor TID more explicit
  • Intel on Linux used the footnote in the standard saying a descriptor pool can become fragmented (thanks guys!)
  • fix command buffer invalidation bug when DynamicSet is updated
  • add fragment shader texture reading as an additional subpass external dependency
  • add vk_debug_callstack for getting the location where a vulkan warning or error happens
  • fix burn crash on vulkan
  • only write the warning if r_multithreaded has its default value
  • Write out a warning if std::thread::hardware_concurrency returns zero.
  • If the number of cores cannot be determined, turn of multithreading in the software renderer as it is most likely a low end system
  • added handling of GLSL noise() functions to Vulkan backend
  • removed obsolete snd_flipstereo CVAR
  • added missing compat flag CVAR for Strife railing
  • Greek Sigma character fallback The lowercase Sigma letter in Greek has two different forms (σ and ς), which changes depending on its placement in a word, but in uppercase and smallcaps contexts, it only has one look regardless of word positioning. If the character ς is missing, it should fall back to σ.
  • Accented Greek characters for Doom
  • fixed output of software renderers with Vulkan backend
  • moved greek characters to proper location
  • OpenBSD build fix. As FreeBSD, does not have malloc.h aligned_alloc stricly available since C++17/C11, using the local impl.
  • Fixed letter Ξ
  • Greek characters for Doom
  • fix mirror effect shader
  • fix wrong fog color used for ssao when using multisampling
  • move camtex depthstencil to VkHardwareTexture
  • Fix build on FreeBSD (#829) On FreeBSD malloc.h is deprecated. <cwctype> is needed for iswalpha.
  • rendering to texture requires a separate depth/stencil image as the image used by the main view may be using multisampling
Comments

GZDoom 4.1.1 Released

Posted by on at 15:41
(22) Comments
Notice: There is currently no Vintage version planned for this release.

Please note that the survey is currently closed. GZDoom 4.1.1 does not include the survey code that 3.5.0 did.


Download (Modern, OpenGL 3.3 and higher)


Highlights
  • bug fixes and vulkan improvements


Details
  • fixed deprecation warnings in core scripts
  • the light storage buffer is not dynamic
  • made Vulkan Cocoa view opaque
  • tuned internal MoltenVK settings for better performance
  • postponed destruction of Vulkan resources
  • fix vsync off with vulkan
  • release staging buffer after the frame it was used in
  • make the VkHardwareTexture and VKBuffer linked lists private
  • fix shutdown crash due to GetVulkanFrameBuffer returning null when VulkanFrameBuffer is destroyed
  • Fixed offsets for Esperanto letters.
  • add VulkanQueryPool and QueryPoolBuilder
  • add VulkanQueryPool::getResults
  • implement stat gpu on vulkan and fix it on opengl
  • use the exact sRGB->linear transfer function in HDR mode as the 2.2 gamma approximation is visibly inaccurate in this case
  • fixed saved game thumbnails generation with Vulkan renderer
  • fixed 'I' to 'i' upper-to-lower mapping
  • fix vulkan crash when changing resolution when using the software renderer
  • VMA_MEMORY_USAGE_CPU_TO_GPU does not require VK_MEMORY_PROPERTY_HOST_COHERENT_BIT to bet set. Current implementation requires this flag as vkFlushMappedMemoryRanges is never called.
  • call SetActiveRenderTarget before drawing the software renderer scene
  • fix vkGetQueryPoolResults: parameter dataSize must be greater than 0
  • brought back text length check for 'type on' HUD message
  • improved handling of HUDMSG_TYPEON
  • Fixed random generation of friendly obituaries
Comments

GZDoom 3.8.0 Vintage Released

Posted by on at 16:03
(16) Comments
Notice: This might be the last vintage version.

Please note that the survey is currently closed. GZDoom 3.8.0 does not include the survey code that 3.5.0 did.


Download (Vintage, OpenGL 2.0)


Highlights
  • A few localization enhancements.
  • add 'cl_blockcheats' - useful for people who use debugging keys, allows a user to consciously turn off cheats without affecting the server
  • Punctuated the input strings in UpperCamelCase format, improving its appearance in the menu for upper/lowercase capable fonts
  • 'wait' console commands no longer execute inside the level, and can run during intermissions and outside the game
  • moved controls to submenus in "Customize Controls" menu
  • Implement page string names for dialog lumps
  • did a bit of cleanup on the option menus by regrouping some settings, especially splitting out of the Hardware Rendering Options menu into submenus.
  • fixed inverted logic for displaying the generic log in Strife.

ZScript
  • scriptified P_CalcHeight. This was the only code using the ViewBob member variable. This also moves the range check for this variable to its application, because a badly behaved mod can just as easily change it at run time instead of just setting an absurdly large value in the class definition.
  • scriptified APlayerPawn's DamageFade handling.
  • scriptified A_SkullPop and ObtainInventory. These were the last relevant items to access PlayerPawn.InvFirst.
  • scriptified useflechette CCMD's item finding code.
  • scriptified the remaining PlayerPawn methods.
  • exported all native components of APlayerPawn.
  • Added Z + camera roll relativity for A_QuakeEx's QF_RELATIVE flag.
  • Added inflictor, source and flag parameters to GetModifiedDamage on actors and ModifyDamage on inventory. The flags are used by DamageMobj so modders can determine radius damage, for example, by checking for DMG_EXPLOSION.
  • removed extraneous parameter in SpawnPlayerMissile call in A_FireProjectile. The native variant has a MissileActor out parameter in this place, but in ZScript that's a secondary return value.
  • Add LookScale variable on weapon This variable allows a weapon to set a custom look sensitivity multiplier without fiddling with FOVScale / DesiredFOV hacks.

Details/missing stuff
  • Due to the old texture manager titles cannot be created from texts, no extended console font, no support for vga/generic fonts.
  • No extra lenguages with the new csv format (russian is partially working with missing console chars).
  • No new player menu.
  • No generic HUD.
Comments