New Features and Improvements
-
Mod Support:
- Added support for the base UDMF spec, and the new exclusive
"woof"UDMF namespace. - Added support for ID24 0.99.2 line specials (sector tinting, pistol-start exits, music changers, scrollers, offsets).
- Added support for ID24 flat rotation.
- Added support for ID24 per-state
TRANMAPs inDEHACKED, via theTranmap = "x"state property. - Updated
SBARDEFsupport up to version 1.2.0. - Added initial experimental support for DECLARATE.
See examples inwoof.pk3/all-all/actors/.- Added support for (ambient) sounds through DECLARATE, using
SNDINFO-like syntax.
- Added support for (ambient) sounds through DECLARATE, using
- Added support for
SKYDEFSflatmapping. - Added support for XGL2, XGL3, ZGL2, and ZGL3 node formats.
- Added support for the new XBM1 blockmap lump format.
- Added initial support for the
TX_START/TX_ENDnamespace. - Added support for the ID24
endfinalelump, used for custom cast sequences in Legacy of Rust and Dominus Diabolicus. - Added support for custom screen wipes defined in
DEMOLOOP. - Added support for visual-only Boom scrollers in vanilla complevels.
- Added support for UZDoom-style obituary assignments in
DEHACKED,
viaObituary = "x",Melee Obituary = "x", andSelf Obituary = "x". (By @soppyMann) - Added support for an exclusive
Woof Bits = xthing property inDEHACKED.
Monsters in Legacy of Rust now respect corpse flipping. - Added support for a dedicated
rekkr-all/autoload directory for Rekkr. (By @MelodicSpaceship) - Improved Freedoom support:
- Added support for
freedoom-all,freedoom1-all, andfreedoom2-allautoload directories. - Setup program now uses Freedoom skill descriptions when applicable.
- Added support for
- Added support for vanilla game version
final2(Final Doom with teleporter bug fixed). - Added support for
HELP2graphic in Ultimate Doom PWADs.
- Added support for the base UDMF spec, and the new exclusive
-
Quality of Life:
- Added rewinding, similar to DSDA-Doom.
- Added a custom skill menu.
- Combined "Free Look" and "Direct Vertical Aiming" menu items (settings are still separate).
- Disabled free look in strict mode.
- Added a "Previous Map" button.
- Replaced "[HUD] Layout" setting with "HUD Anchoring" setting.
- Added "Reduced" option for palette-changes setting.
- Made savegame slot used for quick saves be highlighted in save/load menus.
- Added a net-game stats overlay button (F1 by default).
- Reworked handling of strict mode, now more akin to DSDA-Doom:
- Now only applicable to demo recording, and enabled by default in it; can be disabled via the
-tasparameter.
- Now only applicable to demo recording, and enabled by default in it; can be disabled via the
- Reworked "Exit Sequence" and "PWAD ENDOOM Only" settings into the following settings:
- "Show Quit Prompt".
- "Play Quit Sound".
- "Show ENDOOM Screen".
- Added "Pause Demos in Menu" setting.
- Added a dedicated binding for message review (
input_msgreviewconfig key).
-
Rendering:
- Improved rounding of rendering resolutions:
the game can now render at the display's native width exactly in most cases. - Added support for rendering of translucent translated sprites (enables e.g. translucent colored blood).
- Reworked internal handling of transparency tables:
- Generated
TRANMAPlumps are now cached locally on-disk. - Generator now uses linear sRGB blending, as opposed to gamma sRGB, for more-accurate color mixing.
- Transparent fullbright sprites now use additive transparency.
- Generated
- Interpolated rotation of transferred skies.
- Optimized rendering of planes.
- Optimized rendering of very small and/or distant sprites.
- Improved changes of voxel-rendering distance upon dynamic resolution changes.
- Missing flats and invalid PNG flats are now rendered as magenta-and-black checkerboards.
- Improved rounding of rendering resolutions:
-
Audio:
- Improved sound limiter: limits the volume when too many channels are playing the same sound,
and omits low-priority sounds. - Made pitch shifting match Chocolate Doom. Removed
pitch_bend_rangeconfig key. - The game is now muted when the window loses focus. This can be toggled via the
mute_unfocusedconfig key.
(By @soppyMann) - Sounds from linedefs now use the midpoint of the linedef as the origin,
instead of the midpoint of the line's front sector, matching DSDA's behavior. - Updated FluidSynth:
- Removed
TimGM6mb.sf2from Windows builds; FluidSynth now usesgm.dlsinstead. - Added support for
.dlsfiles in thesoundfonts/directory. - Added FluidSynth "note cut" setting.
- Removed
- The
soundfont_dirconfig key was removed. Formerly, this key contained a hard-coded, architecture-dependent list
of search directories for soundfonts. Now, a list of common search directories is created dynamically at run-time.
In order to override this list, point the newsoundfont_dirs(mind the plural) config key
to a custom soundfont directory (or a list thereof). - Replaced Nuked-OPL3 with Nuked-OPL3-fast, a byte-identical faster implementation of the original.
- Improved sound limiter: limits the volume when too many channels are playing the same sound,
-
Automap:
- Added minimap mode.
- Added "[Automap] Line Thickness" setting.
- Made automap colors be converted to the current palette.
- Made
IDDKTcheat skip monsters spawned by Icon of Sin. - Replaced automap player arrow with the new one from KEX, and made it customizable through an
AMAPDEFlump.
-
Miscellaneous:
- New savegames are stored as key-frames in a compressed JSON format. Old savegames can still be loaded.
- Restored silent BFG trick for complevels below MBF.
- Changed DeHackEd loading order to match DSDA-Doom:
patches loaded through-dehare now processed after everything else. - Optimized search of teleport destinations when using teleport specials.
- Optimized line-of-sight checks upon map load (by Andrey Budko, from PrBoom+).
- Removed side-loading of
extras.wad. - Implemented Discord Rich Presence.
- Improved detection of installed (Steam, GOG) IWADs.
- Improved text-screen rendering (for ENDOOM screen and setup executable).
- Replaced ENDOOM font with improved "Hauge" font by Zokum.
- Slightly improved palettization of true-color PNG graphics.
- Replaced built-in
PLS2sprites with red replacements, to better match the original press-beta sprites. - Added freely licensed sprites for the following:
SMFLAM*(carousel icon for Legacy of Rust's incinerator).SMHEAT*(carousel icon for Legacy of Rust's calamity blade).BON3A0(beta evil-sceptre pickup).BON4A0(beta unholy-bible pickup).
- Improved HUD stats widget on some non-Doom games (e.g. on Chex it now reads 'F/I/S' instead of 'K/I/S').
- Turned
no button slots left!error into a warning (fixesSPECHITScheat on 'Box Doom' MAP02). - Program window position isn't saved anymore; it now appears centered upon every launch.
- Removed "Smooth Diminishing Lighting" feature.
- Moved from Boom-based DeHackEd parser to Chocolate Doom's DeHackEd parser.
- Added extra warnings when in debug mode on the terminal.
- Removed
-dehout,-bexout, and-bexCLI options.
-
Build:
- Added universal macOS builds to continuous integration.
- Replaced SDL2 with SDL3 for modernized input and display support:
- Removed "Exclusive Fullscreen" setting.
- Replaced SDL_net with netlib.
- Added minimp3 as a fallback for MP3 files not supported by libsndfile.
- Removed
woof.comexecutable; console output is now shown bywoof.exedirectly, but only with debug builds. - Added update information to AppImages. (By @electricbrass)
- Removed extraneous example WADs and documentation files from final builds.
Bug Fixes
- Fixed crash when loading invalid
REJECTtables (fixes 'PUSS IV' MAP01). - Fixed many SKYDEFS incongruencies to better match the ID24 spec.
- Fixed how friendly monsters count towards the kill count, to match DSDA demo behavior
(fixes kill counts in 'Fast Food 2' and 'One Of Everything'). - Fixed interpolation of Boom scrolling floors/ceilings and textures.
- Fixed MBF high-precision scroller math to match DSDA demo behavior.
- Fixed MBF Helper Dog spawning behavior to match DSDA-Doom.
- Fixed crosshair appearing on clean screenshots.
- Fixed quick-save slot being cleared when changing to a different save/load page.
- Fixed MBF21 homing player projectiles misbehaving when using Direct Vertical Aiming.
- Fixed voodoo dolls becoming invisible when voxels were enabled.
- Fixed "Bobbing" Weapon Alignment misbehaving with DeHackEd-set weapon sprite offsets
(fixes jittering weapons inD4V.wad). - Disabled interpolation of weapon sprites when sprite and DeHackEd offsets change simultaneously
(fixes jittering pistol inDoomZero.wad). - Fixed rotation of entities mirrored by the "Randomly Mirrored Corpses" feature.
- Fixed
.pk3files not being loaded through drag-and-drop. - Fixed state of HUD messages being tied to each HUD layout.
- Fixed
A_MonsterMeleeAttacktriggering normal obituaries instead of melee obituaries. - Fixed direct switch to SSG in demos being mistaken as a demo-join command.
- Allowed player starts with an angle of 360 degrees, to match vanilla Doom behavior.
- Made chat messages from other players be displayed even if messages are disabled, to match vanilla Doom behavior.
- Fixed synchronization of weapon carousel and weapon switching when switching with the previous/next-weapon buttons.
- Fixed weapon carousel appearing and staying on screen when trying to switch weapons as a zombie player.
- Fixed multiple cheats with identical cheat codes being applied simultaneously.
- Allowed
TRAKINFOlump definitions to stack, overwriting previous definitions. - Fixed SBARDEF game-mode condition checks.
- Included player weapon-switching state in savegames (fixes some visual bugs with weapons when loading savegames).
- Improved calculation of HUD font size (fixes text widgets in 'RUST').
- Fixed incorrect culling of off-screen text in finale text screens (fixes such screens in 'RUST').
- Fixed height calculation of level-title graphics on intermission (fixes intermission on 'Hell Revealations').
- Made the program not error out upon encountering DeHackEd things with
Dropped Itemlesser than zero. - Made transparent pixels on fullscreen graphics be drawn as black (fixes HOM in
ETERNALL.WAD's credits screen). - Made long quit messages be broken into multiple lines.
- Made some door code consistent with DSDA-Doom (
atce2x722.lmpnow plays back identically in both ports). - Fixed loading disk icon changing size upon dynamic resolution changes.
- Fixed demo progress bar remaining on screen when using "End Game" to stop demos.
- Fixed some instances of music incorrectly being resumed when it should be paused.
- Fixed config file failing to be created in some cases (e.g. cross-device).
- Fixed
-uncappedand-nouncappedparameters not being respected. - Fixed obtuse crash when encountering unknown thing types in UMAPINFO
bossactiondefinitions
(now quits with a readable error message). - Fixed obscure crash related to voxel rendering on certain systems.
- Fixed potential vulnerability in "scanner" parsing code (UMAPINFO, MUSINFO, etc.).
- Fixed potential crash in PNG conversion code.
- Fixed potential crash in net code.