Please do not post bugs or issues in release threads! Click here
Download (OpenGLES 2.0 and higher)
- Windows 64-bit
- Linux 64-bit Intel (4.11.3)
- Linux 64-bit ARM (4.11.3)
- Linux (Portable) 64-bit (4.11.3)
- macOS 64-bit Intel/ARM
- Source
Highlights:
- New launcher screen with custom widgets
- VisualThinkers
- Reworked Morph System
- Many DSDA/MBF21 compatibility fixes
- mapinfo and cvarsearch ccmds
- better joystick handling in Linux (particularly for the Steam Deck)
- Support for VP9 codec
- Lots of bug fixes
Spoiler: Details (really long)
Details
- fixed actor class creation for DSDHacked
- fix DSDHacked state creation.
- - fixed DumpCPUInfo() definition for non-x64 platforms
- update soundfont
- added missing hit obituaries to Hexen's Chaos Serpents.
- set default backend to Vulkan, if Vulkan fails go GLES not OpenGL
- add 'mapinfo' ccmd
- add GetChars() accessors to many FString uses where const char* is wanted
- removed several bad casts to 'long'.
- Fix inheritance for bNoSaveGame
- make zs Actor.GetReplacement and Actor.GetReplacee clearscope
- Deduplicate Map/MapIterator Types' Code
- Improve handling of field names in error messages during Map/MapIterator compilation
- Make sure maps in return type don't segfault
- make Array::Append faster for simple structs
- Don't try to generate code for abstract functions during JIT dump
- Allow dumping jit for mod functions only
- allow "&" instead of "out" in function parameters
- Turn Map/Array assignments into Copy
- Update LZMA SDK to 23.01
- Fix wrong define for PPMd
- Add final and sealed as class options
- Several Backend Updates from Raze
- Several Language File Updates
- Converted lots of FString getters to .GetChars()
- fixed some signed-ness issues.
- fix $PROGDIR expansion being case sensitive
- added missing VMFunction struct definition
- Implement Static Function Pointers
- add forcecullbackfaces in modeldef
- rewrite of HWWalls to allow grabbing the output from the render item generator
- bumped minimum macOS version to 10.13
- Exposed P_GetMidTexturePosition() to ZScript.
- do not print all GL extensions to the log for the GLES renderer.
- widen the special field in FBoomArgs.
- fix UMAPINFO's intermusic being used at the summary screen.
- fixed savegame file name check.
- fix map WAD check for savegame validation.
- always save the map WAD in a savegame's metadata, even if it is from the IWAD
- Add Wall Texture Skewing
- added Wads.GetLumpLength.
- fixed handling of DSDHacked sound replacement in the index range between the regular sounds and the MBF21 extensions.
- Allow setting the colormap from mapinfo (dsda-doom)
- hooked up the per-level colormaps with the hardware renderer.
- added all required names for the new DSDA UDMF properties to the list of names.
- implemented DSDA's sector scrolling properties.
- added UDMF wall scrolling properties from DSDA.
- added friction and colormap related properties from DSDA.
- added per-sector sky UDMF properties.
- added DSDA's thrust properties for UDMF
- fixed DEHSUPP multiple load prevention.
- fix int assign optimization constants generating broken code because they weren't expected
- add master levels to game list for steam
- change which config to look for library folders in
- added rudimentary support for DSDA's COMPLVL lump.
- allow defining zero gravity through MAPINFO
- gave translations a dedicated scripted type.
- use FTranslationID in all places where strict type checking is needed.
- Added missing LANGUAGE definition for Mystic Urn's tag
- Add sv_coopsharekeys - in coop, picking up a key will distribute it to all online players
- Serialize Name Keys as Strings for maps
- fix GL ES switch appearing as 'Unknown' in the menu sometimes
- Add missing loop
- Add in VisualThinkers
- invert mouse again for movement, so that it cancels out the first inversion
- allow comparisons between ints and translation IDs in pre 4.12 ZScript.
- Decoupled IQM Model Animations
- Expose coop share keys to the options menu
- Add Compatibility=Extended for Blasphemer
- add flag +BILLBOARDFACECAMERA - renders actor billboard to always face the camera
- add actor flag +BILLBOARDNOFACECAMERA which forces sprite aimed at camera heading instead of camera position when gl_billboard_faces_camera is true
- Fixed console rendering crash on wide consoles
- Fix vanilla weapon functions passing ammo count to DepleteAmmo
- added STL compatible access functions to TArray.
- convert many source files to UTF-8
- mark gl_maplightmode as a cheat
- fixed savepic loading.
- add new ccmd cvarsearch allows searching cvar by name, languageid, or description
- fix nullptr check for target in HolySpirit.Slam
- internal filesystem handling cleanup
- Virtualized returns for SpecialMissileHit/SpecialBounceHit
- Fixed incorrect offsetting for SpriteOffset.
- Allow 100% kills on 2048 Unleashed (pc_cp2.wad) MAP27
- Allow completion of 2018 Unleashed (pc_cp2.wad) MAP38
- Fixed comment in level_compatibility.zs regarding pc_cp2.wad MAP38 fix
- gldefs: update Freedoom big tech lamp.
- Maintain the actual on-disk path (FResourceEntry::SystemFilePath) for the directory filesystem, because the FResourceEntry::FileName can be modified by game filter-s
- fixed MBF21's instant death sector types.
- added compatibility settings for Memento Mori 2 MAP20
- Export FScanner parser to ZScript as ScriptScanner
- music volume.
- warnings and debug code cleanup
- Fixed CF_SCALEDNOLERP having the wrong value.
- fixed infinite recursion in vid_preferbackend.
- Added DI_ITEM_LEFT_CENTER and DI_ITEM_RIGHT_CENTER
- new launcher with new widget system
- add two parameters to GetSpriteTexture: spritenum and framenum, since some states are "####" "#"
- iwadinfo.txt: remove double entry of doom2f.wad
- iwadinfo.txt: prefer *unity.wads for Unity Editions
- iwadinfo.txt: resort Names for a better overview
- iwadinfo.txt: resort Order for a better overview in selection box
- Added CollidedWith
- Added Z collision detection
- Disabled player sprites when crossing through portals.
- Exposed viewactive, allowing checks for overlay automaps.
- add new netid system for future use
- Expose ForceLightning() to ZScript.
- Added LightningSound MAPINFO property.
- use FSoundID for script provided sounds instead of FString.
- Implement animated particles that aren't tied to the global animation timer
- reverse -allowduplicates check
- Made the damage of polyobjects customizable
- Exposed PerformShadowChecks() to ZScript.
- Add CenterText MENUDEF flag
- Fix .. to root folder in relative include
- Better Joystick handling in Linux (particularly for the Steam Deck)
- Fix readonly native structs
- Support negative fadestep for particles
- reworked Morph system
- don't show path if longsavemessages is false
- Fixed: A_LookEx did not account for the +LOOKALLAROUND flag.
- Ignore vid_maxfps when vsync is enabled.
- quake radii and explosion distances are no longer int now doubles
- slow down frame updates for the start screen for slower GPU's, since this can increase loading time significantly
- libwebp now included in source
- Fixes for spawn farthest DM option
- Add crash log file to .gitignore
- Fixed local items not copying properties properly
- am_overlay turns off the overlay when set to zero
- fix harmony grenade not working
- Allow larger denominators for IVF movies
- Add support for the VP9 codec in the IVF container
- skip frames when playing back IVF to prevent desyncs
- allow A_SetCrosshair(-1) to hide the crosshair for effects such as custom scopes
- add level compatibility fixes for Eternal Doom III
- handle dsda namespace like zdoom in udmf
- add cvar cl_restartondeath - bypasses autoloading savegame when pressing +use after dying