Releases: Helion-Engine/Helion
Nightly
This is a build that is generated automatically from the latest sources every night. It may contain incomplete work-in-progress features or bugs that are not present in official releases.
If you need to report an issue found while using a nightly build, please:
- Ensure that you are using the latest nightly build and that we haven't already fixed the issue
- If possible, tell us what nightly build you are using. In Windows, you can check the version by right-clicking
Helion.exe
in File Explorer, choosing Properties from the right-click dialog, and then navigating to the Details tab. The "Product Version" string shown on that tab will look something like this:
In this example, the executable was built from commit 3fb9e1
.
0.9.6.0
0.9.6.0
Features:
- Enable trimming (reduces file size of release artifacts)
- Allow interpolation to finish when game is paused and on level exit for smooth transitions
- Fade sprites into max distance
- Autosave timer that automatically writes a quicksave every x seconds
- Frustum culling for the automap
- Controller gyroscope support (tested with PS DualShock 4, should work with other SDL-supported controllers)
- Emulate boom behavior that let player move out of one-sided lines
- Controller rumble feedback
- Add option for berserk intensity
- Add option to disable crosshair shrinking on target
- Add use command to allow for separate bindings for shotgun/super shotgun [bind x "use shotgun"] [bind y "use supershotgun"]
- Add custom weapon groups similar to the ones found in Woof!, with the added bonus of being assignable to any button.
- Add order independent transparency to fix issues with multiple transparent sprites causing transparent textures not to render
- Support texture filtering with sprites
- Refraction effect for spectres
- Added nearest to bilinear and nearest to trilinear texture filter options
- Updated save game management to read save files on startup to fix load time of the load/save menu when there are a large number of save files to read
- Improved quick save performance to reduce large stutters when saving
- Add Boom RNG method with option to toggle between Boom and Vanilla Doom RNG
- Add save game thumbnails and summary details (kills, secrets, elapsed time) to save/load menus
- Updated styling of save/load menus
- Add sky render modes dynamic and vanilla. Dynamic is the original version and similar to GZDoom. Vanilla to better match vanilla sky drawing
Bug fixes:
- Fix per ammo values for box ammo and backpack amount from dehacked patch
- Fix crash from bad colormaps (Fixes Necromantic Thirst)
- Fix sight and shoot traverse functions to correctly handle resizes (Fixes Junkfood MAP98)
- Fix A_WeaponSound not functioning when called from the flash state (Fixes Junkfood pistol firing sound)
- Fix block player lines blocking friendly monsters (Fixes TWOGERS MAP31)
- Fix generalized crushers to not slow down with fast and turbo speeds to match boom behavior
- Fix two-sided lines drawing in the automap when back and front sector ceiling and floor values match
- Fix allocation issue with automap rendering that could cause slowdown
- Fix friendly enemies in closets not setting target to player even when not in sight
- Fix monsters teleporting from monster closets playing sight sound
- Fix translation flags using incorrect colormap indices (fixes kdikdizd)
- Fix colormaps for transfer heights not setting on two-sided lines
- Fix cases where lines were being marked for automap when they weren't visible
- Fix sprite x offset rendering (fixes small red torch and burning barrel twitching)
- Fix issue with bump use breaking on maps with voodoo dolls
- Fix issue with emulating vanilla behavior that didn't clear velocity when stuck in walls causing issues with slide moving code
- Fix custom map name not taking priority and entertext for changing clusters with mapinfo
- Fix minimum x/y velocity to match vanilla behavior
- Added sprites and sounds for mbf helper dog
- Fix label clear in UMAPINFO
- Fallback to status bar background texture (borderflat) defined in gameinfo
- Fix issue with two-sided middle walls and texture filtering causing edge pixels to render incorrectly
- Fix spawn ceiling being incorrectly applied after initial map start
- Fix ordering to set flags first when something dies before setting the death state to match original behavior
- Fix index check on setting death state to match original behavior. Fixes 0x0.wad spawn fall objects not being removed.
- Fix one-sided walls and flats with null texture rendering (fixes 0x0.wad)
- Fix ranodomization for new map starts starting with the same value
- Fix two-sided boom generic door specials not being trigger by monsters when blocked (fixes Going Down Turbo MAP10)
- Fix flood rendering where flood sides would have gaps
- Fix box segment intersection to check for epsilon. Fixes Going Down Turbo MAP12 red key not falling.
- Fix door compatibility to always allow clipping through floor regardless of vanilla movement physics setting (fixes Going Down Turbo MAP23 Invulnerability not spawning)
- Fix No Rest for the Living to be loaded as a PWAD with Doom 2 IWAD from the IWAD selections screen
- Fix weapon offset interpolation to reset when modifying offsets through dehacked (fixes Doom Zero pistol and shotgun jittering)
- Set SLIDE and INFLOAT flags correctly for MBF21 flag functions
- Fix path reporting of loaded files that were not added with a full path
- Fix not being able to search current working directory when launching Helion outside of it's executing directory
- Fix various id24 skydef rendering for midtexel and scaling. Sky render mode automatically changed to vanilla when skydefs is encountered
- Fix transfer sky specials 171 and 172 to apply Y offset from line
- Fix map options not being set from default map (nojump nofreelook etc)
- Fix issue where moving sectors may not render when inside a misclassified voodoo doll closet
- Fix dehacked weapon ammo use amount
- Fix music changes not persisting through successive save games
- Fix scrolling floors/ceilings stopping when completes a move special
- Fix mouse focus issue when loading/reloading a map
- Fix default intermission background images and music for UMAPINFO
- Fix bex string parsing for mnemonics that have more than two strings
- Fix incorrect dehacked state mapping from cacodemon ball to baron ball (522-526)
0.9.5.1
0.9.5.1
Features:
- Show slider dialog when changing a numeric value from a controller in the options menu
Bug fixes:
- Fix per ammo values for box ammo and backpack amount from dehacked patch
- Fix crash from bad colormaps (Fixes Necromantic Thirst)
- Fix sight and shoot traverse functions to correctly handle resizes (Fixes Junkfood MAP98)
- Fix A_WeaponSound not functioning when called from the flash state (Fixes Junkfood pistol firing sound)
- Fix block player lines blocking friendly monsters (Fixes TWOGERS MAP31)
- Fix generalized crushers to not slow down with fast and turbo speeds to match boom behavior
- Update libzmusic/libfluidsynth to work on more distributions of Linux
0.9.5.0
0.9.5.0
Features:
- Initial id24 specification support
- SoundFont picker dialog
- Minor usability improvement to options menus (can see and restore defaults)
- Status bar texture picker dialog
- Added automap marker functionality to key binding options
- "Melt" screen wipe added
- Save game improvements: Saves can be named, pagination added to Save/Load dialog, rotating auto/quicksaves added
- Expanded support for music formats and more synthesizer options, via ZMusic
- Game controller support
- TRANSLATION1 and TRANSLATION2 flag support for true-color rendering
- ENDOOM text screen on quit
- Gamma correction
- Sound velocity option
- Option to control filter type for virtual screen scaling
- xBRZ upscaling option for menu and HUD text elements
Bug fixes:
- Fix various issues with intermission screen and end-game screen formatting, including use of widescreen assets, text flow, alignment, pillarbox masking on scrolling finales
- Interpolate weapon raise/lower animations and chainsaw bobbing
- Prevent mouse vertical movement from causing the player to move when mouselook is enabled
- Fix issues related to building on case-sensitive file systems (Linux)
- Fix rendering order for two-sided middle walls that could cause flats/walls behind not to render
- Fix boom WR lock door lines from constantly triggering key messages when contacting
- Fix two-sided middle scrolling to offset entire texture by the Y value when rendering to match original doom behavior
- Fix visual scroll offsets not being restored from a save for walls and flats
- Fix instant sector floors not raising when two monsters are overlapping
- Fix A_BfgSpray to be created after damage so they are rendered at corpse height if a monster is killed.
- Fix issue with screenshot command not being processed.
- Various fixes around key bindings saved to config file
- Fix an issue that caused the process' working set to grow rapidly on level changes
- Fix max ammo display on status bar in PWADs that modify this property
- Fix rendering of taller fonts
- Fix issue with clearing multiple automap markers
- Fix self-referencing sectors to not block hitscan attacks and line of sight checks to match original doom behavior
- Fix boom silent teleport specials to keep height from floor
- Add missing PLS1EXP5 dehacked lookup (fixes decoration in Frozen Heart)
- Map dehacked TRANSLATION bit memnomic to TRANSLATION1
- Fix dehacked frame misc1/2 to correctly set weapon sprite offsets through the weapon frame state only
- Fix rendering that would stop sprites from rendering behind two-sided transparent walls when not using emulate vanilla rendering
- Fix monsters infighting too easily
- Improve detection of WADs installed from Steam
- Separate HUD and menu scaling into two different options
- Fix incorrect dehacked mapping for BEXP5
- Rework FluidSynth loading sequence to prevent a crash on some systems and speed up music track changes
- Prevent user from overwriting autosaves via quick save
- Fix issue with savegame compatibility settings persisting to user config
- Fix MusicChangers breaking when loading saves
- Fix random crash from sounds trying to play while loading a new map
- Fix dehacked to correctly use A_SPosAttack function with hard-coded shotgun sound
- Fix map start specials not getting written to autosaves
- Fix boom generic specials to allow monsters to trigger of off model if change is 0
- Fix various UMAPINFO issues dealing with nointermission intertext, intertextsecret, endgame, endpic, and intermusic
- Fix berserk only restoring to initial health when modified through dehacked
- Fix OpenGL context using 3.3 with Intel iGPUs when a higher version is supported
- Fix dehacked level string replacement for automap/console/loading displays
- Fix reversed x/y scroll values for MBF21 1024 scroll special
- Fix velocity being set for certain sounds and not cleared that can cause pitch variations
- Fix MAP24 sky rendering issue during ship fire sequence for Eviternity II final
- Fix MAPINFO/ZMAPINFO defaultmap clearing properties (fixes Eviternity MAP30 endgame sequence)
- Fix clicking/popping noises in WAV audio files (credit: sinshu)
- Fix A_KeenDie to call A_Fall (fixes blocking alien eggs in Tricking & Tearing at Warpspeed MAP05)
- Fix transfer heights flats not rendering with emulate vanilla rendering
- Fix transparent sprites discarding two-sided middle walls with emulate vanilla rendering
- Fix dehacked parsing for frame args to match dehacked parsing behavior for bad integer strings
- Fix projectile spawn not setting previous position causing the first frame to interpolate very close to the screen
- Fix transfer height colormaps not being applied if the colormap passes as a valid doom image (fixes twogers MAP36)
0.9.5.0-preview-2
0.9.5.0 (Pre-release)
Features:
- Initial id24 specification support
- SoundFont picker dialog
- Minor usability improvement to options menus (can see and restore defaults)
- Status bar texture picker dialog
- Added automap marker functionality to key binding options
- "Melt" screen wipe added
- Save game improvements: Saves can be named, pagination added to Save/Load dialog, rotating auto/quicksaves added
- Expanded support for music formats and more synthesizer options, via ZMusic
- Game controller support
- TRANSLATION1 and TRANSLATION2 flag support for true-color rendering
- ENDOOM text screen on quit
Bug fixes:
- Fix various issues with intermission screen and end-game screen formatting, including use of widescreen assets, text flow, alignment, pillarbox masking on scrolling finales
- Interpolate weapon raise/lower animations and chainsaw bobbing
- Prevent mouse vertical movement from causing the player to move when mouselook is enabled
- Fix issues related to building on case-sensitive file systems (Linux)
- Fix rendering order for two-sided middle walls that could cause flats/walls behind not to render
- Fix boom WR lock door lines from constantly triggering key messages when contacting
- Fix two-sided middle scrolling to offset entire texture by the Y value when rendering to match original doom behavior
- Fix visual scroll offsets not being restored from a save for walls and flats
- Fix instant sector floors not raising when two monsters are overlapping
- Fix A_BfgSpray to be created after damage so they are rendered at corpse height if a monster is killed.
- Fix issue with screenshot command not being processed.
- Various fixes around key bindings saved to config file
- Fix an issue that caused the process' working set to grow rapidly on level changes
- Fix max ammo display on status bar in PWADs that modify this property
- Fix rendering of taller fonts
- Fix issue with clearing multiple automap markers
- Fix self-referencing sectors to not block hitscan attacks and line of sight checks to match original doom behavior
- Fix boom silent teleport specials to keep height from floor
- Add missing PLS1EXP5 dehacked lookup (fixes decoration in Frozen Heart)
- Map dehacked TRANSLATION bit memnomic to TRANSLATION1
- Fix dehacked frame misc1/2 to correctly set weapon sprite offsets through the weapon frame state only
- Fix rendering that would stop sprites from rendering behind two-sided transparent walls when not using emulate vanilla rendering
- Fix monsters infighting too easily
- Improve detection of WADs installed from Steam
- Separate HUD and menu scaling into two different options
- Fix incorrect dehacked mapping for BEXP5
- Rework FluidSynth loading sequence to prevent a crash on some systems and speed up music track changes
- Prevent user from overwriting autosaves via quick save
- Fix issue with savegame compatibility settings persisting to user config
- Fix MusicChangers breaking when loading saves
- Fix random crash from sounds trying to play while loading a new map
- Fix dehacked to correctly use A_SPosAttack function with hard-coded shotgun sound
- Fix map start specials not getting written to autosaves
- Fix boom generic specials to allow monsters to trigger of off model if change is 0
- Fix various UMAPINFO issues dealing with nointermission intertext, intertextsecret, endgame, endpic, and intermusic
- Fix berserk only restoring to initial health when modified through dehacked
- Fix OpenGL context using 3.3 with Intel iGPUs when a higher version is supported
- Fix dehacked level string replacement for automap/console/loading displays
- Fix reversed x/y scroll values for MBF21 1024 scroll special
0.9.5.0-preview
0.9.5.0 (Pre-release)
Bug fixes:
- Fix various issues with intermission screen and end-game screen formatting, including use of widescreen assets
- Interpolate weapon raise/lower animation
- Prevent mouse vertical movement from causing the player to move when mouselook is enabled
- Fix issues related to building on case-sensitive file systems (Linux)
Features:
- Initial id24 specification support
- SoundFont picker dialog
0.9.4.0
Vanilla accurate light projection.
Vanilla render emulation so sprites are draw over floors/ceilings.
Implemented palette color mode. supports boom colormaps for transfer heights and translation1 and translation2 flags.
True color mode supports fullbright pixels set in the colormap.
Added smooth and banded light mode for true color rendering.
Added pain intensity options to control how red the screen renders.
Added max messages option to the hud.
Add transparency option to the hud.
Implemented reversed-z to fix z-fighting with textures very close to overlapping.
Requires OpenGL 4.5 or GL_ARB_clip_control. Helion checks for this support on the GPU and falls back to the old way rendering for older GPUS.
Automap overhaul with overlay and rotate options. Supports full range of colors configurable in the options menu.
Optimized line rendering to be fast showing the overlay with large maps.
Optimized and fixed an issue in the bsp traversal for marking lines the player has seen.
Implemented fade animations for menus and slide animation for console.
Options menu display help text footer. (#582)
Options menu cleanup. (#594)
Fixed app restart command to work with new single-file file publish. (#593)
Optimization for entity movement to store intersecting sectors during movement instead of calculating in a separate step after successful move.
Implemented rendering fixes for flood filling with mid textures. (e.g. blood fall after start area in Doom 2 MAP25)
Fixed issue preventing MAP15 nextmap MAP16C from BTSX E2 from loading.
Pressing escape closes console.
Interpret "map *" command as map reset.
Implemented -pistolstart command line parameter.
Set projectile pass height for things modified by dehacked. fixes batman doom techlamp enemy with missile compat set.
Fixed animation issue from textures being duplicated in the texture lumps. fixes ancient aliens animations and probably much more.
Add missing SKEL_RUN12 dehacked state lookup, fixes kdikdizd nightmare demon melee.
Fixed lookupname being cleared from UMAPINFO.
Berserk red effect now matches original vanilla timing.
Fixed setting player angle in A_SAW.
Fixed flat occlusion checks that weren't factoring in interpolation that caused flats not to render in very specific scenarios.
Fixed dehacked issue that was causing null frames to pull in custom Helion frames causing undefined behavior and potential crashes.
Fixed large hud numbers to used "0" image as the basis of fixed width to better match original doom behavior.
Fixed monster movement issue where it would attempt to move on top of another entity if it's z positions was exactly equal to the top of the other entity.
Fixed stacked entity checking to not ignore corpse/non-solid things.
0.9.3.0
Upgraded to .NET 8
Improved build processes. (#571)
Helion will attempt to read Steam registry path on Windows for IWAD detection. (#572)
Significant improvements to map reload times when reloading the same map.
Performance improvements in flat/line rendering calculations. Significantly improves performance for maps that have a lot of dynamic rendering.that includes moving sectors, scrolling lines and floors.
Performance improvements in sight and shoot traversal.
Performance improvements in sprite rendering.
Performance improvements on static geometry rendering where options are packed into a single float to get the size in a more optimal size range for GPUs.
Performance improvements with monster movement and improvement for 3D checks when things overlap in the 3D space, e.g. cacodemons stacking on top of each other.
Significantly improved sight checks for large maps where sight checks fail early (e.g. Doom 2 in City Only MAP23)
Implemented different crosshairs and options.
Implemented vile ghost, explosion, sector sound, and final doom teleport compatibility options.
Various improvements for allocations that were leaking to the garbage collector.
Sectors are linked to the blockmap by their island bounding box instead of the sector bounding box.
Added findkeys and findkeylines commands to highlight in automap.
Added complvl command to view/set the complvl, complvl none will reset to user defaults.
Added option to disable horizontal autoaim for projectiles.
Sound audio will automatically change when the default audio devices changes where previously only music would switch.
Improvements for loading and re-using skies if the map hasn't changed.
Added checks to support freedom iwads.
End game intermissions tile background using doom resolution.
Added checks for min/max pitch to fix jittering issues when attempting to look straight up or down.
Fixed missing check for fixed height when creating space character for fonts.
Update font scaling to work per character instead of using the maximum height that can cause issues with single characters having very large heights.
Fixed two-sided lines not seen on automap to match one-sided color.
Fixed dehacked text parsing to include newlines for text screens when the line was empty.
Gibbing damage set to 10000 to match doom behavior. Was causing performance issues in Smooth Doom 21 that would prevent gore from spawning when things were gibbed in this manner. (Fixes performance drop in Doom 2 in City Only MAP23 on start where monsters are in kill sector)
Fixed issue with endgame that would freeze the level if the cluster definition did not exist. (Fixes endgame issues with Die Rowdy)
Added check to skip endgame text display if there was no text specified (Fixes endgame issues. with Die Rowdy)
Added check to skip over bad textures for animations. (Fixes anmation issues with Die Rowdy)
Fixed missing A_FaceTarget call in A_SkelMissile.
Fixed STARMS to draw from hard-coded top offset to match doom behavior.
Fixed damage end to not exit unless it damages the player match doom behavior.
Fixed rendering issue where a sector is moving and the controlling transfer heights sector is also moving but completes first. (Archvile section in Doom 2 in City Only MAP23)
Fixed rendering issue with a moving sector that had upper flood filling and sky rendering that would cause the sky to stop rendering.
Fixed incorrect music in E1M6 of DOOM. (#576)
Fixed issue where a monster that was killed in a monster closet can spawn in from a scrolling floor but had incorrect flags set.
No monsters and fast monster options are serialized to save games.
Fixed monster movement issue where a monster would attempt to walk on top of another thing if the z values are equal
Fixed concurrency issue that could cause a crash when loading a map with the sound engine.
Fixed dehacked parsing to ignore the rest of the line when completed.
Fixed endgame text parsing to look for both \n and escaped \n.
Updated line rendering to use two-sided rendering path when a line is flagged as two-sided even if it doesn't have a back side to match doom rendering behavior.
Fixed initialization of sky animations that would incorrectly use translated textures from the animations.
Fixed non-solid touchy objects being ignored in physics overlap check.
Fixed sprite z-fighting check to correctly interpolate between current and previous view normal.
0.9.2.9
Added savedir argument to write/load saves from specified directory. Matches savedir command from GZDoom. (PR 564 from 72hr)
Added use original doom explosion behavior compat option. Disables all z checking for all explosions and not just things flagged with OLDRADIUSDMG.
Added separate viewbob/weaponbob variables and removed single movebob configuration. User's existing movebob values will migrate to the new viewbob and weaponbob variables.
Fixed recursive sound function check that was broken from optimization in 0.9.2.8.
Updated vanilla movement physics compatibility to correctly never clear velocity when in contact with another thing. Fixes vanilla compatibility for KDiKDiZD.
Fixed issues with large HUD font numbers being cut off. Fixes Doom 2 in City Only font.
Added check to only tile text intermission backgrounds if 64x64. Fixes Doom 2 in City Only text intermission.
Removed configuration scaling for certain variables to match config.ini.
Fixed physics to always stick things to floor on Doom format maps.
Fixed reset target when thing goes back to look state. Fixes Dominus Diabolicus alert sounds.
Fixed lookup for getting dehacked actor for boss actions.
Implemented generic special actions for ZMapInfo.
Added checks for calculating zNear with widescreen values to fix wall rendering issues when close.
Fixed calculation for setting bobbing.
Set mouse interpolation to be off by default.
Sounds are cached to prevent stutters when first loading during gameplay.
All skies and animations are cached on map start to prevent stutters when new skies are loaded in from triggering specials. This fixes cases in Doom 2 in City Only where triggering specials would cause large stutters while the skies were processed and loaded.
0.9.2.8
Fix for randomized blood states to offset using the hard-coded dooms state when using a dehacked file. This would cause modified blood states to render incorrect sprites.
Fix to not apply weapon offset to it's flash state.
Fix options text header when scrolling in the options menu.
Fix for dehacked frame parsing to support any word inside the parenthesis.
Fix for slide not clearing velocity on blocking line when using vanilla movement physics compat.
Fixed case where flat textures changing from to sky to non-sky would not correctly clear.
Fixed cases where sector movement would miss clearing flood filling.
Fixed get next lowest ceiling for sector movement incorrectly returning the current floor value when none is found.
Fixed friend flag to correctly look for enemies using count kill flag.
Fixed wind/push specials that were incorrectly ignoring when other sector effect flags were set.
Fixed to add max movement check for velocity. This would previously cause the player to move beyond 30 map units per tick on fast scrolling floors.
Added short when hitting a teleport to stop checking crossed special lines to match original doom behavior. Fixes twogers MAP04.
Added compatibility option for Doom 2 projectiles activating certain walk specials.
Fixed hitscan functions using zero damage as a test flag. Fixes twogers RNG generator things firing bullets with zero damage to activate lines.
Fixed mapinfo scroll speed to parse as decimal number.
Update flood filling to no longer ignore in a transfer heights sector.
Fixed small hud fonts to be fixed to the top instead of bottom.
Updated defaultmap from mapinfo to carry over music, titlepatch, partime, and sucktime.
Use Doom's original height for things with the spawn ceiling flag. Matches original behavior for things that are given the spawnceiling flag where their height is only 16.
Fixed stair builder issue with non-contiguous stair sectors and fixed save serialization and loading of active stair builds.
Fixed sector movement interpolation reset not working when a level is flagged to exit.
Fixed boom transfer sky specials rendering the sky backwards.
Fixed dehacked mapping to correctly map BFGEXP to BFGExtra.
Fixed status bar not showing pain face when damage count is exactly one.
No longer gib things that have health to match original Doom behavior.
Updated check for determining a thing's sector to not include zero in dot product checks.
Fixed issue where dehacked files were being skipped when not containing a valid header. Fixes map names for NEIS.
Fixed archvile fire to not be interpolated. Fixes archvile not being visible in certain cases especially when moving towards the archvile.
Added check for closet monsters to use their default movement speed if they failed to move. Fixes cases where they are in tight areas and will not trigger a teleport line.
Implemented check for OpenGL 4.4 to force using GL_MAP_PERSISTENT_BIT in glMapBufferRange. NVidia cards would automatically pin the memory. Certain AMD cards (Vega series) would not automatically do this causing FPS drops because of memory synchronization. Will fall back to OpenGL 3.3 if not supported by the GPU.
Optimized sound traversal for noise alert to prevent frame drops when firing.
Implement transfer heights logic for wind/push sectors to match boom behavior.
Implemented friendly flag in map things to be set.
Implemented the fuzz amount to be configurable. The fuzz effect is now uniform across screen resolutions and is projected across all distance from the camera. Previously it would appear more blocky as the camera is further away from the fuzz thing.
Implemented MUSINFO and music changes in maps.