Taking EDGE 1.35 as the base, we are working on a new fork with the aim of solving long-standing bugs and adding some quality of life features. Also, one of our primary goals is to have an EDGE that will run well on older or less powerful hardware compared to the 2.x fork. Right now it runs perfectly on Raspberry Pi for example.
Major new features so far compared to EDGE 1.35:
- 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.
- Widescreen statusbar, intermission, and title screens.
- Replaced GLBSP with AJBSP as EDGE-Classic's internal nodebuilder.
- A load of longstanding bugs fixed (see full changelog).
EDGE-Classic homepage: https://edge-classic.github.io/index.html
EDGE-Classic team:
Dashodanger: coding
Lobo: coding
CeeJay: testing, feedback, ideas
CHANGELOG (fixes and new features)
Spoiler:
Current as of: APRIL 2022
CHANGELOG for EDGE-Classic 1.0 (since EDGE-Classic Preview 1)
====================================
Bugs fixed
----------
- Apple compilation now works, thanks to testing and PRs from atsb/Gibbon
- Dropping the console with a movement key held down would preserve that movement while in the console. Now toggling the console properly drops (movement) input
- Games with only one selectable episode will now skip episode selection and proceed directly to the skill choice menu. This prevents the "Hell on Earth" episode from appearing when it is not appropriate
- Fixed bug with valid skybox texture references being deleted when cycling between real and pseudo-skyboxes
- Downgraded textures without patches from being an error (ending the program) to a warning
- Fixed occasional bug where attempting to bind a key would map it to the wrong command
- Fixed bug where canceling out of an RTS Menu would instead select the first option; now it should exit with no result
- Fixed player being allowed to attempt to load a game from an empty slot
- Fixed inheritance for DDFWEAP
- Sloped sectors underneath an extrafloor will now actually use their slope instead of 0 (fix backported from EDGE 2.x)
General Improvements
--------------------
+ Creating a new Save Game with a blank name will now generate a default name (gamepad users can now create new saves without a keyboard)
+ "Found Secret" message now uses DDFLANG.
+ Berserk colour tint is no longer hardcoded and can be modified via DDFCOLM.
+ Merged CeeJay's LINES DDF with ours to create the ULTIMATE LINES DDF
+ Replaced GLBSP with AJBSP as EDGE-Classic's internal nodebuilder
+ doom_ddf folder content merged into edge.wad and the folder removed. The past is the future...again
+ Migrated from SDL1 to SDL2 for longevity and potential new features
+ Allow for FRONT/BACK to be recognized as RIGHT/LEFT textures in the RTS CHANGE_TEX function to suit modder preferences
+ Added missing graphics for Harmony and HacX option menus (Sound, Mouse, Gameplay, etc.) so that they don't use the fallback/incorrectly
paletted Doom menu graphics
+ Improved joystick/gamepad handling; added ability to map dpad (hat) buttons and analog triggers to actions
+ Added "Menu Navigation" option in Controls to bind Menu Open/Up/Down/Left/Right/Select/Cancel
+ Added cursor to navigate RTS menus and select options in addition to using the number keys.
+ Added ability to remap functions previously hardcoded to the function keys (Quicksave, Quickload, etc)
New Features
------------
+ MP3 Sound Effects Support
+ ATTACKS.DDF:
-New attack type: DOUBLE_SPAWNER to mimic the pain elemental in Doom64.
+ THINGS.DDF:
-New SPECIAL flag: FLOOR_CLIP. This things sprites will always stick to the floor in the case that it's too tall for the sector it's in.
+ More game IWADs supported: HACX, Herectic, Harmony, Blasphemer
-HACX: Full support. Includes bug fixes and widescreen support by CeeJay. Some graphics credited to HACX 2 team.
-Harmony: Full support. May be some (hopefully) minor differences.
-Heretic: Partial support. Item inventory not implemented in the base engine yet.
-Blasphemer: Rudimentary support; less thorough compared to Heretic, but IWAD will now be recognized and launch.
+ Experimental floor offset: any linetype that uses the SPECIALs "ALIGN FLOOR" or "ALIGN CEILING", if the line has texture offsets applied then EDGE will use those to offset the floor flat.
+ COALHUDS: New command
strings.find(s,TextToFind): will find a sub-string at ANY position. Returns position it was found at or -1 if not found.
+ Added water splash sfx to EDGEs default SWIM sectors.
CHANGELOG for EDGE-Classic 1.1 (since EDGE-Classic 1.0)
Bugs fixed
Longstanding SWIM sector special bug fixed. EDGE would continue
flagging the player as being in a SWIM sector even after leaving it.
Happens if SWIM special is used without AIRLESS(underwater) also.
Most noticeable side effect was being unable to jump/crouch and bizarre momentum/speed
Downgraded errors for incorrect 3D extrafloors to warnings instead.
E3M4 crusher bug fixed.
General Improvements
RTS Scripts can now use either a number or a string for their TAGs.
Replaced libpng, libjpeg and image_tga.cc with stb_image.
Replaced zlib with miniz.
Consolidated some EPI filesystem functions so that platform-specific source files aren't required.
Compilation now works with MSVC Build Tools. SDL2 development headers/libs included for this purpose.
Player Crouch height reduced to 28, same as other ports.
Bumped up the number of sound channels: minimum 32, maximum 96.
New Features
Added inventory system
Controls: Inventory Previous, Inventory Use, and Inventory Next can now be bound to keys
DDF: INV01-INV25 are usable as PICKUP_BENEFIT options; syntax is the same as giving ammo
RTS: INV01-INV25 are usable for various commands; syntax is the same as for ammo i.e. ON_CONDITION INV01(3)
COAL: player.inventory_events(): event-based handling for keys based on Inventory Previous, Inventory Use, and Inventory Next bindings
COAL/RTS: player.use_inventory(): will call RTS script of appropriate tag when inventory item is used; naming convention for inventory script tags is INVENTORY1 - INVENTORY25
Heretic COALHUDS updated with game-approriate inventory display
Added 'autoload' folder which is scanned for valid file types on startup. Sub-folders can fine tune what is loaded for specific IWADs.
Added "Animated Liquid Type" to Video Options menu; choices are "Vanilla", "SMMU", "SMMU + Swirl", and "Parallax"
FLATS.DDF (wad lump "DDFFLAT") which can be used to associate certain sounds, objects etc. with specific flats.
Command: LIQUID="THIN" or "THICK" can be added to a flat definition. Currently affects swirl/dynamic liquid parameters.
Command: IMPACT_OBJECT= where is an entry in THINGS.DDF. When the flat is shot, the will be spawned at the impact point (e.g. for splashes from water).
Command: FOOTSTEP = where is an entry in SFX.DDF. Can be used via COALHUDS to make appropriate sfx when moving across this flat.
LINES.DDF
New command: EFFECT_OBJECT= where is an entry in THINGS.DDF. When the line is activated, the will be spawned in the center of the line (e.g. for sparks from a switch). If the line is of type SHOOT then we spawn the object at the spot where the shot impacts instead.(e.g. a flesh wall that spurts blood when shot).
New command: GLASS=TRUE which causes this line type to (a)be blocking and (b)will apply the LINE_EFFECT= specials BLOCK_SHOTS and BLOCK_SIGHT if specified.
Once the line is activated(normally via SHOOT) then (1) line will be set to unblocking, (2)BLOCK_SHOTS and BLOCK_SIGHT will be removed, (3) the mid-texture will be removed.
If combined with EFFECT_OBJECT then you can spawn shards of broken glass when the line "breaks" for example. NOTE: GLASS=TRUE should be used with COUNT=1.
New command: BROKEN_TEXTURE= which, when combined with GLASS=TRUE, will replace the mid-texture with this one instead of just removing it i.e. for shooting out a vent and replacing it with a broken vent.
COALHUDS: new commands
-player.play_footstep(flatname) checks FLATS.DDF for corresponding entry and plays the sfx associated with this flat.
-hud.screen_aspect() returns the current screen aspect e.g. 1.0, 1.333 etc.
-hud.AM_HIDELINES for hud.automap_option() which hides all geometry on the automap.
RTS: new commands
-SWITCH_WEAPON which will force a switch to this if the player has it.
-TELEPORT_TO_START which will simply teleport the player back to player 1 start.
THINGS.DDF
-Crouching now triggers CROUCH states for the player when used with CHECK_ACTIVITY.
-Added player crouch spites to edge-defs.wad.
New XMP-based music player; MOD/S3M/IT/XM Tracker format songs are now supported.
New Game Music Emu-based music player; AY, GBS, GYM, HES, NSF, SAP, SPC, VGM format songs are now supported.
New WebSID-based music player; Commodore-64 SID format songs are now supported.
Main menu UI by default is now text based and uses strings from language.ddf and colouring/fonts defined in styles.ddf.
If a pwad contains custom menu graphics then they will be used instead.
New names and DDF definitions for our menu sfx so we don't have to share the same names as normal doom sfx.
2 new custom fonts included in edge-defs.wad for use with our new dynamic menu: Verdana-style font and Doom-style.
MBF sky transfer linetypes 271 and 272 partially supported via new line Effect "SKY_TRANSFER".
Dynamic Reverb option in Sound Menu. Will attempt to reverberate all sounds based on room size and being indoor/outdoors
SECTORS.DDF
-Can add specials VACUUM_SFX, SUBMERGED_SFX, and REVERB_SFX to affect sounds while in that sector
-REVERB_SFX has additional required parameters: REVERB_TYPE="REVERB" or "ECHO", REVERB_DELAY=(any number), and REVERB_RATIO=(0-100)