GZDoom 4.8.0 released

News about ZDoom, its child ports, or any closely related projects.
[ZDoom Home] [Documentation (Wiki)] [Official News] [Downloads] [Discord]
[🔎 Google This Site]

Moderator: GZDoom Developers

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

GZDoom 4.8.0 released

Post by Graf Zahl »

Notice: The survey is currently CLOSED. GZDoom 4.7.1 contains no survey code.

Please do not post bugs or issues in release threads! Click here

Download (OpenGLES 2.0 and higher for hardware rendering, Direct3D 9 or later for software rendering) 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
  • 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
User avatar
bimshwel
Posts: 711
Joined: Tue Jul 15, 2003 5:15 pm
Location: misplaced

Re: GZDoom 4.8.0 released

Post by bimshwel »

That is certainly a big list!
For people who have never used Raze, is there an explanation of how its cut scene system works? I "search"ed this forum for "raze cutscene" and did not find out much.
User avatar
Rachael
Posts: 13793
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: GZDoom 4.8.0 released

Post by Rachael »

A long time coming! Glad it's out. :)
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.8.0 released

Post by Graf Zahl »

bimshwel wrote:That is certainly a big list!
For people who have never used Raze, is there an explanation of how its cut scene system works? I "search"ed this forum for "raze cutscene" and did not find out much.
All in due time. This isn't something easy to write down.
User avatar
Delfino Furioso
Posts: 118
Joined: Sat Mar 27, 2021 3:21 pm

Re: GZDoom 4.8.0 released

Post by Delfino Furioso »

congrats on this new release

also, I would consider the new -compatmode parameter worthy of inclusion in the highlights section: it's very handy!
User avatar
kalensar
Posts: 479
Joined: Sun Mar 21, 2021 9:40 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): linux mint 21
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: GZDoom 4.8.0 released

Post by kalensar »

This is a really Kicka$$ update. Tried it out under a 90% heavy load on my half-baked potato on gles and it did perform noticeably better.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49183
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.8.0 released

Post by Graf Zahl »

Delfino Furioso wrote:congrats on this new release

also, I would consider the new -compatmode parameter worthy of inclusion in the highlights section: it's very handy!
Well, for me it never was more than a minor bugfix. I never considered it this important.
User avatar
Marisa the Magician
Posts: 3886
Joined: Fri Feb 08, 2008 9:15 am
Preferred Pronouns: She/Her
Operating System Version (Optional): (btw I use) Arch
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Re: GZDoom 4.8.0 released

Post by Marisa the Magician »

At last, it's out!
User avatar
wolfmanfp
Posts: 80
Joined: Mon May 08, 2017 11:44 am
Graphics Processor: nVidia (Modern GZDoom)
Location: Hungary

Re: GZDoom 4.8.0 released

Post by wolfmanfp »

This is a huge release for me because of three reasons:
- Discord RPC
- cutscene system
- and this is the first release with full Hungarian language support! Big thanks to mdvhimself for completing it!
User avatar
DavidN
 
 
Posts: 266
Joined: Mon Dec 28, 2015 6:22 pm

Re: GZDoom 4.8.0 released

Post by DavidN »

What an incredible list :) Thanks as always for your tireless work on this!
elvenezolanoXD
Posts: 1
Joined: Fri Dec 17, 2021 6:55 pm
Graphics Processor: nVidia with Vulkan support

Re: GZDoom 4.8.0 released

Post by elvenezolanoXD »

ta genial, mucho contenido, solo falta que actualizen la pagina y todo ira bien.
User avatar
Enjay
 
 
Posts: 26573
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Re: GZDoom 4.8.0 released

Post by Enjay »

An impressive list of changes. As ever, my heartfelt thanks to Graf and the dev team for their continued, selfless work on GZDoom.
AvzinElkein
Posts: 625
Joined: Wed Nov 17, 2010 6:35 pm

Re: GZDoom 4.8.0 released

Post by AvzinElkein »

Gonna wait until the Linux iteration of this version comes out.
User avatar
KynikossDragonn
Posts: 272
Joined: Sat Dec 12, 2020 10:59 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Void Linux
Graphics Processor: Intel (Modern GZDoom)
Location: Independence, KS, USA

Re: GZDoom 4.8.0 released

Post by KynikossDragonn »

AvzinElkein wrote:Gonna wait until the Linux iteration of this version comes out.
I just compiled it under Linux just fine, unless you mean waiting on package maintainers to put it out.

I will notice that the Mac and Linux download links in the announcement thread still say 4.7.1 at the time of my reply.
AvzinElkein
Posts: 625
Joined: Wed Nov 17, 2010 6:35 pm

Re: GZDoom 4.8.0 released

Post by AvzinElkein »

I have no idea how to compile stuff with Linux, since it looks too complicated for me. I'll wait, as you said "...on package maintainers to put it out".

Return to “ZDoom (and related) News”