Skip to content

EDGE-Classic 1.34

Compare
Choose a tag to compare
@dashodanger dashodanger released this 12 Jun 09:43
· 1170 commits to master since this release

Note for Users Migrating from Version 1.33

Due to the migration from WAD to EPK for the base/game-specific definitions and content as well as the conversion of many settings that were previously integers to floating-point values, it is HIGHLY recommended to extract this release into a new folder and let it create a new configuration file!

In addition, unless Portable Mode is enabled (see changelog below), logs/screenshots/cache files will now be written to an appropriate location in the user's home directory. An example of this for Windows would be C:\Users<username>\AppData\Roaming\EDGE-Classic. The exact path will be logged as a console message and can be checked after launching the game.

Available Downloads

edge-classic-win64.zip - 64-bit MSVC build for Windows Vista and up. May require installing the Visual C++ Redistributable from Microsoft's download page.
edge-classic-win32.zip - 32-bit MinGW build suitable for Windows XP and up. Pentium 4 minimum CPU required. Has all required libraries included.

ModDB Addons Page

https://www.moddb.com/mods/edge-classic-add-ons/addons

CHANGELOG for EDGE-Classic 1.34 (since EDGE-Classic 1.33)

New Features

  • Added WebGL platform support (https://edge-classic.github.io/play.html)

  • UDMF:

    • Vertex slope support: Must define "zfloor" or "zceiling" for a vertex.
    • Applies effects to any triangular sector
    • Applies effects to rectangular sectors that fulfill the following conditions:
      • Only two out of the four vertices utilize zfloor/zceiling values
      • The two vertices must be part of the same line segment
      • The zfloor value must be identical between the two vertices for a floor slope
      • The zceiling value must be identical between the two vertices for a ceiling slope
      • The floor and ceiling slope for a rectangular sector can use different vertices as long
        as they fulfill the other conditions
  • Added GLES2 rendering backend using GL4ES (https://github.com/ptitSeb/gl4es)

    • Supports rendering with Direct3D, Vulkan, and Metal using ANGLE
  • WEAPONS.DDF: 10 new action commands. Behave identically as the things.ddf actions of the same name

    • ZOOM
    • SET_INVULNERABLE
    • CLEAR_INVULNERABLE
    • MOVE_FWD(num)
    • MOVE_RIGHT(num)
    • MOVE_UP(num)
    • STOP
    • TURN(angle)
    • TURN_RANDOM(angle)
    • MLOOK_TURN(angle)
  • Portable install option

    • If the program is launched with "-portable" or "edge-classic.cfg" is found in the same directory as the program, files and folders will be written
      to that directory instead of a location in the user's home path
  • "Outdoor Culling Fog Color" option added to Performance Options menu

    • Options are "Match Sky", "White", "Grey" and "Black"
    • Default is "Match Sky"
  • Customizable branding options

    • New "branding.cfg" file present in game directory will control values like folder names, window titles, configuration and logging filenames
    • Will default to hardcoded values if file is missing
  • STYLES.DDF: expanded control over [MAIN_MENU], [CHOOSE_EPISODE] and [CHOOSE_SKILL] menus.
    Both graphic and text menus now behave coherently (i.e. scaling now applies to both graphics and text).

    • TRANSLUCENCY now works with menu items and cursors
    • SCALE now works with menu items
    • COLOURMAP now works with menu items
    • HEADER.xxxx and TITLE.xxxx commands now affect graphics like "Choose Skill"
    • ENTRY_ALIGNMENT=CENTER now properly centers items
  • IMAGES.DDF: Added new SATURATION and BRIGHTNESS commands

    • Valid ranges for both are 0-255
    • Will affect HSV Saturation and Value color components for the specified image
  • COALHUDS: new commands

    • player.sector_light(): Returns the light level of the sector the player is currently in.
    • player.sector_floor_height(): Returns floor height of the sector the player is currently in.
    • player.sector_ceiling_height(): Returns ceiling height of the sector the player is currently in.
    • player.is_outside(): Returns 1 if the ceiling of the sector the player is currently in is Sky.
    • hud.get_image_width(image : string): Returns width of an image.
    • hud.get_image_height(image : string): Returns height of an image.
    • hud.map_author(): Returns the map author name, if not null
  • Load/Save Menu Rewrite

    • Will now use a dedicated and unified DDFSTYLE entry for both menus
    • Restored savegame screenshot functionality
  • Implemented WAD-in-Archive support

    • Zip-compressed archives with the extensions .epk, .pk3, and .zip are supported
    • Added support to AJBSP for building nodes against an in-memory WAD
  • Implemented EPK/Folder Mount system

    • EPKs can contain images, scripts, WADs and other resources (similar to PK3, PKE, and the like from other source ports)
    • Folders and EPKs are treated identically as far as loading and file/folder layout requirements
    • Flexible structure and file naming conventions; details can be found in the "docs/EDGE Pack Strucutres and Usage.txt" file
    • Note: Filenames without extensions that are in an EPK or mounted folder will be ignored
  • Console: New 'readme' command

    • Will search for a text file with a traditional readme name (readme.txt, readme.1st, etc)
    • If none found, will look for a text file with the same name as a WAD or archive file in the load order
      (this is a common practice for /idgames releases)
    • If there is still nothing found, will look for WADINFO or README lumps
  • Bot Deathmatch: New "Player Damage Resistance" option

    • Found in the Bot Match Settings Menu before starting a match
    • Offers a flat damage resistance adjustable from -90% to +90%
    • Only affects damage whose source is an enemy bot; sources such as
      environmental hazards and self-inflicted damage will bypass this setting
  • New Scaling Options for Title/Intermission/Finale Assets

    • Normal: Will draw assets at their original resolution and ratio
    • Zoom: Will preserve ratio but scale image until both horizontal and vertical space are filled
      • Top of image is pinned to top of screen in order to have the best chance of perserving title screen text
    • Stretch: Will stretch image to fill horizontal and vertical space without regards to the original image ratio
    • Fill Border: Will fill space not occupied by the original image with a zoomed in, gaussian-blurred version of the same image
      • This is similar to the border fill for "portrait" style videos
  • New Option Menu: Accessibility Options

    • Current Items:
      • View Bobbing - This is the already existing "Bobbing" option that has been moved from Gameplay Options
      • Reduce Flash
        • Provides an alternate means of displaying teleport fog and palette/colormap effects (invuln, pain, etc).
        • GunFlash actions add no additional sector light with this enabled.
        • Strobing, blinking, and 'fire flicker' light effects are replaced with giving the sector an average light level between
          the highest and lowest neighboring light levels.
      • Automap: Keyed Doors Pulse - Makes locating locked doors on the automap easier.
      • Automap: Keyed Doors Named - Displays name of required key for a locked door to help colorblind users.

General Improvements

  • Changed AJBSP to open loaded IWADs/PWADs in read mode as an additional means of ensuring original file
    integrity (was previously set to open in append mode despite not writing nodes to the original files)

  • Added 'udmf_strict' CVAR (off by default until "Edge" namespace is finalized) to control whether or not loading a UDMF map with an unsupported namespace will generate an error.

  • Draw Distance Culling will no longer prevent the skybox from being drawn; maximum distance is now adjustable in the Performance Options menu

  • Draw Distance Culling's BSP culling math has been reworked and offers far better FPS savings versus the previous method in applicable environments

  • COAL:

    • Color and Hue averaging functions have been reworked to allow for a specific portion of an image to be sampled. Function definitions are now as follows:
      • hud.get_average_color(image : string, optional from_x, optional to_x, optional from_y, optional to_y)
      • hud.get_lightest_color(image : string, optional from_x, optional to_x, optional from_y, optional to_y)
      • hud.get_darkest_color(image : string, optional from_x, optional to_x, optional from_y, optional to_y)
      • hud.get_average_hue(image : string, optional from_x, optional to_x, optional from_y, optional to_y)
  • WEAPONS.DDF:

    • Y_ADJUST parameter will now affect weapons that use models instead of sprites
  • THINGS.DDF:

    • FALLPAIN_SOUND will now account for whether or not the player is invulnerable to damage at the time of the fall
  • LINES.DDF:

    • The special values '+' and '-' for the FLOOR.TEXTURE and CEIL.TEXTURE parameters can now be appended with either "changezero" or
      "changetexonly" to correspond to the Boom Tx and Tx0 generalized types
  • New directories, logfiles, etc, will now be written to an appropriate location in the user's home directory by default (AppData, etc, depending on OS). Portable usage is covered in "New Features"

  • "PC Speaker Mode" Sound Option no longer requires a restart to toggle; when On it will always use Fluidlite + the Bonkers for Bits soundfont when playing MIDI music

  • For the RTS REPLACE_WEAPON command and the WEAPONS.DDF BECOME() action: If current ammo is bigger than the new clip size, reduce current ammo to new clip size.

  • Stats screen item layout improved so that long map names are not truncated or overlapping level score/stats

  • Bot Skill will now affect bot movement speed, strafing frequency, turn speed, and angle/confidence required to fire on target

    • Two additional skill levels added; Very Easy and Very Hard
  • UMAPINFO: Added support for "author" parameter from the UMAPINFO 2.2 spec

    • AUTHOR parameter also added to LEVELS.DDF
    • If a map author value is present, this will be displayed in the automap view by default
  • UMAPINFO: Will fallback to other types of MAPINFO lumps if UMAPINFO is not present

    • The following lumps will be attempted in the order listed, stopping and using the first one found:
      • DMAPINFO
      • RMAPINFO
      • MAPINFO
      • ZMAPINFO
      • Only fields that are present in the UMAPINFO spec will be parsed from fallback lumps
        • A warning message will be printed to the log and console to inform the user that a fallback lump has been used
  • UMAPINFO: Added support for Boss Actions, including the "clear" directive

    • The 'map07special', 'baronspecial', 'cyberdemonspecial', and 'spidermastermindspecial' from R/Z/MAPINFO are treated as Boss Actions
      • Only hardcoded actions (exitlevel, opendoor, lowerfloor, and killmonsters) are supported
      • Unlike UMAPINFO, these specials will not clear existing death triggers from the map in question
  • Improved Controller Support

    • Joystick input precision is greatly improved
    • Deadzones can now be adjusted on a per-axis basis
    • Improved Axis Test will now show real-time values for all axes in order to better identify/tune them
    • If only one controller is present, the program will automatically select it for use instead
      of requiring the joystick index to be changed
  • All option menu sliders and associated CVARs converted to use floating point values to reduce confusion and offer more options for precision

    • CVARs can still be manually set outside of the specified slider limits unless otherwise clamped
  • 'dogs' command support for non-Doom IWADs improved

    • Heretic and Blasphemer will summon chickens
    • REKKR will use an arctic version of the MBF dog
  • Fluidlite parameters adjusted to fix pitch issues with various soundfonts

    • s_fluidgain CVAR also added to allow manual control over gain (clamped in the 0.0-2.0 range)
  • FMMIDI default main volume increased to better match Fluidlite/YMFM

  • Automap now shows a dagger symbol for the player for Heretic and Blasphemer.

Bugs Fixed

  • Fixed incorrect height for Doom 2 Thing 53.

  • Fixed autoload folder items paths being prepended with the autoload folder path itself
    (cleanup from prior method of using PATH_Join)

  • COAL player.query_weapon() would not return ZOOM FACTOR in some cases.

  • Fixed CVAR value strings with spaces not being processed as intended

  • Migrated config file parser to EPI::Lex, fixing a potential buffer overflow in the previous method

  • Fixed -deathmatch startup parameter not being respected

  • Fixed intermissions being played when starting a deathmatch or using the -warp parameter on startup

  • Fixed incorrect positioning of some widescreen status bars

  • Fixed health being picked up when player health was being shown as 100%

  • Fixed armour being picked up when player armour was being shown as 100%

  • More fixes for Boom scroller behavior and physics under various circumstances

  • Backported upstream AJBSP memory leak and integer overflow fixes

  • Fixed offsets and DDFIMAGE specials for user-defined Doom formatted images not being preserved

  • Fixed offsets for various liquid splash images

  • Fixed BFG Edition IWADs not being recognized as valid

  • Fixed console CTD caused by non-printable characters being accepted from DDFLANG

  • Fixed (remote) possibility of numeric RTS script tag and hashed string RTS script tag values colliding

  • Fixed non-hostile jackalope in REKKR having flipped sprites

  • Fixed REKKR projectile attacks not having smoke puffs when appropriate

  • Fixed non-player hitscan attacks failing to activate linetypes 24, 46, and 47

    • This caused a softlock on REKKR E1M9 as certain doors/walls that relied on a
      hitscan-firing dummy would never be activated
  • Fixed explosion sources not being able to damage themselves

    • This led to a softlock on DBP58 MAP10 as a wall of continuous explosions created
      by Dehacked-modified things would never be removed
  • Fixed accidental clearing of OPL registers when the 'Pause' key was used

  • Added address sanitizing support and fixed a number of leaks and other memory issues

  • Fixed all warnings under MSVC compiler

  • DEHACKED: some intermission texts were being truncated. Bumped up character limit

  • Fixed exit velocity not using intended values when leaving swimmable water

  • Fixed floor/ceiling texture/type changer behavior