Source Port: EDGE-Classic v1.33 (Updated February 2023)
-
Link to current Windows Release
EDGE-Classic is a revival of the EDGE codebase for modern systems. EDGE was a direct successor to DosDoom, the very first source port. Our goal is to bring new features and quality of life updates while keeping hardware requirements very modest (if your OS supports SDL2 and OpenGL 1.3, you're mostly good to go). Here's a few quick screenshots demonstrating its flexibility (download links can be found on the project page):
Operation Arctic Wolf: Revisited
Astral Pathfinder
Heathen
Duke It Out in DOOM
Aliens: Stranded
Notable improvements over the original EDGE codebase include:
- UDMF map support ("plain"/vanilla Doom format)
- DEHEXTRA compatibility
- A soundfont-capable MIDI player (.sf2 support)
- Support for MP3 music and sound effects
- Migration from SDL1 to SDL2 (longevity and potential new features)
- Improved support for gamepads
- Expanded DDF, RTS, and COAL features
- Full support for both HacX 1.2 and Harmony IWADs
- Greatly improved Heretic/Blasphemer IWAD compatibility
- Enhanced support for the Freedoom 1/2 IWADs
- Widescreen statusbar, intermission, and title screens
- Replaced GLBSP with AJBSP as the internal nodebuilder
- Inventory system
- Autoload folder
- New Liquid animation (SMMU and Parallax)
- OPL emulation via YMFM
- Many more music formats (module/tracker music as well as AY, GBS, GYM, HES, NSF, SAP, SPC, VGM and even C64 SID)
- Optional Dynamic Sound Reverb
- Optional Pistol Start feature
- Optional Erraticism (SuperHot) game mode
- Support for image/spritesheet and truetype fonts
- A load of longstanding bugs fixed (see full changelog)
Issues can be reported either here, the DU Discord, our new Discord, our Github Issue Tracker, or the Official ZDoom Discord which has been home to the original EDGE channels for some time.
-
Just pushed a new minor release. We found some nasty (albeit rare) bugs and issues affecting non-Windows users, so we wanted to get those fixes out instead of waiting for a full release cycle. There are incidentally a couple of improvements as well, especially regarding our uncoupling of the menu styles and drawing routines from their original hardcoded values.
Full Changelog for 1.21:
Bugs fixed
- Fixed issues when launching from a location other than the executable directory on non-Windows builds
- Fixed rare ceiling crusher-related bug
- Text based menus for <Episode select> and <Difficulty select> were not working if the Main menu was using custom graphics
- Fixed null string CTD in HUD_DrawText and font_c::StringWidth
- Fixed issue with FS_ReadDir returning relative paths
- Restored "Hudless" option in COALHUDS HUD cycling
General Improvements
- Improved STYLES.DDF functionality across console and menus; backgrounds images/colors and translucency are no longer hardcoded
- Added "Edge" UDMF namespace detection in preparation for EDGE-Classic's UDMF spec
- Improved menu cursor positioning and scaling
- Back mid-texture on a Glass line type is automagically mirrored
- Load/Save menu will use DDFLANG difficulty strings instead of hard-coded Doom strings when showing savegame details
- Improved CMD_Dir result display
- DOOMWADDIR and DOOMWADPATH will now be evaluated together instead of separately
- If no -iwad parameter is given, an IWAD will be selected from all IWADs discovered in default search paths based on a scoring/preference system
- Doom 2/Freedoom Phase 2/Final Doom are highest priority due to highest compatibilty with mods/PWADs
- Doom 1/Freedoom Phase 1 are second in line
- Remaining Doom-based IWADs (HacX/Harmony for now) are third
- Heretic/Blasphemer, being the newest games supported, are after those
- If a new custom standalone IWAD (with EDGEIWAD lump) is present in the search list, it will be considered last
New Features
-
Custom standalone IWADs can be created by adding an EDGEIWAD lump to the WAD. This will allow it to pass the automatic IWAD
detection -
STYLES.DDF
- New SPECIAL flag: CURSOR_RIGHT, will align menu cursor to the right side of menu entries
- New properties: X_OFFSET and Y_OFFSET. Will set all menu entries in this style to the same x/y offset.
- New SPECIAL flag: NO_STRETCH_FULLSCREEN, which will disable default behaviour of stretching backgrounds to fill the screen
-
Lines.ddf
-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 -
Sectors.ddf
-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
-
Yes finally! Love this one.
-
Just wish the DAMN music would work on Mac. I still haven't got my hands on one to test yet. My friends and I are all plebs, it seems.
-
@dasho said in Source Port: EDGE-Classic v1.21:
Just wish the DAMN music would work on Mac. I still haven't got my hands on one to test yet. My friends and I are all plebs, it seems.
And since mine died, I won't be able to test it anymore
-
I've updated the initial post as well, but EDGE-Classic v1.30 is now available for download! The full changelog is pretty sizable, but here are the big updates:
- Initial 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/wopl/ad/opl/tmb 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)
-
great amazing!
-
No idea how they keep bashing out these enormous updates, great work!
-
@Gibbon said in Source Port: EDGE-Classic v1.30 (Updated January 2023):
No idea how they keep bashing out these enormous updates, great work!
Thanks...for 1.2->1.3 we did have the help of Andrew Apted, who made some very cool improvements like bot navigation and rendering updates possible.
That being said, we do have a minor release that touches on a handful of bugs. The project page in the OP will have up-to-date downloads.
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.32 is now up on the project page, as we had a couple more things to clean up, including a bug with the secret percentage counter that I introduced with the 1.31 generalized secret fix (the original problem was fixed, but only the first secret you found would count towards the total). There's incidentally a couple of new features that are geared towards making game menus more dynamic and not relying on original hardcoded values. This will be fleshed out more as we progress towards version 1.4
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.33 has been published, with a good combination of bugfixes and new features. As usual, downloads can be found on the project page in the OP.
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
- Fixed 1.32 secret sector fix not being preserved in save games; i.e. the same secret would increment the