Skip to content

Releases: Helion-Engine/Helion

0.9.2.8

30 Mar 09:54
Compare
Choose a tag to compare

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

09 Feb 16:44
Compare
Choose a tag to compare

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.

0.9.2.6

01 Jan 20:48
Compare
Choose a tag to compare

Implemented fade effect for loading screen.
Implemented scaling for skies.
Added option to render status bar without background and face graphic.
Added ogg/mp3 support (Currently Windows only). Cleaned up music creation warnings and errors.
Updated minimal hud to use Doom sprite scaling and fixed alignment for health/armor.
Updated weapon drawing to support interpolation on the viewport dimensions instead of being stuck to 320x200.
Added invert mouse Y option.
Performance improvements for map loading times. Includes reusing the previous BSP tree and sky textures.
Added option to disable caching all sprites. Sprite caching prevents stuttering when encountering unseen sprite rotations. This caused issues with Eviternity 2 on 4GB systems because of the very large and numerous sprite rotations for the final boss consuming all the systems memory even if the map is not loaded.
Areamap/map cheats from player are applied to chasecam.
Fixed uninitialized shader value for flood filling that would cause flood filling to render black. Caused when firing gun or manually setting extralight.
Fixed NoGravity to not apply friction to objects.
Added check for weapon sound to use hard coded vanilla saw index if dehacked is being used. Fixes Eviternity 2 Perforator playing saw sound.
Added check to match boom functionality that continually checks to change weapons in G_BuildTickCmd. Fixes Eviterinity 2 Perforator not changing when out of ammo.
Do not parse GameInfo weapon slots if parsing dehacked. Fixes Eviternity 2 Perforator weapon selection.
Steam paths fixed for Linux and includes other shared Linux paths. PR: #554
Fixed options menu resetting position when scrolling keyboard up/down.
Fixed visual scrolling to apply for floor/ceiling when there is more than one special.
Fixed crash that is caused when an object is disposed through modified dehacked frames. Fixes Eviternity 2 MAP36 shattering glass.
Fixed A_LineEffect where the first called line special would be called for every subsequent call. Fixes Eviternity 2 MAP30.
Allow monsters to fall off ledges from scrolling and push specials. Fixes Eviterny 2 MAP32.
Fixed MBF21 kill effects to be transferred with trigger specials. Fixes Eviternity 2 MAP32.
Match magnitude calculation from boom for push specials.
Force decimal parsing to use period for separator and replace commas with period to conform configurations to en-US format.
Fixed broken commands being shown in options menu.
Options menu will show custom user commands and fixed some missing built in commands not showing.
Fixed menu shortcuts eating key presses when using keybinding menu.
Cleaned up automap key binding names in options menu.
Fixed dangling references causes memory not to be freed when loading new maps.

0.9.2.5

11 Dec 23:41
Compare
Choose a tag to compare

