21 December 2023: EDGE-Classic v1.37 released

New release of EDGE-Classic. Some of the new stuff includes:

+ Migration from COAL to Lua as the default scripting language
+ MPEG video support and a new DDF filetype: DDFMOVIE
+ Support for MUSINFO changer things (see the Doom Wiki for more info)
+ Sector Tag and Index based triggering of RTS scripts
+ A built-in IWAD selection dialog if multiple games are detected
+ Debugging and profiling tool integration
+ Support for Reality Adlib Tracker v2 modules
+ Font and option menu style improvements

      .... and more tweaks, bugfixes etc. (check out the changelog)

23 October 2023: EDGE-Classic v1.36 released

New release of EDGE-Classic. Some of the new stuff includes:

   - New PLAYER_ATTACK special to ensure vampire and other kill benefits regardless of "indirectness" of attack
   - DAMAGE.FLASH_COLOUR field added to customize pain effect
   - Can now define 3RD and 4TH attacks for a weapon (same syntax as SEC_ attack commands)
   - REFIRE_TO frame command added for more granular refire control
   - NO_SKILL_MENU boolean added to bypass skill select for mods with Quake-style difficulty selection levels
   - EXACT_ prefix added for ON_CONDITION checks
   - SET_PAINCHANCE frame command added for granular control of monsters restarting their pain animation
   - IMMOVABLE flag added to ignore effects of thrust regardless of mass
+ UDMF: New fields added to the "edge-classic" namespace:
   - sectors: lightcolor, rotationfloor, rotationceiling

      .... and more improvements, bugfixes etc. (check out the changelog)

22 September 2023: EDGE-Classic v1.35 released

New release of EDGE-Classic. Some of the new stuff includes:

+ "None" option added for "Blood Level" (formerly "Extra Blood") setting to reduce overall gore levels
+ Overhauled sky drawing for faux skybox skies
+ New console command: "openhome"; opens a file browser to EDGE-Classic's working directory
   - Added hud.rts_disable() function
   - New command: IGNORE_CROSSHAIR_SCALING = \
+ Implemented sector and level-wide fog options
+ New breakable wall, light wall, and texture autoscaling line types added
+ New colored fog and slippy/sticky friction sector types added
+ UDMF: New fields added to the "edge-classic" namespace:
   - linedefs: blockplayers, blocksight
   - sidedefs: scalex_top/mid/bottom, scaley_top/mid/bottom, offsetx_top/mid/bottom, offsety_top/mid/bottom
   - sectors: xpanningfloor/ceiling, ypanningfloor/ceiling, xscalefloor/ceiling, yscalefloor/ceiling, gravity, fadecolor, fogdensity
   - things: health, alpha, scalex, scaley, scale

      .... and more new commands, bugfixes etc. (check out the changelog)

12 June 2023: EDGE-Classic v1.34 released

New release of EDGE-Classic. Some of the new stuff includes:

+ Added WebGL platform support (https://edge-classic.github.io/play.html)
+ UDMF: Vertex slope support: Must define "zfloor" or "zceiling" for a vertex.
+ 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
   - 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"
+ STYLES.DDF: expanded control over [MAIN_MENU], [CHOOSE_EPISODE] and [CHOOSE_SKILL] menus.
   - 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: Restored savegame screenshot functionality
+ Implemented WAD-in-Archive support: Zip-compressed archives (.epk, .pk3, and .zip) are supported
+ 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
+ Console: New 'readme' command which ill search for a text file with a traditional readme name (readme.txt, readme.1st, etc)
+ Bot Deathmatch: New "Player Damage Resistance" option
+ New Scaling Options for Title/Intermission/Finale Assets
+ New Option Menu: Accessibility Options
   - View Bobbing
   - Reduce Flash
   - Automap: Keyed Doors Pulse
   - Automap: Keyed Doors Named
+ Boom support improved, especially Scrollers
+ UMAPINFO: Will fallback to other types of MAPINFO lumps if UMAPINFO is not present
   - The following lumps will be attempted: DMAPINFO, RMAPINFO, MAPINFO, ZMAPINFO
   - Only fields that are present in the UMAPINFO spec will be parsed from fallback lumps

      .... and more new commands, bugfixes etc. (check out the changelog)

25 February 2023: EDGE-Classic v1.33 released

New minor release of EDGE-Classic. Fixes and updates include:

- Fixed 1.32 secret sector fix not being preserved in save games; i.e. the same secret would increment the secret counter when re-loading the game
- Fixed jitter in Evil Eye and other animations
- Fixed sprite frame overrides in DDFIMAGE not applying if they were Doom formatted images
- Fixed SDL sound device frequency being allowed to be set far above intended values if OS doesn't report the ability to use 48kHz sample rate
- Fixed Boom tagged line effects also applying the effect to the control linedef (when a tag was present)
- Fixed Boom vector linedef scroll directions for angles other than 0/45/90
- Fixed Boom displacement scrollers not returning back to their exact original position
- Fixed Boom scrollers tied to permanently moving sectors (i.e., Door Open and Stay Open) being ineffective
- Fixed inanimate objects adhering to monster dropoff limits when being carried over a drop
- Fixed overzealous oofing when falling or bumping into a ceiling
- Doom2 Map05 bug fixed properly this time ;)
- Fixed some new DDFSTYLE additions (entry and cursor alignment, etc) not working as intended with the Episode Select menu
- Clip size was not being updated with RTS ReplaceWeapon and DDF weapon BECOME()
- Fixed items with the HOVER flag still hovering when time is stopped
- Fixed HUD and other non-game world animations unintentionally freezing during time stop
- Fixed ENDOOM bytes that happen to match the value of a newline character being intepreted as newline characters

