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.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.
0.9.2.7
Implemented fixed point underflow emulation in physics to support mikoportals and KDiKDiZD.
Implemented compatibility for mid texture hacks that will automatically be applied to emulate the transparent floor/ceiling effects in KDiKDiZD.
Implemented detection for vanilla self-referencing sector hacks.
Implemented an experimental flood fill all flats option to not clip sprites with the floor/ceiling. Likely to cause rendering artifacts. Expect a 20-50% performance loss.
Support Boom colormaps for transfer heights.
Implemented Boom door light tag.
Implemented fuzz effect on player weapon sprite.
Implemented compatibility flag for vanilla movement physics. Emulates preserving momentum when running into other things.
Automatically apply compatibility flags from complvl lump.
Viewport is correctly pushed up with full screen HUD.
HUD now draws independently from virtual dimensions. The world will be draw at the virtual resolution and the HUD will be drawn at the window resolution.
Sector movement sounds are no longer played from self-referencing sources.
Fixes for intermission drawing offsets.
Fixed large HUD number rendering to be fixed width to match original position rendering.
Fixed crash that can be caused by single line comment characters inside quoted strings.
Fixed cluster text to be split by newlines in legacy mapinfo.
Fixed floor/ceiling movement specials when there is no adjacent sector to use default min/max values. Fixes Congestion 1024 MAP02 exit door.
Fixed fake contrast not being applied on the shader.
Fixed save game issue where on ground was not being serialized.
Fixed map info map names being overwritten.
Fixed randomize not being set if missile and a dehacked patch is applied.
Added skullfly velocity check in movement code to stop skullfly. Fixes KDiKDiZD bruiser fire.
Fixed A_SkullAttack to correctly add 8 to the start height and set velocity to the center of the target from it's bottom to match the original functionality.
Fixed A_PainShootSkull to properly ignore parent collision when dehacked has changed solid flags.
Added check for warptrans. Fixes KDiKDiZD episode start map.
Updated slide movement code to not include 0 and 1 hit times to match Doom's original side behavior. Fixes KDiKDiZD voodoo closets.
Fixed line id assignment for islands/monster closet detection.
Fixed monster closet assignment for loading saves/same map.
Fixed transfer heights rendering issue with transparent lines that were getting stuck in the cache that could cause them not to render.
Fixed idbehold strength.
Updated episode selection menu to support larger number of episodes.
Updated options screen title to use font instead of M_OPTIONS graphic as some custom wads clear the graphic.
Fixed UMAPINFO parsing to handle new episodes that do not exist in the IWAD.
Fixed dehacked lookups for BSPI_RUNx.
Fixed A_NoBlocking action being called on Command Keen death frame when it shouldn't.
Fixed UMAPINFO parsing to optionally read episode key.
Fixed UMAPINFO so that maps that do not exist in the IWAD are correctly added.
Fixed fast speed for demon and correctly apply fast speed to projectiles for Nightmare difficulty.
Fixed incorrect total time being written to levelstat.
Fixed shader issue that prevented compilation on Intel cards.
Fixed sky rendering to take configurable FOV into account.
Fixed gun sprite to correctly use transfer heights sector for light level.
Fixed shoot traversal to only check shootable.
Allow missiles to collide with things that only have the shootable flag.
Fixed issue in zdbsp where the splitter was creating vertices outside of the blockmap bounds causing an overflow crash.
Fixed zdbsp to correctly rebuild reject when removing unused sectors and use the new reject lump in Helion.