Fixed movement initialization issue that can cause player to get stuck
Added missing language lookup for Doom 2's episode name. Fixes hidden menu selection for Sigil 2
Fixed radius explosion check to not ignore non-solid things. (Fixes Eviternity 2 Necromancer minions staying forever
Updated A_MonsterProjectile and A_WeaponProjectile to match pitch inversion that happens in dsda (fixes Nightmare Caco attack in Eviternity 2)
Fixed pull specials to correctly invert force applied to player (fixes Eviternity MAP01 start pit)
Update crusher types to match Boom's functionality for generic floor and ceiling specials
Update zNear for high FOV values to fix rendering issues
Fixed weapon cycling commands to check for inverted values

0.9.2.4

09 Dec 13:41
Compare
Choose a tag to compare

Implemented mark specials. Demonstration: https://www.youtube.com/watch?v=MoveGeEkNmA
Implemented flood fill for boom transfer heights special.
Implemented scrolling floor/ceiling for boom transfer heights special.
Implemented iwad selector menu. Will display any iwads in the Helion directory and search common steam install paths.
Implemented loading screens.
Implemented checks for plane clipping when transitioning between transfer height sectors. Fixes rendering glitches when the plane is close to the camera Z and deals with interpolation issues when changing above/below transfer heights.
Config file command line argument (-config).
Linux will write config.ini to either $XDG_CONFIG_HOME/helion/config.ini or $HOME/.config/helion/config.ini.
Included libfluidsynth and updated NFluidsynth to load locally with linux build.
Added player options to the menu.
Triggers that transfer specials will now transfer/clear secret flag.
Fixed dropped flag not being carried over when applying dehacked flags that caused double the ammo to be picked up.
Updated TNT1 state to use Actor::spawn. Fixes Machete MAP10 exit.
Fixed infinite weapon cycling error that occurred when attempting to cycle weapons when in chasecam.
Fixed missing SAWB2 mapping for dehacked.
Fixed saving empty keys to the configuration so that the key binding isn't reset to the pre-defined defaults.
Key binding checks for mouse wheel scrolling.
Fixed scroll texture model specials. Fixes boom specials 218 and 249.
Fixed light banding offset calculation in shader to account for when zNear is modified.
Fixed transfer specials that change flat from or to a sky texture.
Fixed upper/lower flood calculations for when the flat texture is a sky.

0.9.2.3

05 Nov 12:21
Compare
Choose a tag to compare

Fixed movement sound being cleared on perpetual crushers.
Fixed issue with movement sounds not being removed from queue past the max sound distance.
Fixed case where player weapon frames could slowtick with feature enabled.
Fixed issue where binding couldn't be cleared on keys in the key binding options.
Fixed chainsaw locking in A_Saw.
Fixed player weapon frame ticking that caused chaingun to have a one tick shorter firing duration on the first fire.
Fixed explosion calculation to match Doom's from PIT_RadiusAttack instead of using P_AproxDistance.
Fixed loading readonly pk3s.
Fixed nodebuilder to always use the full file path.
Fixed offset calculation for teleport fog.
Added missing NOSECTOR flag to teleport destination.

0.9.2.2

28 Oct 15:15
Compare
Choose a tag to compare

Fixed warp/idclev to function without mapinfo.
Fixed parsing error on bad characters in dehacked (fixes goodwad.wad).
Fixed chainsaw damage calculation.
Fixed monster hitscan damage calculations.
Fixed duplicate episodes with custom episode definitions.
Fixed flood fill check for the zero-index texture with custom texture definitions moving the index (AASHITTY).
Fixed misc1/misc to correctly set player weapon sprite offsets.
Fixed dehacked melee range to convert from fixed point instead of using an integer.
Forced player to clamp to surrounding sectors (fixes Phobos Anomaly Reborn E1M6).
Fixed issue with caching that could cause a texture to incorrectly pull the wrong image for a patch.
Fixed incorrect view position being passed to renderer when rendering transparent lines that could cause them disappear.
Fixed issue with lower texture calculation that would cause jitter when moving with sector.
Thing flags were changed and it will break saves from previous versions.

Add configuration option for changing offset for the gun sprite with full size hud.
Add autoscale option for hud that is on by default; will automatically scale minimal hud and text based on the resolution.
Implemented options menu with mouse support.
Significantly improved performance of monster movement and ticking routines.
Significantly improved sprite rendering performance.
Implemented slowtick option. Designed for slower systems to be able to play large slaughter type maps with thousands of monsters.

  • Enable: if slowticking is enabled.
  • Distance: the distance where monsters will start slowticking.
  • Chase failure skip count: The amount of times a monster will skip calling A_Chase if it failed to move in all directions.
  • Chase multiplier: The amount to multiply the ticks for A_Chase.
  • Look multiplier: The amount to multiply the ticks for A_Look.
  • Tracer multiplier: The amount to multiply the ticks for A_Tracer (revenant fireballs) or A_SeekTracer.

0.9.2.0 (0.9.2.1 w/linux fix)

06 Oct 19:37
Compare
Choose a tag to compare

Removed windows dependencies.
Upgraded to .NET 7.
Windows/Linux packages with runtime included. No .NET runtime install required. (Linux will require installing fluidsynth)
Optimized flood fill rendering. No longer uses stencil buffer and is significantly faster against all tested GPUs. Flood filling is now able to be changed and rendered in real time. Includes better emulation of vanilla flood filling cases. Note: flood filling hacks with lines that have the front/back sides as the same sector id are still not supported.
Separated static vertex data into it's own struct and shader. This optimizes rendering since most vertex data is static and removes unnecessary vertex properties and calculations in the shader.
Small optimizations for sprite rendering when building buffers and doing light lookups.

Fixed initialization issue on map loads after the first where transfer heights rendering was not being reset and may be incorrectly cached to upper/lower views.
Fixed teleport fog sprite locations to use velocity angle.
Fixed some boom specials (transfer floor/ceiling light, transfer heights) that are expected to work with tag 0.
Fixed sprite light lookup when in transfer heights sector.
Fixed transfer floor/ceiling light lookup for transfer heights sector.
Fixed side bars to render black instead of red when using virtual window dimensions.
Fixed 0 damage being applied that could cause a stack overflow with some dehacked mods.
Fixed check for moving objects on scrolling floor that caused teleport dest things to move.

0.9.1.6

23 Sep 10:15
Compare
Choose a tag to compare

Implemented optimized rendering for light level changes.
Added compatibility options and set through mapinfo. Support compatibility options with this update are:
compat_missileclip
compat_shorttex
compat_floormove
compat_nopassover
compat_limitpain
compat_notossdrops
Fixed check for radius damage and boss flag.
Fixed check for bounce flag and set owner in A_SpawnObject to match dsda.
Added check to early out of z movement for things on ground.
Fixed monster projectile attacks to use the bottom z position instead of center which caused slightly different z velocities.
Added underwater check for boom carry scroll special so that things not on ground can have their velocity modified. Fixed Wormwood EU MAP01.
Interpolate sprite level between floor and ceiling to match boom.
Fixed hud images to be able to pull from any namespace to match doom behavior.
Allow keys to be picked up multiple times.
Fixed boom silent teleport special to use compatibility flag to keep bugged behavior where the thing is set backwards.
Fixed vanilla lift specials to map to PlatDownWaitUpStayLip.
Fixed dehacked issue with decreasing ammo to use Doom's hardcoded amounts if they were not set.
Implemented monsters ignore each other option from dehacked.
Fixed randomized death ticks not being set.

0.9.1.5

04 Sep 16:53
Compare
Choose a tag to compare

Implemented transfer heights blocking line of sight.
Included check for \n in UMAPINFO intertext/intertextsecret to add newlines.
Moving sectors are now interpolated instead of being processed every frame. Results in higher FPS when maps have large amounts of moving sectors and cleaner code.
Cached OpenGL textures for sprite rotations to fix random stutter.
Fixed font alignment on HUD that caused certain fonts to be offset incorrectly.
Added sector friction flag check to allow change of sector friction. with Boom's 223 special.
Implemented wall bouncing for icy floors.
Fixed serialization for friction in saves.
Fixed weapon switch with A_CheckReload.
Moved player attack press check to A_WeaponReady so weapon firing is not potentially missed when A_WeaponReady is called less than every tick.
Render episode name text from mapinfo if no image is specified.
Render skill name text from mapinfo if no image is specificed.
Added configuration for rendering null textures (render.nulltexture) defaulted to false.
Fixed rendering issue with scrolling textures that have transparent pixels.
Fixed inverted sky rendering.
Fixed clamping check with moving sectors to match Doom's bugged behavior when shorting out when hitting a blocking line.
Removed all runtime allocations created during runtime. Improves performance to prevent garbage collection.
Input processing only processes on the game tick instead of every frame. Saves CPU when running at very high FPS values.
Fixed weapon switching when using mousewheel for upgraded OpenTK.
Render author from mapinfo on the intermission screen.
Fixed light level rendering for transfer heights sectors.
Fixed static render cache calculations when loading a game that was incorrectly using the player's current position.
Fixed setting a things Z when loading a game that could be incorrectly changed when linking to the world.
Refactored all code referencing System.Drawing to move towards linux compilation.
Added missing chain gunner lookups when processing dehacked.
Fixed destination offset for teleport line reverse boom special.
Fixed A_HealChase to correctly call A_Chase on failure.