gzDoom

Émulateur v4.14.1

zDoom, désormais GzDoom et ayant une alternative nommée LzDoom permet de rejouer dans de bonnes conditions à  Doom, Doom II, Heretic, Hexen et autres, à condition d'avoir les données originales. zDoom est disponible pour PPC alors que LzDoom est une version améliorée de zDoom mais moins avancée que GzDoom qui utilise Vulkan ou OpenGL (version 3.3 minimum) et supporte le M1. On en parle dans notre dossier sur les interpréteurs.

Dernière mise à jour :

Plateformes

Interpréteurs

Architecture

Mac OS X - macOS Mac OS X - macOS PowerPC PowerPC Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits

Téléchargement et liens

Historique des versions

vg4.14.2
Ortho + OOB fixes and improvements
Fix to some crashes and memory leaks
many more fixes and improvements
Revert clipper to older code path when not in Ortho/OOB (speed improvement)
Exported: GetLumpContainer GetContainerName GetLumpFullPath for WADS struct, useful for debugging custom-made parsers and identifying where problems may arise.
Added autoSwitch parameter to A_ReFire
Changelog complet
- Ortho + OOB fixes and improvements - Revert clipper to older code path when not in Ortho/OOB (speed improvement) - Fix to some crashes and memory leaks - Exposed DDoor to ZScript, Exposed DPlat to ZScript, Exposed more of the Ceiling thinker, Exposed more of the Floor thinker, Exposed DElevator to ZScript. - Exported: • GetLumpContainer • GetContainerName • GetLumpFullPath for WADS struct, useful for debugging custom-made parsers and identifying where problems may arise. - Added autoSwitch parameter to A_ReFire - add a few commonly-used gzdoom-specific properties to the dehacked parser - many more fixes and improvements
vg4.14.1
Fixed the registered or shareware versions of Doom not using the correct chat sound.
Fixed ACS scripts executing a function from another library that cause a division/modulus of zero from aborting the game.
Fixed ammo and backpack with local items on
Fix damage being skipped for spectral puffs
fix TranslationID casting
Fix coop key share failing if the item was spawned in-game (for example, via the console)
implement new cvar `save_sort_order` - for now options are only 0 or 1 - 0 is alphabetical, 1 is descending by time (most recent first)
store current time in the save game node when saving a new game - when overwriting a save force it to reposition itself in the list in case any of its details have changed
Changelog complet
- Fix damage being skipped for spectral puffs - add a 1:1.2 ratio min-scale mode - allow summon to work with visual thinkers - add snd_footstepvolume to sound options menu - fix TranslationID casting - add helper methods to Sound/SpriteID/TranslationID - allow nullptr with spriteid/textureid/translationid (for default parameters/etc) - Add lm_sunintensity documentation. Clean up styling of all ZDRay-related entries - Allow setting a dynamic light's alpha to influence its brightness. This brings it in parity with VKDoom - enable mipmapping in 2D - Fix coop key share failing if the item was spawned in-game (for example, via the console) - implement new cvar `save_sort_order` - for now options are only 0 or 1 - 0 is alphabetical, 1 is descending by time (most recent first) - store current time in the save game node when saving a new game - when overwriting a save force it to reposition itself in the list in case any of its details have changed - add save order to menu - address adaptive sync flicker issue (disables 35 fps cap during game pause) - don't allow `vid_dontdowait` if neither `vid_vsync` is true nor `vid_maxfps` is set, in order to prevent coil whine - Added interpolation to crosshair size - Fix fatal error formatting - add default values, vec4 uniforms, and cvar uniforms to post-process uniforms - Fixed the registered or shareware versions of Doom not using the correct chat sound. - update DUMB license from zmusic source. - Make the visual thinker statnum assignment check unconditional since statnum is no longer a pointer - fix DScriptScanner - Updated VisualThinker render linkage - Exported thing activation function - Don't create thing iterator if THRUACTORS is set when moving - Added S_StartSoundAt - fix automap display for keys that were altered by Dehacked. - Exported conversation behaviors - Added HasConversation - fix typos/bring udmf in sync with vkdoom - Clear VisualThinkerHead on new level - Allow passing sound volume to PlayBounceSound in ZScript - add one last missing field from vkdoom - Improvements for VisualThinkers - source: add `CVAR_SYSTEM_ONLY` flag to automatically blacklist filesystem-related cvars for defcvars. This should be used on any cvar that can be changed by the user that relates to filenames or pathnames - remove bone component cache to decrease memory consumption - Added flags for angle handling on bounce - Fixed ACS scripts executing a function from another library that cause a division/modulus of zero from aborting the game. - Add a particle flag to allow user shaders on the sprites - fix compile error missing tarray.h - Added translation argument for A_SprayDecal - New "Translatable" property in DECALDEF which is just an alias for "OpaqueBlood" to reflect its general use, and also to support the new translation parameter of A_SprayDecal. "OpaqueBlood" should be considered deprecated. Note that specifying a translation directly in the DECALDEF will be added in future, in another commit. - Added NOAUTOOFFSKULLFLY flag - expand deprecation allowance for gzdoom.pk3 - add fuel/calamity blade/incinerator from id24 - Make CopyBloodColor readonly - fix id24 style intermissions - fix A_DoChase using the wrong type in non-jit - more misc animation fixes - fix out-of-bounds array access - Smoothly interpolate the player pitch-centering action - allow cutscenes in intermissions - allow optionally skipping initial wipe in in-game intermissions - fix ammo give/autoaim for incinerator/calamity blade - replace incomplete flags from DECOHACK with projectile combo - fix id24 weapons transparency - add static function to convert ints to names - fix out-of-bounds array access (again) - Add VKDoom's lm_ao and lm_bounce to the UDMF specs - remove priority changing code entirely - replace with `vid_lowerinbackground` which activates FPS capping in background - Added is3DFloor parameter to SpecialBounceHit - Added PlayerRespawning event - Fixed ammo and backpack with local items on - Fix FxExpression::EmitCompare not properly handling constant registers. - Added FindClass - add default cvar getters - don't allow changing out-ness of parameters in virtual overrides - don't load idres24.wad in multiplayer games by default; allow override with cvar setting - fix classic doom.doom filter - renormalize normals on scaled models
vg4.14.0
Fixed crash on functions with missing return values
Improved "respawn where died" functionality (#2831)
Add new SBARINFO top level "AppendStatusBar", allowing for extra SBARINFO code to be added to custom SBARINFO definitions.
remove version check for array type fix, to prevent crashes/etc with bad types
Fixed WalkStepTics & RunStepTics in terrain parser
source made FCommandLine::operator[] return a const char * and fixed two places where this triggered a compile error.
fixed UMAPINFO's label field to allow 'clear' as argument.
Fixed STRETCHPIXELS flag not being exposed.
Changelog complet
- Resolve compiler warning about destructor syntax - Fixed WalkStepTics & RunStepTics in terrain parser - Interpolate non-Burn screen wipes - Added LookForEnemiesEx() for returning all enemies in an area. (#2753) - fix and re-enable non-player sector damage logic from 4.13.0 - Added (SPF_)STRETCHPIXELS. - Add manual config saving to CVar struct - allow getting checksum for current map - FOV scales ortho up to 180 degrees - do not open resource files from non-open file readers. - source made FCommandLine::operator[] return a const char * and fixed two places where this triggered a compile error. - Move no-mipmapping from actor renderflag/particle flag, to a material property in GLDEFS, where it makes more sense. The feature was introduced in the short-lived engine version of 4.13 which was deemed too broken and needed to be replaced with a newer version anyway, so might as well perform an API-breaking change at this point in time. Note that this currently only works for sprites (its primary targeted use case) -- walls, flats and models can be patched in later. - fixed UMAPINFO's label field to allow 'clear' as argument. - time footsteps with duration of movement, not with actor age - make sure WalkStepTics and RunStepTics read ints, not floats - Add velocity/distance based footsteps - add CVar to control footstep volume - change order for Kex edition wads to appear last since they were most recent - Clarify default value for useowncolors - Do a check if a local variable exceeds the available stack space. - Check array size for overflow. - cap the size of the string copy calls in LevelStatEntry() - add set/get plane reflectivity - Reduce number of multiply ops per frame and increase x-axis clipper range for orthographic projection. - Allow using `Self` as the class name in the default block to refer to the current class - Fixed STRETCHPIXELS flag not being exposed. - Added net id functions for ACS - Moved Actor TID selector out of header - fixed the particle replacement code. - Reworked player loading - Limiting r_radarclipper effect to Out-of-Bounds viewpoints only. Opens the possibility of leaving it true by default in the future. - Fixed startpos not saving - Added OrthographicCamera actor. Arguments are: - 0: Offset. This pushes the camera further away, going behind the camera. Default is 1.0 (converted to negative - the value cannot go lower than that). - Fixed crash on functions with missing return values - Fixed CreateCopy being broken on HexenArmor - add automap default markers for all games (can be overridden) - added constants for the most recently added level flags - Add missing CHANF_ constants and fix the styling of the comments for better readability - don't fudge light position out of the floor for +NOINTERACTION actors - Allow property-less flagdefs for non-actors - Compress visualthinker bools into a flags field - visualthinkers: move crucial functions out of Tick, so that light custom tick overrides can be done without calling super.Tick for non-moving visualthinkers - serialize animData, update subsector on deserialize - export UpdateSpriteInfo - Updated packet handling - Fixed static error for SendConAck - Added stubs for NetClose on other platforms - Port NCMD_EXIT to i_net file - Removed network message entirely - Added CRandom functions - Added RNG snapshotting for predicting - Reworked FRandom constructors - Discs no longer blast players with collision disabled - Allow easier piece weapon replacing - Fix and restrict level postprocessor instance - Fixed view for frozen players - Added WorldHitscanFired and WorldHitscanPreFired (#2432) - Fixed poison not clearing on revive - Fixed missing checks in P_TestMobjZ (#2827) - contain the statnum hack for visual thinkers on the game side. - removed -hashfiles after finding out it had been broken for an extended time period. - Improved "respawn where died" functionality (#2831) - Add new SBARINFO top level "AppendStatusBar", allowing for extra SBARINFO code to be added to custom SBARINFO definitions. - make if-checks for AppendStatusBar consistent with Zandronum implementation - Fixed bouncing on 3D floors (#2835) - Bandaid fix for 3D floor collision detection in traces - Fixed incorrect autooff behavior on ceiling bounce (#2837) - Add WorldRailgunPreFired for railgun attacks and Add WorldRailgunFired - Fixed angleOffsetTargets not being initialized - Added ripper damage logic to DoMissileDamage - Various bouncing fixes - Fixed A_SprayDecal not working on 3D floors - Fix M_SaveBitmap stream buffer size - allow forks to set OPTIONALWAD to (null) to disable searching for it. - remove version check for array type fix, to prevent crashes/etc with bad types - remove "DECORATE" from error string - Fix damage being skipped for spectral puffs - added config file saving from zscript **Full Changelog**: https://github.com/ZDoom/gzdoom/compare/g4.13.0...g4.14.0
vg4.13.2
[Fixed STRETCHPIXELS flag not being exposed.](https://github.com/ZDoom/gzdoom/commit/0c29e3a77880f3519cf2908d340e114964aba38e)
Changelog complet
**Full Changelog**: https://github.com/ZDoom/gzdoom/compare/g4.13.1...g4.13.2 * [Do a check if a local variable exceeds the available stack space.](https://github.com/ZDoom/gzdoom/commit/adeb48d5986b023777115c0350b7fe1ad77d08f1) * [Check array size for overflow.](https://github.com/ZDoom/gzdoom/commit/2cbb980388786e88625f6b993065e998a46360ce) * [cap the size of the string copy calls in LevelStatEntry()](https://github.com/ZDoom/gzdoom/commit/3c36102eed62a6388c1bfc1a7d194630c0469496) * [Reduce number of multiply ops per frame and increase x-axis clipper range for orthographic projection.](https://github.com/ZDoom/gzdoom/commit/dc6f11631534155de9f4324496c377cc9fbf995c) * [Allow using `Self` as the class name in the default block to refer to the current class](https://github.com/ZDoom/gzdoom/commit/b84d28e9a7ff61cd4d12468d994463a1e3cb7c1c) * [Fixed STRETCHPIXELS flag not being exposed.](https://github.com/ZDoom/gzdoom/commit/0c29e3a77880f3519cf2908d340e114964aba38e)
vg4.13.1
Fix OpenGL shader to work with Apple's buggy GLSL compiler
sector damage code reverted due to some critical bugs, feature will be in next release
fixes a couple critical bugs introduced in 4.13.0
a couple of QOL improvements
Added (SPF_)STRETCHPIXELS - for actors, makes rollsprites levelstretched, for particles, puts them back to the original stretch math as before, optional opt-in flag
enable console subsystem for Windows with runtime detection - compiling GZDoom as a console app now shows printf's in the terminal that launched it like in Linux and Mac OS.
Changelog complet
**Full Changelog**: https://github.com/ZDoom/gzdoom/compare/g4.13.0...g4.13.1 # Highlights * fixes a couple critical bugs introduced in 4.13.0 * a couple of QOL improvements # Detailed Notes * Fix OpenGL shader to work with Apple's buggy GLSL compiler * Resolve compiler warning about deconstructor syntax * Added (SPF_)STRETCHPIXELS - for actors, makes rollsprites levelstretched, for particles, puts them back to the original stretch math as before, optional opt-in flag * enable console subsystem for Windows with runtime detection - compiling GZDoom as a console app now shows printf's in the terminal that launched it like in Linux and Mac OS. * allow getting checksum for current map * add null check for canvas * fov scales ortho * sector damage code reverted due to some critical bugs, feature will be in next release
vg4.13.0
fixed logic bug with HitFriend and Refire functions.
ZMusic update, allows selecting a new module player
Player spawn fix in co-op new games
Fix directory crash for filenames that appear elsewhere in the path
Support the new Doom + Doom II update
fix MBF21 A_RadiusDamage crash/broken 'distance' arg
Fix bug where down arrow does nothing after clicking the main menu
A few ID24 spec implementations, adds support for new Bethesda DOOM + DOOM II re-release and Legacy of Rust
Changelog complet
# Highlights: * Added pistol start gameplay option * A few ID24 spec implementations, adds support for new Bethesda DOOM + DOOM II re-release and Legacy of Rust * Several multiplayer network fixes, especially with prediction * some savegame fixes, should now be able to delete them on windows * add Extra Parameters to iwad selection box * iwad selection box now always shows unless one of the following is true: it is disabled, -iwad is used from command line, or you load in a gameinfo that suggests an iwad * add mbf21 and mbf21 (strict) compatibility presets * particles and rollsprites are now square * ZMusic update, allows selecting a new module player * forced-perspective sprite clipping (limited ability for sprites to render under the floor) * support for Orthographic projection * decoupled animation fixes * able to now pass optional parameters in any order # Verbose notes * Added pistol start gameplay option * StringTable cleanup and improvements * Instead of going through a global callback function set the string table's default gender at the start of each frame * Exported FTeam getters * Added PSpriteTick virtual * ZWidgets: disabled SetClientFrame. * dynamically import GetDpiForWindow from USER32.dll, else return a default value * optimized last commit to not retrieve the function repeatedly if it has already failed. * Fixed local copies of items not respecting their Amount value * moved the NetworkEntityManager into the backend code. * fix lifetime of skyinfo variable in HWWall::SkyPlane. * ZDRay specs fix * `-norun` now implies `-stdout` on Windows as it's useless without it * fixed: rollsprites now 'unstretch' properly in regular y-billboarding * demote SDL_Wait errors to console printouts * shorten sdl_waitevent error message * Interpolation fix for network prediction * Fixed incorrect automap arrow position in multiplayer * Fixes for client network IDs * View fixes when predicting * Fixed changeskill being unnetworked * Player spawn fix in co-op new games * Reworked clientside lerping * Added ShouldShareItem virtual * Add graycheckVal, expose hud_oldscale/hud_scalefactor to the menu * added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10 * fixed bad network ID assignment. * Interpolation fix for network prediction * fixed: AActor's members must all be native. * Fixed "PrivateNetOf" function not checking for the entire B class private network range * fix lifetime of skyinfo variable in HWWall::SkyPlane. * Fixed prediction not calling virtual Tick function * Fixed desync in Heretic * Fixed ViewPos not properly backing up when predicting * Fixed weapon slots not resetting on unmorph * restore old fadestep behavior if SPF_NEGATIVE_FADESTEP is not passed in * Added missing checking for LOOKALLAROUND. * fixed: for deleting files and folders on Windows we have to call the Unicode variants of these functions. * fixed: The savegame's PNG loader must use a caching FileReader to avoid holding a handle to the containing file. * strip spaces from language labels. * don't abort when parsing the Steam config fails. * fixed GL nodes loader for maps loaded from mounted folders. * add mbf21 and mbf21 (strict) compatibility presets * make particles square * always show iwad picker, offer option for forks to hide picker by default. * make roll sprites square * Ability to add extra args on all platforms similar to how Mac OS always had it * fix CheckParmList * Fixed unmorphed Actors still ticking * don't show secret-flagged linedefs with special color on am_cheat 4 and above * Provide a diagnostic message for the two 32-bit related static_asserts * partial fix for `FString::IsInt()` * Fix invisibility affect on enemies * Added subclassing for use commands * Inventory item spawn fixes * Network messages will now show usernames instead of just numbers * Added ChangeTeam function for teamplay * Added missing player retranslation * Scriptified the view squatting. * Narrow the Launcher check box clickable areas to stop overlap and fix #2558 * Fix memory leak on TDeletingArray move assignment * Rework named arguments * restrict new relaxed named arguments to zscript >= 4.13 * Fix A_SetAnimation * Rename SourceRadius to SoftShadowRadius (to match VKDoom) * Add X, Y and Z offsets for VOXELDEF. Needed for voxelized weapons which would typically be very large and take up the majority of the 256x256x256 canvas, therefore making precise positioning of the models relative to the screen pretty much impossible without tweakable offsets. * Added SPF_(NO)FACECAMERA flagst for specifying camera facing on particles and visual thinkers. * Added SPF_ROLLCENTER for particles and visual thinkers. * Fixed Pre(Un)Morph being called out of order. * Turn on the output limiter * add COMPATF2_NOACSARGCHECK to disable ACS function argument count checks * add total chaos retro and full maps to compatibility.txt * Add missing GC write barrier * Misc network fixes * handle freeze in decoupled animations * Fix directory crash for filenames that appear elsewhere in the path * Clean up lightmap stuff in the namedef * fixed alignment issue in SBARINFO's DrawString command * Fixed subnormal float viewpos values breaking rendering * Disable effects on Actors set not to render locally * Add SPF_NOMIPMAP to force actor sprites or particles to have no mipmaps. This makes tiny sprites/particles look more crisp and legible in the distance. Mipmapping causes the sprites/particles to have an inconsistent look where they'd sometimes be clearly visible and sometimes less visible depending on camera distance and movement. * fix: check if bombsource exists when exploding a projectile with a XF_NOALLIES flag * Fix Specular not using Material definition for Glossiness and Level * Support the new Doom + Doom II update * fix MBF21 A_RadiusDamage crash/broken 'distance' arg * Allow XInput joysticks to work while the game is unfocused * don't change priority to idle if i_pauseinbackground is false * Isometric Mode and Robin (#2618) * Export PlayDiveOrSurfaceSounds to ZScript and made it virtual for mods to customize the diving and surfacing sounds * mingw64 requires including cstdint * Fix preprocessor symbol for Windows * Fix libraries on mingw64 * Fix namespace issue * sys/stat.h is required on all platforms * Keep legacy_studio_definitions for non mingw64 toolchain * Better solution for DwmDefWindowProc on mingw64 * fix faux pas * Fix to use the correct definition of DwmDefWindowProc * Fix incorrect return type * add doomkex doom2kex tntkex and plutoniakex as valid iwad filenames * add xbox filenames too * Added GOG path for Doom + Doom II * Reverted use of tchar.h which should be considered deprecated. * Allow for Basic and Hexen armor replacing * Fixed counters not clearing when using shared/local pickups * Added itemcls to HasReceived * Made itemcls optional * Skip bex strings for freedoom if language lump is present (#2682) * Stop grabbing mouse when game window doesn't have the focus * Smaller aspect ratio screens were getting clipped a bit too much. This is a brute-force if-else solution. Larger aspect ratios (wider screens) were always good. * fix A_PlaySound not working for DSDHACKED-defined sounds * implement +SQUAREPIXELS flag * add SpawnMultiCoopOnly mapinfo flag to spawn **only** coop spawns in single-player * PointToPseudoPitch() was being called even when viewpoint was not allowed out of bounds. And its sqrt was slow even when it was necessary (thanks dpjudas for the speedup code). * load id24res if present * Add support for fire textures in ANIMDEFS * Truecolor sky: Draw opaque black background on transparent texels * Render the bottom sky layer always with full opacity in the SW true color renderer. * replace naive interpolation logic with more exact logic * quick fix for interpolation, TODO better fix * rework interpolation to allow for precalculated frames * Properly fix double interpolation for IQM models * Prevent console from laying open when intro cutscene plays on some systems. * Fix bug where down arrow does nothing after clicking the main menu * Fix load/save menus not starting scrolled to the selected entry * Fix missing serialization for `skyspeed1` and `skyspeed2` * Fix billboard facing camera only taking effect when used with XY billboarding * Fix incorrect boolean logic for `drawBillboardFacingCamera` * export `FFont::GetChar()` to ZScript * Added GetDecalName() * removal of some redundant checks * rename 'restart' ccmd to 'debug_restart' since it is in a broken state right now * implement `SPAC_Walking`, mostly useful for teleports or for line crossings that should not happen when the player is falling or flying - update UDMF spec entry * Added FloatBobFactor * Add another soundfonts search directory for *nix * Exported DPrintf * Add RADF_CIRCULARTHRUST and matching XF_/RTF_ flags * Search more paths in SHARE_DIR (#2610) * implement anamorphesis sprite clipping (aka forced-perspective) (#2431) * Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE. * Added check for hurt floors in P_IsUnderDamage(). * SetSkin and GetSkinCount added to PlayerInfo class * bail out if `shape` is null in `F2DDrawer::AddShape` * Fix for NoLocalRender not snapshotting between hub levels * Removing pre-clipping of Frustum if pitch > 46 degrees and viewpoint is not allowed out of bounds. This is like old behavior. * Fixed problem in CheckForShadows(). * ID24 interlevel lumps implementation * make the broken ID24 levelnums work somehow so that Legacy of Rust's intermissions play. * Add bIsPuff flag * Add damagesource * Serialize damagesource, fix bad character in actor.zs * Made DamageSource and bIsPuff readonly * Fixed MF9_ISPUFF overlapping with MF9_NOSECTORDAMAGE * Fix broken if statement in ParseFireTexture * add missing 'author' and 'label' UMAPINFO fields. * Replaced MISSILE(EVEN)MORE with a real property and added related Dehacked options from Crispy Doom. * the MISSILE(EVEN)MORE flags still need to be accessible by ZScript for backwards compatibility. * fixed logic bug with HitFriend and Refire functions. * fixed: MBF21's flag functions did not call the special wrappers for MF_FRIENDLY. * bFriendly should not be set from scripts because this omits needed bookkeeping. * fix kill count management in CopyFriendliness when used on corpses. * fix MBF21 ClearCountItem * fixed a few memory leaks * set a default value of 1.0 for `MissileChanceMult` property * added CVAR to select the preferred MOD player and SNDINFO option to set it per song. * added a menu option for switching module players. * Add bounds checking to GetMidTexturePosition, add assert to P_GetMidTexturePosition * Made GetMidTexturePosition() const. * Use a `light_` prefix for custom ZDRay stuff, and actually parse light_softshadowradius for map things * Updated ZDoom UDMF spec changelog. * Orthographic projection Widescreen aspect ratio horizontal clipping fixed. This one-line change only affects ortho viewpoints. Easy to verify in windowed mode. * avoid floats in integer math. * use newer zmusic * Added MF9_FORCESECTORDAMAGE. * don't spam the console log if there's math errors - mostly affects Linux/MacOS because there is no distinction from console apps or GUI apps so they put all the data in the console which can cause lag
vg4.12.2
[Fixed changeskill being unnetworked](https://github.com/ZDoom/gzdoom/commit/6040416caae48722474d76e646a4d33d18a10326)
[fixed: rollsprites now 'unstretch' properly in regular y-billboarding](https://github.com/ZDoom/gzdoom/commit/25f791156f50212aa6a20a76c000de23e07bbc74)
fix issues with GCC 14
network fixes, including prediction and interpolation
[added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10](https://github.com/ZDoom/gzdoom/commit/0049a00fe5fac37894fa59785aa5ed38679bbb13)
[fix lifetime of skyinfo variable in HWWall::SkyPlane.](https://github.com/ZDoom/gzdoom/commit/98a0b5f8d23d2d96baad4de14a0859895bd9b896)
[ZDRay specs fix](https://github.com/ZDoom/gzdoom/commit/54ee0391d794d377d60e439160966c0937dcf3bb)
Changelog complet
**Full Changelog**: https://github.com/ZDoom/gzdoom/compare/g4.12.1...g4.12.2 - fix issues with GCC 14 - network fixes, including prediction and interpolation - [Fixed changeskill being unnetworked](https://github.com/ZDoom/gzdoom/commit/6040416caae48722474d76e646a4d33d18a10326) - [added emulation of Final Doom's teleporter z glitch and activate it for Saturnia MAP10](https://github.com/ZDoom/gzdoom/commit/0049a00fe5fac37894fa59785aa5ed38679bbb13) - [fix lifetime of skyinfo variable in HWWall::SkyPlane.](https://github.com/ZDoom/gzdoom/commit/98a0b5f8d23d2d96baad4de14a0859895bd9b896) - [ZDRay specs fix](https://github.com/ZDoom/gzdoom/commit/54ee0391d794d377d60e439160966c0937dcf3bb) - [-norun now implies -stdout on Windows as it's useless without it](https://github.com/ZDoom/gzdoom/commit/5971d521d9f35ae34dadbd5705e9dcc5845bd670) - [fixed: rollsprites now 'unstretch' properly in regular y-billboarding](https://github.com/ZDoom/gzdoom/commit/25f791156f50212aa6a20a76c000de23e07bbc74) - [demote SDL_Wait errors to console printouts](https://github.com/ZDoom/gzdoom/commit/9d460d3f46acb3b05834f6d5bf764a8b7f037b47) - [mirror changes with ZWidget, remove SDL_Wait failure message](https://github.com/ZDoom/gzdoom/commit/22fd9b66ad9aed6aa9d036720bb482cbbbf9064f) - [Reworked clientside lerping](https://github.com/ZDoom/gzdoom/commit/71c40432e5e893c629a1c9c76a523a0ab22bd56a) - Built with MoltenVK 1.2.6 instead of the latest version
vg4.12.1
[Fixed local copies of items not respecting their Amount value](https://github.com/ZDoom/gzdoom/commit/10a8a615cbaaa994ba9f6632c16ba3ce1a5c9430)
[hide the additional parameters for now, this needs to be added in later](https://github.com/ZDoom/gzdoom/commit/0e1de064e31bff7c48e63f59b9eeb6babe15e461)
[Added PSpriteTick virtual](https://github.com/ZDoom/gzdoom/commit/661b1d128e30be7a16656ea30bf2275f1b9235a1)
[Added pistol start gameplay option](https://github.com/ZDoom/gzdoom/commit/132a150aa140037d1342485c16454d408d50f522)
Changelog complet
* [Fixed local copies of items not respecting their Amount value](https://github.com/ZDoom/gzdoom/commit/10a8a615cbaaa994ba9f6632c16ba3ce1a5c9430) * [hide the additional parameters for now, this needs to be added in later](https://github.com/ZDoom/gzdoom/commit/0e1de064e31bff7c48e63f59b9eeb6babe15e461) * [Added PSpriteTick virtual](https://github.com/ZDoom/gzdoom/commit/661b1d128e30be7a16656ea30bf2275f1b9235a1) * [Exported FTeam getters](https://github.com/ZDoom/gzdoom/commit/7f3e01470704bab2aec7bc2d7b7b1fea3cac3313) * [Added pistol start gameplay option](https://github.com/ZDoom/gzdoom/commit/132a150aa140037d1342485c16454d408d50f522) * Restored Windows 7 support
vg4.12.0
[Fixed console rendering crash on wide consoles](https://github.com/ZDoom/gzdoom/commit/429d402dc493a8d83e06e785f51b73c303eb598d)
[added all required names for the new DSDA UDMF properties to the list of names.](https://github.com/ZDoom/gzdoom/commit/2fb41a7956445c78a3a532ea4a5c06469d9a8ff9)
[fixed actor class creation for DSDHacked](https://github.com/ZDoom/gzdoom/commit/22e8bea91bf008a1481f71c5098995cab7878e16)
[- fixed DumpCPUInfo() definition for non-x64 platforms](https://github.com/ZDoom/gzdoom/commit/678cab799449a35e55f5a4d63c8f2450f905888d)
[fixed some signed-ness issues.](https://github.com/ZDoom/gzdoom/commit/448ca88bfd17e33380152f116ad2745349085641)
[fixed savegame file name check.](https://github.com/ZDoom/gzdoom/commit/28400a12f16d51558f89dcbbb273bccf1e40c836)
[fixed handling of DSDHacked sound replacement in the index range between the regular sounds and the MBF21 extensions.](https://github.com/ZDoom/gzdoom/commit/478a8325153d418ec85f973e8ded9d869e0c84e7)
[fixed DEHSUPP multiple load prevention.](https://github.com/ZDoom/gzdoom/commit/f1017ef362831db87b5b4b1cf7f202063e119ec5)
Changelog complet
- [fixed actor class creation for DSDHacked](https://github.com/ZDoom/gzdoom/commit/22e8bea91bf008a1481f71c5098995cab7878e16) - [fix DSDHacked state creation.](https://github.com/ZDoom/gzdoom/commit/3d6664c28ebcc1d8086607a9934c41a935e59b59) - [- fixed DumpCPUInfo() definition for non-x64 platforms](https://github.com/ZDoom/gzdoom/commit/678cab799449a35e55f5a4d63c8f2450f905888d) - [update soundfont](https://github.com/ZDoom/gzdoom/commit/b91300316875266e852e8b5890e188870189d4a6) - [added missing hit obituaries to Hexen's Chaos Serpents.](https://github.com/ZDoom/gzdoom/commit/40ec46e6ea97ded492e6051393b7cfa09d1b15b9) - [set default backend to Vulkan, if Vulkan fails go GLES not OpenGL](https://github.com/ZDoom/gzdoom/commit/d33f2697a3ec128d9385bb0d07c5f6f6161fff83) - [add 'mapinfo' ccmd](https://github.com/ZDoom/gzdoom/commit/a53d3d6a6e0b04f2b9c473179c583698de0d57a6) - [add GetChars() accessors to many FString uses where const char* is wanted](https://github.com/ZDoom/gzdoom/commit/1717ff47b2d2e82a43b407a4f5dea264e2f39b49) - [removed several bad casts to 'long'.](https://github.com/ZDoom/gzdoom/commit/ab8711b57ade09349fa29cb8a19d552610fafc8e) - [Fix inheritance for bNoSaveGame](https://github.com/ZDoom/gzdoom/commit/3e7de9aafa92e317b20c0accb4a93b51cd9cffa2) - [make zs Actor.GetReplacement and Actor.GetReplacee clearscope](https://github.com/ZDoom/gzdoom/commit/29368f0f4e182580c60cb5dbee44fe0f0a001159) - [Deduplicate Map/MapIterator Types' Code](https://github.com/ZDoom/gzdoom/commit/766c61b3edbeabcad29959465e0a7b02afd5573d) - [Improve handling of field names in error messages during Map/MapIterator compilation](https://github.com/ZDoom/gzdoom/commit/3fc195c5b27ea82d20beae504b01d947c19bbdda) - [Make sure maps in return type don't segfault](https://github.com/ZDoom/gzdoom/commit/fad350ff80d7aae133663b78be9678e44211f696) - [make Array::Append faster for simple structs](https://github.com/ZDoom/gzdoom/commit/fa8df5a4e5698224ba6024b075b72893956ac0de) - [Don't try to generate code for abstract functions during JIT dump](https://github.com/ZDoom/gzdoom/commit/3cb8f1be44d9eacbda2d0ced20d47597bd139947) - [Allow dumping jit for mod functions only](https://github.com/ZDoom/gzdoom/commit/7a9ca1ad3ffc7968f80d16ca190789f20ee81d5a) - [allow "&" instead of "out" in function parameters](https://github.com/ZDoom/gzdoom/commit/a13b19815ce7510f388ef55851f604c4aedd5ef5) - [Turn Map/Array assignments into Copy](https://github.com/ZDoom/gzdoom/commit/b9104e8aa9e0244ad9530d63910628c44fd076b7) - [Update LZMA SDK to 23.01](https://github.com/ZDoom/gzdoom/commit/4497d7fdaa9b0b4520416885c75742bf857bed66) - [Fix wrong define for PPMd](https://github.com/ZDoom/gzdoom/commit/56c44182d13776423f299e047826f2280cab5293) - [Add final and sealed as class options](https://github.com/ZDoom/gzdoom/commit/5e96dbc9817ce24ed092db42ecebc3f01f1b93c5) - Several Backend Updates from Raze - Several Language File Updates - Converted lots of FString getters to .GetChars() - [fixed some signed-ness issues.](https://github.com/ZDoom/gzdoom/commit/448ca88bfd17e33380152f116ad2745349085641) - [fix $PROGDIR expansion being case sensitive](https://github.com/ZDoom/gzdoom/commit/88b5d9aba15fbfb07c766a29bcb0e2cb7804efce) - [added missing VMFunction struct definition](https://github.com/ZDoom/gzdoom/commit/0044da1ca2f02c62898a8097e1ec85a516b21cf7) - [Implement Static Function Pointers](https://github.com/ZDoom/gzdoom/commit/e3704605d814a29c0b648e3cbb523966bb27ed7e) - [add forcecullbackfaces in modeldef](https://github.com/ZDoom/gzdoom/commit/bac12948e5f1a62b1820dc8d66e5fd1a8a503d8c) - [rewrite of HWWalls to allow grabbing the output from the render item generator](https://github.com/ZDoom/gzdoom/commit/9cd57faec1b5e625bb6ffd93d80d97f5be0fd76c) - [bumped minimum macOS version to 10.13](https://github.com/ZDoom/gzdoom/commit/212adabe2bde7d6b30ef64a74ad6df6795b4ac1a) - [Exposed P_GetMidTexturePosition() to ZScript.](https://github.com/ZDoom/gzdoom/commit/f3d44f8131c46bc0ec525f6736f2440799808ec7) - [do not print all GL extensions to the log for the GLES renderer.](https://github.com/ZDoom/gzdoom/commit/731cad7553d1116d991a69f69bdbd416ec249983) - [widen the special field in FBoomArgs.](https://github.com/ZDoom/gzdoom/commit/82c492f3d7cdc028562d8df5776e264e85f7bb34) - [fix UMAPINFO's intermusic being used at the summary screen.](https://github.com/ZDoom/gzdoom/commit/70e4dd17b7dcddba2235f51b1df96c3dc3674dd0) - [fixed savegame file name check.](https://github.com/ZDoom/gzdoom/commit/28400a12f16d51558f89dcbbb273bccf1e40c836) - [fix map WAD check for savegame validation.](https://github.com/ZDoom/gzdoom/commit/1e8b3ea65d9a29feb121e52e76f324f3b63145fb) - [always save the map WAD in a savegame's metadata, even if it is from the IWAD](https://github.com/ZDoom/gzdoom/commit/a8c1f7a6374df28e7ca32f674962baf9c3300f11) - Add Wall Texture Skewing - [added Wads.GetLumpLength.](https://github.com/ZDoom/gzdoom/commit/4d88e82e32ac2ccf876903dd122e85195fdaa0da) - [fixed handling of DSDHacked sound replacement in the index range between the regular sounds and the MBF21 extensions.](https://github.com/ZDoom/gzdoom/commit/478a8325153d418ec85f973e8ded9d869e0c84e7) - [Allow setting the colormap from mapinfo (dsda-doom)](https://github.com/ZDoom/gzdoom/commit/e12f2ce0fe9e073f871f42768f70b52f3d0d8922) - [hooked up the per-level colormaps with the hardware renderer.](https://github.com/ZDoom/gzdoom/commit/12bc9db609e5b20684372ed30e4240275d858642) - [added all required names for the new DSDA UDMF properties to the list of names.](https://github.com/ZDoom/gzdoom/commit/2fb41a7956445c78a3a532ea4a5c06469d9a8ff9) - [implemented DSDA's sector scrolling properties.](https://github.com/ZDoom/gzdoom/commit/2b0731a5a7403f47970aa3208833fc39cc57d390) - [added UDMF wall scrolling properties from DSDA.](https://github.com/ZDoom/gzdoom/commit/4ddffd233a9c38fd15834ded889c66ddb6ad4ce1) - [added friction and colormap related properties from DSDA.](https://github.com/ZDoom/gzdoom/commit/9a944726509c7e317dc02eb64783ee3f9ef35b36) - [added per-sector sky UDMF properties.](https://github.com/ZDoom/gzdoom/commit/bdee1f3d3427667ae3c4607ab21ee4d3dbd75595) - [added DSDA's thrust properties for UDMF](https://github.com/ZDoom/gzdoom/commit/ad778b0bcce8f4bbcdc7cb6da0b252e067bc1ba3) - [fixed DEHSUPP multiple load prevention.](https://github.com/ZDoom/gzdoom/commit/f1017ef362831db87b5b4b1cf7f202063e119ec5) - [fix int assign optimization constants generating broken code because they weren't expected](https://github.com/ZDoom/gzdoom/commit/e26f9fb13df62b4232e063ee382b06bc6f8c2d26) - [add master levels to game list for steam](https://github.com/ZDoom/gzdoom/commit/06af5f2164d0fe3c09524cc58515cc46f12dacca) - [change which config to look for library folders in](https://github.com/ZDoom/gzdoom/commit/a11346cf660b9c5d568652dd2b0bafd387585868) - [added rudimentary support for DSDA's COMPLVL lump.](https://github.com/ZDoom/gzdoom/commit/fb6e4becaadea0a6d64d711c6757e471ad22d62c) - [allow defining zero gravity through MAPINFO](https://github.com/ZDoom/gzdoom/commit/3781c43aecbf17c0aa0513da5e6ef175789ece57) - [gave translations a dedicated scripted type.](https://github.com/ZDoom/gzdoom/commit/f0c9b1765e8473b801f3fd8605aa3068a5c39a9c) - [use FTranslationID in all places where strict type checking is needed.](https://github.com/ZDoom/gzdoom/commit/8c5eb2c8075509064f96988b78df2feb1c4c9696) - [Added missing LANGUAGE definition for Mystic Urn's tag](https://github.com/ZDoom/gzdoom/commit/22203cbc1a9935a03b0d2747a4e76396821f8691) - [Add sv_coopsharekeys - in coop, picking up a key will distribute it to all online players](https://github.com/ZDoom/gzdoom/commit/a04f909d0661d26777a2c1fecc7f2587b26fd2fe) - [Serialize Name Keys as Strings for maps](https://github.com/ZDoom/gzdoom/commit/fc130ccaac68f034c7be8b86ffc262faedbb78e6) - [fix GL ES switch appearing as 'Unknown' in the menu sometimes](https://github.com/ZDoom/gzdoom/commit/747e55ce6001b28758611ed31a1b92725fe4428b) - [Add missing loop](https://github.com/ZDoom/gzdoom/commit/3056786f38734ed0e197c42704074769b43785f3) - Add in VisualThinkers - [invert mouse again for movement, so that it cancels out the first inversion](https://github.com/ZDoom/gzdoom/commit/11f2fc10ea876a19418072324a810c4831721fd4) - [allow comparisons between ints and translation IDs in pre 4.12 ZScript.](https://github.com/ZDoom/gzdoom/commit/8e319a766953de6958fbf5fc630809aec7540872) - [Decoupled IQM Model Animations](https://github.com/ZDoom/gzdoom/commit/5d5e7ca04274acdc6f20c35c8a642e6562c3e5a6) - [Expose coop share keys to the options menu](https://github.com/ZDoom/gzdoom/commit/d58fa05a5fd20b4946398d6f91c2a32bc5481156) - [Add Compatibility=Extended for Blasphemer](https://github.com/ZDoom/gzdoom/commit/7d86c5b62556d8c69836bc3a3c17e973c1d2a858) - [add flag +BILLBOARDFACECAMERA - renders actor billboard to always face the camera](https://github.com/ZDoom/gzdoom/commit/3caa6247be40bcb678e727561f9fa90ec07e1f7b) - [add actor flag +BILLBOARDNOFACECAMERA which forces sprite aimed at camera heading instead of camera position when gl_billboard_faces_camera is true](https://github.com/ZDoom/gzdoom/commit/b4d5c7d669d697ffcbba8ccb4b51ceb1ac51c11e) - [Fixed console rendering crash on wide consoles](https://github.com/ZDoom/gzdoom/commit/429d402dc493a8d83e06e785f51b73c303eb598d) - [Fix vanilla weapon functions passing ammo count to DepleteAmmo](https://github.com/ZDoom/gzdoom/commit/52c878c0d7ea3fa649663c324f429fbc27a2edb5) - [added STL compatible access functions to TArray.](https://github.com/ZDoom/gzdoom/commit/41573df58f7a73655c23505e1b976f76c141e6ee) - convert many source files to UTF-8 - [mark gl_maplightmode as a cheat](https://github.com/ZDoom/gzdoom/commit/42ab7dd70f911be6fc4f129737b3758b2d36a0b1) - [fixed savepic loading.](https://github.com/ZDoom/gzdoom/commit/6ff667a4906724396d1fd7beb10bb1d3d0067acf) - [add new ccmd cvarsearch allows searching cvar by name, languageid, or description](https://github.com/ZDoom/gzdoom/commit/93772c4e0cc1ee4f1047f911167dd1d67d794864) - [fix nullptr check for target in HolySpirit.Slam](https://github.com/ZDoom/gzdoom/commit/4850ee37763dbb0075afc80ca3a21faf6b036f29) - internal filesystem handling cleanup - [Virtualized returns for SpecialMissileHit/SpecialBounceHit](https://github.com/ZDoom/gzdoom/commit/fc809cfab6a35332fc44a9b7f40cf3fc61d954c4) - [Fixed incorrect offsetting for SpriteOffset.](https://github.com/ZDoom/gzdoom/commit/751ee7390b7afbeecdcf2979db0c6e96b898ab0f) - [Allow 100% kills on 2048 Unleashed (pc_cp2.wad) MAP27](https://github.com/ZDoom/gzdoom/commit/3ec908c032a395d048416c13ab6416e57fe7d43d) - [Allow completion of 2018 Unleashed (pc_cp2.wad) MAP38](https://github.com/ZDoom/gzdoom/commit/8151c4cab23cba95798e34fa4447da398ef0efd8) - [Fixed comment in level_compatibility.zs regarding pc_cp2.wad MAP38 fix](https://github.com/ZDoom/gzdoom/commit/3a117cbe89eccda3af65ada9b199fe3bffa5a16f) - [gldefs: update Freedoom big tech lamp.](https://github.com/ZDoom/gzdoom/commit/c05d6224ba0ae9e218036030744b3bd2f44d9c47) - [Maintain the actual on-disk path (FResourceEntry::SystemFilePath) for the directory filesystem, because the FResourceEntry::FileName can be modified by game filter-s](https://github.com/ZDoom/gzdoom/commit/90d672e3454d74cd065129b1b1f58dacd6157ad7) - [fixed MBF21's instant death sector types.](https://github.com/ZDoom/gzdoom/commit/df35d6c7ea584757b5bf4109d4661e34349863d3) - [added compatibility settings for Memento Mori 2 MAP20](https://github.com/ZDoom/gzdoom/commit/f20bbd4189cf06792a0e19e3de3708fcc829f127) - [Export FScanner parser to ZScript as ScriptScanner](https://github.com/ZDoom/gzdoom/commit/a368588db6f8485072429f264aca2d9c411fe9b2) - [music volume.](https://github.com/ZDoom/gzdoom/commit/133b415b846d96821dde42fd489e7f9343dfca3a) - [warnings and debug code cleanup](https://github.com/ZDoom/gzdoom/commit/958303556fe2ac7d508be1cf98bad8916c74eeb5) - [Fixed CF_SCALEDNOLERP having the wrong value.](https://github.com/ZDoom/gzdoom/commit/8060b147d06a3af26afe4939a85adf7aae486bb0) - [fixed infinite recursion in vid_preferbackend.](https://github.com/ZDoom/gzdoom/commit/16e8e719710b17ec03c8625a9ac0ac4211d5068e) - [Added DI_ITEM_LEFT_CENTER and DI_ITEM_RIGHT_CENTER](https://github.com/ZDoom/gzdoom/commit/be96d8d906eed2ca15ecd789adaeab75c61d9170) - new launcher with new widget system - [add two parameters to GetSpriteTexture: spritenum and framenum, since some states are "####" "#"](https://github.com/ZDoom/gzdoom/commit/fe005b915926358e496f551999f44fbffc440f21) - [iwadinfo.txt: remove double entry of doom2f.wad](https://github.com/ZDoom/gzdoom/commit/cdea67b0a546ed4737d1592aabfd69dda073c2f5) - [iwadinfo.txt: prefer *unity.wads for Unity Editions](https://github.com/ZDoom/gzdoom/commit/800b5ad201fec52e75d3b120b643596b153dfea5) - [iwadinfo.txt: resort Names for a better overview](https://github.com/ZDoom/gzdoom/commit/0aad33402ac0a2460ce65e9c946973a8b1a84043) - iwadinfo.txt: resort Order for a better overview in selection box - [Added CollidedWith](https://github.com/ZDoom/gzdoom/commit/fc6191deb9235650d874a599ea73ca2c58c859f8) - [Added Z collision detection](https://github.com/ZDoom/gzdoom/commit/cf7654bb5a749f4558dd88d5b0921761e99182b1) - [Disabled player sprites when crossing through portals.](https://github.com/ZDoom/gzdoom/commit/f647545c1d2261ae7c927afea21b634bfd7e9d8a) - [Exposed viewactive, allowing checks for overlay automaps.](https://github.com/ZDoom/gzdoom/commit/1a860185ee763aa571db775eea4e227bd9ee3852) - add new netid system for future use - [Expose ForceLightning() to ZScript.](https://github.com/ZDoom/gzdoom/commit/ecdf6f7cb27057b15d153d805d24030940d18e6e) - [Added LightningSound MAPINFO property.](https://github.com/ZDoom/gzdoom/commit/ce2a0c92951bbcf8ccbf7e726b18f8fd5a2e8fa5) - [use FSoundID for script provided sounds instead of FString.](https://github.com/ZDoom/gzdoom/commit/e3d13af33b6a7297b1f1563b6d41f8cf0695c35a) - [Implement animated particles that aren't tied to the global animation timer](https://github.com/ZDoom/gzdoom/commit/7eab519795ab54e806a61f5d19a6f41b221ce851) - [reverse -allowduplicates check](https://github.com/ZDoom/gzdoom/commit/64096658e54dc4c05c3d3e8788b1da86cbbf020d) - [Made the damage of polyobjects customizable](https://github.com/ZDoom/gzdoom/commit/f2451ff44b09f30b0e12a1c1b384959aac4d5e1f) - [Exposed PerformShadowChecks() to ZScript.](https://github.com/ZDoom/gzdoom/commit/f369cd7f6d8c4e6dc339e51d645f410c8fc897e2) - [Add CenterText MENUDEF flag](https://github.com/ZDoom/gzdoom/commit/decaf076371842a3a860b011dce1b167616bf9eb) - [Fix .. to root folder in relative include](https://github.com/ZDoom/gzdoom/commit/2002396b8bd9960642b34693518195014f40d891) - Better Joystick handling in Linux (particularly for the Steam Deck) - [Fix readonly native structs](https://github.com/ZDoom/gzdoom/commit/bc26c54b155d46f541561ee57eabce6d10671b92) - [Support negative fadestep for particles](https://github.com/ZDoom/gzdoom/commit/205d4b5ff37c7b49db5c337523a657f2ebd551d6) - reworked Morph system - [don't show path if longsavemessages is false](https://github.com/ZDoom/gzdoom/commit/1e2a491f9ebe1d9585ffb14a6a36b2435b24b5db) - [Fixed: A_LookEx did not account for the +LOOKALLAROUND flag.](https://github.com/ZDoom/gzdoom/commit/e62651e3cfd85886bb01a691136b67fa368e6451) - [Ignore vid_maxfps when vsync is enabled.](https://github.com/ZDoom/gzdoom/commit/e8d8dde283e874b78c26bf6374668e395eddd622) - quake radii and explosion distances are no longer int now doubles - [slow down frame updates for the start screen for slower GPU's, since this can increase loading time significantly](https://github.com/ZDoom/gzdoom/commit/a1bdc0582ccd259d28186215dc1b216f8094fa0f) - libwebp now included in source - [Fixes for spawn farthest DM option](https://github.com/ZDoom/gzdoom/commit/f2072cec95e5f709d174d198d0e1ef4225206009) - [Add crash log file to .gitignore](https://github.com/ZDoom/gzdoom/commit/0328eca7f07674031a14d0f49e92c0316e1beb86) - [Fixed local items not copying properties properly](https://github.com/ZDoom/gzdoom/commit/70a165b566df1c10eb23c72f651d5400d386afed) - [am_overlay turns off the overlay when set to zero](https://github.com/ZDoom/gzdoom/commit/178896d6fb4d940052eb9e892baf11cf2e2509a0) - [fix harmony grenade not working](https://github.com/ZDoom/gzdoom/commit/6f7eededfb72cda08bb28f6624bc9104f73c24d0) - [Allow larger denominators for IVF movies](https://github.com/ZDoom/gzdoom/commit/f12bf069f009db221746719e2bd571b0e0d0ecd6) - [Add support for the VP9 codec in the IVF container](https://github.com/ZDoom/gzdoom/commit/06566c010b5d97b2262aa11951057e76449cc523) - [skip frames when playing back IVF to prevent desyncs](https://github.com/ZDoom/gzdoom/commit/64ffe9b97bff6e0377701be32f1e47948dd9f45e) - [allow A_SetCrosshair(-1) to hide the crosshair for effects such as custom scopes](https://github.com/ZDoom/gzdoom/commit/8fe58db31101fbe5054f5c0e3f1abb04d6bb8f5f) - [add level compatibility fixes for Eternal Doom III](https://github.com/ZDoom/gzdoom/commit/9c01738b8662377353db502f35696d4c3e989bb5) - [handle dsda namespace like zdoom in udmf](https://github.com/ZDoom/gzdoom/commit/558bd4674dbab4c5f168ba50a6d1ec8c0b4e78b1) - [add cvar cl_restartondeath - bypasses autoloading savegame when pressing +use after dying](https://github.com/ZDoom/gzdoom/commit/7a1342188af1dc9842f9e24b3e1ff5f551308402) -
vg4.11.3
[fix map WAD check for savegame validation.](https://github.com/ZDoom/gzdoom/commit/cecc836582d70109e512ff3dcf96cb47367731b5)
[added Wads.GetLumpLength.](https://github.com/ZDoom/gzdoom/commit/6053842f7e027fb4070f77c640f27450b4f966f9)
Changelog complet
- [fix map WAD check for savegame validation.](https://github.com/ZDoom/gzdoom/commit/cecc836582d70109e512ff3dcf96cb47367731b5) - [always save the map WAD in a savegame's metadata, even if it is from the IWAD](https://github.com/ZDoom/gzdoom/commit/cf160c1b18bdeac56b1f2b02b338fa0e245d7211) - [added Wads.GetLumpLength.](https://github.com/ZDoom/gzdoom/commit/6053842f7e027fb4070f77c640f27450b4f966f9)
vg4.11.2
[fixed savegame file name check.](https://github.com/ZDoom/gzdoom/commit/aa63cbcbdf4dd964dc4a434451c63631bd9353bb)
[fix UMAPINFO's intermusic being used at the summary screen.](https://github.com/ZDoom/gzdoom/commit/e1e856b97219d041c1a1c13199d06d76dd4b0a0c)
[minor backend update from Raze.](https://github.com/ZDoom/gzdoom/commit/9355daacb0b764387761e1489c2412b615e846a1)
Changelog complet
- [fixed savegame file name check.](https://github.com/ZDoom/gzdoom/commit/aa63cbcbdf4dd964dc4a434451c63631bd9353bb) - [fix UMAPINFO's intermusic being used at the summary screen.](https://github.com/ZDoom/gzdoom/commit/e1e856b97219d041c1a1c13199d06d76dd4b0a0c) - [widen the special field in FBoomArgs.](https://github.com/ZDoom/gzdoom/commit/7bbe7a53e9a07e7dc66e03b54d4088a7d68f0cf4) - [do not print all GL extensions to the log for the GLES renderer.](https://github.com/ZDoom/gzdoom/commit/66a904348bcb428826f597bc709e4053966f6537) - [minor backend update from Raze.](https://github.com/ZDoom/gzdoom/commit/9355daacb0b764387761e1489c2412b615e846a1) - [give error instead of warning for zscript 4.12+ on return count mismatch](https://github.com/ZDoom/gzdoom/commit/6aafc7f32363e236f5707068c34d0ae6d3ba1a10) - [warn when fewer returns than expected are given for a function](https://github.com/ZDoom/gzdoom/commit/cba89e850a8db00718401972cc7d9c5b119bd84c)
vg4.11.1
[fixed actor class creation for DSDHacked](https://github.com/ZDoom/gzdoom/commit/9d737afa9c846cae5638c9ecee9a941b5a163d33)
[fixed DumpCPUInfo() definition for non-x64 platforms](https://github.com/ZDoom/gzdoom/commit/72fc6a6d79ec1229358dcff914d484e9b56461ea)
[fixed another bad string validation check involving GetChars](https://github.com/ZDoom/gzdoom/commit/fe6decd5419885577f242594836bf4f578ee63b4)
[fix DSDHacked state creation.](https://github.com/ZDoom/gzdoom/commit/d07de089c0c205c50c9d8e74b5f7d7866770a9f5)
[update soundfont for all platforms](https://github.com/ZDoom/gzdoom/commit/431ec3da2a39a7400992aa48b9a1cbd3b48e79c2)
[set default backend to Vulkan, if Vulkan fails use GLES instead of OpenGL](https://github.com/ZDoom/gzdoom/commit/adeafa86e63d20b0e9dec61ed585c54376b37e2b)
[Fix inheritance for bNoSaveGame](https://github.com/ZDoom/gzdoom/commit/fbc98d9b97de38a025b4b7fc8a24e905da92bc04)
Changelog complet
* [fixed actor class creation for DSDHacked](https://github.com/ZDoom/gzdoom/commit/9d737afa9c846cae5638c9ecee9a941b5a163d33) * [fix DSDHacked state creation.](https://github.com/ZDoom/gzdoom/commit/d07de089c0c205c50c9d8e74b5f7d7866770a9f5) * [fixed DumpCPUInfo() definition for non-x64 platforms](https://github.com/ZDoom/gzdoom/commit/72fc6a6d79ec1229358dcff914d484e9b56461ea) * [update soundfont for all platforms](https://github.com/ZDoom/gzdoom/commit/431ec3da2a39a7400992aa48b9a1cbd3b48e79c2) * [set default backend to Vulkan, if Vulkan fails use GLES instead of OpenGL](https://github.com/ZDoom/gzdoom/commit/adeafa86e63d20b0e9dec61ed585c54376b37e2b) * [removed several bad casts to 'long'.](https://github.com/ZDoom/gzdoom/commit/9ef1bb3a6bfac97139ecff0e0f42016695bd456d) * [Fix inheritance for bNoSaveGame](https://github.com/ZDoom/gzdoom/commit/fbc98d9b97de38a025b4b7fc8a24e905da92bc04) * [make zs Actor.GetReplacement and Actor.GetReplacee clearscope](https://github.com/ZDoom/gzdoom/commit/354c64e8ad49af4cc26ccca02f00638d2fefb1d0) * [fixed another bad string validation check involving GetChars](https://github.com/ZDoom/gzdoom/commit/fe6decd5419885577f242594836bf4f578ee63b4) * [use copystring instead of strdup when reading environments.](https://github.com/ZDoom/gzdoom/commit/624d4cd713eae69291871c18691359c74432a2f7) * [disable survey code again.](https://github.com/ZDoom/gzdoom/commit/bbcea8ad583ed89a00492cf0b6a8ccbdd0a24908)
vg4.11.0
fixed: Boom's generalized crushers must stop 8 units above the floor. This required changing the special, so a new one was added to avoid altering Generic_Crusher.
Fixed a bug where calling an invalid virtual function would cause a crash.
Fixed a bug where static events would fail to halt propagation.
sanitized the light mode selection to make it a first class mapping feature by separating map dependent light mode setup from performance related user preferences for the default setting.
lots of new ZScript features.
Fix a very rare crash with complex Polyobjects
null pointer type checks in the VM added to avoid crash on bad codegen.
fix UMAPINFO boss action clearing. This did not handle the case where the actions were cleared without adding new ones and also did not clear the MBF21 boss action flags.
Changelog complet
Highlights - Several new languages: Danish, Norwegian, Swedish and Turkish - cleanup of Doom's and Chex Quest's small font to use proper character heights for international support. - extended all fonts to be capable of handling all European languages which are in common use. - First stage of DSDHacked support. Tested only with crusader.wad for now. - The build system was transitioned to optionally use vcpkg, which allows building GZDoom on Windows by running a single batch file. - WebP and QOI support for textures. - sanitized the light mode selection to make it a first class mapping feature by separating map dependent light mode setup from performance related user preferences for the default setting. - Linux: GTK startup now offers all the options of the Windows variant - lots of new ZScript features. Bugfixes - screen size settings are now properly saved. - fix UMAPINFO boss action clearing. - MBF21's BOSS flag now implies NORADIUSDMG. - remove memory leak in `A_ChangeModel` - fix OpenGL ES selection on the windows startup dialog Details - Changed the variable type of Crossed3DWater. Seems like there was some kind of oversight. Crossed3DWater is an F3DFloor pointer, not sector_t. - Add ZScript constants used by FallAndSink - Switch to miniz from zlib - fix for Genesis of Descent E1M2, which is impossible to complete on ITYTD/HNTR. I had to decompile the ACS script to figure out what was going on, basically at one point you get locked into a room and have to kill exactly 3 enemies with TID 215 for the door to unlock. One of these is a Baron tagged for only Medium and Hard, in his place is an Imp #1184 that has all the right script setups but is not set to appear on any difficulty. The fix is to simply have this imp appear on Easy. - fixed the overlapping sector handler in hw_fakeflat.cpp. This picked the wrong plane as the proper texture cutoff. - fixed: The UDMF loader did not adjust the floor/ceiling overlap state after processing UDMF sector plane properties. - fixed: EV_DoDonut checked the wrong compatibility variable and missed all map specified flags. - Fix gameinfo load from same directory as file containing gameinfo lump - validate partner seg index in LoadGLZSegs before using it - added compatibility handler for Phocas Island 2 MAP01. - fixed doublebind check with automap. For the automap C_DoKey gets called twice, once with the automap bindings and once with the regular bindings and doubleclicks. - clear the Dehacked string table after passing it to GStrings. For some reason std::move does not work here so make sure it won't stick around. - stop all cutscenes before the ENDOOM screen. - fixed: Boom's generalized crushers must stop 8 units above the floor. This required changing the special, so a new one was added to avoid altering Generic_Crusher. - Fix a very rare crash with complex Polyobjects - add support for not localizing some text functions, and modify menu text fields to use this - let Dehacked set the implicit missile flags. - fix ammo consumption of powered up Phoenix Rod. - add unexplored secret color for overlay automap to the menu - made all FileReader implementations 64 bit capable. - added a nomirrors compatibility handler and applied it to Conf256's CONF55 map. This is for disabling broken plane reflection setups. - When compat_floormove is enabled prevent sector floor from lowering if a thing is stuck in the ceiling (vanilla behavior) - fixed M_GetSavegamesPath for Linux. - Add Inventory::ModifyBob and Inventory::ModifyBob3D - Expose OF_Transient to actors as bNoSaveGame - add StartGameDirect function - fixed: MBF21's BOSS flag implies NORADIUSDMG. - fixed: For Dehacked, A_CPosAttack needs to use a hard coded attack sound. This discrepancy is ancient, so the approach used for the shotgunner does not work here and some hacks are needed to remap the function only for Dehacked. - implemented the remaining dynamic structures of dsdhacked - dsdhacked: Allow dynamic creation of new actors - dsdhacked: allow dynamic creation of new states. - add float.equal_epsilon and double.equal_epsilon - Allow building gzdoom with Vulkan with either X11 or Wayland WSI integration through CMake options - use stb-image for JPEG decoding because the old library provides no advantage over it. - Allow disabling colors for NameAllKeys - avoid high stack usage in anmtexture.cpp - added DSDA's passover/nopassover keys to the MAPINFO parser. - use a string pool to store all filenames and in the file system. this avoid lots of small allocations for data that will released in bulk later. - use the lump cache directly for FileData. This was the final puzzle piece to allow using memory mapped files in the future. - use better hash function in the file system. This is djb2 which is supposedly one of the best string hashing functions around. - rewrote dir CCMD using ScanDirectory and avoiding I_ChDir entirely. - use ScanDirectory in all places where the findfile API was used. - WebP image support - added safeguards against very early access to console variables in Cocoa backend - Add support for QOI image formats - block the centerview CCMD if the player has TOTALLYFROZEN. This is deliberately done this way, instead of placing the check inside PlayerPawn::CheckPitch, because there may be other situations where we don't want to block the centering function (APowerFlight::EndEffect being one such case) - replaced zstrformat with stb_sprintf. - A_Chase CHF_DONTLOOKALLAROUND - Add Weapon::ModifyBobLayer , Weapon::ModifyBobLayer3D and Weapon::ModifyBobPivotLayer3D - allow explicit casts between vectors of different underlying types - Fixed BlockingLine giving erroneous results - add CountSectorTags/CountSectorTags/CountLineIDs/GetLineID - Exported reflection functionality. Localized reflection code to a single function. Fixed an error where NOSHIELDREFLECT was being checked on the wrong Actor. Fixed an oversight where MIRRORREFLECT was checking for valid target despite not needing one. - Added ShadowAimFactor and ShadowPenaltyFactor. These properties allow to specify how much an actors' aim is degraded when shooting at a shadow actor. And how much the shadow actor itself affects the shooters' aim, respectively. - Added MF9_SHADOWAIMVERT. This flag causes the vertical aiming of monsters to also be affected when they aim at shadow actors. - Added MF9_SHADOWBLOCK. Actors in the line of fire with this flag trigger the MF_SHADOW aiming penalty. The shooter needs to have MF9_DOSHADOWBLOCK to check for actors with this flag. - Added MF9_SHADOWAIM. This flag allows actors with MF6_SEEINVISIBLE to still get an aim penalty by trying to shoot at a shadow actor. - Added damage property to earthquakes. - Added damage and thrust multipliers to quakes. - Added QF_DAMAGEFALLOFF. This flag makes it so that the damage and actor thrusting of earthquakes fades with distance like the screen shake effect does. - Added (XF/RADF)_CIRCULAR. This flag makes explosions use a spherical radius, instead of a cubic one. Only took almost 30 years. - Added (XF/RADF)_NOALLIES. This flag allows explosions to not harm any actors that are friendly to its' source. - Added (XF/RADF)_THRUSTLESS. This flag allows for explosions that do not thrust any of the actors caught in the blast. - Allow custom MessageBox menu selector - Individual Joystick Enable/Disable Toggles - add QualifiedName to VMFunction and allocate these static names from the class data memory arena instead of using FStrings. - null pointer type checks in the VM added to avoid crash on bad codegen. - Expanded Service's Get functions to pass in `name` parameter. - Added GetName(UI/Data) to Service class. - make all legacy light modes except 'Doom' and the software rendering emulation MAPINFO only. A CVAR still exists for testing but its value won't be saved to the config. - MAPINFO can not enforce any of the two software light modes, as low end users require the option to change this to the 'performance' setting. - changed lightmode menu options: user can only select between "performance', 'software' and 'vanilla'. 'performance' is the old 'Doom' mode which is still needed to speed things up on low end hardware. - fix the ammocount parameter in Weapon.CheckAmmo - fix UMAPINFO boss action clearing. This did not handle the case where the actions were cleared without adding new ones and also did not clear the MBF21 boss action flags. - remove memory leak in `A_ChangeModel` - made some changes to vectors.h so that it can be used without the floating point function replacements. - Add Voodoo Zombie Compatflag - remove `vid_gpuswitch` and all its handling; it is only as of now useful in old versions of Windows 7/8/10 which are no longer supported - added `MaxEffectTics` field to `Powerup` - adapted font system to properly handle Turkish. Those i's are really messy, especially when dealing with allcaps or pure lowercase fonts. - made D_WriteUserInfoStrings memory safe. - Fix TArray allocating 0 bytes in constructor - Add dynamic lights to software slope drawer - use uniform buffers for dynamic lights everywhere. Branching on SSBO content does not work that well on NVidia so it is better disabled. So far only implemented for OpenGL Vulkan needs more work. - Fix Software Slope Rendering for non-1.2 pixel ratios - add the flags MINVISIBLE and MVISBLOCKED - Extend pseudo-generics system used by maps to dynarrays - add RedirectCVAR directive for loading alternate maps based on a Bool CVAR setting - Fixes bones when using OpenGL 3.3 (UBO bone data) - validate the buffer size in HWViewpointBuffer::Set2D. - Fixed a bug where calling an invalid virtual function would cause a crash. - Add cvars to sprite shadows progressively according to thing floor distance - Added OnEngineInitialize() for static event handlers - cleanup of the Doom and Chex Quest small fonts' discritical characters - Implement antialiasing for automap lines - Map::GetIfExists and Map::CheckValue - Fixed global TerrainDef array not being exported correctly - alt HUD: use `NewSmallFont` for drawing player's coordinates if `ui_generic` is enabled - Increase slider precision for mouse sensitivity settings - Use a slider to allow specifying max FPS with more precision - Check all ACS functions for minimum number of arguments. - Fixed SpawnForced not respecting the minimum declared in zspecial.acs. (https://forum.zdoom.org/viewtopic.php?t=77027) - Exported LinePortals to ZScript - cleaned up the pitch management in the sound backend. This now treats all pitch methods equally instead of the preferential treatment of Doom's original pitch hack. Most importantly, the sound channel now stores the pitch as a floating point value instead of 9.7 fixed point. - snd_pitched now also gets checked in the sound engine, not the low level interface. - Fix Y position of characters in monospace fonts - Added all of the missing player cheats to the SetPlayerProperty special. - Added APROP_WaterDepth. - Converted A_Quake(Ex) intensity parameters from ints to doubles. - Add missing error for mapinfo tonemap - Add Tonemap support for Unclamped lighting mode - Add Alternate Light Blending Options - gldefs: update Freedoom definitions. - CCMD listmaps: Colorize maps loaded from pwads in blue text - Fix MapIterator::GetValue - Fixed a bug where static events would fail to halt propagation. - Fix diffuse-only material shaders not applying. - Add sv_noplayerclip to allow players to walk through and shoot each other (only in coop) - optimized sheet font texture generation. Instead of reloading the base image over and over again, let's cache it so that less time is needed for each single character. - changed CreatePalettedPixels to allow return of static pixel data without reallocation and copying. - fixed buffer size checks for raw textures. - Prevent important messages from being accidentally filtered. - Updated the WOPN banks collection - Added FlyBob Multiplier for Player - Added WaterClimbSpeed Property to Players - Fixed custom screen height and width not saving. - Additional lock-related ZScript functions. - Key.IsLockDefined: returns whether a lock number is valid (can be unlocked) or belongs to a "does not work" door. - Key.GetMapColorForLock: returns the automap color for a lock number (or -1 if the lock isn't valid). - Key.GetMapColorForKey: likewise, but for a specific key. - Fix FxMultiAssignDecl type - fix OpenGL ES selection on the windows startup dialog - Multi-Assign Declarations - Fixed the ACS PLAYERINFO_FVIEWBOB to be a bool instead of a double. - Add vulkan pipeline cache - Update and clean up UE1 model loader. - Expose StripLeft and StripLeftRight to ZScript - Fix StripLeftRight - Error out instead of crashing for vector out variables - optimizations for the sound system and texture manager. - Added FOV Interpolation - Added toggle control for weapon bob while flying - add BobWeapon3D - Exposed Box and PointOnLineSide - Add support for Vector types as properties - removed bogus errno check from Dehacked parser. - Fixed IsActorPlayingSound's default argument - Fix wrong assumptions about actor initialization in Map/MapIterator - fixed GC::FullGC not collecting everything anymore. - extended all fonts to contain all characters used by European languages - Fix Quicksave Rotation - Add all the functionality from the win32 startup window to the GTK version
vg4.10.0
Fixed A_Changemodel crash from invalid modeldef names
Fix crash if Animation is not explicitly assigned in MODELDEF.
added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values. These just mirror features of the internal vector classes.
Added PS_REPLACE flag for A_SpawnParticle(Ex). When used, new particles that spawn when the limit is reached will replace the oldest particle.
Improved Slam functionality.
added a compile option to fully disable the software renderer. This is mainly for new games which have been designed for hardware rendering.
Fix GC ignoring DynArrays inside fixed Arrays
fixed: The raw texture caching in the texture manager did not work. This erroneously checked for FrontSkyLayer.
Changelog complet
- Italian language translation is now complete - Make the new scaled angle changes at frame rate opt-in behind new flag `SPF_SCALEDNOLERP`. - Set up interpolated camera angle changes to occur at framerate when all conditions in `P_NoInterpolation()` are met. - Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame. - Map and MapIterator for ZScript - Structified A_SpawnParticle/Ex - Look up named frames using the Animation ID (if any). - Allow Disabling of XY Billboard for Particles - Added Method For Getting Portal Group Count - Allow Getting Portal Group Offsets - Fixed A_Changemodel crash from invalid modeldef names - Fix SNDINFO $rolloff always changing global rolloff - Fix GC ignoring DynArrays inside fixed Arrays - AST debug cleanup - fixed: The raw texture caching in the texture manager did not work. This erroneously checked for FrontSkyLayer. - Allow assigning IQM frames by animation name plus frame offset. - Added animation support for OptionMenus - Fix crash if Animation is not explicitly assigned in MODELDEF. - internal cleanup of sound code - allow SNDINFO to declare sound mappings by using 'sound = soundfle' syntax. - - process events every frame as well to ensure that menus can run at any framerate - Fix incorrect pixelratio handling on rotated models. - Added Font and TextureID types to Option and Image Scroller items (List items already have these) - Added "Class" instruction for Image Scrollers - Added ability for Option items to read in their OptionMenuDescriptor (List and Image Scroller items already have this) - Added "ForceList" instruction for Lists so that skill, playerclass, and episode menus don't get overridden - Fix checking of wrong variable in String..Float concatenation - Clearscoped getters for map data - CustomMessageBox - fix colormap remapping when colormap entries may have fullbright entries which should not be considered duplicates - stop all sound before showing ENDOOM. - disabled shortcutting the intermission code if no summary screen is wanted. This also disabled all cutscenes being attached to the completed map. - added 'foreach' loop to ZScript. - implementation of Quaternion type in ZScript - GLES: Added IQM bone support. - SendConsoleEvent function for EventHandlers - Future-proof particles by resetting them completely when replaced. - added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values. These just mirror features of the internal vector classes. - added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter. - Add PushSound property and Slide state - Added PS_REPLACE flag for A_SpawnParticle(Ex). When used, new particles that spawn when the limit is reached will replace the oldest particle. - add Vector4 to ZScript - avoid infinite portal recursion. - fix uncaught exception that rarely occurred with the intermission screen that would vm-abort out from any attempt to enter a level - Exposed LevelLocals' LookupString functionality - Improved Slam functionality. - Normalize angle in AngleToACS. Fixes GetActorAngle returning negative or large values with no range limit. - Enable ANIMDEFS for particles - add some more blacklisted cvars to defcvars - fixed background setup for intermissions to apply tiling only where intended. - removed the unused BaseBlend* variables and the testblend CCMD. - added a compile option to fully disable the software renderer. This is mainly for new games which have been designed for hardware rendering. - add the following command line parameters: - -noextras: disable loading of any extras (lights, brightmaps, widescreen) - -nolights: disable loading of lights - -nobrightmaps: disable loading of brightmaps - -nowidescreen: disable loading of included widescreen assets - fixed bad index check in CanWipe. This can be called with index == -1, which should check the first element of the intermission. - GC: Have a real finalizer stage for destroying objects instead of mixing them in to the sweep stage. - GC: Base GC rate on a running average of the allocation rate instead of basing it on the amount of time taken since the last sweep started. - More GC stats for better tweaking. - added characters U-0404 and U-0490 for Ukrainian language support. - reworked all accented characters of Doom's SmallFont. Also adding a few new ones that were easy to do - when converting to a portable install, flag the current session accordingly. - changed CalculateBones to receive the bone component data directly instead of the owning actor. - fixed FileExists check for -loadgame. This was done before the current savegame path was known so it always errored out.
vg4.9.0
Fixed vulkan crash when multisampling is enabled
fixed background tiling for summary screen. Since the background object gets recycled it must clear this flag before loading a new background.
Improve vk_debug output a lot by throwing away the useless parts of the message and limit the callstack to the first 5 gzdoom calls
added detection of macOS Ventura
Fix the discolored sky bug
fixed: P_SpawnMapThing may not call playsim code.
Fix vulkan backend clearing the canvas textures to undefined contents
fixed: R_LoadVoxelDef did not fully initialize the voxel descriptor it creates.
Changelog complet
**Inportant note to Windows users:** GZDoom 4.9.0 changes where gzdoom.ini is stored. Unlike older versions this one will always prefer the system's user folder and place the INI in Documents/My Games/GZDoom if no INI is found. This was done to bring handling in line with current guidelines and to make it easier for commecial games that often get installed into a folder without write access. If you still want to store the INI in your game folder you have to create an empty file called GZDoom_portable.ini there before launching. If you still have an old INI in your folder, GZDoom will ask what to do with it, you can either move it to the user folder or convert to a portable install. **Change of savegame storage** This version introduces per-IWAD savegame folders. If you have old savegames you still intend to use, please wait with the update until you can safely delete them. **Highlights** - IQM bone model support - textured particles **Details** - added target check to A_MaulerTorpedoWave. - fixed: P_SpawnMapThing may not call playsim code. - added PARAM_NULLCHECK to the block iterator creation functions. - added [[noreturn]] to several functions that always throw exceptions. - Particle Rolling - Add Textured Particles - Add GFF_NOEXTCHANGE to Phasing Zorcher flash. The Plasma Rifle does not light the player's sprite, so we must assume the Phasing Zorcher also should not. - Fix HUD models not drawing if MODELDEF has been changed with A_ChangeModel - Fix inconsistent distance and hit position on traces that skip everything. - Fix canvas textures getting clipped by wrong scissor box - Fix vulkan backend clearing the canvas textures to undefined contents - made DMover and subclasses non-abstract so they can be inherited from. - added option to show hub and episode names on the alt HUD. - reworked CVARs to not use a linked list and to be initialized manually. - marked a few Printf calls in critical error paths as PRINT_NONOTIFY. - fixed: R_LoadVoxelDef did not fully initialize the voxel descriptor it creates. - don't crash on null pointers in V_GetFont. - zero the velocity of crunched sprites. Since their size is zeroed, they are no longer subject to collision detection and may slide out of the level otherwise. - don't crash when destroying incomplete textures. This can happen during TEXTURES parsing in case of an error. - try to keep the engine stable for as long as possible if a VM exception occurs in OnDestroy while running a cleanup. This will still crash, but run long enough for the exception message to be visible. - fixed F2DDrawer::SetClipRect. - added vanilla donut handling to compat_floormove. - Fixed: voxel models pitch/roll properties weren't initialized correctly - Added QF_SHAKEONLY. The QF_SHAKEONLY flag changes the behavior of earthquakes with a damage radius, so that they only shake actors around, without also harming them. - Added QF_AFFECTACTORS. The QF_AFFECTACTORS flag makes the thrusting and harming of damaging earthquakes also affect monsters. Monsters with DONTTHRUST will not be flung around by earthquakes. - Added the QF_GROUNDONLY flag. The QF_GROUNDONLY flag makes earthquakes only shake the player while they are standing on the ground. - fixed DrawLine commands by giving them a consistent floating point interface. - heretic: e2m7 - missing texture - fixed direct native interface for Draw(Thick)Line. - fixed: The main loop never checked the cutscene flag for disabling wipes. - Sync movie video playback to the audio, when possible - Fix washed out colors in Vulkan HDR mode - normalize the timer with the app start, not the epoch. This ensures smaller values and less wraparounds with integer values in scripts. - un-deprecated the integer MSTime variant. Due to undefined downconversion rules from double to int, there is no way to safely downcast the return from MSTimef, meaning the function is completely useless for retrieving integral time stamps. - added Harmony ENDOOM screen. - added a config getter to the interface. - moved language CVAR to backend. - handle menu customization via callbacks. - move hud scale CVARs to the backend. - handle autoload flags in startup through function parameters instead of directly accessing the CVARs. - handle Build tiles via explicit callback to the init function. - add a system interface for CheckCheatmode and moved some sound code to the backend. - Exported GetDisplayTopOffset for font characters to ZScript - added missing obituary for Strife's turret. - Added support for BLOCKLANDMONSTERS in Line_SetBlocking. - Added APROP_FriendlySeeBlocks to Set/GetActorProperty - Fix planeval; add direct sector slope manipulation - Modify to have one GetVertexZ rather than IsVertexZSet / GetVertexZ - Add vertex height manipulation functions to LevelPostProcessor - Add sv_noextraammo. When set to true, disables that weird hardcoded behavior from original Doom that gives extra ammo when picking up weapons in deathmatch - fixed: all script methods adding an object to a dynamic array must perform a write barrier. - add freezetics actor property - allow notification of actor goal is reached inside of a SECF_NOATTACK sector - GLES2: Fix anistropic filtering - disabled discord-rpc debug info for configurations without it - fixed sky cap color handling - fix arti teleport and arti teleother not respecting useplayerstartz mapflag - UE1 models now handle frame index -1 properly. - Add support for the GOG releases of the Unity versions of Doom and Doom II. - carry over the tiling flag from the finished to the entering screen - Prevent Keyconf from adding duplicate playerclass - Add detection for the Final Doom WADs that were recently added to the Steam version of Doom II. - new method to define obituaries without modifying actors. - remove latch flag from sv_cheats - add `openscreenshots` `opensaves` and `openconfig` console commands on Windows and Linux and Mac - use consistent index types for array function return values. - pass clip rect as pointer to F2DDrawer::AddLine. - Export FindLumpFullName to ZScript. - Add support for nested user types - made adjustments for proper int type promotion to allow internal ZScript to compile with it on. - ZScript: fixed integer type promotion for shift operator - version-restrict int to uint promotion. Some mods depend on this not happening. - fixed: The compile context for constant evaluation did not initialize its Version member. - Don't throw away unsignedness when passing unsigned constants to the codegen - Add signed->unsigned promotion for binary operators - fix menu commands with semicolon separated commands - get rid of M_Malloc call in WriteSavePic - Fix definition order of ZScript structs. Do a first pass over the Structs array in CompileAllFields() to reorder them such that if a struct uses other structs, those structs will be resolved first. - Fix viewpoint buffer not getting cleared when in the menus - backported KDE detection from Raze. - removed the Softpoly backend. - Add a 2d drawer to canvas textures - Fix incorrect mapping of texture indices for UE1 models. - Added PitchFromMomentum, UseActorPitch and UseActorRoll to VOXELDEF. Behaves exactly like their 3D model counterparts. Hardware renderer only. - removed some redundant chaaracters from the Doom SmallFont. - Added IQM bone model support - Added A_ChangeModelDef - fixed return values of FTextureAnimator::AddAnim - add longsavemessages to simple menu. set longsavemessages default to false. - DirectInput cleanup. Removing ancient code that's only useful on pre-XP OSs. - also allocate FDoorAnimation's frame table from the texture manager's memory arena. - optimized storage for animation definitions. - Fixed vulkan crash when multisampling is enabled - add a method for filling a shape2d instead of using a texture (#1661) - add stencil buffer support for 2d drawing (#1660) - add a system for setting all of 2D drawing's transform, not just shapes - Expose ConsoleState to scripts - rewrote Windows console code for Windows 10's new terminal. - fixed and consolidated artifact check in cheat code. - removed volatile type punning for clipping against line portals. - fixed handling of *dive and *surface sounds. -let A_FireProjectile pass through the second return value of SpawnPlayerMissile. - fixed PoisonCloud's looping animation count. - weapons are not artifacts. - rename PrintString to PrintfEx and make it a vararg function - Expose Print Flags to ZScript - fixed names for A_PlaySoundEx - ENDOOM is not Windows only anymore. - fixed background tiling for summary screen. Since the background object gets recycled it must clear this flag before loading a new background. - let the "abort" button on the network pane of the startup screen do a hard exit on Windows. - make sure ticdup is initialized. - Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former makes the actor only visible in reflections, while the latter makes the actor not cast reflections in mirrors. - cleanup and refactoring of Vulkan backend - Improve vk_debug output a lot by throwing away the useless parts of the message and limit the callstack to the first 5 gzdoom calls - validate fountaincolor before using it. - added detection of macOS Ventura - ZScript: don't allow multiple assignment syntax with only one element. - fixed type of third argument of MBF21's MonsterMeleeAttack function. This is a sound, not an int. - added an override for NOTAUTOAIMED flag when using P_AimLineAttack for informative CCMDs. - allow taking screenshots in cutscenes. - fixed JIT target function for GetTimeFrac. - fixed: For cutscenes the alternative clean scaling factors need to be activated. - fixed setup of ready state with Dehacked. This needs to emulate the hard coded chainsaw sound when weapon states get reassigned. - Fix the discolored sky bug - check point pushers/pullers by inheritance, not absiolute match - added FailSound property to PuzzleItem - add `i_pauseinbackground` to the menu. note: please pull the language file for this - set `i_pauseinbackground` to match `!(i_soundinbackground)` for all configs before this commit. - fixed division by zero with unvalidated ticdup values. - reinstated con_scale.
vg4.8.2
fixed names for A_PlaySoundEx
fixed background tiling for summary screen.
text update that was missed in 4.8.1
Fix FVector to Vector comparison
add a few maps to the rebuildnodes compatibility block
Changelog complet
- fixed names for A_PlaySoundEx - ENDOOM is not Windows only anymore. - fixed background tiling for summary screen. - text update that was missed in 4.8.1 - add a few maps to the rebuildnodes compatibility block - Fix FVector to Vector comparison
vg4.8.1
Mainly a bugfix release, but contains a major update of the Vulkan backend
Fix the discolored sky bug on Vulkan
Bugfix for software mode mirrors not working
Vulkan backend update
fixed type of third argument of MBF21's MonsterMeleeAttack function.
fixed JIT target function for GetTimeFrac.
fixed: For cutscenes the alternative clean scaling factors need to be activated.
fixed setup of ready state with Dehacked. This needs to emulate the hard coded chainsaw sound when weapon states get reassigned.
Changelog complet
Mainly a bugfix release, but contains a major update of the Vulkan backend - let the "abort" button on the network pane of the startup screen do a hard exit on Windows. - Bugfix for software mode mirrors not working - make sure ticdup is initialized. - Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former makes the actor only visible in reflections, while the latter makes the actor not cast reflections in mirrors. - Vulkan backend update - validate fountaincolor before using it. - ZScript: don't allow multiple assignment syntax with only one element. - fixed type of third argument of MBF21's MonsterMeleeAttack function. - added an override for NOTAUTOAIMED flag when using P_AimLineAttack for informative CCMDs. - allow taking screenshots in cutscenes. - fixed JIT target function for GetTimeFrac. - fixed: For cutscenes the alternative clean scaling factors need to be activated. - fixed setup of ready state with Dehacked. This needs to emulate the hard coded chainsaw sound when weapon states get reassigned. - Fix the discolored sky bug on Vulkan - check point pushers/pullers by inheritance, not absiolute match - Implement FVector ZScript for Actor Scale - added FailSound property to PuzzleItem - add `i_pauseinbackground` to the menu. note: please pull the language file for this - set `i_pauseinbackground` to match `!(i_soundinbackground)` for all configs before this commit. - fixed division by zero with unvalidated ticdup values. - reinstated con_scale. - make sure the last notch on the start screen is rendered. - fix relative include path when loading folders - avoid storing texture pointers in longer lived data
vg4.8.0
Fix that vk_debug doesn't output anything for newer versions of the vulkan sdk
Fixed crash with Scroll_Texture_Offsets with non-zero tag
Fixed some issues with the scaling feature of DStatusBarCore::DrawString
Fix upload and sampling bug for array textures in the vulkan backend
fixed: Vulkan descriptor sets must check the real translation, not just the translation ID.
Fix 3d floor-related crash in software renderer
fixed potential infinite loop in Hexen-style stair builder.
fixed auto-scaling for console.
Changelog complet
Highlights - added Raze-style HUD scaling. Not exposed in the menu yet, Set hud_oldscale to 0 and use shift with the screen resize keys to scale the status bar. - handle the start/endoom screens with the ingame renderer. They are now present on all platforms and use the full screen size of the game. - Many MBF21 fixes. - added the cutscene system from Raze Details - the chat should use the console's scaling, not the one for the messages printed with the small font. - fixed auto-scaling for console. - removed all vid_fps offsetting. To compensate there is now also a "stat fps" which displays the FPS rate in the lower left corner. This had to go because unconditionally altering positions was causing problems with custom HUDs. - added Raze-style HUD scaling. Not exposed in the menu yet, Set hud_oldscale to 0 and use shift with the screen resize keys to scale the status bar. - added a few more names to the reserved names for main folder detection. - consider "fonts" and "models" reserved folder names. - fixed undefined behavior with Dehacked's value parser. - Rebuild nodes for 1024.wad MAP02 to fix invisible obstacle near the exit area - fixed fast crushers going out of sync if something is being crushed by them. - fixed: Vulkan descriptor sets must check the real translation, not just the translation ID. - handle the start/endoom screens with the ingame renderer. - Create a MainWindow class that manages the main win32 window of the application - Added Actor::LightLevel. Setting it to any value > -1 will override the sector's light level. - Implement virtual Actor.FallAndSink for scriptable falling and water physics - Added Actor.WaterDepth to retrieve how submerged and actor is, in map units - added cutscene data parser. This covers: game start, episode start, cluster start/end, level start/end. - MASTERNOSEE flag (#1601) Makes it so that if an actor's master is invisible due to camera/mirror/portal shenanigans, then the actor will also be invisible. Name based off of an Unreal Engine flag that does the exact same thing. - Made CanCrossLine opt-in by requiring the CROSSLINECHECK flag. - Added CanCrossLine virtual for actors.Called last after all other line checks occur. Returning false means the actor cannot cross that line. - Add WorldOffset field. Adjusts the thing's 3D position on render side. This allows for adjusting a thing's visual position without impacting their hitbox. - fix bad MP start spot in 1024.wad, MAP05 - Enables shortcuts for option menus. Press a key to immediately jump to the next option menu entry which starts with this key. Hold Alt to jump backwards. - `DontLightOthers`: Acts as the inverse of `DontLightSelf`, where it won't light actors that aren't the owner. - `DontLightMap`: The light doesn't affect the map. - Relative Includes for ZScript - remove `m_filter` and simplify related code - exclude keys from ‚artifact‘ cheats - fixed MF_SHADOW handling for MBF21. This needs to alter the render style as well. - fixed handling of automap sprites with negative scale. - fix dynamic light setup. The level’s global flag is unreliable and cannot be used. The operation this was initially supposed to skip cannot be skipped anyway so the impact should be minor. - Allow SendNetworkEvent during title level. - add `sv_ammofactor` to change the skill adjustment for ammo - extended the read buffer for the 'secret' CCMD. - This is merely preparation - the actual loading is still in one uninterrupted piece. - Fix that vk_debug doesn't output anything for newer versions of the vulkan sdk - added JPEG YCCK decoding. - Added MF8_SEEFRIENDLYMONSTERS. Non-friendly monsters with this flag on will be able to attack friendly monsters on sight. - fixed mouse coordinate checks for Strife conversations. ypositions needs one entry per response, not one per line. - fixed radius of BossBrain actor - Added QF_3D flag for quakes. When used, the quake thinker will perform a 3D distance check instead of 2D. - removed compat_soundcutoff from the menu. Handling for this was removed 14 years ago when ZDoom transitioned to FModEx 4.x - add -compatmode for setting a compatibility mode on startup as a replacement for +compatmode not working as intended. - activate Hungarian in the menu - Fix off-by-one in Vulkan multisample sample count selection - completed Hungarian translation. - Fix co-op softlock in Heretic E4M8 due to multiplayer teleporter. - added handlers to load Strife’s startup screen images as textures - added image source handlers for Hexen’s special startup image types - use the hex font for the Heretic/Endoom text screens. - fixed setup of files to load on startup. - fixed return type of MSTimeF script function. - moved -rngseed init to D_InitGame - pass ´hashfile´ to filesystem as parameter - fix TArray::Append with rvalue parameter. This must clear the source array to obey move rules. - fixed Playdemo and Timedemo check. The assumption that D_DoomLoop never returns does not apply anymore. Let it fall through to the end instead where this is properly handled. - only check „allowduplicates“ for the final file system init - added missing BLOCKF_ flags for ZScript. - added ‚repeat‘ option to SetLineActivation ACS function - made friendlyseeblocks writable. - removed all remains of the corpsegibs flag and made vileghosts interactive. Ghosts are still off by default, but they will now be enabled when selecting the vanilla (strict) compatibility mode. - restrict RealGibs for players only. All non-players will now always act as if the ‚corpsegibs‘ flag was set, regardless of the current setting. - added Get/SetAmmoCapacity ZScript functions - expose the ‚attenuatelights‘ map flag. - added an option to delete a terrain type from a texture. - add wipe transition support to the screenjob runner. - migrated intermissions and summary screens to screenjobs. - timer code fixes. - added all the cutscene system from Raze - added compat_nombf21 for cchest2.wad, map 19. - Fix usage of -1 as OBJ model FrameIndex - added zip64 handling - added workaround to Dehacked so that „Doom“ only replaces the music name - fixed some incorrect array allocation sizes in polyobj code - added missing range check for scrolling down an option menu with the mouse wheel. - do not clamp warped textures. - disabled deletion of previous event handlers when using 'eventhandler' keyword in MAPINFO. - fixed: decal things failed to spawn their decals on 3D floors. - validate the index argument for GetSavegame and abort if out of range. - don't let "give weapons" hand out abstract weapons. - lock cvar shader uniforms behind a command line parameter for now - fixed setup of PolyBSPs when the software renderer is active. - Remain 3, MAP11 also needs compat_nombf21. - fixed Dehacked drop items. - added nombf21 compat setting for Heroes Tales MAP31 - fixed: The alt HUD's draw call did not use the virtual interface. - fixed: group teleporters must always preserve orientation. - don't move bad polyobjects in the savegame loader. - cast arguments for fastcos/sinbam - copy size info from defaults when starting a list menu block. - handle cases of empty state labels in ZScript. - GLES: Fix blend flags - fixed bad color range check in ACS HudMessage code. - fixed Dehacked check for A_ConsumeAmmo. This must use the internal function name. - fixed y-offsets of bal7scr* decal images. - let A_SpawnParticle respect the float bob offset - separate message for disabling noclip2 - added a nullptr check for StatusBar when drawing „Paused“ - make menu scale adjustments for ultra-wide aspect ratios. - treat PSP layer ID 0 as invalid. No PSprites with this ID may ever be created, as there is no means to find them again. - fixed: The skill menu did not remember its last selection. - allow artifacts that do not automatically activate to be given by the 'give artifacts' cheat - added vertical bullet spread relative to ssg - Fixed GUS Emulation with DMXGUS(C) lump conf. - changed default value for midi_config to empty string since gus is not working with sf2 file - fixed SetupDMXGUS not loading lump correctly, wrong use of CheckNumForFullName - midi_config default to empty string, since lzdoom.sf2 doesn't seem supported (distorted sound) - added absolute paths to FZipPatReader so we can add custom patches to resource files by using gus_patchdir and/or ULTRADIR variable (some custom maps has custom patches that can be added this way without putting them inside the resource file or in the same folder of the configuration file) - set timidity_reverb_level min value to 0 in menudef.txt, set to 9 by mistake? - Added the MF8_DONTFOLLOWPLAYERS flag, which allows friendly monsters to not follow their FriendPlayer when they have no target or goal left to head to. - fixed Font struct export and removed the duplicate handler. - fix detection for misplaced | when creating the small fallback font - typo 'Yea' instead of 'Yes' - implement proper GC handling for AActor::ViewPos. - Add CHF_DONTIDLE for A_Chase - fixed exittext definition for Harmony. This wasn't using the string table. - add gl_satformula == 2 - an optional 'more accurate' desaturation - fixed order of slope creation so that slope copies are the last thing being done. - Discord RPC presence. Adds new IWADINFO and GAMEINFO keys: DiscordAppId - this should point to your AppId for your game. It will use a default GZDoom one if not found. - remove default lost soul translucency - Added 'ScaleWeaponFOV' flag to MODELDEF. Affects weapon models only; will scale the model along with the user's FOV to reduce distortion. - Additionally, a 'cl_scaleweaponfov' CVar has been added to allow users to further fine-tune the weapon model scale with higher FOVs - Terrain small splashes and splash bases now set their target to the thing that spawned them, allowing for extra customization. - Added GetTerrainDef and Sector variant of GetFloorTerrain. - Fix 3d floor-related crash in software renderer - add duplication checking to file list, prevent loading the same file twice unless explicitly asked by the user - initialize FSwitchDef::QuestPanel when reading a Boom SWITCHES lump. - added a 'no MBF21' compatibility flag. Turns out that there's a few old maps that have the extended line flags set but not the guard bit that forces their clearance. Astrostein 1's first map is an example for this. - Initialize some variables in FModelVertex::Set - Fix wrong normal vector in the FModelVertexBuffer constructor - virtualize player landing on thing sound - fixed local vector array initialization. - Fix func_paletted.fp to use alpha channel for index. This was needed due to GLES renderer change from Raze - allow floats for uniform cvar defaults - implement direct cvar linking to custom shader uniforms - Add per-tier sidedef light levels to UDMF maps - Add TexMan.SetCameraTextureAspectRatio. Allows ZScript to change the aspect ratio of a camera texture. - Optimized P_TestMobjZ by not running the iterator if `actor` also has THRUACTORS. - make `m_quickexit` a global CVAR - Added `A_SetViewPos(Vector3 Offset, int Flags = -1)` - apply WeaponScaleX/Y to all PSprites on a weapon - fix logic error with shader compatibility layer - add debug ccmds to manipulate custom postprocess shaders and their uniforms from the console - fix mbf21 A_FindTracer fov cone being twice as big as intended - add SMF_PRECISE flag to mbf21 A_SeekTracer, for accuracy - fix mbf21 A_SeekTracer not working (arg type shenanigans) - fix mbf21 A_ConsumeAmmo ignoring explicit amount arg if weapon's ammopershot field set - fix mbf21 A_ConsumeAmmo taking 0 ammo instead of 1 if ammopershot field not set (need to amend the spec for this, argh) - fix MBF21 A_WeaponMeleeAttack function name typo & args - fix MBF21 A_WeaponProjectile spawn position - fix MBF21 GetSoundArg off-by-one: sound indices are 1-indexed in args because Killough - fixed logic error with depth bias state in hardware renderer. - redid postprocessing shader interface to be free of the player dependency. - separate `i_pauseinbackground` and `i_soundinbackground` - they probably should ultimately be moved out of the sound code - Fix GC so collection rate is proportional to alloc rate - fixed: the powerup item for respawn invulnerability was never given to the player. - fixed MBF21's A_SeekTracer. This cannot directly call A_SeekerMissile because that has more parameters. It now maps to a wrapper that takes care of these. - fixed Dehacked parsing issues with weapon properties. - added proper range check to the main sound playing function. - fixed potential infinite loop in Hexen-style stair builder. - create new menu page for simple mouse options menu - remove advanced settings like the individual speed fine-tuning - Fixed crash with Scroll_Texture_Offsets with non-zero tag - Fixed: ActorMover was not changing its tracer's flags. - Added NoTrim support for ANIMDEFS, same syntax as TEXTURES outside a definition. - Added NoTrim for TEXTURES. - Exported the "paused" global variable to ZScript - ACS: fixed an old regression in which printing a map char array did not dereference the given array variable - Fixed some issues with the scaling feature of DStatusBarCore::DrawString - GLES: Load default shader if we try to load user shader to avoid crash - `D_ProcessEvents()`: Delay `EV_KeyUp` events until any `EV_KeyDown` events for the corresponding key have been processed. This makes the mouse under SDL a lot better. - add SDL hint to not minimize the window on focus loss - apply clearscope to `ApplyDamageFactor` as well - apply weaponscale relative to baseline - add WeaponScaleX/WeaponScaleY properties for applying global scaling to a weapon's PSprites - Fix upload and sampling bug for array textures in the vulkan backend - apply clearscope for ApplyDamageFactor - https://forum.zdoom.org/viewtopic.php?f=15&t=73830 - add `LoadBrightmaps`, `LoadLights`, and `LoadWidescreen` directives for `IWADINFO` - these function exactly the same as their `GAMEINFO` equivalents. - Fix abort with dir command and empty string on Windows. - Fix vulkan validation errors for wrong image transitions and buffers used after destroyed - Add a render style parameter to Screen.Dim - Fix vulkan buffers not using the stream usage for the 2d drawer. Add BufferUsageType enum to clarify what kind of usage is expected by the buffer allocated by SetData - fixed: menu delegate class error message referenced the wrong gameinfo property - Added 'NoPerPixelLighting' flag to models to force it to not use per-pixel lighting. Main use case is for voxels that have been converted to models. - add cvar `r_skipmats` - speeds up rendering on slower cards for mods that use a lot of specularity/pbr, effective on both the opengl and vulkan backends
vg4.7.1
Mainly a bugfix release addressing the following issues:
Fixed: SBar_DrawTextureRotated was missing the angle parameter
fixed some imprecisions in font luminosity calculation. This was still going through the palette which could result in off-by-one errors.
fixed palette initialization for single lump fonts (FON2 and BMF)
fixed memory leak in DShape2DBufferInfo.
fixed A_Punch having a short attack range (take 2).
Fix "out of memory" errors when the vulkan backend is asked to create zero byte sized buffers
fixed particle processing in the main thinker loop. This may not be guarded by the dynamic light flags, only the light ticking may.
Changelog complet
Mainly a bugfix release addressing the following issues: - Fixed: SBar_DrawTextureRotated was missing the angle parameter - Compat patch for misplaced items in Hexen MAP08. - fixed some imprecisions in font luminosity calculation. This was still going through the palette which could result in off-by-one errors. - fixed palette initialization for single lump fonts (FON2 and BMF) - push sprite shadows a little back for distance sorting - avoid multiple Dehacked mappings to the same function to fix MBF21 lookup issues. - disallow changing the line spacing for option menus. - be a bit more aggressive with the GC when not running the game loop. - fixed memory leak in DShape2DBufferInfo. - allow "INDEXFON" as an alias for "INDEXFONT". - fixed A_Punch having a short attack range (take 2). - GLES: Fix texture MapBuffer and AllocateBuffer create client side memory. - Fix "out of memory" errors when the vulkan backend is asked to create zero byte sized buffers - resolved a VM abort upon morphing while the tome of power is active - fixed particle processing in the main thinker loop. This may not be guarded by the dynamic light flags, only the light ticking may. - fixed handling of states with the 'light' keyword. - Fixed broken V_BreakLines. - treat "materials" as a known folder name for eliminating root folders in Zips. New Features: - widescreen assets for all officially supported games. This version adds Hacx, Harmony and Chex Quest. - Allow WorldUnloaded events to know the next map name (if any). - Allow map markers to scale relative to automap zoom. - Add cvars to control automap line alpha and thickness - PreTravelled virtual for player and inventory. - Allow customization of pause screen. - ReadThisMenu / MenuDelegate overriding.
vg4.7.0
The major new addition is a new GLES2 backend, meant to improve performance on low end hardware. This was written by emile_b for the Android port but backported to the mainline for old hardware support.
new GLES backend for better performance on OpenGL 3.3 and early 4.x hardware.
fixed: 3D floor model sectors were not added to the sector lists for precise rendering.
fixed crash on getting location description without a level
fixed patch version in compatibility implementation of macOS detection
fixed crash after change level failure
fixed crash after fatal error in SDL backend
Fixed crash calling ChangeSky() with an invalid texture.
Changelog complet
The major new addition is a new GLES2 backend, meant to improve performance on low end hardware. This was written by emile_b for the Android port but backported to the mainline for old hardware support. Please note that this backend removes some non-essential features to increase performance, like the entire postprocessing or advanced lighting features like specular or PBR. Our tests show no performance gains on modern hardware capable of Vulkan, so is not recommended to run it on such systems - it is solely meant for old hardware that have performance issues with the modern GL backend. On older hardware capable of supporting OpenGL 3.3 our measurements show that performance is generally on par with LZDoom. Furthermore, to make the new backend available to 32 bit users as well, GZDoom 4.7 will exceptionally provide a 32 bit build as well, but please be aware that it depends on the survey's result whether this will see continued maintenance, as user share was already extremely low two years ago. **The survey has been re-enabled for this version so that we can get some information about how the state of systems being used for GZDoom has developed over the last two year. This is mainly due to the addition of the new GLES backend for old hardware, so we can get an overview of how much of this hardware still exists and how future support needs to be handled. We would like to ask as many users as possible to participate, so that we can make the right decisions based on the information we obtain. Like previous surveys this does not collect any private information - all it sends is basic info about the operating system, the number of CPU cores, the name of the graphics card and supported OpenGL/Vulkan versions.** **Highlights:** - Widescreen graphics for Strife - new GLES backend for better performance on OpenGL 3.3 and early 4.x hardware. - MBF21 support (still in beta and not fully tested yet, bug reports are welcome) - DEHEXTRA working properly now - various enhancements and fixes for ZScript. **Details** - fixed vertex generation when splitting walls by planes on old hardware. - menu system update from Raze for better control of animated menus. - GLES fixed: The weapon sprite must be rendered with the fullscreen colormap on. - use explicit virtual screen sizes for the scripted intermission backgrounds to better cope with background replacements. - fix compatibility handler for KDiZD's Z1M3. - fixed: "Dialogue" in MAPINFO must clear all "AddDialogues" that came before. - fixed melee attack disance being off after adding MBF21 support. - fixed: Decal things did not spawn their lower decals. - fixed texture clamping for elements that are partially behind a slope. - fixed bad parameter order in MinoraurSlam. - Consider 'Program Files' a read only location without actually checking. - fixed: 3D floor model sectors were not added to the sector lists for precise rendering. - removed the redundant gl_render_precise CVAR. - fixed: colors from brightmaps and glowmaps need to be desaturated. - fixed: shaders with NO_LAYERS defined may not apply brightmap and glowmap. - Vulkan: Limit texture upload transfer buffers to roughly 64 MB - marked several invisible controller things to not show on the automap with the scanner powerup. - treat 'vid_adapter 0' as what Windows considers the primary monitor. - fixed: Brightmap application for horizons was undefined.. - replaces "BS" and "ED" on the on-screen keyboards with the symbols normally found on the keyboard for these actions. - enable cvar blacklisting for defcvars for certain platform variables - demote unknown/invalid defcvars to warnings - split defcvars parser into its own file - fix options search when menus are defined recursively - exported STAYONLIFT flag. - added a modified version of MBF's stay-on-lift feature. - fixed crash on getting location description without a level - block user overrides for the logic module of core fragment shaders. - added missing MBF21 Dehacked keys "blood color" and "dropped item". - implemented MBF's monsters_avoid_hazards feature. - added a map flag to disable MF6_JUMPDOWN. - added a per-level AVOIDMELEE flag. - allow passing a remap table to BestColor. - hud models: add nullptr check for psprites without caller. - removed the unused palette parameter from the V_GetColor family of functions. - Add FOV slider to the display options menu - added a null check to CheckWeaponChange. - replaced the alt HUD's index font with a sheet based variant. - changed FString API to use ptrdiff_t instead of long for signed size arguments. - Fixed IsHUDModelForPlayerAvailable limitation. - Look up HUD models by referencing the psprite's caller, rather than player's ReadyWeapon. - Allow Strife hands psprite to be a model. - fixed: crushing stairs must use HexenCrush mode. - extended 2D buffer lifetime to the end of the frame - use RefCountedPtr to manage 2D shape buffer infos - added RefCountedBase without virtual destructor - made RefCountedPtr follow rule of five - make RenderCommands able to use Shape2D vertex buffers past the Shape2D's lifetime without crashing - fixed line color handling in V_BreakLines. - run the dynamic light recreation loop before calling the light ticker. - fixed: instead of checking gl_lights, better check Level->HasDynamicLights. - do not run the dynamic light ticker when lights are switched off. - ensure that shadowmap indices only get set when shadowmaps are enabled. - fixed file system's zip loader to not strip away a 'filter/' prefix. - do not perform shadowmap updates when dynamic lights are disabled. - moved the CheckForRestart call one level up so that it is within the Windows code and does not need #ifdefs. - delay the restart action from the error pane until after everything has been shut down. - use proper XMove for sheet fonts. - use original menu spacing for skill and episode menus if all elements are patches. - fixed: the software scene drawer must be deleted before calling ST_Endoom. - reorder evaluation for 'if' statements to handle the condition first. Otherwise this won't emit errors if a bad condition is used with an empty conditional part. - fixed exploding barrel animation duration. - fixed two vr_* CVARs not getting archived. - dim depleted inventory items in all games, not just Strife. - fixed: palette index 0 (transparent) was left uninitialized for BMF fonts. - fixed: P_RoughMonsterSearch did not pass the fov parameter to its worker functions. - fixed BlockThingsIterator to not reset its list of processed actors when traversing portals. - fixed patch version in compatibility implementation of macOS detection - destroy stale thinkers after change level failure - fixed crash after change level failure - SDL2: Properly print white bold text to the screen - merged gzdoom-gles2 backend - use proper music check in 'idmus' CCMD. - voc loader fix. - better prefix detection in Zip loader. - SDL Vulkan init. - disabling of shadowmap management when the feature is off. - Extend the changemap command to allow warping to next or nextsecret. - fixed crash after fatal error in SDL backend - fixed premature destruction of status bar - fixed EBlastFlags enum definition - Add 'BF_ONLYVISIBLETHINGS' Flag to A_Blast - Fixed typo in Heretic light definition. - Fix wrong thiswad check for materials too. - fix /0 error caused by having a completely black font character. this error was triggered by Return of the Triad. - MBF21 beta implementation - corrected the NUL checks in S_FindSkinnedSound. - moved Doom specific font init code out of the backend. - Fixed crash calling ChangeSky() with an invalid texture. - added APROP_Soundclass - added fallback to the parenthesis glyphs for the braces. - font system overhaul. - Add some new optional parameters to A_SprayDecal.
vg4.6.1
Fixed bug with BishopPuff moving in wrong direction
fix for "Return to Phobos (return01.wad) has an ancient bug in map E1M2 where the switch to raise the exit bridge doesn't work in versions of Doom past patch 1.2."
fixed potential crash when sound sequence is destroyed. Level can be unset if sound sequence destruction happens after saved game loading failure
added detection of macOS 12 Monterey
added map option to disable shadowmaps. (Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.)
Fixed wrong parameter type passed into TryMove here
fixed: Actors did not set the position when spawning a dynamic light.
fixed parsing of MAPxx par times in BEX lumps
Changelog complet
* Fixed bug with BishopPuff moving in wrong direction * a couple important widepix fixes * fix for "Return to Phobos (return01.wad) has an ancient bug in map E1M2 where the switch to raise the exit bridge doesn't work in versions of Doom past patch 1.2." * add missing break statement in level_compatibility.zs * fix DaggerAlert using FindState incorrectly. * Fixed wrong parameter type passed into TryMove here * fixed: Actors did not set the position when spawning a dynamic light. * Add 'AddDialogues' in MAPINFO to additively add Strife NPC dialogs without overwriting each other. * let dynamic lights call UpdateLocation instead of just setting their position right after being spawned. This ensures that the position is correct and that everything gets set up properly. * fixed parsing of MAPxx par times in BEX lumps * Make sprite shadows ignore float bob * fixed explosive damage radius for clericflame. * fixed permission validation in OptionMenuItemCommand.DoCommand. This was missing the InMenu check like the other critical menu functions. * added detection of macOS 12 Monterey * prevent redundant string copying in Strife conversation parser * Fixed impassable exit line in 007ltsd.wad E4M7 * fixed initialization of model frames * fix missing border flat on heretic shareware * fixed parsing of 2D vectors in OBJ model loader * added `TVector2` constructor from `float*` * fixed bad type in FxFontCast. * fixed potential crash when sound sequence is destroyed. Level can be unset if sound sequence destruction happens after saved game loading failure * report correct macOS version with older SDKs * Add Windows 11 detection * added an OnDestroy method to Shape2D so that its users can explicitly free the data it holds. In this case it is very important to care about management, because this class will hold GPU-side buffers! * prevent appearance of dangling pointers in corpse queue * fixed format specifier compilation warnings * fixed: splashes need the MOVEWITHSECTOR flag. * better sprite shadow control * exclude sprites which are not either opaque or use regular blended translucency from casting shadows. * exclude wall and flat sprites from casting shadows. In both of these cases the shadow math is unable to produce anything useful that doesn't look off. * fixed: shadow alpha for translucent objects was not correct in the hardware renderer. * tweaked shadow code a bit. * let CASTSPRITESHADOW act as an override for render style checks. If this is set we can assume that a shadow is desired regardless of style. * reordered code to do the more costly checks only when needed. * fixed brightmap definitions for the SpiderMastermind. * add player setup to simple options menu * do not precache unreferenced textures * added map option to disable shadowmaps. (Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.) * language update
vg4.6.0
Fixed crash with voodoo dolls in MP after players quit the game.
SoftPoly: Fixed the md3 models, you can now correctly display the frame of the model, in addition, interpolation is added to the model.
fixed crash when drawing status bar on automap
never run the shader timer on the 0th frame. fixes this bug: https://forum.zdoom.org/viewtopic.php?f=2&t=62693
Fix crash with fog and software light modes.
Bug fix in invulnerability in Doom Software Render Mode and True Color SW Render in SoftPoly.
Don't let the game start if the saved game passed to -loadgame is invalid. the - improved multithreaded rendering for the software renderer.
Fix crash with wind effect on special water sectors.
Changelog complet
- Account for portals when spawning missiles in A_FireBullets/A_CustomBulletAttack - fixed return type of Actor.GetCVarString() - update widescreen submodule - strip trailing spaces off the lines for intermission texts. - gave the Raven invulnerability items the BIGPOWERUP flag to ensure proper respawning behavior. - change switch checking back to vanilla order. - use stb-image to handle PNGs with 16 bit color channels. - do not use M_EPI1 and M_EPI2 in any Doom 2 context. - fixed: explicit float to int casts should not emit truncation warnings. - tweaked Hexen's weapon pieces so they do not floatbob into the floor with the hardware renderer. - moved the handling of ending PowerWeaponLevel2 into PlayerPawn.Tick and restored the immediate weapon switch. - never run the shader timer on the 0th frame. fixes this bug: https://forum.zdoom.org/viewtopic.php?f=2&t=62693 - backend update from Raze. - fixed time positioning on stat screen. - pick the proper dot for cutting off the extension in ExtractFileBase. - added proper string labels for Doom 2 episodes. - let the CSV parser for the string table handle hex escapes. - added a few missing statusbar constants- - don't display keys on the HUD in deathmatch. - fixed A_CheckTerrain's check for instant death sectors. This was still checking the sector special even though this had been reactored 5 years ago. - fixed: The PrisonPass's TryPickup method did not properly report successful pickup. - make the title music only play once, unless a real demo is successfully played. - SDL: Report Vulkan initialization errors - give the first 16 DEHEXTRA states proper content. - make `DI_ALPHAMAPPED` change the style to `STYLE_Shaded` in the status bar drawer - missing key scan code constants added. - Screen.ClearScreen and Screen.SetScreenFade script exports. - PushV function for int and string arrays. - change `vid_allowtrueultrawide` - -1 allows for any arbitrary ratio for hud aspects, 0 changed to old behavior (max 16:9), 1 changed to old behavior except at 21:9, 1 is now the default. - `vid_allowtrueultrawide` is now placed in game-specific config, instead of global. - Don't print the weapon tag if the game is paused - Allow settable render styles for status bar drawing functions DrawTexture, DrawImage and DrawString - Made OptionMenuSliderBase::IsGrayed virtual - Default Heretic's, Hexen's and Strife's default screen wipe styles to match their original counterparts. - Add sprite shadows for the hardware renderer - Add sprite shadows for the software renderer - Expose level_info_t to scripting + helper functions. - Allow ACS SpawnDecal zoffset and distance args to be fixed point - Add Polyobj_StopSound special - handle empty command names when getting key binds - Don't warn about UDMF comments or user fields - allow AddPoly for 2D drawer without index buffer, treating the data as a list of triangles. - filter out macOS resource fork data when loading Zips. - added a A_SetFriendly function - remove Vulkan button on startup if Vulkan compilation is disabled - Fix crash with fog and software light modes. - Removed depthClamp requirement (note: portals will not render correctly on such devices) - set libADL and libOPN bank settings (only) to game specific - A software implementation for gamma, brightness, contrast and saturation effects on SoftPoly. Based on original code by @dpjudas, thanks for the code. - Bug fix in invulnerability in Doom Software Render Mode and True Color SW Render in SoftPoly. - Don't let the game start if the saved game passed to -loadgame is invalid. the - improved multithreaded rendering for the software renderer. - Make i_timescale cvar virtual. Changing i_timescale in a netgame would cause its callback to recurse - into itself infinitely. CVAR_VIRTUAL prevents this. - Fixed crash with voodoo dolls in MP after players quit the game. - account for KEEPDEPLETED flag when destroying items with InterHubAmount of 0 upon leaving a level - Fix camera texture aspect ratio in hardware renderer - Add missing tag for Strife's KneelingGuy. - New letter И for Strife - Add GetCharacterName() to retrieve an NPC's name as defined in its dialogue script, if it exists. Otherwise it will just return the same output as GetTag(). - Add tag properties to Strife's enemies. - removed config updates for pre-GZDoom versions of ZDoom. - adapt mod_dumb_mastervolume to the increased default volume in ZMusic. - do not sort level names in the statistics output when saving. Instead do this when creating the data to avoid trashing manual edits. The old sorter resorted all data loaded from the old file as well. - print a message if saving the statistics file fails. - implemented replay gain calculation and management. This is done entirely on the streamed sound data, unlike the old relative volume which uses the backend's volume setting. - Show subtitles for the Entity's greeting lines in Strife. - Fix crash with wind effect on special water sectors. - Add SetSubtitleNumber(int num, str sound) ACS function. Works exactly like its ZScript counterpart. The activator of the script must be a player. - bumped CMake version to 3.1.0 in all projects to reduce warning spam in recent versions. - escape double quotes in Cocoa IWAD picker's extra arguments - Fix random crash when travelling between hub maps in multiplayer. - ported Eternity's Line_QuickPortal - fixed memory leak in UDMF loader. - DrawRotated function for status bar. - Fix portals not working in softpoly (#1323) - Add a null check in PlayerPawn::CheckFOV - added m_swapbuttons CVAR for the Windows RawInput and DirectInput backends. The problem I discovered is that these backends do not respect the GUI-side system setting for swapping the buttons, so this needs to be done in-application so that swapped buttons can behave the same in the menu and the game. - Don't make the switch that reveals the computer core in Strife MAP15 to be repeatable. - fix: MBF's A_Spawn DEH codepointer should use misc2 as spawnheight, not distance - adjust defaults for DEHEXTRA states to match other ports: - Properly abort the program if the SDL window can't be created at all (#1296) - Dynamic number of models per frame instead of a hard limit of four. (#1298) - Made Strife NPC's dialog voice audible for all players. - Fix player not being able to talk to a Strife NPC during netplay, if another player talked to that NPC first. (#1312) - restored sound-related developer messages - SoftPoly: Fixed the md3 models, you can now correctly display the frame of the model, in addition, interpolation is added to the model. - Add missing ZScript constants for the Strife targeter PSprite layers - SoftPoly: Fixed the screen turning white with invulnerability sphere in Doom and in Heretic avoiding color errors in some pixels when activating the "ring of invincibility". (#1307) - Added a new intrinsic for class pointers to check if the class is abstract (#1308) - remove doom2 from the wadsmoosh filter in iwadinfo - Fixed sprites were not affected by dynamic lights on SoftPoly. - fixed missing 'player left the game' message - Softpoiy: Fix black wall sprites - Softpoiy: Fix line portal clipping bug - add `-noautoexec` command line parameter to disable the execution of autoexec.cfg files - add Pi and some other constants to ZScript (#1304) - Fix Additive Shaded renderstyle for UDMF things bugged - backend update from Raze. - another wallsprite crash fix: https://forum.zdoom.org/viewtopic.php?f=56&t=71450 - Add support for zero size buffers as the hwrenderer uses that! - Fix crash when trying to open unreadable IWAD files - Fix crash when following symlinks to nonexistent IWAD files - fixed incorrect extension of overridden function prototype. Prototype of overridden function with optional argument(s) missing could extend unrelated prototype of previously defined function when their arguments and return value(s) match - Fix dancing sprites regression - fixed uninitialized global rolloff in sound engine. Depending on SNDINFO definitions, type of global rolloff could left uninitialized, and linear rolloff might be treated as logarithmic - fixed: FTextureManager::ReplaceTexture did not calculate the upscale flags. - add "hidepartimes" MAPINFO/GameInfo property - Hitscan attacks can now hit SPECTRAL actors if the hitscan puff has SPECTRAL flag set - Add progress bar for SDL backend - Fixed "Messages ON" not being printed. - added initialization of linked sectors. Resizing of linked sectors arrays during serialization could lead to processing of pointers to junk data - Fixed nodes were not rebuilt after loading broken extended nodes. - vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27 - screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false - Fix ScriptCall missing default arguments - Add alternate "Full" mode for PowerIronFeet that prevents leaky damage. - Fix ALWAYSFAST actor flag. - Side By Side Letterbox Display mode (#1255) - add sv_instantreaction dmflag - Fixed: Monster reaction time was always zero with fast monsters and not just on nightmare. - fixed incorrect sound definition for DSMANATK in Dehacked. - Fix the "Max" constant being incorrect for unsigned int types. - add new detection hashes for newer versions of nerve.wad - update $musicalias to allow iwad remapping when used from game_support.pk3 - add music aliases for the unity version of Doom/Doom2 for digitized game soundtrack - Modify Shape2D so that it manages its own vertex buffer rather than using the draw list (#1249) - add support for DEHEXTRA's extended sound range (#1258) - Fix IfItem amount not being checked (#1262) - Fix MAPINFO definitions for "enableskyboxao" - Always allow skyboxes by default - Add option to disable skyboxes through mapinfo - Disable AO for skybox portals (can be forced back with MAPINFO flag). - Add autodetection for GOG's releases of Heretic and Hexen. (#1259) - Fix model normals being distorted by MODELDEF scaling. - added check for M_IsAnimated to TryRunTics. - added the option to look for music by using a truncated 8-character variant of the given name. - fixed: strbin did not check for a terminating 0-character right after an escaping backslash. - allow targeting ARM64 on Windows - fix keyboard repeat events not being sent to menus if TranslateKeyboardEvents is true - Fixed: RandomSpawner spawning another RandomSpawner spawning a missile could result in the second RandomSpawner being erroneously destroyed. - Simplify manual sound rolloff handling - change all optional game support archive loaders to scan the program folder - allow drawing text using fonts with an external translation - fixed: IceGuyFX2 set its owner too late. - implement slider background color change - https://forum.zdoom.org/viewtopic.php?f=15&t=70616 - Fixed: If AbsorbDamage resulted in an item having been destroyed, the following items in the inventory chain were not processed. - Fixed weapon bob jittering. - fix missing SKILLP property in zscript code - do not keep impact decal that fails to stick to a wall - fixed inverted menu setting for 'Disable menu clean scaling' - fixed crash when drawing status bar on automap - fixed issue with parsing useowncoloradd UDMF flags
vg4.5.0
For all of Doom's fullscreen images there's now widescreen versions provided. The other games are still being worked on and will be added later when they become available. All new images were created by Nash - this does not use any of the versions from the Unity port.
major additions to the menu system - animated menu transitions, image slideshows and fixed size menus can now be created.
New keybindings presets. Users can now choose between the classic layout and a WASD-based one
various enhancements and fixes for ZScript.
Added $PitchSet for SNDINFO.
allow indirections in the string table by prefixing the language string with '$$' the remaining text is interpreted as another string label to resolve.
OPUS support, courtesy of an updated libsndfile.
libADL/libOPN update
Changelog complet
* For all of Doom's fullscreen images there's now widescreen versions provided. The other games are still being worked on and will be added later when they become available. All new images were created by Nash - this does not use any of the versions from the Unity port. * A simplified options menu is now available for quick setup of the important settings. * New keybindings presets. Users can now choose between the classic layout and a WASD-based one * Menu and intermission screen now scale to the original Doom.exe's layout by default. * major additions to the menu system - animated menu transitions, image slideshows and fixed size menus can now be created. * the console now uses the border flat as default background instead of the titlepic. * it is now possible to fully quit the fullscreen console and get back to the title loop. * various enhancements and fixes for ZScript. * Interpolate positions and angles in the automap for smoother appearance * Added $PitchSet for SNDINFO. * allow indirections in the string table by prefixing the language string with '$$' the remaining text is interpreted as another string label to resolve. * optimization of the patch texture checker - do not read in the entire file if checking the initial header is sufficient for rejecting it. This can speed up loading of large mods quite significantly. * MIDS-format MIDI support * OPUS support, courtesy of an updated libsndfile. * libADL/libOPN update
vg4.4.2
fix crash in nullptr access to DFrameBuffer object 'screen' if it is uninitialized
fixed: Inventory items that are terminated by GoAwayAndDie must be removed from the blockmap and sector lists.
fixed some issues with setup parts for ZScript in the wrong place.
fixed: AActor::GetModifiedDamage must account for the inventory items to get destroyed in its scripted subfunctions.
fixed: FGameTexture's GlowHeight was not initialized.
fixed: the attenuation flag wasn't passed to the shader if shadowmaps were disabled.
fixed bad range check in shadowmap code.
Fixed: check for bad sidedefs was not taking into account sidedef compression.
Changelog complet
- fixed: Inventory items that are terminated by GoAwayAndDie must be removed from the blockmap and sector lists. - added missing target check to A_RadiusDamageSelf. - use a full ClearScreen when drawing fullscreen images. - fix crash in nullptr access to DFrameBuffer object 'screen' if it is uninitialized - add "restart" button to error pane in Windows - add keyboard accelerator shortcuts to many Windows-specific dialogs - fixed some issues with setup parts for ZScript in the wrong place. - let blastradius work without an effect actor. - fixed: AActor::GetModifiedDamage must account for the inventory items to get destroyed in its scripted subfunctions. - fixed: FGameTexture's GlowHeight was not initialized. - fixed: the attenuation flag wasn't passed to the shader if shadowmaps were disabled. - fixed bad range check in shadowmap code. - Fixed: check for bad sidedefs was not taking into account sidedef compression. - backend update from Raze. - fixed: The scale vector for detail maps was not passed to the shader. - fixed: The flags for texture colorization were not passed to the backend. - fixed: The scissor rectangle must be clipped to the upper left edge of the screen. - fix missing terminator in vk_shader.cpp on #ifdef guarded line. - made the new Build light mode operational
vg4.4.1
fixed crash with texture upscaling in the truecolor software renderer.
Fixed crash rendering 3D floors without ceiling or floor textures in software.
fixed: The mutipatch texture builder did not set the source lump.
fixed code that deternines when to upscale a texture.
fixed fallback lookup for multipatch textures referencing themselves as patch.
fixed the burn shader.
fixed calculation of allocated memory for garbage collection
fixed bad bit operations when calculating the base palette remap.
Changelog complet
added a CCMD that lists all CVARS which don't have a description. mapped "Smooth mouse" back to m_filter CVAR and removed smooth_mouse. Fix compilation on DragonFly BSD fixed code that deternines when to upscale a texture. fixed fallback lookup for multipatch textures referencing themselves as patch. fixed the burn shader. do not allow playing sounds during PlayerFinishLevel. added 3 more texture samplers to the shaders to compensate for the now always occupied slots for brightmap, glow and detail. fixed calculation of allocated memory for garbage collection since we already got lots of CVAR descriptions from the menu's content, let's use that as CVAR description if none is explicitly provided. fixed bad bit operations when calculating the base palette remap. fixed: The mutipatch texture builder did not set the source lump. fixed: When reopening a lump, the full file name must be used. fixed crash with texture upscaling in the truecolor software renderer. Fixed crash rendering 3D floors without ceiling or floor textures in software. Fixed wrong MINDEMOVERSION which was committed in https://github.com/coelckers/gzdoom/pull/360/commits/95f447927aee2350c1dd6bb8a317a69012890a33 Fix Bag of Holding not increasing Firemace ammo capacity fixed compilation of non-x86 targets
vg4.4.0
fixed crash with texture upscaling in the software renderer.
Fixed crash on maps with out of range sidedef and sector numbers, adapted from PRBoom.
fixed texture sampler generation in the Vulkan backend.
fixed setup for translated textures in Vulkan.
fixed shader building.
fixed incomplete disabling of number field menu option
fixed: The full dotted lump filter string was never used.
fixed (un)morphing of more than one actor from ACS
Changelog complet
Hotfix: LineTrace now reports the correct number of portal crossings. fixed incomplete disabling of number field menu option tighten rules for action functions called from Decorate fixed: The full dotted lump filter string was never used. fixed (un)morphing of more than one actor from ACS fixed setup of JIT functions that require extra frame space make various getter and pure-math methods clearscope, and where applicable, const fixed offsets for hires replacements of already scaled textures. Fix compilation on NetBSD manually merged PR for kill count in Requiem MAP23. there is no mace ammo in the bag of holding. fixed texture sampler generation in the Vulkan backend. added per pixel lighting for decals. fixed incorrect offsets for textures in the hires/ folder. advanced coordinate control for overlays over DTA_Fullscreen images. fixed: the last frame of the intermission screen wasn't rendered. added support for replacing the intermission backgrounds in Doom 1 with widescreen images. fixed font selection on intermission screen. fixed crash with texture upscaling in the software renderer. Add option to disable SDL joystick support. added a compatibility option for a bad teleporter in the final Strife map. redid mouse control for the conversation menu. fixed some double to float conversion warnings. enabled CVAR descriptions. Strife dynamic light tweaks by ReaperAA. fixed: vertically mirrored textures should not be subjected to empty space optimizations because the algorithm cannot deal with the inverted case. fixed: the 3D floor processing code in the renderer did not restore the render style after finishing. made some changes so that material definitions can properly check automatic layers when determining their material type. Fixed OpenAL regression with looping sounds with playing length 0. Allow dialogs to be displayed on other Unix-like OSs fixed floorclipping checks for 3D floors. Strip out any color escape sequences before setting a window title. reject all 0-special lines for activation. use modulo, not bitwise and-ing to check the damage delay for terrain based damage. fixed: Copying a texture's size must also copy the offset. fixed scale setup for multipatch textures. fixed missing custom shader setup in cases where a shader got used more than once. make sure that incomplete multipatch textures are technically complete. Add a cvar to control weapon bobbing while firing Fixed crash on maps with out of range sidedef and sector numbers, adapted from PRBoom. removed redundant TextureFilterChanged method from DFrameBuffer. texture sampler cleanup. don't let CHANF_AUTO hijack other channels. more descriptive message for server CVAR change attempt in netgame removed entry for non-functional linear tonemap. fixed fullscreen toggle via shortcut fixed space calculations for oversized episode and skill menus. fixed: The size parameters for automap sprites are floats, so they need the matching tag. fixed setup for translated textures in Vulkan. Single image fonts do not use translations. fixed: texture upscaling was disabled by default. fixed shader building. fixed: V_GetFont must load the translations once the game has been set up. fixed: TRF_ALLACTORS did not consider actors without any flag being set. added missing range check to section code. fixed use of Powerup.Strength in PowerInvisibility. fixed bad Heretic light definitions. fixed missing sound for Polyobj_MoveTo. Add mapinfo option to disable merging of identical pickup messages on same tic attenuated lights for Strife. fix "'Dictionary' is freed outside the GC process" warning fixed map things erroneously treated as polyobject anchors/spots restored warning about missing aiming camera target Fixed an issue where multiple invulnerability powerups could cancel each other out from just one expiring. export common formulae to functions instead of copy-pasting them screen bevel now enlarges also when screenblocks
vg4.3.3
fixed resetting of music volume after closing dialogue
fixed calling a function on string CVar
Softpoly: Fix broken fixed camera light for walls
added ability to filter VM disassembly dump
Changelog complet
- fixed resetting of music volume after closing dialogue - exposed Level.MusicVolume to ZScript - fixed calling a function on string CVar - added ability to filter VM disassembly dump - add check for unity version of Nerve.wad - infrastructure in place in case Nerve.wad changes again, this can be extended - customized invulnerability colormap does not interfere with Powerup.ColorMap - precache a few sounds being referenced in common game code. - define misc/secret for Hexen, too. By now there are some mods defining secrets for the game so this sound should be present there. - Implement special colormap support for softpoly - Softpoly: Fix broken fixed camera light for walls - make nosave standalone CVar flag, alongside server and user - implemented screenshots in softpoly backend
vg4.3.2
fixed Linux and macOS implementations of I_FindAttr()
fixed uninitialized variable in OPL song. Mono streams could be erroneously treated as stereo, doubling their playback speed
added workaround for GLSL noise functions on macOS
fixed A_PlaySound() called from Dehacked
fixed: The directory scanner for reading a directory into the WAD file system and ScanDirectory were not Unicode capable on Windows.
fixed invalid context warnings with Cocoa backend
fixed resolving of music aliases with full filenames
fixed erroneous override of default language strings
Changelog complet
- fixed Linux and macOS implementations of I_FindAttr() - implement player setup background by Enjay - fixed uninitialized variable in OPL song. Mono streams could be erroneously treated as stereo, doubling their playback speed - compatibility workaround for using Scroll_Texture_Model with a line id of 0. - store CVARs non-destructively in savegames. - added missing render style constants to ZScript. - fixed A_PlaySound() called from Dehacked - fixed: The directory scanner for reading a directory into the WAD file system and ScanDirectory were not Unicode capable on Windows. - added ML_NOSKYWALLS and ML_DRAWFULLHEIGHT - restored old values for CHAN_... constants - add support for new Bethesda.Net Unity Edition wads - added workaround for GLSL noise functions on macOS - added ability to use static SDL2 library - fixed invalid context warnings with Cocoa backend - removed obsolete softpoly render modes from menu - fixed resolving of music aliases with full filenames - fixed erroneous override of default language strings
vg4.3.0
improved normalNx scaling performance by ~10%
added null check to the dialogue lines array so that it doesn't crash if the text is never word wrapped.
improved handling of return value mismatches
Fixed a regression in DoTakeInventory. (the C++ code just ignored the null pointer, but ZScript can't do that)
Fixed: Invulnerability checking for rails was done before the various THRU actor flags instead of after, meaning actors could block shots regardless of those flags. This was never intended.
fixed Harmony's end text's name.
fixed VOC loader. Its 16 bit code did not work because it set the variable to -16 instead of 16.
Fixed the JIT's OP_VTBL check not checking if it's already at the start of the code.
Changelog complet
### PLEASE DO NOT DOWNLOAD. THIS RELEASE HAS A SERIOUS ISSUE!!! *vid_scalemode 1 now only goes down to 640x400 at minimum, instead of 320x200 *added Esperanto menu option. *Support for MIDI on Linux via alsa sequencer *rewrote the ZMusic interface so that it is free of C++ constructs. *the timidity safe_malloc functions may not throw exceptions. *added pixel ratio detection to supersampling detection for forcing linear scalingthis should likely make it so if there's ever an instance where a viewport pixel is smaller than a screen pixel, the screen should go to linear scaling now *set sane limits for vid_scale_custompixelaspect *added the Dehacked extensions from Crispy/Doom Retro. *made linear scaling more user controlled *do config migration for vid_scale_custompixelaspect *allow custom pixel ratio scaling *SW renderer: Fix wrong blend tables used when dynamic lights hits translucent lines *implement 'defcvars' *Fixed a regression in DoTakeInventory. (the C++ code just ignored the null pointer, but ZScript can't do that) *Add PSPF_PLAYERTRANSLATED flag (makes a PSprite layer translated to the user's color) *Fixed: Invulnerability checking for rails was done before the various THRU actor flags instead of after, meaning actors could block shots regardless of those flags. This was never intended. *Added STOPRAILS actor flag. *export TMap to ZScript *let a sight check that gets lost return failure. *fixed Harmony's end text's name. *update window title with current level name *removed symbols to fix zdoom.rc being modified after checkout *reinstate 320x200 with the following caveat: it only functions outside of menus and console, and only when the dialogues and logs use the default font, the game will temporarily switch to 640x400 in these situations *change IWAD startup dialog to allow selecting between OpenGL, Vulkan, and SoftPoly backends. (windows only) *precache switch textures from ANIMATED lump *upsample texture if width * height is less or equal to gl_texture_hqresize_maxinputsize squared *added a few more texture coloring options to the shader. *added minimal time profiling of texture precaching *improved normalNx scaling performance by ~10% *implement vid_scalemode = 6sets absolute minimum scaling to fill entire screenuseful for speeding up software rendering *allow more than 8 sound channels per sound source. This requires a new function interface because the old one's combination of channel and flags in one variable cannot be changed anymore. *renamed IsActorPlayingSomething to IsActorPlayingSound and made it clearscope. *fixed VOC loader. Its 16 bit code did not work because it set the variable to -16 instead of 16. *do not expect user input if stdin is redirected *removed redundant call to S_StopAllChannels() *More compat fixes for Swan Fox maps (#982) *add line_horizon on HOM line in Sapphire.wad *removed dead menu options *Fixed the JIT's OP_VTBL check not checking if it's already at the start of the code. *fixed typos in Doom lights definitions *fixed wrong display of Hexen AC for SBARINFO *added null check to the dialogue lines array so that it doesn't crash if the text is never word wrapped. *fixed: AActor::Revive did not restore flags8. *fixed monster teleportation on Ancient Aliens MAP23 *added ability to set custom alternative HUD *add cvar 'cl_disableinvertedcolormap'changes the invulnerability… (#972) *exported several Wads.GetLump...() methods to ZScript *Compatibility fixes for Clavicula Nox *cl_blockcheats added to 'nocheat' check *changed secret message handling so that the debug output of the sector number is only printed to the console but not the centered message. *new zscript function 'SetLineVertexes(line, v1, v2)' *added generic level post-processing script class *improved handling of return value mismatches *set meaningful defaults on initialization of BaseStatusBar *add Vulkan to the startup box in Windows *fixed missing fullbright for Berserk *fixed source lump assignment for multipatch textures *mixins. *fixed bad variable name for lump filter *fixed: IfGame else branch was ignored in MENUDEF *fixed: lump filters without any dot in the name did not work. *implement ccmd 'togglehud' for taking screenshots
vg4.3.1
fixes a couple of critical issues in 4.3.0 - moves colorization feature to correct file (gldefs) and disables default blocks in mixins since they currently do not work.
Changelog complet
- fixes a couple of critical issues in 4.3.0 - moves colorization feature to correct file (gldefs) and disables default blocks in mixins since they currently do not work.
vg4.2.4
This is a bugfix release addressing the following issues:
Fixed a bug in the flagdef processing code.
added Visual Studio debugger visualization for several types
Fixed stretching for 256 and 240 pixels tall skies in software.
fixed broken walkthrough of Restoring Deimos MAP07
fixed localization support for intermission texts
fixed radius attack that may inflict damage twice
Fixed ZScript's Screen.DrawLine using the wrong color when drawing pure black.
Changelog complet
This is a bugfix release addressing the following issues: - Fixed stretching for 256 and 240 pixels tall skies in software. - fixed broken walkthrough of Restoring Deimos MAP07 - Fixed a bug in the flagdef processing code. - adjusted collision detection for item pickups. Use vanilla condition for a thing with MF_SPECIAL flag to fix inability to grab it when item's top is at the same height as sector's floor from it can be picked up - fixed localization support for intermission texts - fixed radius attack that may inflict damage twice - sort CVAR output in config alphabetically instead of randomly dumping them in their internal order. - Fixed ZScript's Screen.DrawLine using the wrong color when drawing pure black. - fixed missing frames for Hexen's fighter's axe attack without mana - fixed usage of uninitialized object in BlockLinesIterator - removed hardcoded width limit for screenshots - Fixed dynamic arrays as function arguments. - added Visual Studio debugger visualization for several types - do not accept read-only variable as out argument - fixed variable's stack offset for implicit dynarray clearing - Fixed Vector2/3 out parameters in the ZScript compiler. - added explicit clearing of global VM stack. When exception is thrown from JITed code, VM stask isn't cleared during unwinding. - fixed typo with D'Sparil's serpent attack in lights.pk3. https://forum.zdoom.org/viewtopic.php?f=2&t=66177 - fixed bad application of translucency in the software renderer - Scythe MAP22 Compatibility fix
vg4.2.3
Fixed ancient ZDoom savegame slot selection bug. When creating new autosaves LastAccessed and LastSaved were not updated accordingly.
Fixed crash with mock2.wad in software.
Fix crash on vulkan with a large number of texture shaders.
fixed a crash in the software renderer that caused wallsprites to crash
Fixed sky stretching for the new freelook limit.
fixed SPC music looping after update to GME 0.6.2
fixed crash with dynamic light manipulation through netevents.
fixed wrong offset on Fighter's Fist
Changelog complet
- fixed wrong offset on Fighter's Fist - Added Armor to Hexen fullscreen display - Export F3DFloor structure and related data. - fix of checking for valid texture access, rather than checking whether it is null, when drawing fog boundaries in the software renderer - Fixed crash with mock2.wad in software. - Fix for LineTrace not setting its starting sector based on its offset. - fixed: sector lights could access the sector before it was set. - Fixed ancient ZDoom savegame slot selection bug. When creating new autosaves LastAccessed and LastSaved were not updated accordingly. - Fix crash on vulkan with a large number of texture shaders. - adapted the PSX XA decoder from EDuke32 as a music format in GZDoom. - internal restructuring of music system. - fixed inventory scroll arrows in alternative HUD - add m_quickexit option for quick exit in game menu - fixed a crash in the software renderer that caused wallsprites to crash - cleanup of game exit code to be more reliable, as this could cause spurious crashes. - Fixed capped tall skies not working (Heretic and Hexen). - Fixed sky stretching for the new freelook limit. - made GL nodes loader more resilient to broken data - Fixed CheckBossDeath not checking for actor replacements. - fallback to console font in case of missing small font - fixed: pickup flash didn't fade out if player was killed by pickup - fixed: The dynamic lights must be initialized before the first frame is ticked. - fixed SPC music looping after update to GME 0.6.2 - fixed broken walkthrough of Restoring Deimos MAP03 - fixed broken walkthrough of Skulldash MAP04 - implicitly clear local dynamic arrays - fixed crash with dynamic light manipulation through netevents. - when adding some minmum lateral movement to trigger collision detection, do not just set Vel.X but actually use a vector pointing in the proper facing direction of the actor. - fixed GetLineX/GetLineY ACS implementation
vg4.2.2
Important note: This release has been shelved due to a serious last second bug. Please get 4.2.3 instead
Changelog complet
Important note: This release has been shelved due to a serious last second bug. Please get 4.2.3 instead
vg4.2.1
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=65852)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=65852)
vg4.2.0
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=65600)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=65600)
vg4.1.3
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64964)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64964)
vg4.1.2
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64701)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64701)
vg4.1.1
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64582)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64582)
vg4.1.0
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64485)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64485)
vg4.0.0
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64188)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=64188)
vg3.7.2
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=63346)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=63346)
vg3.7.1
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=63098)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=63098)
vg3.7.0
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=63032)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=63032)
vg3.6.0
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=62231)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=62231)
vg3.5.1
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=61800)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=61800)
vg3.5.0
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=61482)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=61482)
vg3.4.1
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=60928)
Changelog complet
[Release Notes](https://forum.zdoom.org/viewtopic.php?t=60928)
vg3.4.0
[Highlights and complete changelog](https://forum.zdoom.org/viewtopic.php?t=60833)
Changelog complet
[Highlights and complete changelog](https://forum.zdoom.org/viewtopic.php?t=60833)
vg3.3.2
Fixed potential crash on usage of Mystic Ambit Incant
Fixed crash when `vid_setmode` CCMD is used from command line
Fixed detection of `.ipk7` custom IWADs
Added loading of ZSDF lumps by full paths
Updated zlib to 1.2.11
Fix mid texture rendering for self-referencing sector lines
Added zero initialization of implicit dynamic array items
Added message for absent explicitly referenced dialog file
Changelog complet
### Major Highlights * Fixed detection of `.ipk7` custom IWADs * Restored vanilla behavior of lightning for original Hexen * Added loading of ZSDF lumps by full paths * Disabled the survey code * Exported `P_ActivateLine()` to ZScript along with constants for activation type * Increased size of the savegame comment area. ### Full List * Forbade dynamic array as the return type of a function * Fixed detection of `.ipk7` custom IWADs * Reintroduced discarding of custom IWAD duplicates * Updated zlib to 1.2.11 * Fixed potential crash on usage of Mystic Ambit Incant * Fixed crash when `vid_setmode` CCMD is used from command line * Restored vanilla behavior of lightning for original Hexen * Fix mid texture rendering for self-referencing sector lines * Added zero initialization of implicit dynamic array items * Added loading of ZSDF lumps by full paths * Added message for absent explicitly referenced dialog file * disabled the survey code * Exports `P_ActivateLine()` to ZScript along with constants for activation type * Separated `P_ActivateLine()` ZScript export into two functions, one with and one without a vector parameter * Increased size of the savegame comment area
vg3.3.1
Fixed crash when event handler class isn't derived from StaticEventHandler
Fixed crash on accessing player sprite's state in software renderer
Many bug fixes since 3.3.0
Fixed `FBuildTexture::CopyTrueColorPixels()` returned incorrect transparency information
Fixed typo in libOPN error messages
Fixed applying of unsafe context in waiting command
Fixed sidedef's sector and linedef references were writable.
Fixed black pixels when subtractive lights are in range for PBR materials
Changelog complet
### Major Highlights * Better handling of defaults with some ZScript/DECORATE functions * Many bug fixes since 3.3.0 ### Full List * Fixed typo in libOPN error messages * ADL&OPN: More setup: Chips count and Volume model * Fixed applying of unsafe context in waiting command * Fxed sprite having a picnum was not animating its image in the hardware renderer * Fixed sidedef's sector and linedef references were writable. * Fixed black pixels when subtractive lights are in range for PBR materials * Fixed `FBuildTexture::CopyTrueColorPixels()` returned incorrect transparency information * Reverted inconsistent fix for 3D floor that extend into the real sector's floor were not clipped properly * Changed the default settings for `fluid_patchset`, `timidity_config` and `midi_config` to point to the default sound font * Fixed typo in linetrace flags checking. * ADL&OPL: Added a fallback for a blank instruments in GS/XG banks * Merged list of video modes for Cocoa and SDL backends * ADLMIDI: Update latest update of DMXOPL3 bank * Fixed crash when event handler class isn't derived from StaticEventHandler * Set more suitable limit for sound velocity validation * Fixed the blank banks list of ADLMIDI * Fixed infinite loop with `None` class in random spawner * Fixed infinite loop with zero height fast projectile * Fixed uninitialized members in `DPSprite` class * Fixed crash on accessing player sprite's state in software renderer * Set default for `newradius` in `A_SetSize()` * Fixed handling of default value in `Actor.Vec3Angle()` * Added ability to load any IWAD without extension * Removed check for duplicate IWADs * Localize the word “for” in Strife’s trading dialogs * Fixed handling of default values in `String.Mid()` * Made all elements of `DehInfo` and `State` read-only * Fixed excessive growth of ACS string pool
vg3.3.0
Fixed midtex nowrap clipping bug when 3d floors are in view (Software Renderer)
Improved French translations
Fixed 'precise' rendering in OpenGL
Added new Materials Shader system to allow textures to show new properties such as glossiness and specularity, affected by dynamic lights, or with PBR, reflecting their direct surroundings
Added new rocket smoke sprites by Talon1024
Improved profilethinkers in various ways
Fixed skip_super application for ZScript
Fixed missing pointer assignment on Lighting effect creation
Changelog complet
### ZScript & Mapping Highlights * Added dynamic spot lights, configurable in the UDMF map format * Exported `GetChecksum()` function as part of `FLevelLocals` in ZScript * Mod-defined aliases no longer permanently change CVARs * Added `FriendlySeeBlocks` actor property that allows a modder to expand the maximum radius that a friendly monster can see enemies. It's accessible from both ZScript/DECORATE and UDMF * Custom submenus are no longer removed from altered protected menu * Exported `S_GetMSLength()` function to ZScript * Added `GetRadiusDamage()` function. It returns the raw calculated explosion damage falloff by distance only * Added `Screen.getViewWindow()` function * Exported `Trace()` interface to ZScript * Added `TeleportSpecial()` as an alias for `Teleport()` in ZScript to deconflict from `Actor.Teleport()` function * Added `Distance2DSquared()` and `Distance3DSquared()` functions * Fixed skip_super application for ZScript * Split off the interface part of DHUDMessage * Exported sector effect pointers * Fixed missing pointer assignment on Lighting effect creation * Made left button down event available to UI event handler * Exported `Inventory.AltHUDIcon` field to ZScript * Added `WorldLinePreActivated` to override line activation * Added `DI_MIRROR` flag to statusbar image drawing, useful for rearview mirrors * Enabled string and float user_ properties in UDMF things ### Other Highlights * Added in-game reverb editor using the menu system * Improved French translations * Fixed 'precise' rendering in OpenGL * Added new Materials Shader system to allow textures to show new properties such as glossiness and specularity, affected by dynamic lights, or with PBR, reflecting their direct surroundings * Added new rocket smoke sprites by Talon1024 * Embedded Timidity++ into GZDoom directly * Added light definition for megasphere * Fixed midtex nowrap clipping bug when 3d floors are in view (Software Renderer) * Improved profilethinkers in various ways * Added variables `am_unexploredsecretcolor` and `am_ovunexploredsecretcolor` to mark undiscovered secrets differently in the automap * Added support for ADLMIDI and OPNMIDI libraries [Complete list of changes](https://forum.zdoom.org/viewtopic.php?t=59945)
vg3.2.5
Improved Advanced Sound Options menu - added option for FluidSynth chorus, removed fractional part from FluidSynth voices option
Fixed potential crash calling undefined function in ZScript
Fixed crash after restart CCMD
Fixed culling bug in SoftPoly
Fixed applying of Doom 64 lighting to horizon portals
Fixed inconsistent color remapping via translation ranges
Fixed VM abort when drawing from ZScript happens during 0 game tic
Fixed `take ammo` cheat
Changelog complet
This is yet another point release for GZDoom, which addresses a serious flaw that has appeared since its ACS implementation. Everyone is urged to upgrade ASAP, and no support will be provided for any version prior to this once the binaries for all platforms are available. ### Notable features since 3.2.4 * Externalize `DCanvas::DrawLine()` to ZScript * Implemented `i_soundinbackground` to continue playing sounds and music while in background * OpenGL rendering now continues even when losing focus if not running fullscreen * Added `playerrespawn` skill flag to allow gameplay mods to retroactively enable player respawns in single player on all maps * Improved Advanced Sound Options menu - added option for FluidSynth chorus, removed fractional part from FluidSynth voices option * Fixed applying of Doom 64 lighting to horizon portals * Particles are now interpolated ### More-complete changelog since 3.2.4: * Externalize `DCanvas::DrawLine()` to ZScript * Fixed inconsistent color remapping via translation ranges * Added bounds checks for colour translation indices * Fixed VM abort when drawing from ZScript happens during 0 game tic * Whitelist `reset2saved`, `undocolorpic`, `openmenu` in `MENUDEF` * Fixed potential crash calling undefined function in ZScript * Fixed crash after restart CCMD * Added compatibility settings for Hanging Gardens * Compatibility settings can now be applied for all map types (including UDMF) * Fixed `take ammo` cheat * Implemented 'i_soundinbackground' to continue playing sounds and music while in background * OpenGL rendering now continues even when losing focus if not running fullscreen * Prevent level from exiting if no deathmatch starts are available in multiplayer * Fixed tics to seconds conversion, now in ZScript - stat screens now display correct values * Disabled modifier keys processing in UI by Cocoa backend - modifier keys no longer trigger bound actions in menu/console/chat * Added `GetPixelStretch()` to `LocalLevels` struct * Fixed binding og default framebuffer before testing whether hardware stereo 3D is supported. This allows NVidia 3D vision glasses to function correctly when gl_light_shadowmap is on * Added "requires restart" to "enable quad stereo" option menu label, to help folks set up 3D * Added ability to perform reverse fades with A_SetBlend * Added 'playerrespawn' skill flag to allow gameplay mods to retroactively enable player respawns in single player on all maps * Improved Advanced Sound Options menu - added option for FluidSynth chorus, removed fractional part from FluidSynth voices option * Fixed applying of Doom 64 lighting to horizon portals * Particles are now interpolated * Fixed culling bug in SoftPoly * Applied texture offsets and scales on animated doors * Fixed rendering of wrapped midtex with sky ceiling * The player set up menu 'Press Space' message can now be localized * Better angle selection for rotated automap sprites * Added optional angles to player's coordinates display * Fixed boss special commands in UMAPINFO * Fixed ammo limit for give cheat * Applied vertical offset to transferred sky in OpenGL renderer * Fixed initialization of `BlockThingsIterator` objects * Added `CheckMove()` function to ZScript `Actor` class * Added vector diff functions to ZScript `LevelLocals` class * Added font characters for French and Portugese languages * Add `gl_riskymodernpath` for computers that worked before the GL>=3.3 modern path enforcement * Fixed ACS stack checking
vg3.2.4
Fixed crash when loading saved game with missing ACS module
Fixed bright sprites in sectors with Doom 64 lighting
Fixed rotating sky & model smoothness
Fixed sky scrolling is now stored in a higher precision data structure; is now smoother than in 3.2.3
Fixed model rotating is now calculated in a higher precision data structure; is now smoother than in 3.2.3
Fixed directory creation for POSIX targets
Fixed backslashes in MD3 skin names
Fixed overbright screenshots with hardware gamma off
Changelog complet
This is yet another point release for GZDoom, which addresses a serious flaw that has appeared since version 3.0.0. Everyone is urged to upgrade ASAP, and no support will be provided for any version prior to this once the binaries for all platforms are available. ### Notable features since 3.2.3 ### * Added `DMG_NO_PAIN` for `DamageMobj()` * Fixed bright sprites in sectors with Doom 64 lighting * Added free space margin aka safe frame for automap * Fixed rotating sky & model smoothness * Implemented `win_borderless` CVAR for fake fullscreen in Windows ### More-complete changelog since 3.2.3 ### * Unified implementation of ’directory as resource file' for POSIX targets * Fixed sky scrolling is now stored in a higher precision data structure; is now smoother than in 3.2.3 * Fixed model rotating is now calculated in a higher precision data structure; is now smoother than in 3.2.3 * Fixed directory creation for POSIX targets * Fixed backslashes in MD3 skin names * Fixed overbright screenshots with hardware gamma off * Increased maximum particle lifespan * Fixed `screen->FrameTime` should use an adjusted frame start time * Implemented `win_borderless` CVAR for fake fullscreen in Windows * Fixed loading of external DeHackEd patches * Fixed inconsistent angle of spawned leaves * Fixed English localization issues * Added empty space margin aka safe frame for automap * Repaired the video scaling code in OpenGL for `vid_scalemode` 0 and `vid_scalefactor` not equal to 1.0 * Fixed crash when loading saved game with missing ACS module * Added null check for probe in `SectorAction.OnDestroy()` * Fixed error check when saving GL nodes * Fixed `AActor::UnlinkFromWorld()` must also destroy all portal link nodes for the calling actor * Do not allow outside access to the variable storing the CCMD for `OptionMenuItemCommand` * Added whitelist for `DoCommand` ZScript command * Stop demo recording after ending game with menu_endgame CCMD * Fixed bright sprites in sectors with Doom 64 lighting * Added `DMG_NO_PAIN` for `DamageMobj()`
vg3.2.3
Improved OpenGL profile selection on Linux
More bugfixes, including some for non-Windows platforms
Improved handling of temporary files on TiMidity++
Added new grenade and ice shard sprites and removed non-GPL copyrighted assets
Improve speed for ARMv7 processors by setting tuning options to the Cortex-a7 CPU (for Raspberry Pi 2)
Notable features since 3.2.1
New timer code, GZDoom now appears a lot smoother in interpolated frames
Several ZScript extensions and fixes
Changelog complet
### Notable features since 3.2.1 ### * New timer code, GZDoom now appears a lot smoother in interpolated frames * More bugfixes, including some for non-Windows platforms * Improve speed for ARMv7 processors by setting tuning options to the Cortex-a7 CPU (for Raspberry Pi 2) * Several ZScript extensions and fixes * Improved OpenGL profile selection on Linux * Rather than giving version info, GZDoom now displays the name of the game you are currently playing in the window title. This can be disabled via i_friendlywindowtitle * Implemented unicode handling in some functions * Improved handling of temporary files on TiMidity++ * Added latch keyword to CVARINFO * Added new grenade and ice shard sprites and removed non-GPL copyrighted assets [Complete changelog](https://forum.zdoom.org/viewtopic.php?f=1&t=58620)
vg3.2.2

Aucun détail pour cette version.

vg3.2.1
Fixed crash on attempt to register IDs for undefined class
Fixed applying of height argument in `A_Fire()` function
Added `vid_cropaspect`. This CVAR turns `vid_aspect` into a letterboxing function that will crop the unused sides of the screen away, instead of stretching it. Requires one of the non-legacy OpenGL framebuffers to work
Fixed: don't interpolate view movements if a key press didn't result in any changes
Fixed: inverted color order for post-process textures to BGRA to correctly match the internal texture standard in GZDoom
Fixed applying of compatibility settings for IWADs
Fixed a few cases when IWAD was checked by hardcoded index
Fixed arch-vile bleeding when damaging target
Changelog complet
Changes from 3.2.0: * Fixed applying of height argument in `A_Fire()` function * Removed all code needed to support macOS earlier than 10.7 Lion * Fixed crash on attempt to register IDs for undefined class * Added `vid_cropaspect`. This CVAR turns `vid_aspect` into a letterboxing function that will crop the unused sides of the screen away, instead of stretching it. Requires one of the non-legacy OpenGL framebuffers to work * Removed `vid_tft` and `vid_nowidescreen` and associated menu option. Their functionality was superseded and extended by `vid_aspect` set to 3 (which has the same effect as setting both to true anyhow), and it was mostly just redundant * Fixed: don't interpolate view movements if a key press didn't result in any changes * Add default `gzdoom.pk3` directory to File.Search paths on *nix systems * Fixed: inverted color order for post-process textures to BGRA to correctly match the internal texture standard in GZDoom * Added ability to change slider color using mapinfo's gameinfo * Added `startuptype` to `IWADINFO`, allowing to change the game startup screen with custom iwads * Fixed applying of compatibility settings for IWADs * Fixed a few cases when IWAD was checked by hardcoded index * Fixed arch-vile bleeding when damaging target
vg3.3pre

Aucun détail pour cette version.

vg3.2.0
Fixed crash when drawing untranslated font
`MENUDEF` replacements are now merged, allowing **GZDoom** to easily present new menu features in older mods that include one
Tons of fixes and improvements
Added new "sv_damagefactor*" variables
(OpenGL only) Added 'enabled' property for post-process shaders, to automatically enable them without the assistance of ZScript
Enable Core Profile on macOS only when OpenGL 3.3 is available
Fixed applying of color to untranslated fonts in hardware renderer
(OpenGL hardware/software framebuffer only) Revamped `vid_max_*` variables. Originally debug variables, they've been redesigned to allow screen resizing based on aesthetics
Changelog complet
### Major release highlights ### * `zd_extra.pk3` splits off copyright infringing assets, allowing game makers to delete this file and distribute a fully GPL-conforming copy of **GZDoom** without further changes * Custom IWAD support * Video render scaling (play in 320x200, or any custom resolution) * Custom screen shader support * `MENUDEF` replacements are now merged, allowing **GZDoom** to easily present new menu features in older mods that include one * Tons of fixes and improvements ### Changes from 3.1.0 ### * Merged with **QZDoom 2.0.0** * "Software" light mode (in OpenGL) now supports radial fog setting * Unsloped Flats can now use non-power-2 textures in software mode * Menus now merge in with a mod's custom `MENUDEF` when it provides menu replacements. This is due to older mods' menus becoming very quickly outdated * Rise of the Wool Ball is now supported as an IWAD * Custom IWAD support is now available. A custom IWAD file must have the extension `ipk3`/`iwad`, and contain a `IWADINFO` lump similar to `GZDoom.pk3`'s with only this IWAD's information and no file list * "Classic Transparency" option - turn off **ZDoom**'s additive transparency effects for the original game resources. * Better non-accelerated buffer support for software rendering - when `vid_hw2d` is disabled or otherwise using an unaccelerated framebuffer, stencils and on-screen objects now show up better * (Windows only) `vid_used3d` is now renamed to `vid_glswfb`. This matches the same CVAR that is available on Mac/Linux * `vid_glswfb` is now exposed to the menu * `r_visibility` now affects GL's Software lightmode as well as Softpoly. * Player Sprite overlays now support the `PSPF_MIRROR` flag which flips the sprite horizontally across the entire screen * Menu Blurring option - when running in OpenGL mode, a mod can now blur the screen when the menu is active * Unfriendly players - when a `PlayerPawn` object has `-FRIENDLY` set, they become a playable monster and interact with the game world as one. Additionally, they become deathmatch opponents, capable of dealing and taking damage from other players * Custom Screen Shaders - mods are now able to include their own post processing shaders, insertable before the bloom pass (`beforebloom`), before 2D objects are drawn (`scene`), and after everything is on the screen (`screen`) * `vid_saturation` saturates/desaturates the screen - improves the appearance of the screen when using certain brightness/gamma settings as well as allowing the user to play in 'black and white' (similar to the display control panel option). (Requires post-processing shaders to be active and hardware gamma must be disabled) ### Changes since QZDoom 2.0.0 ### * `r_visibility` now works in OpenGL (software lightmode only) and SoftPoly (Software only) Added `r_line_distance_cull` and `r_sprite_distance_cull` CVARs that cull lines or sprites beyond the specified distance (OpenGL only) Added 'enabled' property for post-process shaders, to automatically enable them without the assistance of ZScript * Enable Core Profile on macOS only when OpenGL 3.3 is available * Use multiple threads for xBRZ upscaling * Added new "sv_damagefactor*" variables `sv_damagefactorplayer`: Scales damage for player `sv_damagefactorfriendly`: Scales damage for all other `+FRIENDLY` objects `sv_damagefactormobj`: Scales damage for everything else including monsters and decorations * Added per-class think time profiling tool * Fixed crash when drawing untranslated font * Fixed applying of color to untranslated fonts in hardware renderer * Added `kill baddies` cheat - does the same thing as `kill monsters` only it ignores friendly monsters * Changed `gl_ssao_portals` default to 1 * (OpenGL hardware/software framebuffer only) Revamped `vid_max_*` variables. Originally debug variables, they've been redesigned to allow screen resizing based on aesthetics The variable controlling the entire system is now `vid_scalemode`: 0 == neighbor scaling, controlled by `vid_scalefactor` 1 == linear scaling, controlled by `vid_scalefactor` 2 == 320x200, neighbor scaled 3 == 640x400, neighbor scaled 4 == 1280x800, linear scaled * `vid_scalefactor` added for modes 0 and 1, which changes the render resolution to any arbitrary amount the user specifies >0, and resizes the screen to that amount. Valid values are >0 to
vg3.1.0
Although this is mainly a bugfix release there are a few notable new features:
Notable bugfixes:
Fixed par time display on level summary screen
Fixed loop tag checks for Ogg files
On Windows and macOS the system's MIDI synth is no longer the default. Instead, FluidSynth and a small soundfont are now included to provide better default playback quality.
Some layout fixes with SBARINFO based status bars
Changelog complet
Although this is mainly a bugfix release there are a few notable new features: * Support of Strife Veteran Edition's extended single player campaign * Better handling of stereo sounds * PlayerThink code has been exported to scripting * On Windows and macOS the system's MIDI synth is no longer the default. Instead, FluidSynth and a small soundfont are now included to provide better default playback quality. Notable bugfixes: * Translucency on weapon sprites works properly * Some layout fixes with SBARINFO based status bars * Fixed par time display on level summary screen * Fixed loop tag checks for Ogg files
vg3.0.1
This is a bugfix release which addresses the following:
Potential crash when changing the render output in-game and continue playing
Crash in the software renderer with camera textures
For 32 bit Windows libsndfile.dll is reverted to the old version due to some incompatibility with the newer one
Changelog complet
This is a bugfix release which addresses the following: * Potential crash when changing the render output in-game and continue playing * Crash in the software renderer with camera textures * For 32 bit Windows libsndfile.dll is reverted to the old version due to some incompatibility with the newer one * Cleanup of dynamic light options
vg3.0.0
New features aside from merging with QZDoom include:
This is the first version that merges all software rendering features from QZDoom.
Optimization of the scripting VM by removing some always active debug support
In addition this is the first release under the GPL v3.
Changelog complet
This is the first version that merges all software rendering features from QZDoom. In addition this is the first release under the GPL v3. To comply with the GPL, FModEx had to be removed as a sound backend, so this version will only support OpenAL. New features aside from merging with QZDoom include: * Scriptable status bars * Scriptable level status screens * Static constant arrays in classes * Support for Doom64-style lighting in the software renderer, with the exception of gradients * Optimization of the scripting VM by removing some always active debug support Please note that starting with this version the 32 bit Windows version will require support for SSE2, because the true color software renderer cannot work without it. As a result it can no longer be used on Pentium 3's and older.
vg2.4.0
New render features
New scripting features
Added new PRINTNAME_ constants for retrieving next and secret next level in ACS
added a BOUNCE_NotOnShootables flag to address an old design bug in the bouncing system
Fixed handling of sector action things with special trigger semantics
Added GetActorFloorTexture and GetActorFloorTerrain ACS functions
Added per-sector settable fog density
added StealthAlpha actor property for defining a minimum visibility value of a stealth monster
Changelog complet
**New render features** * Doom64-style color properties for sectors (i.e. different color settings for floor, ceiling, walls and sprites) **New scripting features** * Script versioning to account for syntax differences between versions * Fully scripted inventory system * Fully scripted menu system * Scripted event system * Printf-style string formatting function for ZScript * Dynamic arrays for ZScript * More access to map data from ZScript * User definable actor properties * Separation of scripts into UI and Play parts to have better access control * Exported obituary code to ZScript to allow more flexibility when handling special cases * `SectorTagIterator` and `LineIDIterator` classes to search for tags **Other** * Added GetActorFloorTexture and GetActorFloorTerrain ACS functions * Added new PRINTNAME_ constants for retrieving next and secret next level in ACS * Added per-sector settable fog density * Fixed handling of sector action things with special trigger semantics * True color fonts can be defined in FONTDEFS * added a BOUNCE_NotOnShootables flag to address an old design bug in the bouncing system * added StealthAlpha actor property for defining a minimum visibility value of a stealth monster ... and many more smaller additions and fixes.
vci_deps
> ci_deps_win_v01.zip
|OpenAL-Soft|1.17.2|
Changelog complet
**> ci_deps_win_v01.zip** |Library|Version| |---|---| |FMOD Ex|4.44.64| |OpenAL-Soft|1.17.2| |libmpg123|1.24.0| |libsndfile|1.0.27|
vg2.3.2
This is a bugfix release addressing a few critical issues in 2.3.1:
fixed a rare crash condition with killing monsters from the console
Critical issues fixed:
potential crash with stair building in Hexen
fixed a problem with drawing decals with the software renderer
fixed sight checks through portals
'stat music' could crash on OpenAL
Changelog complet
This is a bugfix release addressing a few critical issues in 2.3.1: Critical issues fixed: - turbo stairs in Doom 2 were broken - potential crash with stair building in Hexen - The Heresiarch in Hexen did not call its death script - several Heretic weapons behaved incorrectly - The last two were caused by an incorrect script compiler check that failed to detect a bad function definition. This may induce a breaking change to some ZScript based user mods, too, which made the same mistake! Other fixes: - fixed a problem with drawing decals with the software renderer - 'stat music' could crash on OpenAL - fixed a rare crash condition with killing monsters from the console - the spiral for railgun shots wasn't drawn - switching from windowed to fullscreen could set bad screen sizes not covering the entire screen - fixed sight checks through portals New features: - mods can define items globally for precaching in addition to per-map definitions
vg2.3.1
This is a bugfix release. Fixes include:
fixed potential crash with Doom's boss brain
fixed a crash with multiplayer games
fixed a few issues with the ZScript compiler
fixed state validation problem with Dehacked modifications
fixed a few more cases where player sprites became momentarily visible during a portal transition
Changelog complet
This is a bugfix release. Fixes include: - Dehacked strings were cut off at the end - corrected a few cases where dynamic lights were not correctly set up - default lights for Doom and Heretic are now properly attenuated - fixed a few issues with the ZScript compiler - fixed potential crash with Doom's boss brain - fixed state validation problem with Dehacked modifications - fixed a crash with multiplayer games - fixed a few more cases where player sprites became momentarily visible during a portal transition - made particle translucency calculations more precise
vg2.3.0
New features include
Improved IWAD picker, allowing to choose the active renderer, or autoloading lights and brightmaps
It's time to celebrate the new year with a new release.
Fixed the pitch issues that were warned about for 2.2.0
Some improvements to the console
Screen space ambient occlusion (SSAO) for the OpenGL renderer, written by dpJudas
Changelog complet
It's time to celebrate the new year with a new release. New features include - First version with official ZScript support - Screen space ambient occlusion (SSAO) for the OpenGL renderer, written by dpJudas - UDMF-configurable fog density per sector - Glowing flats settable through UDMF - Proper rendering processing of large actors - Improved IWAD picker, allowing to choose the active renderer, or autoloading lights and brightmaps - Proper dynamic light definitions for Freedoom. - Multithreaded software rendering - Some improvements to the console - Fixed the pitch issues that were warned about for 2.2.0
vg2.2.0
Lots of new ZDoom development features
A new version is available. This one merges the legacy support back into the mainline so there is no corresponding 1.x version anymore.
Changelog complet
A new version is available. This one merges the legacy support back into the mainline so there is no corresponding 1.x version anymore. - Fully functioning Line and Sector Portals - Roll Sprites - Flat Sprites - Sprites Facing Camera - Bloom - Multisampling - Stereo 3D VR - Quad Stereo - Tonemap Setting - Lens Distortion Effect - DECORATE Anonymous Functions - Lots of new ZDoom development features
vg1.9.1
This release coincides with ZDoom 2.8.1 and brings the same fixes.
Changelog complet
This release coincides with ZDoom 2.8.1 and brings the same fixes.
vg2.1.1
This release coincides with ZDoom 2.8.1 and brings the same fixes. In addition 2.1.1 also fixes the broken fake contrast feature in 2.1.0.
Changelog complet
This release coincides with ZDoom 2.8.1 and brings the same fixes. In addition 2.1.1 also fixes the broken fake contrast feature in 2.1.0.
vg2.1.0
The version that coincides with ZDoom 2.8.0
Changelog complet
The version that coincides with ZDoom 2.8.0
vg1.9.0
The version that coincides with ZDoom 2.8.0
Changelog complet
The version that coincides with ZDoom 2.8.0
vg2.0.05

Aucun détail pour cette version.

v1.8.10

Aucun détail pour cette version.

vg1.8.6
This is just a bugfix release that addresses one critical issue with loading of 7z files.
fixed a problem with using Thing_Raise on monsters using the 'canraise' state flag.
7z loader could crash on some files due to memory corruption while converting lump names
made interpolation of angle changes via ACS and DECORATE an opt-in feature instead of forcing it unconditionally, restoring default behavior to what it was before 1.8.5.
Changelog complet
This is just a bugfix release that addresses one critical issue with loading of 7z files. The complete list of changes from 1.8.5: - 7z loader could crash on some files due to memory corruption while converting lump names - fixed a problem with using Thing_Raise on monsters using the 'canraise' state flag. - made interpolation of angle changes via ACS and DECORATE an opt-in feature instead of forcing it unconditionally, restoring default behavior to what it was before 1.8.5.

Captures d'écran

Screenshot de gzDoom