August 2026
-
Add warning about zero-length files crashing original EXEs
-
General
Revert "engine: lower Polymost SCISDIST to 0.1f"
Show details
- Reverts
- c07a22e — engine: lower Polymost SCISDIST to 0.1f (Build 10514)
-
General
Remove set-but-unused variables
-
General
Fix MSVC build failure
Show details
- Follow-up to
- c611a02 — compat.h: Rearrange `HAVE_CXX11_HEADERS` (Build 10664)
-
General
Use lld just for linking
February 2026
-
Avoid crash when given an OOB voxel ID
-
Silence unused variable warnings in `Bassert` macro
-
General
Dear ImGui: Update to 76860017d51f25f943a1e607ab795b3615acefb5
Show details
This silences many warnings.
-
Silence unused variable warnings in `ASSERT` macro
-
General
libtess2.h: Fix warning: variable 'faceVerts' set but not used [-Wunused-but-set-variable]
-
Silence unused variable warnings in `DLOG` macros
-
General
compat.h: Rearrange `HAVE_CXX11_HEADERS`
-
Enable `-dp`, `-dr`, `-ddr`, `-dt`, `-de` cmd parameters for demos
-
Fix warning: variable 'y2b' set but not used [-Wunused-but-set-variable]
-
Fix warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
-
Fix warning: format string is not a string literal (potentially insecure) [-Wformat-security]
Show details
- Follow-up to
- 954e9b1 — SW: Add template function TerminateWithMsg and wrapper TerminateWithSimpleMsg (Build 10651)
-
Check all function keys for RTS and macros instead of only unbound ones
November 2025
-
fix adlib additive mode
October 2025
-
Fix null pointer dereferences in case of showing inventory bar right before player kill
-
Comment out definition and declaration of unused function _ErrMsg
-
Use TerminateWithMsg in _Assert
-
Use TerminateWithMsg in JS_DrawMirrors
-
Use TerminateWithMsg in JS_PlockError as well
Show details
There are unfortunate duplications of the shared string, but such occurrences don't seem to be that common so far.
-
Cleanup of what was non-RENDERTYPEWIN code
-
Remove not fully ported heap check code and related definitions
-
Remove DEBUG-specific console commands mem, checkheap, dumpheap
-
Replace a few more printf calls, none being compiled, with LOG_F/VLOG_F
-
Replace a few printf calls with uses of LOG_F(ERROR, ...)
Show details
Trailing '\n' characters have been removed again.
-
Do replace multiple calls to TerminateGame+print/wm_msgbox+exit
Show details
These are done using TerminateWithMsg, except for a few instances in which the strings were meant to be printed without formatting, where TerminateWithSimpleMsg is used instead. Trailing '\n' characters have been removed from input strings. For code previously using printf and not wm_msgbox or loguru, this should resolve instances in which the program would abort without relevant logs, at least under specific platforms. Note that printf had its usage under DOS.
-
Add template function TerminateWithMsg and wrapper TerminateWithSimpleMsg
Show details
TerminateWithMsg is going to be used instead of separate sets of calls to TerminateGame, printf/wm_msgbox and exit. It'll use wm_msgbox, not printf (originally used under DOS), and also go through LOG_F. This is an inline function definition using a variadic template, allowing the use of LOG_F and also matching loguru::log. TerminateWithSimpleMsg is a wrapper that allows printing a string without formatting.
-
Move #endif directive to the end of game.h
-
Increase mmulti.cpp's MAXPAKSIZE (size of pakbuf in bytes) to 2048.
Show details
This appeared to fix a long-standing issue, where a relatively high ping between two players (say, about 750ms) could start increasing over time due to accumulated messages not being sent sufficiently fast.
-
Log a warning from mmulti.cpp:dosendpackets in case output pakbuf lacks space for all data.
Show details
Do so with a given threshold, i.e., turn off the warning until there are 16 consecutive calls to dosendpackets in which pakbuf has enough space for all data to send.
-
Improve prediction of interpolated bob_z value
Show details
The addition of the "bob_z" field to the PREDICT struct might be unnecessary, technically speaking, but it probably won't hurt to ensure values are synced.
-
Fixed player movement prediction, now actually based on predicted angle
-
Fix switch to double Uzi for multiplayer games upon pick-up of second Uzi
-
Simplify HandleWeaponAutoSwitch usage to go through the DamageData array
-
Fix multiplayer sync errors with the weapon auto-switching toggle
Show details
This also permanently enables weapon auto-switching for PedanticMode. The idea here is that outside of pedantic mode, within multiplayer games, a new bit or more of the inspected player's Flags2 field will be set for the weapon. Afterwards, only for player no. myconnectindex, the function getinput will set loc->bits as if a matching key was pressed for selecting the weapon. loc->bits should be properly synced. Note that each player's structure, including Flags2, is reset within InitNewGame, but not from InitLevel as far as I may tell.
-
Introduce new weapon auto-switch PF2 flags for a follow-up commit
-
Fix voxels introducing glitched sprites in ROR sectors
Show details
- Follow-up to
- 6e6b82d — Use a tspr->clipdist bit to specify legacy voxels instead of tspr->cstat 48 (Build 10380)
September 2025
-
General
Update credits
-
Add detection for GOG version of WWII GI
-
General
Increase MAXVOXELS to 2048
August 2025
July 2025
-
fix timing issue in input code after rate is changed
-
Fix lighting preview when multiple SEs are in a sector
Show details
Adds a failsafe for when multiple SE12, SE3 or SE4 are in a single sector by only accounting for the first one (Lowest sprite #ID) This prevents the lighting preview from causing permanent shade changes to a map as it can only store the original map state for one SE sprite per sector.
-
Add EVENT_OPERATEACTIVATORS
Show details
EVENT_OPERATEACTIVATORS is run against each STAT_ACTIVATOR with a matching lotag when a typical Duke3D button/touchplate is triggered. Current sprite will be stored in THISACTOR and setting RETURN -1 will skip the normal processing of any remaining activator logic. This does not work with Masterswitches as they use a completely different logic instead.
- Fixes
- terminx/eduke32#323
June 2025
-
Fix selection bug affecting sector pal