- Improved model and unit rendering to thrash the GL state a bit less
- DDFSTYLE text styles can now have their own individual X_OFFSET and Y_OFFSET values,
giving more flexibility for menu item placement i.e. TITLE.Y_OFFSET or TEXT.Y_OFFSET etc
- Changed how LOSE_BENEFIT HEALTH is handled in RTS. Now it will simply subtract from current health and not
behave like DAMAGE_PLAYER(which reduces armour, causes pain states, respects immunity/resistence/invulnerable/immortal etc).
- "Crosshair Size" option in Video Options menu will now apply to both the standard crosshair and custom weapon crosshair states
(previously this only affected standard crosshairs)
- Monsters resurrected by Archviles will no longer count as kills.
- Replaced WebSID SID backend with cRSID for easier compilation and better performance
- Things no longer constantly trigger splashes when walking on a flat defined as LIQUID (and having an IMPACT_OBJECT defined).
They will only cause a splash when they step down onto the flat.
- Unsupported BEX INCLUDE directive for Dehacked downgraded from a program-ending error to a warning with an appropriate console/log message.
- Migrated from libXMP to Mod4Play (custom library) for portability/performance
- Only the "Big 4" tracker formats are supported now (IT/S3M/XM/MOD)
- Upgraded to AJBSP 1.04
- Added support for ZGL3 compressed lumps to AJBSP and EDGE-Classic's node loading routines to conserve cache folder space. ZGL3 will now
be the default node format.
- Replaced Gamma options with Sector Brightness for better results without affecting other windows on the same display

- Added support for MDL (Quake 1) model format
- Added support for KVX and KV6 voxel model formats
- Ported MD3 model support from EDGE 1.32 codebase
- New command: FALLPAIN_SOUND, which is the sfx to be played when the player is hurt from a big fall
- New command: MODEL_ROTATE = (integer), which for MDL/MD2/MD3/Voxels will rotate all vertices' x/y coordinates by the
given (positive or negative) number of degrees. Used to correct imported models whose rotations are wrong. Default is 0.
- New command: ROTATE_HUE = (integer), will rotate the hue of the given image while keeping other values the same. Valid range is -1800
to 1800, with a default of 0.
- C+- Interop: Can now retrieve and set individual vector elements with the VM_GetVectorX/Y/Z and VM_SetVectorX/Y/Z functions
- COALHUDS: Can now access individual vector elements with .x, .y, or .z
- Transition from GWA to XWA cache file format
- Improved organization of AJBSP-generated XGL/ZGL lumps
- Legacy GWA files will be purged from cache directory on startup

23 January 2023: EDGE-Classic v1.32 released

New minor release of EDGE-Classic. Fixes and updates include:

- Fixed a recently introduced bug which caused the Secrets Found % to not increment after finding the first one.
- Fixed player.use_inventory() consuming item without running the associated script if the script was already running.
- Fixed "Read This!" main menu item missing when Doom is current IWAD.
- Changed hardcoded finish/par time widths to prevent custom fonts from being clipped at 4:3 resolutions
- COALHUDS: new commands
   --hud.rts_isactive(tag): Returns 1 if the script "tag" is currently enabled, 0 if disabled.
   --hud.rts_enable(name): Will execute RTS script with matching tag, if one exists. This replaces previous COAL
     command "player.rts_enable_tagged(name)" which should be considered deprecated.
- DDFSTYLE: new text style - SELECTED
   --Uses all parameters that regular style font entries use (SELECTED.FONT, SELECTED.SCALE, etc)
   --Will only apply to the currently selected/highlighted menu item
   --If not defined, will fall back to previous behavior for backwards compatibility
- DDFSTYLE: new command
   When set to true, will honor cursor image's offsets even if they cause misalignment with menu entries. Default value is false.
