dhewm3/Changelog.md

210 lines
13 KiB
Markdown
Raw Normal View History

2021-07-03 22:24:05 +00:00
dhewm3 Changelog
=================
Note: Numbers starting with a "#" like #330 refer to the bugreport with that number
at https://github.com/dhewm/dhewm3/issues/
1.5.2 (WIP)
------------------------------------------------------------------------
* 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*!)
2021-07-03 22:24:05 +00:00
- 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):
2021-07-03 22:24:05 +00:00
- 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)
2021-07-03 22:24:05 +00:00
- Support the clipboard also on non-Windows platforms
You can paste text from the clipboard into the console or other edit fields
2021-07-03 22:24:05 +00:00
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)
2021-07-03 22:24:05 +00:00
* `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)
2021-07-03 22:24:05 +00:00
* 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)
2021-07-03 22:24:05 +00:00
* 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)
2021-07-03 22:24:05 +00:00
1.5.1 (2021-03-14)
------------------------------------------------------------------------
* The (Windows-only) integrated **editing tools** of Doom3 are back!
- They can only be built with non-Express versions of Visual Studio (tested
Community Editions of VS2013 and VS2017) and can be disabled via CMake
- Official dhewm3 Windows binaries are built with tools enabled, of course.
- Only supports 32bit builds, because in contrast to the rest of dhewm3's code,
the tool code is not 64bit compatible at all.
- Based on Code from the dhewm3 branch of SteelStorm2, thanks to *Motorsep* for donating that code!
- Has some bugfixes over the state in Doom3 1.3.1, like selecting a material
in the Particle Editor doesn't break the viewport of the game any more.
- Thanks to *Tommy Hanusa* for testing and reporting some issues (that were subsequently fixed)!
* Update savegame format (see #303 and #344)
- old savegames should still work, but new savegames can't be loaded with older versions of dhewm3!
* Uploaded updated builds of Mod DLLs (esp. Dentonmod should run a lot more stable now).
Added Mod DLLs of [LibreCoop](https://www.moddb.com/mods/librecoop-dhewm3-coop)
and [The Lost Mission](https://www.moddb.com/mods/the-lost-mission).
See https://dhewm3.org/mods.html for more details.
* dhewm3 now supports the **Doom3 Demo** gamedata
- See [here](https://dhewm3.org/#using-the-doom3-demo-gamedata) for installation instructions
2021-07-03 22:24:05 +00:00
- This is based on *Gabriel Cuvillier's* code for [D3Wasm](http://www.continuation-labs.com/projects/d3wasm/),
which ports dhewm3 to web browsers, thanks!
* Create the game window on the display the cursor is currently on (when using more than one display)
* Added `r_fullscreenDesktop` CVar to set if fullscreen mode should be "classic"
or "Desktop" which means a borderless window at current desktop resolution
* Fullscreen modes that are not at the current desktop resolution should work better now
- including nvidia DSR / AMD VSR; for that you might have to use `dhewm3_notools.exe`,
as DSR/VSR seem to be incompatible with applications that use MFC
(the GUI framework used for the Doom3 tools like the D3Radiant)
* Several sound-related bugfixes:
- Lags in starting to play a sound which for example caused the machinegun or
plasmagun sounds to stutter have been eliminated (#141)
- Trying to reset disconnected OpenAL devices, this esp. helps with display audio
on Intel GPUs on Windows, when switching to fullscreen (#209)
- Looping .wav sounds with leadin now work (#291)
- The game still works if no sound devices are available at all (#292)
- Make "idSoundCache: error unloading data from OpenAL hardware buffer" a Warning
instead of an Error so it doesn't terminate game (by *Corey O'Connor*, #235)
* Restore "Carmack's Reverse" Z-Fail stencil shadows; use `glStencilOpSeparate()` if available
- That bloody patent finally expired last October: https://patents.google.com/patent/US6384822B1/en
- This neither seems to make a visual nor performance difference on any hardware
I tried (including Raspberry Pi 4), so this is mostly out of principle
- Based on Code by [*Leith Bade*](https://github.com/ljbade/doom3.gpl/commit/d4de024341e79e0ac1dfb54fb528859f8ccea605)
and [*Pat Raynor*](https://github.com/raynorpat/Doom3/blob/2933cb554587aea546c2df1fdf086204d4ca363d/neo/renderer/draw_stencilshadow.cpp#L147-L182).
- The `r_useCarmacksReverse` and `r_useStencilOpSeparate` CVars allow switching both things
on/off for comparison
* New CVar `g_hitEffect`: If set to `0`, the player camera damage effects (like double-vision and extreme tilt)
when being hit are disabled (by *dobosken*, #279).
* (On Windows) stdout.txt and stderr.txt are not saved next to the binary anymore,
but in `My Documents/My Games/dhewm3/`, like save games, because the binary dir
might not be writable and dhewm3 wouldn't start properly then
* Fix lingering messages in HUD after loading savegame
- Sometimes the "Game saved..." message didn't go away after loading a savegame
(when having saved while it still was showing from last save)
* Fixed clipping bug in delta1 which sometimes occured and made climbing some
ladders impossible (#328)
* Improve compatibility with some custom scripts
("t->c->value.argSize == func->parmTotal" Assertion; see #303)
* Registering multiplayer servers at id's master-server fixed, so they can be
found in the multiplayer menu (by *Stradex*, #293)
* Support for reproducible builds by setting the CMake option `REPRODUCIBLE_BUILD`.
* Should build on recent versions of macOS, also on Apple Silicon (thanks *Dave Nicolson* and *Petter Uvesten*).
* Proper handling of paths with dots in directory names (#299, #301)
- Some string functions that are intended to find/cut off/replace/... file extensions
did cut off the whole path at dots..
- Especially fixes loading and saving maps from such paths in the builtin D3Radiant level editor
* `idFileSystemLocal::ListMods()` doesn't search `/` or `C:\` anymore
(it did so if one of the paths, like `fs_cdpath`, was empty)
* Don't use translation in Autosave filenames (#305)
- In the Spanish translation all the Alpha Lab autosaves got the same name,
now the autosave name is based on the mapename instead which is distinct
1.5.0 (2018-12-15)
------------------------------------------------------------------------
* Support for some Mods via [custom SDK](https://github.com/dhewm/dhewm3-sdk):
Classic Doom3, Fitz Packerton, HardQore2, Denton's Enhanced Doom3 and Rivensin.
- See https://dhewm3.org/mods.html for more information.
- This has also broken backwards compatibility with 1.4.x game DLLs,
that's why this version will be 1.5.0 and not 1.4.2.
* Supports High DPI displays on Windows now
* Scale menus, fullscreen videos and the PDA to 4:3 (with black bars left/right) on
widescreen displays so they don't look stretched/distorted.
Can be disabled with `r_scaleMenusTo43 0`.
No, this unfortunately can't be done for the HUD (except for the crosshair),
because it also handles fullscreen effects (for example when receiving damage),
and those would look bad with black/empty bars on left/right.
* Commandline option to display some help on supported commandline arguments:
`-h` or `--help` or `-help` or `/?`
* ~~(Experimental) uncapped framerate, enable by entering `com_fixedTic -1`~~
~~in the console (can be set back with `com_fixedTic 0`).~~
(this turned out to be broken, see #261)
* Support for the AROS and OpenBSD operating systems
* Several bugfixes
1.4.1 (2016-06-19)
------------------------------------------------------------------------
* Fixed some (kinda rare) crashes due to assertion errors, especially observed in the last
boss fights of both doom3 and the Resurrection of Evil Addon.
* Improved compatibility with AZERTY keyboards (the row of keys with 1...9, 0 is now usable)
* Fixed a crash (at least on FreeBSD) when loading Resurrection of Evil's last level
* Compatibility with Microsoft Visual Studio 2015
* Video resolutions in menu now sorted, added 2880x1800
* Support for up to 8 mouse buttons (on Linux this needs SDL2 2.0.4 or newer to work)
1.4.0 (2015-10-09)
------------------------------------------------------------------------
The first dhewm3 release. Changes compared to Doom3 1.3.1 as open sourced
on 2011-11-22 (most work done by *dhewg*):
2021-07-03 22:24:05 +00:00
* Use CMake as build system instead of Visual Studio and XCode solutions and SCons etc
* Replaced lots of platform-specific code with libSDL
* Use OpenAL as only soundbackend on all platforms (instead of only on Windows)
Ported EAX for sound effects to the cross-platform OpenAL EFX extension
* Made code 64bit compatible (except for Windows-only MFC-based tools, which were disabled
because no free or at least no-cost compiler with MFC support was available at the time)
* Also made it compatible with the MinGW compiler
* Write savegames, configs, screenshots etc in user-specific directories
instead of installation directory on all platforms
* Fixed lots of bugs and compiler warnings
* Removed support for binary .pk4's, only support loading .dll/.so/.dylib for
game-code (mods) directly
* Support (and automatically detect) arbitrary aspect ratios
* Support more resolutions, inject them into the settings menu
* Open ingame-console with Shift+Esc (=> works with all keyboard layouts)
* Most probably much more I forgot...