Rejoice, dhewm3 1.5.5 is here!
There have been lots of changes (see below for details), one highlight is that several sources of microstutters have been removed (like the old 60 vs 62.5fps problem) so the game should run smoother than before, especially when using VSync.
Another great new feature is the support for widescreen GUIs. It requires adjusting the .ui files; Arl created versions for the base game, Resurrection of Evil and The Lost Mission, they are provided as an optional Download (dhewm3-wide-guis-*.zip).
Note that especially the main menus may have some little glitches here and there - they're very big/complex, so converting them to widescreen wasn't exactly straightforward.
Furthermore, dhewm3 now supports BC7-compressed (BPTC) .dds textures. They offer better quality than the older S3TC/DXT/BC1-3 texture compression standard that Doom3 always supported, at the same size as DXT3-5. Useful for high-res retexturing packs. See the full changelog below for more details.
You can download a signed and notarized build for macOS (Apple Silicon and 64bit Intel) at https://www.macsourceports.com/game/doom3
dhewm3-mods contains some new mods:
- ELDOOM
- Grimm
- HeXen: Edge Of Chaos Demo
- Real Gibs
- Note: The page says it only works with the 32bit version of dhewm3, but that refers to the realgibs.dll they ship.
Use their gamedata with the .dll/.so provided here (or build the lib yourself)
- Note: The page says it only works with the 32bit version of dhewm3, but that refers to the realgibs.dll they ship.
- Blood Mod has been updated to v1.8 and now also supports Resurrection Of Evil
- LibreCoop is now maintained as part of dhewm3-sdk, until upstream becomes active again.
This means that you should use the librecoop.dll/.so/.dylib provided by the dhewm3-mods download - All mods got updated with gamecode changes from dhewm3 1.5.5
Changes since 1.5.4:
- Enable/disable Soft Particles when loading a graphics quality preset (only enabled in Ultra preset,
though you can still configure it independently like before; #604) - Greatly improve precision of internal timing, which should eliminate micro stutters
(that were esp. noticeable when using VSync with 60Hz displays).
Related:com_showFPSis now more precise andcom_showFPS 2shows additional information - Support BC7-compressed (BPTC) .dds textures. They offer better quality than the older S3TC/DXT/BC1-3
texture compression standard that Doom3 always supported. Mostly relevant for high-res retexturing
packs, because they offer similar quality as uncompressed TGAs while being smaller, using only
a quarter of the VRAM (TGA: 4 bytes per pixel, BC7: 1 byte per pixel) and loading significantly
faster because mipmaps are contained and don't have to be generated on load.
If you have such DDS files and want to use them (instead of TGAs), you must set
image_usePrecompressedTextures 1andimage_useNormalCompression 2.
You can also setimage_usePrecompressedTextures 2, then dhewm3 will only load .dds textures
with BC7 data - if it only finds an old one (with S3TC/DXT/BC-13 compression) it will use the
uncompressed TGA textures instead.
If you want to create .dds files with BC7 texture data, you can use any common texture compression
tool, except for normalmaps, those must be created with my
customized bc7enc with the-r2aflag!
(Because Doom3 requires that normalmaps have the red channel moved into the alpha channel,
id confusingly called that "RXGB", and AFAIK no other tool supports that for BC7.)
Just like the old DXT .dds files, they must be in thedds/subdirectory of a mod (either directly
in the filesystem or in a .pk4). - Allow creating aspect-ratio-independent GUIs (HUD and menus), based on code from
CstDoom3, but greatly extended (#324).
Note that this won't work out of the box with the original Doom3 game data, but requires updated GUIs.
See docs/GUIs.md for how to use these features when creating GUIs. - Support SDL3 (SDL2 and, to some degree, SDL1.2 are also still supported)
- Fix bugs on 64bit Big Endian platforms (#472, #625)
- Fixes for high-poly models (use heap allocation instead of
alloca()for big buffers; #528) - Fix building dhewm3ded with newer OpenAL Soft headers (#633)
- Better support for High-DPI mice:
- Don't ignore mouse input on fast movement ("ridiculous mouse delta"; #616)
- Allow setting sensitivity to values
< 1in the dhewm3 settings menu to allow sane speeds
for looking around with High-DPI mice (otherwise it might be way too fast)
- Fix a crash (assertion) on start with ImGui if
SDL_GetWindowDisplayIndex()
orSDL_GetDisplayDPI()failed and theimgui_scaleCVar was set to the default value of-1
(setting it to1worked around the bug; #632) - Fix scaling of Grabber cursor in Resurrection of Evil in non-4:3 resolutions (#637)
- Add
com_disableAutoSavesCVar: If set to1, Autosaves (when starting a level) are disabled (#620) - Add support for "nospecular" parm of lights, enabled by setting
"allow_nospecular" "1"in a maps
worldspawn, or by setting ther_allowNoSpecularCVar to1.
Note that this required changing the format of demos. dhewm3 can still play old demos, but ones
recorded with current dhewm3 are not compatible with older dhewm3 versions, original Doom3 or
other source ports (unless they do the same change). - Make sure macOS doesn't show popups for key-alternatives when pressing a key for longer while ingame
- Windows: Show error MessageBox if dhewm3log.txt can't be created on startup (#544)
- Running a timedemo with sound disabled (
s_noSound 1) doesn't crash anymore (#163) - Show some OpenGL/GPU information in the Video Options tab of the dhewm3 Settings Menu
- Fix saving/loading of
idSpring(func_spring) entity (#31) - Fix several issues (incl. crashes and missing shadows) with MD3 models (#698)
- Fix the "shrivel" effect of MD5 models (
SHADERPARM_MD5_SKINSCALE) - Optionally integrate the Tracy profiler.
Disabled unless you enable it in CMake. - Fixed a crash in AI pathfinding code that could happen in the lotsaimps testmap (#721)
- Disabled assertion in
TestHugeTranslation()that led to "crashes" in several user-maps (#720) - Fixed concatenation of timed GUI commands that sometimes lead to glitches in UIs
- Added
fs_gameDllPathCVar: If set, game DLLs will be searched in that directory before the other
standard places (like next to the executable). Especially useful for developing/debugging mod DLLs
(you can just setfs_gameDllPathto the build dir, no need to copy the DLL/.so/.dylib) - Fixed a crash when using an incomplete cubemap texture (missing one side).
Will now print a warning about the missing side. - Fix bug in map compiling (
dmap) that could lead to errors when loading the map,
due to "dangling edges" in collision models (#742) - Fix wrong (flipped) labels of Prev./Next Weapon in dhewm3 settings menu (#731)
- Gamepad trigger axes can now also be used for ducking and jumping (#733)
- Updated Dear ImGui to v1.92.5 (thanks Klaus Silveira!)
- Fix that after dying the wrong autosave might be loaded (#762)
- Increase
MAX_EYEBALL_TRISto 20, so mods can have eyeballs with more triangles in their models (#758) - Work around a problem with compiler math optimizations leading to assertion errors on Raspberry Pi 5 (#749)
- Default to building as C++98 if ImGui is disabled - with ImGui it still defaults to C++11.
The dhewm3-sdk does the same to avoid issues with compilers defaulting to C++20 that are unhappy
about variables named "requires" (which is a keyword in C++20). - Several smaller fixes for all kinds of things incl. build issues