Releases: edge-classic/EDGE-classic
EDGE-Classic 1.38
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.. Expected SHA256 hash 20F5066C4289C6E227028B8C55DE71BFAFD459B33A7CB8E2464795333FEBF75E
edge-classic-win32.zip - 32-bit MinGW build for Windows XP and up. Has all required libraries included. Minimum Pentium 4 CPU required. Expected SHA256 hash 4FABC4AE11F00E6F53FF7E9A6AB44677E968673598AD767F8AD002953D6489E7
ModDB Addons Page
https://www.moddb.com/mods/edge-classic-add-ons/addons
New Features
- "UI Options" menu added, with some new options and others relocated from elsewhere.
- New options:
- Show ENDOOM On Quit: Yes by default; 'endoom' console command will work regardless of this setting
- Confirm Quickloads: On by default; if disabled will skip confirmation prompt when quickloading
- Confirm Quicksaves: On by default; if disabled will skip confirmation prompt when quicksaving
- Max Pickup Messages: 4 by default; governs how many item/ammo/etc pickup messages to display simultaneously
- New options:
- IWAD support added for Chex Quest 3: Vanilla and Chex Quest 3: Modding (both can be found at https://melodic-spaceship.neocities.org/chex3v/downloads)
- MBF dog sprites from CQ3 Vanilla also added to original Chex Quest 1 base
- IWAD support added for Harmony Compatible (https://www.doomworld.com/idgames/levels/doom2/Ports/g-i/harmonyc)
- Support for the original Harmony release remains unchanged
- Console: New commands
- cd : Allows switching directory contexts for the ls/dir, exec, pwd, and cat/type commands. Valid options are 'game' and 'home'
- Note that when running in portable mode these will resolve to the same path.
- pwd : Print real path to either home or game directory
- As above, in portable mode these are the same thing.
- cd : Allows switching directory contexts for the ls/dir, exec, pwd, and cat/type commands. Valid options are 'game' and 'home'
- COALHUDS/LUAHUDS: New commands
- hud.lookup_LDF(languageEntry) which will return the language.ldf entry
- hud.game_skill() which will return a number from 0 to 4 reflecting the current game skill
- hud.get_text_width(string,size) will return the width in pixels of the given string, taking into account the current font
- LUAHUDS-specific commands:
- Several functions which will return a table containing useful information:
- game.info()
- map.info()
- sector.info()
- Several functions which will return a table containing useful information:
- UDMF: Linedef 'alpha' field now supported; governs translucency of associated sidedef surfaces
- UDMF: Sector 'alphafloor' and 'alphaceiling' fields now supported; governs translucency of associated planes
- GAMES.DDF: New command
- DEFAULT_DAMAGE_FLASH = (hex) which will set damage flashes from all sources to this color unless specified otherwise in an individual DDFATK entry.
- THINGS.DDF:
- New Powerup type: POWERUP_TRANSLUCENT
- Functions identically to POWERUP_PARTINVIS, but uses translucency instead of the Doom "fuzzy" effect
- POWERUP_TRANSLUCENT and POWERUP_PARTINVIS are mutually exclusive
- New Special flag: TRIGGER_TELEPORTS which will allow this thing to use teleports even if NO_TRIGGER_LINES is set. i.e. you want a dog that cannot open a door, but can teleport for example.
- New Powerup type: POWERUP_TRANSLUCENT
- New CVARs/params:
- "use_menu_backdrop" which governs the use of the auto-generated monochrome backdrop for option menus
- "fliplevels" allows you to play a mirrored version of the map. All textures will also be mirrored.
- New "flipme" cheat code also allows this to be toggled during gameplay
- STYLES.DDF: able to add a dropshadow effect to TEXT, ALT, TITLE, HELP, HEADER or SELECTED strings via 2 new sub-commands
- .DROPSHADOW_COLOURMAP = [colourmap]; //"TEXT_BLACK" colmap generally looks good with everything
- .DROPSHADOW_OFFSET = [float]; //smaller values like 1 or 2 are best
- STYLES.DDF: ENTRY_ALIGNMENT will now work with the MESSAGE style (pickup messages)
- Values other than "LEFT" or "RIGHT" will center the messages as usual
- Only X alignment can be altered; pickup messages will always be at the top of the screen
- ATTACKS.DDF:
- BLOOD=[things.ddf entry] command added to allow overriding how the monsters bleeds. Any monster hit with this attack will use this blood object instead of its own.
General Improvements/Changes
- Optimized GL state caching and other rendering-related factors to improve performance with the current renderer
- Reduced CPU load when frame limiting (i.e., regular 35/70FPS modes)
- Reduced renderer near clipping distance to prevent graphical oddities when traversing in and out of deep water
- Removed voxel loader and rendering functions due to performance concerns
- Improved sector fogwall appearance/coverage when adjacent to detail slopes
- Added one-time startup message/warning to user if loading a configuration file from a previous version of the program
- Disabled default support for Strife (it is now a compile-time option for developers)
- Limited fallback IWAD selection dialog to 8 options, even if more valid games are found.
- This is to account for a hardcoded SDL limitation for some backends
- Tweaked MIDI/OPL default gain levels to be more consistent with each other
- FIRST and LAST fields in anims.ddf now work with TX textures
- Autoswitch to a new weapon works even if the new weapon's clip is not full
- Restore mipmapping as independent menu option
- Stacked pickup messages now allow multiple messages on screen simultaneously. Number of simultaneous messages can be changed from options menu
- Keylocked doors and Cheat messages moved to middle of the screen (same as "Found a Secret" message)
- Updated Blasphemer base files to support the latest Catoptromancy fork (https://github.com/Catoptromancy/blasphemer/releases/tag/006 as of 1.38)
- Renamed "Autoaim" menu item to "Aim Assist" and added/changed behavior of possible values:
- Vertical+Horizontal: Previously "On"; no changes to behavior.
- Vertical+Horizontal+Snap To: Same as above, but will snap player view to be centered on the current target when firing.
- Vertical: Previously "Mlook"; horizontal assist component removed.
- Vertical+Snap To: Same as above, but will snap player view to be centered on the current target when firing.
- Off: Behavior and name unchanged.
- Developers:
- Support for exceptions/RTTI removed from program with compiler flags/options set accordingly
- Primesynth swapped back to Fluidlite for MIDI playback due to Primesynth's heavy reliance on exceptions
- Use of C++17 filesystem functions removed and replaced with Windows/POSIX specific functions
- All uses of streams replaced with EPI file or memory I/O
- Superfluous typedefs removed in favor of standard types (i.e., uint8_t instead of byte, etc)
- Simple macros converted to either inline functions or constexpr values as appropriate
- Remaining macros use consistent naming scheme (EDGE_, DDF_, EPI_*, etc)
- Consistent code styling and formatting performed on all files under the /source_files project folder
- Removed support for absolute paths and path traversal with '..' for the exec, ls/dir, and cat/type console commands
- Removed support for path traversal with '..' when searching for or opening pack files
- Support for exceptions/RTTI removed from program with compiler flags/options set accordingly
- JUMP_LIQUID() action now only triggers if the object is touching the floor
- Savegame screenshots will properly match the original aspect ratio in which they were taken when scaling
- Save game info/description strings will be truncated instead of extending beyond the box that contains them
Bugs fixed
- Fixed sector fogwall check producing black 0% alpha fog walls for otherwise unfogged sectors
- Fixed Autoscale texture linetypes(855,856,857) and Brightwall(850) being USEable (repeatedly) by the player.
- Fixed DDFLEVEL fog density using wrong multiplier when being applied to sectors
- Fixed DDFLANG entries not being applied to Option Menu entry names
- Fixed several factors preventing standalone games using the EDGEGAME lump/file from loading
- Fixed BOOM Colourmaps with lump name collisions potentially having assertion errors on load
- Fixed MBF dog replacement sound lumps not overriding the stock OGG files
- Added entries for multiple missing BEX strings
- Fixed Boom all-key door failure messages not distinguishing between whether or not 3 or 6 keys are required
- Fixed Dehacked code pointer entries with trailing spaces not matching defined actions
- Fixed frames with a valid '0' rotation sprite still using other rotations if found elsewhere in the load order
- Fixed UDMF 'ypanningfloor' and 'ypanningceiling' using inverted values.
- Fixed COAL/Lua functions hud.get_image_width() and hud.get_image_height() not returning 0 if image does not exist.
- Fixed multiple RTS scripts with the same tag not running simultaneously: we were only running the first one basically.
- Fixed bot automap arrows being drawn in deathmatch; reinstated disabling of automap cheats when in deathmatch
- Fixed raw flats exported from SLADE (.raw extension) from being recognized and loaded properly when in an EPK/folder
- Fixed erratic view height change when rising from a crouch while standing on a flat with the SINK_DEPTH DDF special
- Fixed quicksaves not correctly updating the save screenshot for the relevant slot
- Fixed "Press Y To Quit" message on exit not using DDFLANG value
- Fixed intermission text screens advancing too early if a sufficiently high TEXT_WAIT value was not present
- Fixed NO_RESPAWN special in things.ddf being ignored
- Fixed CTD when using a LOAD_SAVE_MENU DDFSTYLE definition that did not have an ALTERNATE text style defined
- Fixed text scaling not being used when rendering non-ENDOOM quit messages
EDGE-Classic 1.37
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 for Windows Vista and up. Has all required libraries included.
ModDB Addons Page
https://www.moddb.com/mods/edge-classic-add-ons/addons
New Features
- Added support for Lua as the default scripting language
- Includes a COAL compatibility layer to ease porting
- Ported DOOM, Heretic, Blasphemer, and Harmony stock scripts to use Lua
- Script debugging capabilities are included (https://github.com/slembcke/debugger.lua)
- COAL, for the time being, will still be instantiated if a PWAD or external pack contains a COALHUDS file
- Added support for MPEG video playback
- Files must use MPEG1 video and MP2 audio for proper decoding
- New DDF filetype added: DDFMOVIE/MOVIES.DDF
- MOVIE_DATA = <LUMP or PACK>:<lump or packfile name>
- Defines type and location/name of movie file
- SPECIAL = <special command list>
- MUTE is currently the only special and will suppress audio for the movie
- SCALING = <AUTO/NONE/ZOOM/STRETCH>
- AUTO: The default option; will fit the movie to the display as much as possible while keeping aspect ratio in mind
- NONE: Will not adjust the dimensions of the movie at all, even if this causes portions of it to be unviewable
- ZOOM: Will scale the movie's height to match the height of the display; sides of the movie may be clipped
- STRETCH: Will match the movie's dimensions to the display without preserving aspect ratio
- MOVIE_DATA = <LUMP or PACK>:<lump or packfile name>
- DDFGAME: TITLE_MOVIE=<movie definition> command added
- Movies will always play before any defined TITLE_GRAPHIC entry in the same definition
- DDFLEVL: PRE.MOVIE=<movie definition> and POST.MOVIE=<movie definition> commands added
- Text will always be printed first, followed by movie playback, followed by any defined graphics
for a DDFLEVL PRE/POST entry
- Text will always be printed first, followed by movie playback, followed by any defined graphics
- RSCRIPT: PLAY_MOVIE <movie definition> command added
skip_intros
CVAR added to disable movies that play as part of a title sequence if desired- Default is 0 (off)
- Any playing movie may be skipped by holding a mouse/keyboard/gamepad button for one second
- A skip progress indicator will be displayed at the bottom of the screen
- Added support for MUSINFO-based music changer things
- Uses same numbering and methodology as detailed in https://doomwiki.org/wiki/MUSINFO
- Added simple IWAD selection dialog window if multiple valid IWADs are found on startup
- Previous "best choice" scoring system removed
- RSCRIPT:
- New sector-based trigger conditions (alternative to using radii)
- SECTOR_TRIGGER_TAG <tag>: Script will trigger once any sector with this tag is entered
- SECTOR_TRIGGER_INDEX <index>: Script will trigger once the sector with this index (as viewable via map editor) is entered
- New sector-based trigger conditions (alternative to using radii)
- Added support for Tracy frame profiler (https://github.com/wolfpld/tracy)
- Added frame metrics for runits, wall/planes, things, and light/glow iterators which can also be displayed with: debug_fps 3
General Improvements/Changes
- "GMGSx" (Default.sf2) and "microGM" soundfonts removed for licensing/copyright issues
- "sf_GMbank" soundfont added as the new Default.sf2
- "16-Bit Game Station" soundfont added as replacement for microGM
- "DMXOPL" instrument bank removed for licensing/copyright issues
- Replaced with fully free variant from the Freedoom project
- YMFM OPL emulator replaced with Opal from Reality Adlib Tracker
- RAD-format modules (version 2) are now supported in addition to regular OPL MUS/MIDI/IMF playback
- libVGM removed
- gzip component of miniz also removed (was only used to decompress VGZ files)
- Alt+Enter will toggle between fullscreen and windowed modes
- If toggling into windowed mode, the cursor will be released
- Z/R/D/MAPINFO parsing removed in order to focus on better validating UMAPINFO and adherence to its standards
- Updated default console and Options/Load/Save menu fonts
- Improved scaling and sampling quality of TrueType fonts at varying resolutions
- Improved kerning and sizing when drawing console text with TrueType fonts
- Option/Load Game/Save Game menu backgrounds will, by default, be a grayscaled version of the first valid title image
- DDFSTYLE custom backgrounds for these menus are rendered afterwards to account for tinting or other desired effects
- Removed randomising from IMPACT_OBJECT and EFFECT_OBJECT spawning.
- Doom Builder 2 Configuration files added, courtesy of akaAgar (#579)
- Formatted EDGE Classic sources to have consistent style and included Clang formatting configuration
- Default Purple and Black splash objects added
- RSCRIPT:
- START_MAP directive will no longer clear existing scripts for the map in question
- #CLEAR_MAP <mapname> directive added for granular clearing of map scripts
- "Zoom" and "Stretch" choices removed from the "Title/Intermission Scaling" menu option
Bugs fixed
- Fixed UMAPINFO entries with no sky defined and past the range of stock levels causing a CTD
- Removed sector fog color check that was causing the HOM debugging texture to appear even with debug_hom set to 0
- Fixed A_CloseShotgun2 frame only playing the DBCLS sound and not calling A_Refire as well
- Fixed custom Dehacked weapons that use the chainsaw attack not playing the SAWFUL sfx when attacking (regardless of hitting a target)
- SKULLFLY attacks that cause zero damage no longer make victim enter painstate
- Fixed Nightmare/Fast Monster state duration reduction for monsters with a value for the 'FAST' parameter
- Speed in fast mode is now governed by the 'FAST_SPEED' parameter in all cases, instead of using 'FAST' as a multiplier against the base speed
- Fixed calculation of scroller push forces when multiple scrollers affect the same mobj
- Fixed mirror and portal issues with GLES2 renderer
- Fixed most compiler warnings under GCC/Clang
- Fixed custom PLAYPAL/palettes not being applied to the TEXTURE image class
- Fixed the "Reset to Defaults" menu option not properly resetting smoothed or upscaled images
- Fixed IWADs being dragged-and-dropped onto the program executable being treated as PWADs
- Fixed memory leak involving detail slope creation
- Fixed the "Blood Level" gameplay option defaulting to "Extra"
- Fixed inconsistent menu item width when non-default text scaling was used
- Fixed incorrect Boom ANIMATED and SWITCHES lump parsing causing garbage values to be entered into the DDFANIM conversion
- Fixed CHOKE_DAMAGE being applied during extra rendering tics
- Fixed malformed Eureka configuration file
- Fixed "Fill Border" Title/Intermission scaling option not working for all display modes
- Added corrected Blasphemer/Heretic tome and wings graphics to prevent distortion of the spinning "activated" images
EDGE-Classic 1.36
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
New Features
-
ATTACKS.DDF:
- DAMAGE_UNLESS_BENEFIT and DAMAGE_IF_BENEFIT subcommands added
- Can be used anywhere that DAMAGE is used (sectors, attacks, etc)
- DAMAGE.DAMAGE_UNLESS_BENEFIT: Player will take damage unless they have at least one of the benefits listed
- DAMAGE.DAMAGE_IF_BENEFIT: Player will take damage if they have at least one of the benefits listed
- Attack special "PLAYER_ATTACK" makes attack behave as if originating from the player, even if
it's an indirect secondary attack i.e. the player gets his VAMPIRE health and KillBenefits. - DAMAGE.FLASH_COLOUR field added (Courtesy of akaAgar - #576)
- Allows a custom color to be used as the pain effect when a player is hit by this damage type
- Can be used to emulate effects like Hexen's cold/poison damage
- DAMAGE_UNLESS_BENEFIT and DAMAGE_IF_BENEFIT subcommands added
-
WEAPONS.DDF:
- Can now define a 3RD and 4TH attack. Equivalent DDF syntax to SEC_xxx used for second attack
- DDF Fields:
- 3RD_ATTACK, 3RD_AMMOTYPE, 3RD_AMMOPERSHOT, 3RD_CLIPSIZE, 3RD_AUTOMATIC, 3RD_SPECIAL
- 4TH_ATTACK, 4TH_AMMOTYPE, 4TH_AMMOPERSHOT, 4TH_CLIPSIZE, 4TH_AUTOMATIC, 4TH_SPECIAL
- DDF States:
- 3RD_ATTACK, 3RD_RELOAD, 3RD_DISCARD, 3RD_WARMUP, 3RD_FLASH
- 4TH_ATTACK, 4TH_RELOAD, 4TH_DISCARD, 4TH_WARMUP, 4TH_FLASH
- DDF Actions:
- 3RD_SHOOT, 3RD_REFIRE, 3RD_NOFIRE, 3RD_NOFIRE_RETURN, 3RD_CHECKRELOAD, 3RD_FLASH
- 4TH_SHOOT, 4TH_REFIRE, 4TH_NOFIRE, 4TH_NOFIRE_RETURN, 4TH_CHECKRELOAD, 4TH_FLASH
- For consistency, all the old SEC_xxx ddf commands can also be used with 2ND_xxx instead
- i.e. 2ND_AMMOTYPE can replace SEC_AMMOTYPE
- DDF Fields:
- REFIRE_TO frame command added
- Uses same syntax as JUMP, but uses refiring instead of % chance as the test condition
- SEC/2ND_REFIRE_TO, 3RD_REFIRE_TO, and 4TH_REFIRE_TO also supported
- Can now define a 3RD and 4TH attack. Equivalent DDF syntax to SEC_xxx used for second attack
-
GAMES.DDF: "NO_SKILL_MENU" boolean command added (Courtesy of akaAgar - #577)
- If true, will skip difficulty menu and start selected episode at skill 2 ("Hurt Me Plenty" for Doom)
- Intent is for mapsets that have a Quake-style initial skill-select level or where the author may not implement/want
to present skill levels - Default value is false
-
RSCRIPT: "EXACT_" prefix added for ON_CONDITION checks (Courtesy of akaAgar - #578)
- Allows check for the exact value of a benefit/etc, versus the default of greater-than-or-equal
-
THINGS.DDF:
- New Action command: SET_PAINCHANCE(percentage) which will dynamically change a monsters painchance.
- Possible usage: if we do SET_PAINCHANCE(0%) at the start of a lengthy PAIN state, this will make sure the
whole animation is played out and won't be interrupted by another shot which would normally make us
re-start the pain animation again. Remember to set it back to normal at the end of the lengthy animation.
- Possible usage: if we do SET_PAINCHANCE(0%) at the start of a lengthy PAIN state, this will make sure the
- New Special flag: IMMOVABLE which will make this thing be unaffected by thrust from attack impacts
irrespective of whether it has a small MASS or a very large one.
- New Action command: SET_PAINCHANCE(percentage) which will dynamically change a monsters painchance.
-
UDMF:
- Sectors: Support added for the
lightcolor
,rotationfloor
, androtationceiling
keys
- Sectors: Support added for the
General Improvements/Changes
- Detection/functionality for mikoportals implemented
- Voodoo dolls that fall onto a floor at exactly -32768 will preserve their X/Y/Z momentum and be moved to their sector's ceiling
- Friction and drag ("air friction") will not be applied to voodoo dolls in this situation
- Regular players and things will adhere to normal physics
- Voodoo dolls that fall onto a floor at exactly -32768 will preserve their X/Y/Z momentum and be moved to their sector's ceiling
- Windowed Mode resolution list will now dynamically populate based off of available display information instead of using presets
- Video Options crosshair selection will not be shown when switching to/from weapons that have DDF custom crosshairs
- Slightly re-organized the Key binding menu to accomodate the new 3rd and 4th attacks.
- Implemented 'episode' UMAPINFO key; EDGE-Classic now fully supports the UMAPINFO spec, Revision 2.2
- ZMAPINFO/MAPINFO parsing updates:
- Episode definitions and the 'clearepisodes' directive will now be respected
- ZMAPINFO 'ResetInventory' level definition key will result in the RESET_PLAYER DDFLEVL command being applied
- Heretic: numerous improvements and tweaks courtesy of DW user Macro (https://github.com/Macro914/EDGE-Classic-Scripting-Patches)
- Heretic: improved Mace attack courtesy of CeeJay
- YMFM:
- Added "Apogee" instrument bank, based on Apogee Sound System and AdPlug instruments
- Removed "AdPlug", "WadSmoosh", and "DMXOPL3" instrument banks
- Replaced "DMXOPL" instrument bank with one tailored to vanilla/single OPL3 chip limits
- Removed ability to load WOPL instrument banks as it was only partially implemented
- COLMAP.DDF: Colormap entries with no gl_colour, lump, or pack file defined will no longer throw an error
- New behavior is to remove all existing colormap entries with the same name
- Intent is to be able to define a colormap as "nothing", even if prior entries had a definition
- Colormap entries later in the load/parsing order with the same name will still be added
- New behavior is to remove all existing colormap entries with the same name
- Improved level warp cheat behavior with custom mapnames
- Previous behavior was to only match a numerical entry with maps named either MAPXX or EXMX
- Improved handling of gamepads
- Automatic detection of analog triggers
- User-friendly button names in menus ("A Button" versus "Joy 1", etc)
- Menus can now be navigated via gamepad without needing to set explicit bindings
- "Menu Navigation" section removed from Key Bindings menu
- Added default bindings for gamepads
- Added configuration files for use with Doom Builder.X, Ultimate Doom Builder, and Eureka
- Can be located in the /docs/mapping directory
Bugs fixed
- Legacy bugfix: Boom generalized sector types were not preserved when saving/loading levels with said sectors
- Fixed assertion failure when referencing DSDehacked frames past the last frame explicitly defined in the [CODEPTR] section
- Fixed viewpoint modified by the r_fov CVAR not changing the vertical view slope appropriately
- Fixed region properties not working properly with a vertex sloped floor that rises above its sector's original floor height
- Fixed occasional sector glow thing link/unlink errors
- Fixed AJBSP using self-referencing linedefs that were perfectly vertical or horizontal for partitioning
- Fixed floor/ceiling rotation not working when using images that have a different width and height
- Fixed MODEL_ROTATE not being applied to attacks
- Fixed savegames not preserving the 'is_voodoo' convenience boolean for mobjs, causing issues when loading a game that had them present
- Fixed berserk and other powerup effects not modifying model colors accordingly (bug introduced by transition to VBOs for model rendering)
- Fixed crash if player dies while TARGET_JUMP or FRIEND_JUMP weapon specials are active
EDGE-Classic 1.35
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
New Features
- "Extra Blood" under Gameplay Options renamed to "Blood Level" and "None" added to
the list of choices- Setting to None will disable blood splats, crush/death/overkill states; enemies
will instead teleport out of existence on death (similar to Chex Quest)
- Setting to None will disable blood splats, crush/death/overkill states; enemies
- "Sky Scaling" added to Video Options menu, replacing the previous methods of drawing
non-skybox skies. The following choices are available:- Mirror: Will invert the sky texture at the horizon, scaled to account for vertical mouselook.
- Repeat: Will repeat the sky texture at the horizon, scaled to account for vertical mouselook.
- Stretch: Will stretch from top to bottom to avoid texture repeat, scaled to account for vertical
mouselook. Does not preserve the original width/height ratio of the image. - Vanilla: Will draw the sky texture once, but does not scale or otherwise account for vertical mouselook.
- For all options, the top and bottom of the faux skybox will have an appropriately color-matched cap.
- The Vanilla option will be forced when mouselook is disabled.
- Sky stretching for a level can be overridden via the new DDFLEVEL SKY_STRETCH special, using
the names above.
- New console command "openhome": will open the folder where EC is storing its home data
- In portable mode, this will open the directory where the executable is located
- ATTACKS.DDF
- New PROJECTILE_SPECIAL flag: PRESERVE_MOMENTUM
- Will add the x/y/z momentum of the projectile attack source to the newly created projectile
- New PROJECTILE_SPECIAL flag: PRESERVE_MOMENTUM
- WEAPONS.DDF
- New command: IGNORE_CROSSHAIR_SCALING = <boolean>
- If this weapon has custom crosshair sprites, they will not be affected by Video menu option "Crosshair Size".
- New command: IGNORE_CROSSHAIR_SCALING = <boolean>
- Implemented sector and level-wide fog options
- DDFSECT Implementation
- FOG_COLOR = <color>; Sets the sector's fog color to the RGB value of the provided colormap entry
- FOG_DENSITY = <0-100%>; Sets the sector's fog density based on the provided percentage
- UDMF Implementation
- fadecolor = <0xRRGGBB>; Sets the sector's fog color to the hexadecimal RGB value provided
- fogdensity = <0-1020>; Sets the sector's fog density according to GZDoom's usage of this parameter
- Map editors may cap this value to 510; see docs/specifications/UDMF EDGE Extensions.txt for more details
- RTS Sector Fog Commands
- FOG_SECTOR <tag> <color or SAME or CLEAR> <density(0-100%) or SAME or CLEAR> ABSOLUTE
- Color and density params match those in DDFSECT
- SAME preserves the existing value; CLEAR sets it to the default (no fog) values
- ABSOLUTE is an optional parameter; if absent then the density is changed relative to the existing fog density of the sector
- Negative percentages are only allowed when performing relative density changes
- FOG_SECTOR <tag> <color or SAME or CLEAR> <density(0-100%) or SAME or CLEAR> ABSOLUTE
- DDFLEVL Implementation
- INDOOR_FOG_COLOR = <color>; Sets the fog color for all indoor sectors to the RGB value of the provided colormap entry
- INDOOR_FOG_DENSITY = <0-100%>; Sets the fog density for all indoor sectors to the provided percentage
- OUTDOOR_FOG_COLOR = <color>; Sets the fog color for all outdoor sectors to the RGB value of the provided colormap entry
- OUTDOOR_FOG_DENSITY = <0-100%>; Sets the fog density for all outdoor sectors to the provided percentage
- DDFSECT Implementation
- COALHUDS: Added hud.rts_disable() function; same syntax as hud.rts_enable()
- LINES.DDF
- New LINE_EFFECT: STRETCH_TEX_WIDTH. Will stretch the width of a texture to match the lines length.
- New LINE_EFFECT: STRETCH_TEX_HEIGHT. Will stretch the height of a texture to match the lines length.
Basically allows autoscaling a texture to perfectly fit an arbitrary-length line.
- New Line types added:
[835] Breakable wall, (midtex to back lower): when this line is shot, the midtex will be swapped with back lower tex
[836] Breakable wall, (midtex to back upper): ...same as previous but swapped with back upper
[837] Breakable wall, (midtex to front lower): ...same as previous but swapped with front lower
[838] Breakable wall, (midtex to front upper): ...same as previous but swapped with front upper
[850] Light Wall: transfers the brightness of this wall to any other tagged lines
[855] Autoscale textures width to line length
[856] Autoscale textures height to line length
[857] Autoscale textures width and height to line length - New Sector types added:
[4480-4489] EDGE fog: White 5%-50% (increments of 5%)
[4490-4499] EDGE fog: Green 5%-50% (increments of 5%)
[4500-4509] EDGE fog: Red 5%-50% (increments of 5%)
[4510-4519] EDGE fog: Blue 5%-50% (increments of 5%)
[4530] EDGE Friction: Slippy
[4531] EDGE Friction: Very Slippy
[4532] EDGE Friction: Sticky
[4533] EDGE Friction: Very Sticky - New Thing types added:
[NUKAGE_GLOW_WALL:7070] : causes any wall in contact with it to glow green
[LAVA_GLOW_WALL:7071] : same as previous but glows red
[WATER_GLOW_WALL:7072] : same as previous but glows blue
[WHITE_GLOW_WALL:7073] : same as previous but glows white - UDMF: The following fields have been 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
General Improvements/Changes
- Migrated to VGMPlay's libvgm from Game Music Emu
- Support for AY, GBS, GYM, HES, NSF, SAP, and SPC filetypes has been removed
- VGM support has been expanded to include all chipsets and systems supported by VGMPlay, with the
exception of the WonderSwan
- DDFTHING: Implemented previously referenced WALL Glow Type
- Same parameters as other glow types
- Will only work on one linedef per glow mobj
- Glow mobj must be touching the desired wall/linedef to be effective
- For standalone games, EDGEIWAD has been changed to EDGEGAME to account for the fact that
a pack file may be used intsead of a WAD to distribute a game - Auto-aim now targets "fuzzy" monsters i.e. Specters
- Improved Unicode path support for international locales
- DSSECRET lumps from PWADs (if present) will now override the built-in DSSECRET.ogg pack file
- Models will no longer be drawn if completely behind the view plane, reducing rendering overhead
- Voxel skins are now always uploaded with GL_NEAREST scaling instead of GL_LINEAR to preserve their intended look
- Plane movers are now disabled for sectors which have vertex slopes (this is not supported and caused very interesting results)
- MBF21 Lines and Sectors are now unconditionally on
- "MBF21 Compatibility" removed from Gameplay Options menu
- Reserved linedef bit 11 flag from PrBoom/Eternity implemented to fix Doom E2M7 and other maps that previously required
the MBF21 toggle to fix
- DDFIMAGE: Flats can now be used in GRAPHIC image type definitions
Bugs fixed
- Fixed player health changes tied to voodoo doll damage and "Zombie Player" state not being achievable
- Fixed potential CTD when reading in *MAPINFO lumps
- Fixed potential CTD involving AJBSP split segs when they are part of a sector containing a UDMF vertex slope
- Migrated all model rendering to use VBOs regardless of rendering path (GL vs. GLES), fixing CTDs when
the number of vertices for a model exceeded the size of the gl vertex array used by the unit rendering system - Reverted to AJBSP 1.03's DetectOverlapping* methods to fix a situation where overlapping linedefs facing
opposite directions would result in neither of them being rendered - Fixed the PalettisedtoRGB function accepting PNG/JPG/TGA images and treating them as palettised.
- Fixed plane movers having unpredictable functionality when using a repeatable trigger type and
already being at their destination height - Migrated away from legacy SDL1 functions for interacting with sound devices, fixing possible
race conditions when the device was not being locked or unlocked at the expected time - Fixed weapon kick not working when mouselook was disabled
- Fixed CTD involving liquid swirl checks when debug_hom is set to 1
- Fixed pre-EC legacy issue: map AMBUSH flag was being lost if mobj was being replaced during
gameplay via BECOME - Fixed RTS scripts using ON_DEATH conditions not working from a loaded game
- Fixed automap key display not showing Boom style locks
- Changed draw order of "Entering" and "You Are Here" intermission graphics to prevent the
next level name from being obscured - Fixed pre-EC legacy issue: crushed monsters never entered their GIB states
- Fixed pre-EC legacy issue: Cyberdemon was missing a frame in death states
- Fixed pre-EC legacy issue: Things were visible while changing positions via teleportation
- Fixed pre-EC legacy issue: Death from other means than the actual sector damage in a "death exit" sector would not
properly exit the level - Fixed failed object spawns from a SPAWNER-type attack still counting toward the total amount of kills/items in a level
- Fixed Heretic AUTOPAGE lumps not being recognized as valid raw format images
- Fixed animation in Chex Quest...
EDGE-Classic 1.34.1
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.1 (since EDGE-Classic 1.34)
New Features
-
ATTACKS.DDF
- New attack type: DUALATTACK
- Can execute two independent attack definitions with a single state
- New parameters (only required when using DUALATTACK):
- DUALATTACK1=<string> - First dual attack definition
- DUALATTACK2=<string> - Second dual attack definition
- DUALATTACK1/2 must both be present, even if referring to the same attack
- A dual attack can execute other dual attacks, but cannot reference itself
- New attack type: PSYCHIC
- Instant ranged direct damage attack
- Will not cause infighting
- New attack type: DUALATTACK
-
Chex Quest 1 supported as an IWAD
- Chex Quest 2 supported as a PWAD for Chex Quest 1
-
FLATS.DDF
- New command: SINK_DEPTH=<percentage>
- Will drop player's view height by the given percentage when standing on the flat in question
- Will also clip sprites on this flat and sink them by a roughly equivalent amount
- Does not apply when the sector is using 3D floors, swimmable/deep water, or similar effects
- New command: BOB_DEPTH=<percentage>
- Corpses and items will bob up and down while resting on the flat in question
- Does not apply when the sector is using 3D floors, swimmable/deep water, or similar effects
- New command: SINK_DEPTH=<percentage>
-
RTS
- New command: REPLACE_THING <oldThing> <newThing>, which will replace all oldThings on the current map with newThings.
Will be mainly used at map start and it is substituting the thing, not transforming it. For randomizer scripts.
- New command: REPLACE_THING <oldThing> <newThing>, which will replace all oldThings on the current map with newThings.
-
SECTORS.DDF
- New commands: FLOOR_BOB/CEILING_BOB=<amount>
- Surface will rise and fall rhythmically in a wave pattern, with peak values governed by the value passed to it
- New commands: FLOOR_BOB/CEILING_BOB=<amount>
-
THINGS.DDF
- New state action: UNBECOME, which will return a thing to it's original type if it has suffered a BECOME() previously.
If it has not been BECOMEd previously then nothing will happen. - New state action: MORPH: identical behaviour to BECOME, except HEALTH is filled up.
- New state action: UNMORPH, which will return a thing to it's original type if it has suffered a MORPH() previously.
If it has not been MORPHed previously then nothing will happen. - New command: MORPH_TIMEOUT: when this timer is reached, the thing will go to a "MORPH" state if it has one defined.
If it has no "MORPH" state then the thing is simply removed.
- New state action: UNBECOME, which will return a thing to it's original type if it has suffered a BECOME() previously.
General Improvements/Changes
- Weapons with the ability to zoom but without a ZOOM state defined will still draw the regular psprite and crosshair while zoomed
- Implemented remaining MBF code pointers (A_FireOldBFG, A_BetaSkullAttack)
- Implemented new DEHEXTRA Thing fields:
- Gib health
- Dropped item
- Pickup width
- Projectile pass height
- Fullbright
- Fluidlite replaced with Primesynth for soundfont MIDI synthesis
- SF3 support has been dropped
- The s_fluidgain CVAR has been renamed to s_primegain but otherwise functions identically
- PC Speaker Mode will now disable music while active to prevent non-MIDI formats from playing
- "Bonkers for Bits" soundfont has been removed
- "microGM" soundfont added as a more SNES-like option
- "16 Bit Game Station" soundfont has been removed
- "ChipFreak" chiptune/8-bit inspired soundfont added
- FMMIDI player has been removed in favor of adding OPL3/SF2 files that cover the same general sound
Bugs fixed
- BOOM linetypes 143, 144, 148 and 149 fixed to use the correct Tx0/Tx changer type
- Removed 'WALL' as a recognized glow type in DDFTHING to prevent potential blockmap issues
- This references unused code and thus had unpredictable results
- Removed ability for multiple glow types to be assigned to a DDFTHING definition
- GLASS lines were not working with projectiles if no EFFECT_OBJECT was defined.
- Fixed some self-referencing sectors not being setup properly
- Fixed TrueType fonts having improper widths on fullscreen resolutions that have a different
aspect ratio than the display's native ratio - Fixed sector glows and dynamic lights being too dim when lighting a surface that is using
parallax swirling
EDGE-Classic 1.34
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
- 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
-
"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.
- Current Items:
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)
- 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:
-
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
- The special values '+' and '-' for the FLOOR.TEXTURE and CEIL.TEXTURE parameters can now be appended with either "changezero" or
-
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...
EDGE-Classic 1.33
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.33 (since EDGE-Classic 1.32)
Bugs fixed
- 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
General Improvements
-
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
New Features
-
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
-
DDFTHING:
- 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.
-
DDFIMAGE:
- 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.
- New command: ROTATE_HUE = <integer>, will rotate the hue of the given image while keeping other values the same. Valid range is -1800
-
COAL:
- 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
EDGE-Classic 1.32
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.32 (since EDGE-Classic 1.31)
Bugs fixed
- A recently introduced bug which caused the Secrets Found % to not increment after finding the first one.
- player.use_inventory() consuming item without running the associated script if the script was already running
- Changed hardcoded finish/par time widths to prevent custom fonts from being clipped at 4:3 resolutions
- "Read This!" menu item missing for Doom.
General Improvements
-
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) -
DDFSTYLE: CURSOR.FORCE_OFFSETS=<boolean> - When set to true, will honor cursor image's offsets even if they cause misalignment with
menu entries. Default value is false
New Features
-
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
EDGE-Classic 1.31
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.31 (since EDGE-Classic 1.3)
Bugs fixed
- Changing Aspect ratio was not 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.
General Improvements
- W1/WR lines, unknown linetypes and scrolling linedefs without any activation method will have the BOOM passuse flag added
upon map load
EDGE-Classic 1.30
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.30 (since EDGE-Classic 1.21)
Bugs fixed
- Fixed CHANGE_TEX SKY not working with skyboxes
- Fixed alignment of flats when both ALIGN and SCALE are used
- Doom episode 1 intermission screen animation speed was wrong
- Single sector maps no longer give a nodebuilder error
- Fixed a bug displaying tall patches with a non-zero Y Offset
- Several old DEHACKED issues fixed (original AliensTC for example)
- Conflicts between Doom graphics and PNGs causing errors are now
fixed (the infamous "Error occurred scanning image: xxx") - Do not apply invisibility effect to a zoomed weapon
- Fixed IDCLEV mistakenly identifying non-marker lumps as valid map markers
- Fixed crash involving items without a map spawnpoint being added to the
Deathmatch item respawn queue - Fixed incorrect parsing of keypad (10-key) scancodes
- Fixed main menu cursor scaling/placement when all menu item images are empty
(i.e., background image alone is used as the "menu") - Fixed weapons with animated ready states having jittery swaying/bobbing
- Fixed Boom generalized ceilings using their sector's floors for movement targets
- Fixed monsters being able to activate W1/WR lines at the edge of a dropoff that
is too high for them to descend - Fixed Boom Set Friction lines with very short line lengths being ineffective
General Improvements
- Replaced TinySoundFont with FluidLite, supporting a wider range of MIDI events and effects
- Live soundfont (FluidLite)/instrument bank (OPL) selector
- DEH_EDGE cleanup and improvements
- Improved screen resolution and aspect modes
- New Harmony base WAD assets
- Auto-detect music type for DDFPLAY (with one exception: IMF, as detailed under New Features)
- No longer need to press Up/JUMP or Down/CROUCH key to navigate ladders: Just mlook + forward is enough.
- Tags assigned to map things are now supported
- Allow multiple WAIT_UNTIL_DEAD scripts to trigger for the same object
- Improved handling of in-game messages
- ENDOOM screen now integrated into quit dialog (unless custom background image is defined in STYLES.DDF)
- Added libYMFM for improved VGM music handling and format support; disabled Game Music Emu VGM support
- Replaced Modplug with XMP (non-lite version) for module tracker music for better compatibility
- Formats requiring prior depacking are still not supported
- Multiple DDFANIM entries can now reference the same images (the entries themselves must still have unique names
to prevent conflicts) - Borderless Fullscreen mode added to the Set Resolution menu; list of Windowed resolutions updated to accommodate
displays up to 4K - Improved support for filepaths and program arguments with non-ASCII characters
New Features
-
New Video Options menu item: Framerate Target
- Can cycle between 35/70 FPS
- Default framerate target is now 70 FPS
-
New Video Options menu item: Overlay
- Can cycle through various pseudo-CRT/scanline effects
- Current options: None, Lines 1X, Lines 2X, Checkered, Vertical, and Grill
-
New Gameplay Options menu item: MBF21 Map compatibility
- Can toggle to enable/disable MBF21 line and sector types/flags/specials
- Default is "Off"
-
New Gameplay Options menu item: Bobbing
- Controls if view/weapon are bobbed while moving
- Options are "Full", "Head Only", "Weapon Only", "None"
- Default is "Full"
-
New Gameplay Options menu item: Erraticism
- 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)
-
New Performance Options menu
- Current options
- Reduce Draw Distance: Will cull rendering at a set distance
- Slow Thinkers Over Distance: Helps alleviate performance hit from extreme
monster/missile counts. Not recommended for normal gameplay - Dynamic Light Limit: Set maximum number of dynamic lights to render at once
- Current options
-
Vastly improved Deathbot navigation and combat
-
New console command: showmaps
- Will show the warp name and level description for accessible maps
-
New console variable: r_forceflatlighting
- When set to 1, will use a flat lighting formula versus Doom's traditional distance-based light banding calculations
- Overrides any lighting settings in an episode's DDFGAME definition
- Default is 0, "traditional" Doom behavior
-
Support OPL emulated playback of MUS and MIDI music lumps via YMFM.
- Can use GENMIDI lumps (Default) or external instrument bank files
- *.wopl, *.op2, *.opl, *.ad, and *.tmb external banks supported
- External banks must be placed in the /soundfont directory prior to startup
-
Support OPNA emulated playback of MUS and MIDI lumps via FMMIDI
-
New music formats supported: FLAC, VGZ (compressed VGM), IMF, XMI/RMI/GMF/EA MIDI Formats
- IMF songs must have a playlist entry type of 'IMF280', 'IMF560', or 'IMF700' to correctly
set the song's playback rate
- IMF songs must have a playlist entry type of 'IMF280', 'IMF560', or 'IMF700' to correctly
-
SF3 formatted soundfonts are now supported in addition to SF2
- Loading times for SF3 fonts are typically longer due to the need for decompression
-
DSDHACKED support.
-
FONTS.DDF
- New font type: TRUETYPE ("TYPE = TRUETYPE;", as opposed to IMAGE or PATCH)
- Required parameters:
- TTF = <string>, TTF/OTF file or lump
- Optional parameters:
- TTF_DEFAULT_SIZE = <int>, default (scaled to HUD) rendering size for this font. If not provided,
a default value of 7 will be used. - TTF_SMOOTHING = "ALWAYS", "NEVER", or "ON_DEMAND". Affects behavior of the font when the Smoothing
option in the Video Options menu is adjusted. Defaults to "ON_DEMAND".
- TTF_DEFAULT_SIZE = <int>, default (scaled to HUD) rendering size for this font. If not provided,
- Required parameters:
- New font type: TRUETYPE ("TYPE = TRUETYPE;", as opposed to IMAGE or PATCH)
-
STYLES.DDF
- New property: ENTRY_ALIGNMENT = <string>, accepts "LEFT", "CENTER", or "RIGHT" to set text/image alignment for menu item names
- New CURSOR customization options:
- CURSOR.POSITION = <string>, accepts "LEFT", "CENTER", "RIGHT", or "BOTH" to determine cursor position relative to menu item.
"BOTH" will drawn the cursor in both LEFT/RIGHT positions. Defaults to "LEFT". - CURSOR.BORDER = <bool>, only has an effect when the cursor position is set to CENTER. Will scale up to the dimensions of the tallest
menu item. Good for highlights/frames/border style cursors - CURSOR.TRANSLUCENCY = <percentage>, controls cursor image translucency
- CURSOR.IMAGE = <string>, image to use instead of the default for this menu's cursor
- CURSOR.STRING = <string>, if present, will use these characters from the style's font as the cursor instead of an image
- CURSOR.SCALING = <bool>, will set whether or not the cursor scales proportionally to menu item heights. Defaults to true.
- CURSOR.POSITION = <string>, accepts "LEFT", "CENTER", "RIGHT", or "BOTH" to determine cursor position relative to menu item.
-
THINGS.DDF
- New property: SIGHT_DISTANCE=<number> which is how far a thing can see in map units.
- New property: HEAR_DISTANCE=<number> which is how far a thing can hear the player in map units.
- 3 new actions:
- JUMP_LIQUID(state:frame,xx%) similar to the normal jump action except that it will only trigger if
the thing is in contact with a floor flat indicated as LIQUID in DDFFLATS. - JUMP_SKY(state:frame,xx%) similar to the normal jump action except that it will only trigger if
the thing is in an outdoor sector i.e. ceiling is sky. - NOISE_ALERT will cause nearby monsters to be alerted. Add it to a monsters death states so his
final groan will warn nearby monsters to expect trouble ;)
- JUMP_LIQUID(state:frame,xx%) similar to the normal jump action except that it will only trigger if
- New pickup benefit: POWERUP_TIMESTOP
- Player can move and fire normally
- Projectiles will remain at the point at which they were fired until time resumes; hitscan or melee
attacks will damage an enemy but they won't react/"die" until time resumes - Switches/doors/lifts can be activated during time stop, but will not move until time resumes
-
LINES.DDF
- New LINE_EFFECT: TAGGED_OFFSET_SCROLL
- Matches MBF21 behavior; all lines with the same tag will use this line's offsets for offset scrolling
- Target lines can still use their own offsets for texture alignment
- Scrolling speed is divided by 8 for fine tuning
- New property: SCROLL_TYPE = DISPLACE or ACCEL
- Affects the PUSH_THINGS, SCROLL_FLOOR, SCROLL_CEILING, VECTOR_SCROLL, and TAGGED_OFFSET_SCROLL specials
- Matches Boom/MBF21 behavior (see https://github.com/kraflab/mbf21/blob/master/docs/spec.md under 'Linedef Types' for reference if needed)
- Improved GLASS=TRUE functionality: LINE_PARTS= can now be used to define what the "broken" mid-texture will be.
LINE_PARTS accepts the following arguments: LEFT_LOWER, LEFT_UPPER, RIGHT_LOWER, RIGHT_UPPER.
(back of linedef is right, front of linedef is left). - Added 4 new BREAKABLE wall line types (similar behaviour to glass):
[835] Breakable: when shot, midtex will change to back lower texture
[836] Breakable: when shot, midtex will change to back upper texture
[837] Breakable: when shot, midtex will change to front lower texture
[838] Breakable: when shot, midtex will change to front upper texture
- New LINE_EFFECT: TAGGED_OFFSET_SCROLL
-
IMAGES.DDF
- New SPECIAL: FORCE_PRECACHE
...
- New SPECIAL: FORCE_PRECACHE