gzDoom

Émulateur v4.14.1

gzDoom est un émulateur spécialisé dans l’exécution des jeux Doom, Doom II, Heretic et Hexen, ainsi que d’autres titres compatibles avec les données originales. Il fonctionne comme un interpréteur (ou frontend) optimisé pour reproduire fidèlement ces classiques, en exploitant des accélérations graphiques via Vulkan ou OpenGL 3.3 minimum.

Sur macOS, il supporte à la fois les processeurs Intel et Apple Silicon (M1), offrant une compatibilité étendue. Bien que moins connu que des alternatives comme LzDoom, il se distingue par ses performances et son support des fonctionnalités modernes, tout en restant fidèle à l’esprit des jeux originaux. Une référence utile pour les amateurs de Doom cherchant une solution stable et performante.

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

v14.2
  • Nouveautés majeures pour les développeurs et modders :

    • Ajout de l’autoSwitch comme paramètre pour la fonction A_ReFire (meilleur contrôle des armes dans les scripts).
    • Exposition de plusieurs entités et thinkers à ZScript : DDoor, DPlat, parties du Ceiling et du Floor, DElevator (accès programmatique étendu).
    • Export de fonctions utiles pour le débogage : GetLumpContainer, GetContainerName, GetLumpFullPath (pour les WADs et les parsers personnalisés).
  • Corrections critiques :

    • Fix des crashs et fuites mémoire récurrentes.
    • Réversion du clipper vers un chemin de code plus ancien (hors modes Ortho et OOB) pour des performances améliorées.
  • Améliorations techniques :

    • Corrections et optimisations des modes Ortho et Out-of-Bounds (stabilité et comportement).
    • Ajout de propriétés couramment utilisées dans le parser dehacked (compatibilité modding).
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
v14.1
  • Améliorations techniques majeures et compatibilité avec VKDoom :

    • Parité avec VKDoom pour les lumières dynamiques (alpha influençant la luminosité) et ajout de nouvelles fonctionnalités comme lm_ao et lm_bounce dans les spécifications UDMF.
    • Ajout de la mipmappage en 2D et de l’interpolation pour la taille de la croix de visée, améliorant les performances et la fluidité visuelle.
  • Corrections critiques :

    • Résolution des problèmes de coopération multi-joueurs (clé partagée incorrecte si l’item était généré en jeu, ex. via console).
    • Correction des erreurs fatales de formatage et des accès hors limites dans les tableaux (2 occurrences).
    • Fix des sons de chat pour les versions enregistrées ou shareware de Doom.
    • Correction des intermissions de style id24 (écrans de fin) et des transparences des armes dans le même style.
    • Stabilisation des scripts ACS (évitement des plantages lors de divisions/modulus nulles).
  • Nouveautés pour les développeurs et les mods :

    • Ajout de nouvelles fonctions ZScript : S_StartSoundAt, HasConversation, SpecialBounceHit (avec paramètre is3DFloor), PlayerRespawning, et FindClass.
    • Extension des propriétés UDMF avec un système de "Translatable" pour les décors (remplaçant progressivement "OpaqueBlood").
    • Intégration de nouveaux éléments de id24 : lame à carburant, épée Calamity, et incinérateur, avec corrections des mécaniques d’ammo et d’auto-ciblage.
    • Améliorations des VisualThinkers (gestion des statnums, cache mémoire réduit, flags pour l’angle des rebonds).
  • Optimisations et sécurité :

    • Suppression du cache des composants osseux pour réduire la consommation mémoire.
    • Ajout de la flag CVAR_SYSTEM_ONLY pour blacklister automatiquement les CVAR
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
v14.0
  • Nouveautés majeures et fonctionnalités techniques :
    • Ajout de la fonction LookForEnemiesEx() pour récupérer tous les ennemis dans une zone donnée (#2753).
    • Intégration de WorldHitscanFired et WorldHitscanPreFired (#2432), ainsi que WorldRailgunPreFired et WorldRailgunFired pour une meilleure gestion des attaques projectiles.
    • Ajout d’un OrthographicCamera acteur avec un décalage configurable (offset) pour modifier la position de la caméra en vue orthographique.
    • Amélioration de la gestion des footsteps (pas) : synchronisation avec la durée du mouvement, ajout d’un contrôleur de volume via CVar, et implémentation de footsteps basés sur la vitesse/distance.
    • STRETCHPIXELS (option SPF_) ajouté pour étirer les pixels, avec une correction de son exposition dans les paramètres.
    • AppendStatusBar ajouté dans SBARINFO pour permettre l’ajout de code personnalisé à la barre de statut.
    • NetClose et NCMD_EXIT portés vers le fichier i_net (plateforme-agnostique), avec suppression d’un message réseau obsolète.
    • RNG (Random Number Generator) amélioré : ajout de fonctions CRandom, de snapshotting pour la prédiction, et réécriture des constructeurs de FRandom.
    • VisualThinkers : optimisation des fonctions critiques hors de Tick() pour éviter les appels superflus, compression des booléens en champ de flags, et sérialisation de animData.
    • Automap : ajout de marqueurs par défaut pour tous les jeux (modifiable).
    • ACS : fonctions de gestion d’ID réseau ajoutées.
    • Mouvements et collisions :
      • Correction des rebonds sur les 3D floors (#2835), des comportements autooff sur les plafonds (#2837), et diverses fixes liés aux collisions.
      • Poison ne se nettoie plus sur revival.
      • Discs ne
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

Captures d'écran

Screenshot de gzDoom