- DDFSTYLE: Menu items that are images instead of fonts will now also apply the font colormap setting in that menu's style entry (if defined)

20 January 2023: EDGE-Classic v1.31 released

New minor release of EDGE-Classic. Fixes and updates include:

- Fixed aspect ratio changes not being respected in some circumstances
- Fixed sound volume slider not being respected in some cases
- Fixed aspect ratio of psprites when HUD.render_world doesn't use the entire screen height
- Fixed secret sector discovery completely clearing the sector special afterwards (this broke generalized sector specials)
- Doom2 MAP05 bug fixed

15 January 2023: EDGE-Classic v1.3 released

New release of EDGE-Classic. Major new features include:

- DSDHACKED support
- Doubled framerate mode (70fps vs 35fps)
- Vastly improved Boom support
- OPL emulated playback of MUS and MIDI: Can use GENMIDI lumps (Default) or external *.op2 instrument bank files
- New music formats supported: FLAC, VGZ (compressed VGM), IMF, XMI/RMI/GMF/EA MIDI Formats
- TrueType fonts support(TTF and OTF)
- Better MBF support
- ENDOOM screen shown on exit.
- Initial MBF21 support(mainly map-related)
- Vastly improved deathbots
- Performance options for laggy maps
- Improved screen resolution modes
- Menu option to control view and weapon bobbing/swaying
- Support for International characters in filepaths and arguments
- REKKR supported as IWAD
- New DDF and COAL commands
- New StopTime powerup
- New Erraticism gameplay mode:
   Time will only advance when the player moves or fires ("SuperHot")
   Player's momentum will be preserved if in mid-air/jumping, otherwise it will be lost when the movement keys are released
   Can hold the Use key to advance time without having to move or fire (helpful when waiting for lifts, etc)

and many more new commands, bugfixes etc. (check out the changelog for a full list)

06 September 2022: EDGE-Classic v1.21 released

New release of EDGE-Classic. Major new features include:

- Fixed SFX loaders treating all sounds as Mono regardless of original sound format
- Fixed PWAD PLAYPAL lumps not properly being applied to images
- DEHEXTRA Support
- UDMF 1.1 Support. The following UDMF namespaces are currently supported: Doom, Heretic, ZDoomTranslated
- Module Music:
    libxmp-lite music player replaced with libmodplug, providing far better performance and load times, with all of the following formats now supported:
    MOD, S3M, XM, IT, 669, AMF (both of them), AMS, DBM, DMF, DSM, FAR, MDL, MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM
- Partial UMAPINFO support
- Heretic/Blasphemer support: vastly improved. Now 100% completable from start to finish.
- ENDOOM Support
- AJBSP updated to produce only XGL3 nodes compatible with both binary/UDMF map formats
- Improved handling of PWADs with custom status bars that aren't widescreen
- DP* sound lumps (PC speaker sounds) in the DOOM IWADs are now usable via DDFSFX
- "PC Speaker Mode" option added to Sound Options menu. Only specific SFX will be used, and the MIDI player will switch to an appropriate soundfont.
Imitation PC Speaker sounds added for Blasphemer, Heretic, and HacX
- "Pistol Starts" option added to Gameplay Options menu (default Off). Will force player to default state upon starting a new level. Works with all supported IWADs
- New font type: IMAGE; an image with a 16x16 ASCII character layout with either a transparent or solid color background
- Improved STYLES.DDF functionality across console and menus; backgrounds images/colors and translucency are no longer hardcoded
- Custom standalone IWADs can be created by adding an EDGEIWAD lump to the WAD. This will allow it to pass the automatic IWAD detection
- Added 3 new BREAKABLE glass line types:
   [830] Breakable Glass: monsters can see through it and can break it
   [831] Breakable Glass: monsters: cannot see through it but can break it
   [832] Breakable Glass: monsters: cannot see through it and cannot break it
- Added 6 new coloured sector types:
   [4471] EDGE Blue Hue
   [4472] EDGE Green Hue
   [4473] EDGE Red Hue
   [4474] EDGE Yellow Hue
   [4475] EDGE Purple Hue
   [4476] EDGE Grey Hue

and many more new commands, bugfixes etc. (check out the changelog)

09 April 2022: EDGE-Classic v1.1 released

New release of EDGE-Classic. Major new features include:
-Inventory system
-More music types (including tracker and even C64 SID!)
-Dynamic reverb for SFX
-Autoload folders
-Liquid swirl FX

and more new commands, bugfixes etc. (check out the changelog)

18 December 2021: EDGE-Classic v1.0 released

We've made so many changes to our fork of EDGE 1.35 we've decided to rename it to EDGE-Classic.