We stand with Ukraine to help keep people safe. Join us
GZDoom free download for Mac


Version 4.10.0

Doom source port for the modern era.

Absolutely Free

GZDoom overview

ZDoom is a source port for the modern era, supporting current hardware and operating systems and sporting a vast array of user options. Make Doom your own again!

Maximum Game Support

In addition to Doom, ZDoom supports Heretic, Hexen, Strife, Chex Quest, and fan-created games like Harmony and Hacx. Meet the entire idTech 1 family!

Limitless Mod Potential

Experience mind-bending user-created mods, made possible by ZDoom's advanced mapping features and the new ZScript language. Or make a mod of your own!

What’s new in version 4.10.0

Updated on Feb 02 2023

  • Italian language translation is now complete
  • Make the new scaled angle changes at frame rate opt-in behind new flag SPF_SCALEDNOLERP.
  • Set up interpolated camera angle changes to occur at framerate when all conditions in P_NoInterpolation() are met.
  • Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame.
  • Map and MapIterator for ZScript
  • Structified A_SpawnParticle/Ex
  • Look up named frames using the Animation ID (if any).
  • Allow Disabling of XY Billboard for Particles
  • Added Method For Getting Portal Group Count
  • Allow Getting Portal Group Offsets
  • Fixed A_Changemodel crash from invalid modeldef names
  • Fix SNDINFO $rolloff always changing global rolloff
  • Fix GC ignoring DynArrays inside fixed Arrays
  • AST debug cleanup
  • Fixed: The raw texture caching in the texture manager did not work. This erroneously checked for FrontSkyLayer.
  • Allow assigning IQM frames by animation name plus frame offset.
  • Added animation support for OptionMenus
  • Fix crash if Animation is not explicitly assigned in MODELDEF.
  • Internal cleanup of sound code
  • Allow SNDINFO to declare sound mappings by using 'sound = soundfle' syntax.
    • Process events every frame as well to ensure that menus can run at any framerate
  • Fix incorrect pixelratio handling on rotated models.
  • Added Font and TextureID types to Option and Image Scroller items (List items already have these)
  • Added "Class" instruction for Image Scrollers
  • Added ability for Option items to read in their OptionMenuDescriptor (List and Image Scroller items already have this)
  • Added "ForceList" instruction for Lists so that skill, playerclass, and episode menus don't get overridden
  • Fix checking of wrong variable in String..Float concatenation
  • Clearscoped getters for map data
  • CustomMessageBox
  • Fix colormap remapping when colormap entries may have fullbright entries which should not be considered duplicates
  • Stop all sound before showing ENDOOM.
  • Disabled shortcutting the intermission code if no summary screen is wanted. This also disabled all cutscenes being attached to the completed map.
  • Added 'foreach' loop to ZScript.
  • Implementation of Quaternion type in ZScript
  • GLES: Added IQM bone support.
  • SendConsoleEvent function for EventHandlers
  • Future-proof particles by resetting them completely when replaced.
  • Added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values. These just mirror features of the internal vector classes.
  • Added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter.
  • Add PushSound property and Slide state
  • Added PS_REPLACE flag for A_SpawnParticle(Ex). When used, new particles that spawn when the limit is reached will replace the oldest particle.
  • Add Vector4 to ZScript
  • Avoid infinite portal recursion.
  • Fix uncaught exception that rarely occurred with the intermission screen that would vm-abort out from any attempt to enter a level
  • Exposed LevelLocals' LookupString functionality
  • Improved Slam functionality.
  • Normalize angle in AngleToACS. Fixes GetActorAngle returning negative or large values with no range limit.
  • Enable ANIMDEFS for particles
  • Add some more blacklisted cvars to defcvars
  • Fixed background setup for intermissions to apply tiling only where intended.
  • Removed the unused BaseBlend* variables and the testblend CCMD.
  • Added a compile option to fully disable the software renderer. This is mainly for new games which have been designed for hardware rendering.
  • Add the following command line parameters:
  • -noextras: disable loading of any extras (lights, brightmaps, widescreen)
  • -nolights: disable loading of lights
  • -nobrightmaps: disable loading of brightmaps
  • -nowidescreen: disable loading of included widescreen assets
  • Fixed bad index check in CanWipe. This can be called with index == -1, which should check the first element of the intermission.
  • GC: Have a real finalizer stage for destroying objects instead of mixing them in to the sweep stage.
  • GC: Base GC rate on a running average of the allocation rate instead of basing it on the amount of time taken since the last sweep started.
  • More GC stats for better tweaking.
  • Added characters U-0404 and U-0490 for Ukrainian language support.
  • Reworked all accented characters of Doom's SmallFont. Also adding a few new ones that were easy to do
  • When converting to a portable install, flag the current session accordingly.
  • Changed CalculateBones to receive the bone component data directly instead of the owning actor.
  • Fixed FileExists check for -loadgame. This was done before the current savegame path was known so it always errored out.





34.5 MB

Developer’s website




App requirements

  • Intel 64
  • Apple Silicon
  • OS X 10.12 or later
Try our new feature and write a detailed review about GZDoom. All reviews will be posted soon.
Write your thoughts in our old-fashioned comment
MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
(0 Reviews of )
There are no reviews yet
Help the community
There are no reviews yet, be the first to leave one