Skip to content

Releases: dhewm/dhewm3

dhewm3 1.5.4

03 Aug 14:55
Compare
Choose a tag to compare

Release 1.5.4 of our Doom 3 Sourceport

Celebrating 20 years of Doom 3!

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.

Note: The provided Linux build now requires SDL 2.0.12 or newer.
If your system has an older version of SDL2 (e.g. 2.0.10 on Ubuntu 20.04), you can put the libSDL2-2.0.so.0 from sdl-2.30.0-linux-amd64.tar.gz into dhewm3/libs/ to make dhewm3 use this updated version of SDL2 (2.30.0).

An up-to-date version for macOS is available at http://www.macsourceports.com/sourceport/dhewm3

Changes since 1.5.3:

  • dhewm3-mods now contains game DLLs/libs for several new mods:
  • A brand new settings menu that uses Dear ImGui.
    Can be opened with F10 (unless that key is bound already) or by entering dhewm3Settings
    in the console. It has lots of settings that the original options menu doesn't have and
    can be easily navigated with gamepad or keyboard (or the mouse, of course).
    It can also be opened while in the game, which then is paused (if Single Player) but still visible,
    so the effect of most graphics settings can be seen immediately.
    Needs SDL2 and C++11.
  • "Soft" Particles (that don't "cut" into geometry but fade smoothly), based on code from The Dark Mod
    2.04. Can be enabled/disabled with r_useSoftParticles, is applied automatically for all appropriate
    particles (view-aligned, using additive or alpha blending and not too small)
  • r_enableDepthCapture: Enable capturing depth buffer to texture, needed for the soft particles.
    Can be used in custom materials by using the "_currentDepth" texture
  • Replaced dependency on (external) zlib with integrated miniz
  • HighDPI/Retina support
  • Allow inverted mouse look (horizontally, vertically or both) with m_invertLook
  • CVar to allow always run in single player (still drains stamina though!): in_allowAlwaysRunInSP
  • VSync can be enabled/disabled on the fly, without restarting the renderer (still with r_swapInterval
    or in the menu, of course; needs SDL2)
  • Allow enabling/disabling HRTF with s_alHRTF
  • s_alOutputLimiter: Configure OpenAL's output-limiter which temporarily reduces the overall
    volume when too many too loud sounds play at once, to avoid issues like clipping
  • s_scaleDownAndClamp: Clamp and reduce volume of all sounds to prevent clipping or temporary
    downscaling by OpenAL's output limiter
  • If r_windowResizable is set, the dhewm3 window (when in windowed mode..) can be freely resized.
    Needs SDL2; with 2.0.5 and newer it's applied immediately, otherwise when creating the window.
  • If switching between fullscreen and windowed mode or similar changes causes issues (like here), you can set r_vidRestartAlwaysFull 1, so (again) a full vid_restart is done, instead of the partial one which usually suffices for just changing the resolution or fullscreen state. If you run into that issue (probably a driver bug), you'll probably also want to set r_windowResizable 0, because resizing the window that way also triggered the bug, and in that case no vid_restart is done at all
  • Fixed screenshots when using native Wayland (SDL_VIDEODRIVER=wayland)
  • If you enter the map command in the console, without any arguments, the current map name is printed
  • Support OpenGL debug contexts and messages (GL_ARB_debug_output). Can be enabled with r_glDebugContext 1.
    Changing that CVar requires a vid_restart (or set it as startup argument)
  • In the Win32 release, updated the bundled SDL2 to 2.30.5 and cURL to 8.9.0
  • In the dhewm3-mods archive for Linux, the librecoop libs have been rebuild (fix #589)

Thank you very much to everyone who tested this, especially @j4reporting, @ALord7, @Eonfge and @tomkidd (who also maintains the macOS port at http://www.macsourceports.com/sourceport/dhewm3)!

Special thanks to Valkyries733 from the idtech4 Discord channel who created the picture celebrating 20years of Doom3 used in the newspost

dhewm3 1.5.4 Release Candidate 3

30 Jul 00:53
Compare
Choose a tag to compare
Pre-release

Release Candidate 3 for the upcoming version 1.5.4 of our Doom 3 Sourceport
(hopefully the last one)

This is outdated, please use 1.5.4 instead!

Click to see the rest of this outdated post

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.

The only change since RC2 is a fix for Soft Particles (that made the muzzle flash in Dentonmod look wrong).

The mods themselves haven't changed, download them from RC2

dhewm3 1.5.4 Release Candidate 2

29 Jul 01:39
Compare
Choose a tag to compare
Pre-release

Release Candidate 2 for the upcoming version 1.5.4 of our Doom 3 Sourceport

This is outdated, please use 1.5.4 instead!

Click to see the rest of this outdated post

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.

Note: The provided Linux build now requires SDL 2.0.12 or newer.
If your system has an older version of SDL2 (e.g. 2.0.10 on Ubuntu 20.04), you can put the libSDL2-2.0.so.0 from sdl-2.30.0-linux-amd64.tar.gz into dhewm3/libs/ to make dhewm3 use this updated version of SDL2 (2.30.0).

Changes since 1.5.4 RC1:

  • Fixed mods menu to support Perfected Doom 3 ROE and Sikkmod RoE (so they automatically get fs_game_base set to d3xp when started from the menu)
  • Make entries for base game and Resurrection of Evil (d3xp) in mods menu clearer
  • Fixed Perfected Doom 3 ROE (so it actually starts)
  • Applied fix to Perfected Doom 3 and Sikkmod so the crosshair is round in widescreen resolutions

dhewm3 1.5.4 Release Candidate 1

26 Jul 04:16
Compare
Choose a tag to compare
Pre-release

Release Candidate 1 for the upcoming version 1.5.4 of our Doom 3 Sourceport

This is outdated, please use 1.5.4 instead!

Click to see the rest of this outdated post

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.

Note: The provided Linux build now requires SDL 2.0.12 or newer.
If your system has an older version of SDL2 (e.g. 2.0.10 on Ubuntu 20.04), you can put the libSDL2-2.0.so.0 from sdl-2.30.0-linux-amd64.tar.gz into dhewm3/libs/ to make dhewm3 use this updated version of SDL2 (2.30.0).

Changes since 1.5.3:

  • dhewm3-mods now contains game DLLs/libs for several new mods:
  • A brand new settings menu that uses Dear ImGui.
    Can be opened with F10 (unless that key is bound already) or by entering dhewm3Settings
    in the console. It has lots of settings that the original options menu doesn't have and
    can be easily navigated with gamepad or keyboard (or the mouse, of course).
    It can also be opened while in the game, which then is paused (if Single Player) but still visible,
    so the effect of most graphics settings can be seen immediately.
    Needs SDL2 and C++11.
  • "Soft" Particles (that don't "cut" into geometry but fade smoothly), based on code from The Dark Mod
    2.04. Can be enabled/disabled with r_useSoftParticles, is applied automatically for all appropriate
    particles (view-aligned, using additive or alpha blending and not too small)
  • r_enableDepthCapture: Enable capturing depth buffer to texture, needed for the soft particles.
    Can be used in custom materials by using the "_currentDepth" texture
  • Replaced dependency on (external) zlib with integrated miniz
  • HighDPI/Retina support
  • Allow inverted mouse look (horizontally, vertically or both) with m_invertLook
  • CVar to allow always run in single player (still drains stamina though!): in_allowAlwaysRunInSP
  • VSync can be enabled/disabled on the fly, without restarting the renderer (still with r_swapInterval
    or in the menu, of course; needs SDL2)
  • Allow enabling/disabling HRTF with s_alHRTF
  • s_alOutputLimiter: Configure OpenAL's output-limiter which temporarily reduces the overall
    volume when too many too loud sounds play at once, to avoid issues like clipping
  • s_scaleDownAndClamp: Clamp and reduce volume of all sounds to prevent clipping or temporary
    downscaling by OpenAL's output limiter
  • If r_windowResizable is set, the dhewm3 window (when in windowed mode..) can be freely resized.
    Needs SDL2; with 2.0.5 and newer it's applied immediately, otherwise when creating the window.
  • If switching between fullscreen and windowed mode or similar changes causes issues (like here), you can set r_vidRestartAlwaysFull 1, so (again) a full vid_restart is done, instead of the partial one which usually suffices for just changing the resolution or fullscreen state. If you run into that issue (probably a driver bug), you'll probably also want to set r_windowResizable 0, because resizing the window that way also triggered the bug, and in that case no vid_restart is done at all
  • Fixed screenshots when using native Wayland (SDL_VIDEODRIVER=wayland)
  • If you enter the map command in the console, without any arguments, the current map name is printed
  • Support OpenGL debug contexts and messages (GL_ARB_debug_output). Can be enabled with r_glDebugContext 1.
    Changing that CVar requires a vid_restart (or set it as startup argument)
  • In the Win32 release, updated the bundled SDL2 to 2.30.5 and cURL to 8.9.0
  • In the dhewm3-mods archive for Linux, the librecoop libs have been rebuild (fix #589)

dhewm3 1.5.3

29 Mar 04:26
Compare
Choose a tag to compare

Release 1.5.3 of our Doom 3 Sourceport

By the way: There is a newer release - you probably want that instead :)

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.


UPDATE 2024-04-19:

The Linux binaries of this release were buggy, see #572.
If you want to use the Linux amd64 binaries provided here (instead of compiling yourself), please use the updated dhewm3-1.5.3try2_Linux_amd64.tar.gz and dhewm3-mods-1.5.3try2_Linux_amd64.tar.gz instead.

To avoid confusion, I deleted the old Linux binary archives from the downloads below.

The only change compared to 1.5.3 is 6daf1e9, and as far as I can tell this bug only manifests itself when compiling with ancient versions of GCC (I use 4.7.2 in my build environment; current Linux distributions ship GCC 9 or newer), so I decided against creating an entire new dhewm3 release for this.


Note: The provided Linux build now requires SDL 2.0.12 or newer.
If your system has an older version of SDL2 (e.g. 2.0.10 on Ubuntu 20.04), you can put the libSDL2-2.0.so.0 from sdl-2.30.1-linux-amd64.tar.gz into dhewm3/libs/ to make dhewm3 use this updated version of SDL2 (2.30.1).

Changes since 1.5.2:

  • Support for gamepads (based on code from Quadrilateral Cowboy,
    but heavily expanded). See Configuration.md for more information. Needs SDL2.
  • Support different file formats for screenshots by setting the r_screenshotFormat CVar
    (0 = TGA, still the default, 1 = BMP, 2 = PNG, 3 = JPG). r_screenshotJpgQuality and
    r_screenshotPngCompression allow configuring how JPG/PNG are compressed.
    Thanks eezstreet (Nick Whitlock)!
  • Fixed problems with lights after loading a savegame (#495)
  • Fix volume of some weapon sounds, like chaingun being too quit (#326)
  • Increase stack size on Windows to 8MB (instead default of 1MB) to make loading huge models work
  • Fixed crash in Radiant Model Preview Dialog (#496)
  • Fix MD3 model support
  • Several new CMake options:
    • To enable Clang/GCC Address Sanitizer and Undefined Behavior Sanitizer
    • Hardlink the game code into the executable (instead of using game DLLs,
      only supports base or d3xp then; needed for Undefined Behavior Sanitizer)
    • Force colored diagnostic output from GCC or Clang (esp. useful when building with ninja)
  • Fix several compiler warnings
  • Added build instructions for Linux (and similar systems) to README.md
  • Added documentation for dhewm3-specific settings (mostly CVars): Configuration
  • Updated stb_image and stb_vorbis
  • Updated minizip (from zlib/contrib) to latest upstream code
  • Added in_namePressed CVar to print currently pressed key/button (useful for binding keys
    in the console or configs). Thanks Biel Bestué de Luna!
  • Updated bundled libs on Windows: OpenAL Soft 1.23.1, SDL 2.30.1, cURL 8.6.0, zlib 1.3.1
  • Linux binary build provided here now requires SDL 2.0.12 or newer (I provide an updated libSDL2-2.0.so.0 though).
    If you compile dhewm3 yourself, older SDL2 versions (and SDL1.2) are still supported (however, SDL1.2 doesn't support gamepads).

dhewm3 1.5.3 Release Candidate 2

18 Mar 03:37
Compare
Choose a tag to compare
Pre-release

Release Candidate 2 for the upcoming version 1.5.3 of our Doom 3 Sourceport

This is outdated, please use 1.5.3 instead.

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.

Note: The provided Linux build now requires SDL 2.0.12 or newer.
If your system has an older version of SDL2 (e.g. 2.0.10 on Ubuntu 20.04), you can put the libSDL2-2.0.so.0 from sdl-2.30.0-linux-amd64.tar.gz into dhewm3/libs/ to make dhewm3 use this updated version of SDL2 (2.30.0).

Changes since 1.5.3 RC1:

  • Updated minizip (from zlib/contrib) to latest upstream code
  • Fix bug with detecting if cursor is on ingame-UI or not, leading to mixing up the A/B/X/Y buttons on gamepads in normal gameplay.
    (NOTE: This fix requires changes in the game DLLs, so if you want to play the supported mods make sure to use the latest builds linked below, or rebuild them yourself from latest git code)

dhewm3 1.5.3 Release Candidate 1

04 Feb 23:39
Compare
Choose a tag to compare
Pre-release

Release Candidate 1 for the upcoming version 1.5.3 of our Doom 3 Sourceport

This is outdated, please use 1.5.3 instead.

Click to see the rest of this post

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information.

Note: The provided Linux build now requires SDL 2.0.12 or newer.
If your system has an older version of SDL2 (e.g. 2.0.10 on Ubuntu 20.04), you can put the libSDL2-2.0.so.0 from sdl-2.30.0-linux-amd64.tar.gz into dhewm3/libs/ to make dhewm3 use this updated version of SDL2 (2.30.0).

Note: There are no new builds of mod .DLL/.so files yet, the ones from 1.5.2 work with 1.5.3 as well.

Changes since 1.5.2:

  • Support for gamepads (based on code from Quadrilateral Cowboy,
    but heavily expanded). See Configuration.md for more information.
  • Support different file formats for screenshots by setting the r_screenshotFormat CVar
    (0 = TGA, still the default, 1 = BMP, 2 = PNG, 3 = JPG). r_screenshotJpgQuality and
    r_screenshotPngCompression allow configuring how JPG/PNG are compressed.
    Thanks eezstreet (Nick Whitlock)!
  • Fixed problems with lights after loading a savegame (#495)
  • Fix volume of some weapon sounds, like chaingun being too quit (#326)
  • Increase stack size on Windows to 8MB (instead default of 1MB) to make loading huge models work
  • Fixed crash in Radiant Model Preview Dialog (#496)
  • Fix MD3 model support
  • Several new CMake options:
    • To enable Clang/GCC Address Sanitizer and Undefined Behavior Sanitizer
    • Hardlink the game code into the executable (instead of using game DLLs,
      only supports base or d3xp then; needed for Undefined Behavior Sanitizer)
    • Force colored diagnostic output from GCC or Clang (esp. useful when building with ninja)
  • Fix several compiler warnings
  • Added build instructions for Linux (and similar systems) to README.md
  • Updated stb_image and stb_vorbis
  • Updated bundled libs on Windows: OpenAL Soft 1.23.1, SDL 2.30.0, cURL 8.6.0, zlib 1.3.1
  • Linux binary build provided here now requires SDL 2.0.12 or newer.
    If you compile dhewm3 yourself, older SDL2 versions (and SDL1.2) are still supported.

dhewm3 1.5.2

13 Jun 03:17
Compare
Choose a tag to compare

Release 1.5.2 of our Doom3 Sourceport.

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information

By the way: There is a newer release - you probably want that instead :)

UPDATE 2022-06-13 13:32:19 UTC: Replaced dhewm3-mods_1.5.2_win32.zip - the original archive's d3le.dll was broken

Click to see changes since 1.5.1
  • Gamma and Brightness are now applied in the shaders instead of by setting hardware gamma.
    Can be disabled (so hardware gamma is used again) with r_gammaInShaders 0
  • Improvements for (Windows-only) MFC-based tools:
    • Added the script debugger! (thanks HarrievG!)
      Original Doom3 didn't have it (Quake4 did), but the Doom3 GPL source contained
      most of it. HarrievG implemented the missing parts and we added some new
      features. It can even be used over the network and while the client part
      (the debugger GUI) is Windows-only, the server can run on all supported
      platforms, so you can debug a game running on Linux or macOS, for example.
      Relevant CVars for network debugging are:
      com_enableDebuggerServer and com_dbgClientAdr and com_dbgServerAdr.
      To debug the running game on the same PC, just enter debugger in the console.
    • All tools can now be built in 64bit (thanks raynorpat!)
    • HighDPI support (thanks HarrievG!)
    • PDAEditor works now
    • Additional bugfixes
  • Cycle through multiple Quicksave slots instead of immediately overwriting the last
    Quicksave. The com_numQuicksaves CVar allows setting the number of QuickSaves (#392)
  • Make r_locksurfaces work (#357)
    It doesn't do exactly what its description and name suggests: it renders
    everything that is currently visible from the position/view the player had
    when setting r_locksurfaces 1. Originally it was supposed to render exactly
    the surfaces that were visible then, but I couldn't get that to work.
    This is pretty similar, but there may be differences with opened doors and such.
  • Keyboard input improvements (mostly SDL2-only):
    • Support (hopefully) all keyboard keys on all kinds of keyboard layouts
      by using scancodes for otherwise unknown keys
    • Support typing in non-ASCII characters, if supported by Doom3 (it supports ISO-8859-1)
    • Support the clipboard also on non-Windows platforms
      You can paste text from the clipboard into the console or other edit fields
      with Shift+Insert
    • Explicit support for Right Ctrl, Alt and Shift keys
      (can be bound to different actions than their left counterparts)
    • Added in_grabKeyboard CVar to make sure dhewm3 gets all keyboard input
      Prevents the Windows-key or Alt-Tab or whatever from taking focus from the game
    • Added in_ignoreConsoleKey - if set to 1, the console is only opened with
      Shift+Esc, and the "console key" (that key between Esc, 1 and Tab) can be freely
      bound to an action (and its char can be typed in the console without closing it).
    • Added (SDL2-only) "auto" option for in_kbd: When not disabling the console key,
      dhewm3 will try to automatically detect it if in_kbd is set to "auto" (now default)
  • Reworked mouse-input and -grabbing code, using absolute mouse mode in fullscreen GUIs
    (except for the PDA, because it's implemented weirdly).
    This made releasing the mouse in the main menu possible, as now the ingame cursor
    is at the same position as the system cursor.
  • s_alReverbGain CVar to reduce EFX reverb effect intensity (#365)
  • Pause (looped) sounds when entering menu (#330)
  • Fixes for looped sounds (#390)
  • Replace libjpeg with stb_image and libogg/libvorbis(file) with stb_vorbis
    • Now the only required external dependencies should be OpenAL, SDL, zlib
      and optionally libCURL (and of course the C and C++ runtimes)
  • (Optionally) use libbacktrace on non-Windows platforms for more useful
    backtraces in case of crashes (usually linked statically)
  • Fixed a deadlock (freeze) on Windows when printing messages from another thread
  • Fixed endless loop (game locking up at startup) if graphics settings couldn't be applied (#386)
  • Fixed some warnings and uninitialized variables (thanks turol!)
  • Work around dmap bug caused by GCC using FMA "optimizations" (#147)
  • Prevent dhewm3 from being run as root on Unix-like systems to improve security
  • Replaced most usages of strncpy() with something safer to prevent buffer overflows
    (remaining cases should be safe).
    • Just a precaution, I don't know if any of them could actually be exploited,
      but there were some compiler warnings in newer GCC versions.
  • Console output is now logged to dhewm3log.txt (last log is renamed to dhewm3log-old.txt)
    • On Windows it's in My Documents/My Games/dhewm3/
    • On Mac it's in $HOME/Library/Application Support/dhewm3/
    • On other Unix-like systems like Linux it's in $XDG_DATA_HOME/dhewm3/
      (usually $HOME/.local/share/dhewm3/)
  • Improved compatibility with Wayland (#426)
  • Work around assertion in AlphaLabs4 due to "ride_of_death" yeeting
    the dead "monster_zsec_shotgun_12" into the void (#409)
  • Support loading some mods known to need fs_game_base d3xp via Mods menu
    (currently, The Lost Mission and LibreCoop d3xp are supported)
  • Disable assertion in idSampleDecoderLocal::DecodeOGG() that triggered
    when starting a new Classic Doom3 game (#461)

dhewm3 1.5.2 Release Candidate 2

29 May 18:47
Compare
Choose a tag to compare
Pre-release

Release Candidate 2 for the upcoming version 1.5.2 of our Doom 3 Sourceport

This is outdated, please use 1.5.2 instead.

Also providing updated mod DLLs!

Small Update: Added dhewm3_1.5.2rc2_win32_lighteditor-fix.zip which has a bugfix that makes the Lights Editor work in the D3Radiant (Windows-only level editor) again. It contains just dhewm3.exe, take the other files from dhewm3_1.5.2_RC2_win32.zip.

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information

Click to see changes since 1.5.2 RC1
  • Updated the code of all mods hosted in dhewm3-sdk repository with relevant changes from dhewm3. Corresponding binaries are in the dhewm3-mods_* archives you can download below.
  • The SDL2.dll in the Windows download has been downgraded to 2.0.20 to avoid a regression in SDL 2.0.22 (#460)
  • Support loading some mods known to need fs_game_base d3xp via Mods menu
    (currently, The Lost Mission and LibreCoop d3xp are supported)
  • Disable assertion in idSampleDecoderLocal::DecodeOGG() that triggered
    when starting a new Classic Doom3 game (#461)
  • Fix assertion when loading a mod via menu (#458)
    (this was a regression introduced with the keyboard improvements after 1.5.1)
  • Fix mouse remaining ungrabbed when running map from Radiant
    (this was a regression introduced with the reworked mouse grabbing code after 1.5.1)

dhewm3 1.5.2 Release Candidate 1

16 May 18:19
Compare
Choose a tag to compare
Pre-release

Release Candidate 1 for the upcoming version 1.5.2 of our Doom 3 Sourceport

This is outdated, please use 1.5.2 instead.

Needs the original Doom3 (not BFG!) game data.
See https://dhewm3.org/ for more information

Click to see changes since 1.5.1
  • Gamma and Brightness are now applied in the shaders instead of by setting hardware gamma.
    Can be disabled (so hardware gamma is used again) with r_gammaInShaders 0
  • Improvements for (Windows-only) MFC-based tools:
    • Added the script debugger! (thanks HarrievG!)
      Original Doom3 didn't have it (Quake4 did), but the Doom3 GPL source contained
      most of it. HarrievG implemented the missing parts and we added some new
      features. It can even be used over the network and while the client part
      (the debugger GUI) is Windows-only, the server can run on all supported
      platforms, so you can debug a game running on Linux or macOS, for example.
      Relevant CVars for network debugging are:
      com_enableDebuggerServer and com_dbgClientAdr and com_dbgServerAdr.
      To debug the running game on the same PC, just enter debugger in the console.
    • All tools can now be built in 64bit (thanks raynorpat!)
    • HighDPI support (thanks HarrievG!)
    • PDAEditor works now
    • Additional bugfixes
  • Cycle through multiple Quicksave slots instead of immediately overwriting the last
    Quicksave. The com_numQuicksaves CVar allows setting the number of QuickSaves (#392)
  • Make r_locksurfaces work (#357)
    It doesn't do exactly what its description and name suggests: it renders
    everything that is currently visible from the position/view the player had
    when setting r_locksurfaces 1. Originally it was supposed to render exactly
    the surfaces that were visible then, but I couldn't get that to work.
    This is pretty similar, but there may be differences with opened doors and such.
  • Keyboard input improvements (mostly SDL2-only):
    • Support (hopefully) all keyboard keys on all kinds of keyboard layouts
      by using scancodes for otherwise unknown keys
    • Support typing in non-ASCII characters, if supported by Doom3 (it supports ISO-8859-1)
    • Support the clipboard also on non-Windows platforms
      You can paste text from the clipboard into the console or other edit fields
      with Shift+Insert
    • Explicit support for Right Ctrl, Alt and Shift keys
      (can be bound to different actions than their left counterparts)
    • Added in_grabKeyboard CVar to make sure dhewm3 gets all keyboard input
      Prevents the Windows-key or Alt-Tab or whatever from taking focus from the game
    • Added in_ignoreConsoleKey - if set to 1, the console is only opened with
      Shift+Esc, and the "console key" (that key between Esc, 1 and Tab) can be freely
      bound to an action (and its char can be typed in the console without closing it).
    • Added (SDL2-only) "auto" option for in_kbd: When not disabling the console key,
      dhewm3 will try to automatically detect it if in_kbd is set to "auto" (now default)
  • Reworked mouse-input and -grabbing code, using absolute mouse mode in fullscreen GUIs
    (except for the PDA, because it's implemented weirdly).
    This made releasing the mouse in the main menu possible, as now the ingame cursor
    is at the same position as the system cursor.
  • s_alReverbGain CVar to reduce EFX reverb effect intensity (#365)
  • Pause (looped) sounds when entering menu (#330)
  • Fixes for looped sounds (#390)
  • Replace libjpeg with stb_image and libogg/libvorbis(file) with stb_vorbis
    • Now the only required external dependencies should be OpenAL, SDL, zlib
      and optionally libCURL (and of course the C and C++ runtimes)
  • (Optionally) use libbacktrace on non-Windows platforms for more useful
    backtraces in case of crashes (usually linked statically)
  • Fixed a deadlock (freeze) on Windows when printing messages from another thread
  • Fixed endless loop (game locking up at startup) if graphics settings couldn't be applied (#386)
  • Fixed some warnings and uninitialized variables (thanks turol!)
  • Work around dmap bug caused by GCC using FMA "optimizations" (#147)
  • Prevent dhewm3 from being run as root on Unix-like systems to improve security
  • Replaced most usages of strncpy() with something safer to prevent buffer overflows
    (remaining cases should be safe).
    • Just a precaution, I don't know if any of them could actually be exploited,
      but there were some compiler warnings in newer GCC versions.
  • Console output is now logged to dhewm3log.txt (last log is renamed to dhewm3log-old.txt)
    • On Windows it's in My Documents/My Games/dhewm3/
    • On Mac it's in $HOME/Library/Application Support/dhewm3/
    • On other Unix-like systems like Linux it's in $XDG_DATA_HOME/dhewm3/
      (usually $HOME/.local/share/dhewm3/)
  • Improved compatibility with Wayland (#426)
  • Work around assertion in AlphaLabs4 due to "ride_of_death" yeeting
    the dead "monster_zsec_shotgun_12" into the void (#409)