dsda-dev Posted December 23, 2022 (edited) dsda-doom v0.25.0 Happy 25 years of doom open source! This update is the biggest yet, including improvements in many areas of the port. There is a new indexed light mode by @Xaser (software fidelity in opengl), expanded doom-in-hexen coverage, improved controller support, a new HUD system with new components, command-line-argument validations and descriptions, new console commands and better usability, debugging tools for testers / creators, scripting, a basic build mode, new trackers, various quality of life improvements, and a configuration / menu overhaul. You can see the full details either here (with formatting and working links) or below in plain text. This release would not be possible without the continuous efforts of @Keyboard_Doomer to ensure demo compatibility and overall release quality. Additionally, many beta testers helped to test out features over the past months: @almostmatt1 @RockyGaming4725 @Bdubzzz @Doomkid @GarrettChan @mmjp08 @Master Medi @kmc @Meowgi @mhrz @Mikolah @Napsalm @Ravendesk @Rayziik @Vile @Spendoragon @4shockblast @ZeroMaster010 Download the latest release here. This release is incompatible with past save files. Spoiler ### v0.25.0 This update is the biggest yet, including improvements in many areas of the port. There is a new indexed light mode (software fidelity in opengl), expanded doom-in-hexen coverage, improved controller support, a new HUD system with new components, command-line-argument validations and descriptions, new console commands and better usability, debugging tools for testers / creators, scripting, a basic build mode, new trackers, various quality of life improvements, and a configuration / menu overhaul. Check out the details below. #### Graphics - OpenGL windows are now resizable / maximizable (elim) - OpenGL now stretches in full screen mode (elim) - Improved performance of raven title screens (xaser) - Indexed Light Mode (xaser) - Xaser has implemented a new light mode for opengl that closely replicates the visuals of the software renderer. It uses the software palette system (including the pain palette and gamma) and can replicate previously software-exclusive effects like fake fog (recently seen in wormwood 4 map 5). This is the new default for opengl and combines the accuracy of software with the performance of hardware. Enjoy! - There are still quirks of the software renderer that cannot be reproduced, but this is a significant improvement in visual fidelity. #### Doom in Hexen - Completed the first iteration of the format! - Thing specials - Creatures / destructables execute their specials when killed / destroyed - Items execute their specials when picked up - New thing type - Custom MusicChanger - The track number can be from 0 to 64 - The order argument is currently not supported - TeleportDest2 & TeleportDest3 now use their z position for teleports - New line specials - Radius_Quake - Thing_SetSpecial - TeleportGroup - TeleportInSector - Teleport_NewMap - The cluster concept is not supported yet - Teleport_EndGame - The interaction between Teleport_* and UMAPINFO is currently undefined - The position argument (arg 0) is now supported in Exit_Normal and Exit_Secret #### Controller Support - Added support for modern controller buttons - Added support for dual analogs - Added semantic names for the binding menu (i.e., `pad x` instead of `jsb2`) - Improved menu navigation - Updated default bindings - `L` strafe - `R` use item (heretic / hexen) - `LT` map - `RT` fire - `A` use - `B` jump (hexen) - `X` previous weapon - `Y` next weapon - `Dpad Up` fly up (heretic / hexen) - `Dpad Down` fly down (heretic / hexen) - `Dpad Left` inventory left (heretic / hexen) - `Dpad Right` inventory right (heretic / hexen) - `Left Stick` toggle auto run - `Right Stick` turn 180 - New config variables: - `left_analog_deadzone` - `right_analog_deadzone` - `left_trigger_deadzone` - `right_trigger_deadzone` - `left_analog_sensitivity_x` - `left_analog_sensitivity_y` - `right_analog_sensitivity_x` - `right_analog_sensitivity_y` - `analog_look_acceleration` - `swap_analogs` - When on, the left analog stick looks and the right analog stick moves - `invert_analog_look` - While recording in strict mode, mouse and controller cannot be used simultaneously - The port will detect the first peripheral used and block the other #### HUD - Replaced the fullscreen hud - Added a hud configuration lump (`DSDAHUD.lmp`) - Can be used to configure the fullscreen hud (like `-PRBHUD-.lmp`) - Can also be used to configure the extended hud - Added `-hud my_hud.cfg` command line argument to override the lump - The fullscreen hud now works in hexen and heretic - Heretic and hexen hud text colors have been corrected - Coordinate display now works with the fullscreen hud - Command display now works with the fullscreen hud - Full documentation [here](../docs/hud.md) - Added angle to coordinate display - Added distance traveled to coordinate display - Added line interactions to coordinate display - Added extended hud scale option (under quality of life in general settings) - Added simple fps component (menu toggle and key binding) - Command display now shows on the intermission stats screen - Coordinate display now shifts down when the console is open #### Command Line Arguments - Added `-help` / `--help` - Prints out brief description of the options - Options and their arguments are now validated - `-warp abc` raises an error (cannot interpret string as a map) - `-recordfromto a.lmp` raises an error (missing destination file) - `-skill -warp` raises an error (no skill specified) - `-recor my.lmp` raises an error (unknown option) - `-file` now accepts `.deh` files instead of silently ignoring them - `-file` now raises an error if it can't find the file - `-time_*` now accepts an optional message duration argument (in tics) - Using `-recordfromto` with a missing source demo now causes an error - Changed default `-turbo` value to 255 - Added a warning for duplicate options - Added error message when recording without specifying a compatibility level - Added `-cl` alias for `-complevel` - Added `-skiptic` (`-skipsec` analog for tics) - Added `-assign attribute=value [attribute2=value2 ...]` - Sets the `value` of `attribute` (a config file key) - These changes are temporary and will not be written to the config file - Added `-update attribute=value [attribute2=value2 ...]` - Sets the `value` of `attribute` (a config file key) - These changes are permanent and will be written to the config file - Removed `-nowindow` and `-nofullscreen` - Use `-window` and `-fullscreen` (temporary settings) - Removed -ffmap (use -warp) #### Console - Added basic [console doc](../docs/guides/console.md) - Added `assign attribute value` - Sets the `value` of `attribute` (a config file key) - These changes are temporary and will not be written to the config file - Added `update attribute value` - Sets the `value` of `attribute` (a config file key) - These changes are permanent and will be written to the config file - Added `toggle_assign attribute` - Toggles `attribute` (a config file key) - These changes are temporary and will not be written to the config file - Added `toggle_update attribute` - Toggles `attribute` (a config file key) - These changes are permanent and will be written to the config file - Added `demo.export X` - Exports current demo buffer to file `X.lmp` - Existing demo will continue as normal - Added `demo.start X` - Starts a demo recording *in the middle of a session*, with name `X.lmp` - Demos may not play back on other operating systems (due to how the state is archived) - Consider this experimental right now - the side effects are not well understood - Added `demo.stop` - Exports current demo buffer and stops recording - Added `music.restart` - Added `jump.to_tic X` - Works during playback and recording - Added `jump.by_tic X` - Accepts positive and negative values - Added `script.run X` - Loads text file `X` and runs each line as a console command - Lines starting with `!`, `#`, and `/` are considered comments - Added `fullclip` (infinite ammo) - Added `freeze` (freeze time) - Added `nosleep` (wakes up all monsters) - Added `allghosts` (trigger intercept overflow blockmap corruption) - Added another batch of cheats - `idclev`, `idmus`, `gimme`, `engage`, `shadowcaster`, `visit`, and `puke` - These commands all take one argument, without spaces (`idclev 24` for map 24 or e2m4) - Added `player.give_weapon X` - Added `player.give_ammo ammo_type [ammo_amount]` - If no `ammo_amount` is given, gives the player max ammo - Added `player.set_ammo ammo_type ammo_amount` - Added `player.give_power power [duration]` and `player.remove_power power` - If no `duration` (in tics) is given, the duration is infinite - Adding or removing powers from a different game has undefined behaviour - Powers: - 0: Invulnerability - 1: Berserk - 2: Partial Invisibility - 3: Radiation Suit - 4: Map - 5: Light Amplification - 6: Tome of Power - 7: Flight - 10: Speed - Added `player.give_key X` and `player.remove_key X` - Added basic feedback to console ("command invalid") - Unallowed cheats are interpreted as invalid - Added context validations (some commands are invalid while recording) - Added support for semicolon-separated commands on one line - Enabled console in strict mode (most commands are invalid) - Pressing up & down now moves through the console entry history - Pressing left & right now adjusts the cursor - Added support for SDL text input - You can now type characters like `_` - Existing commands have been converted to snake case - Non-ascii characters are currently ignored - Removed `command.lock` / `command.unlock` (superseded by build mode) #### Testing / Debugging - Console command subjects: - `target.* [args]` commands affect the thing the player is aiming at - `mobj.* <mobj_index> [args]` commands affect the thing with the given index - `boss.* <mobj_index> [args]` commands execute with the boss action flag set - `player.* [args]` commands are executed by the console player - Added thing manipulation console commands - Supports `target` and `mobj` - Added state manipulation: - `*.spawn` - `*.see` - `*.pain` - `*.melee` - `*.missile` - `*.death` - `*.xdeath` - `*.raise` - `*.set_state <state_num>` - Added flag manipulation: - Use named format (e.g., `LOGRAV+SHOOTABLE`) - Some flag changes may have unforeseen side effects - `*.add_flags <flags>` - `*.remove_flags <flags>` - `*.set_flags <flags>` - Added `*.set_health <health>` - Added `*.move <x> <y>` - Added `*.set_target <mobj_index>` - Added `*.target_player` - Added `spawn <x> <y> <z> <type>` console command - Added `*.activate_line <line_id>` - Supports `player`, `target`, `mobj`, and `boss` - Added state manipulation console commands - `state.set_tics <state_id> <value>` - `state.set_misc1 <state_id> <value>` - `state.set_misc2 <state_id> <value>` - `state.set_args1 <state_id> <value>` - `state.set_args2 <state_id> <value>` - `state.set_args3 <state_id> <value>` - `state.set_args4 <state_id> <value>` - `state.set_args5 <state_id> <value>` - `state.set_args6 <state_id> <value>` - `state.set_args7 <state_id> <value>` - `state.set_args8 <state_id> <value>` - Added mobj info manipulation console commands - Some changes to mobj info require restarting a map - `mobjinfo.set_health <type> <value>` - `mobjinfo.set_radius <type> <value>` - `mobjinfo.set_height <type> <value>` - `mobjinfo.set_mass <type> <value>` - `mobjinfo.set_damage <type> <value>` - `mobjinfo.set_speed <type> <value>` - `mobjinfo.set_fast_speed <type> <value>` - `mobjinfo.set_melee_range <type> <value>` - `mobjinfo.set_reaction_time <type> <value>` - `mobjinfo.set_pain_chance <type> <value>` - `mobjinfo.set_infighting_group <type> <value>` - `mobjinfo.set_projectile_group <type> <value>` - `mobjinfo.set_splash_group <type> <value>` - Flags - Use named format (e.g., `LOGRAV+SHOOTABLE`) - `mobjinfo.add_flags <type> <value>` - `mobjinfo.remove_flags <type> <value>` - `mobjinfo.set_flags <type> <value>` - Replaced the `idrate` component - Tracks and shows the max values for segs, planes, and sprites - Color codes the values based on static limits - These depend on the rendering mode and are not guaranteed - Uses the hud font rather than hooking into the message widget #### Scripts - Added 10 script entries to the config file, `dsda_script_*` - Scripts can be bound to keys - Use `;` to delimit multiple commands - Example: - Config file: `dsda_script_0 "fly;idclip;iddqd"` - Bind `K` to `Script 0` - Pressing `K` will now toggle flight, no clip, and god mode #### Demos - Added automatic time suffix for demo file names - Add `$` to the end of your file name to trigger this behaviour - You may need to escape this character depending on environment (`-record ny01p\$`) - The suffix is only applied for "completed" runs - By default a run is assumed to be an IL, so a completed run is one that exits the first map only - To apply this logic for movies, use `-movie X` to set the _final map_ that your movie must end on. For example, a doom 1 episode run would use `-movie 8`. A d2all would use `-movie 30` - Runs with the same time will have a counter like normal demos (`ny01p597-00002.lmp`) - The suffix format depends on the type of run: - IL: - `11.97` is `1197` - `1:01.03` is `10103` - Movie: - `0:09` is `009` - `1:01` is `101` - `2:13:45` is `21345` - Added extra error info if splits fail to write - Added `reborn` to analysis output - Opening the menu pauses demo playback - The join key now works during demo playback - The restart key now works during demo playback - Improved startup time during demo playback - Disabled mlook in strict mode - Disabled simple shadows in strict mode - Disabled idrate stats in strict mode - Disabled ghosts in strict mode - Removed mlook data from extended demo footer - Removed the option to overwrite existing demos - Added `cap_wipescreen` option in config file (pr+) - Heretic key frames should be safe and reliable now - Hexen key frames are more stable but not perfect yet #### Quality of Life - Added `boom_translucent_sprites` toggle option - Added option to hide top left precise intermission time - Added option to hide player weapon (e.g., for screenshots) - Added quake intensity accessibility option (hexen) #### Sound & Music - Restored the default secret sound effect from zdoom - Added looping sounds to reduce clicking in certain level events - Improved portmidi player (pr+) - Improved audio buffer slize size calculation (pr+) - Improved fluidsynth defaults (pr+) - Added support for 8-bit and 16-bit WAV sfx (rfomin) #### Tracker - Added tracker to extended hud (unavailable in strict mode) - line (special) - sector (special, active, floor height) - mobj (health) - player (last damage dealt) - Added tracker console commands: - `tracker.add_line X` / `t.al X`: adds line index X to tracker - `tracker.remove_line X` / `t.rl X`: removes line index X from tracker - `tracker.add_line_distance X` / `t.ald X`: adds distance from line index X to tracker - `tracker.remove_line_distance X` / `t.rld X`: removes distance from line index X from tracker - `tracker.add_sector X` / `t.as X`: adds sector index X to tracker - `tracker.remove_sector X` / `t.rs X`: removes sector index X from tracker - `tracker.add_mobj X` / `t.am X`: adds mobj index X to tracker - `tracker.remove_mobj X` / `t.rm X`: removes mobj index X from tracker - `tracker.add_player` / `t.ap`: adds player to tracker - `tracker.remove_player` / `t.rp`: removes player from tracker - `tracker.reset` / `t.r`: removes all trackers - Added tracker command line arguments: - `-track_line a [b c ...]` - `-track_line_distance a [b c ...]` - `-track_sector a [b c ...]` - `-track_mobj a [b c ...]` - `-track_player` - Removed old tas tracers #### Build Mode - Added basic [build mode](../docs/guides/build_mode.md) - Supports doom and heretic fully - Hexen building is still unreliable due to imperfect key frames - Added simple brute force - Added frame-by-frame control of demo playback #### Compatibility - Added support for automap color OPTIONS lump entries - Added automatic compatibilty correction for the following maps: - roomblow e1m1 (comp_stairs) - esp map21 (comp_stairs) - av map07 (comp_model) - sin2_9 map02 (comp_vile) - d2reload map09 (comp_vile) - amoreupho map02 (comp_vile) - dbp20_dnd map07 (comp_vile) - arch map01 (comp_vile) - ur map06 (comp_vile) #### Interface - Consolidated and rearranged many menus - Protected the select item keybinding from being cleared - Removed chat setup menu and settings - Improved resolution sorting (fabian) - Removed legacy windows launcher - See the official launcher by PBeGood4 [here](https://github.com/Pedro-Beirao/dsda-launcher). - Removed legacy autoload configuration (use autoload folder) - Removed ENDOOM / ENDBOOM screen emulation - Added `ansi_endoom` config setting - Dumps the endoom data to the terminal at exit, using ansi format codes - Set this to `1` for the CP437 character set - Set this to `2` for the UTF-8 character set - Support may be added to the official launcher later on #### Technical - Added extra context information in signal crashes - Added a specific error message when trying to load a udmf map - Terminal interrupt now exits without a message box on windows - Cleaned up log output - Improved mouse stutter correction formula (mikeday0) #### Bug Fixes - Fixed gamma changes not preserving palette - Fixed an issue with flat / texture animation syncing - Fixed erroneous color duplicate detection - Fixed heretic e3 finale scroll jitter in uncapped fps - Fixed heretic door landing sound - Fixed certain hexen sounds having lower than intended priority - Fixed an issue where fewer than expected raven sounds would play simultaneously - Fixed a few fluidsynth errors and warnings - Fixed menu choice settings being updated even after pressing escape - Fixed "show alive monsters" behaviour when toggling strict mode - Fixed various cases where rewind did not work - You can now rewind past a map restart - You can now rewind past a load event - Fixed various desyncs caused by mixing manual and automatic key frames - Fixed an edge case where an automatic key frame could be skipped - Fixed TNTR Map 30 comp option in MBF21 - Fixed minor memory leak from in-game restart - Fixed dsda-format playback progress bar (for future demos) - Fixed top left intermission time not showing right away in heretic - Fixed iddqd / idclip key bindings in `-dsdademo` mode - Fixed desync from combining key frames and `-recordfromto` - Fixed `-warp` and `-skipsec` hanging in certain cases when combined with `-recordfromto` - Fixed `-turbo` default handling - Fixed `-turbo` value overflows - Fixed `-warp 0` - Fixed an error in split file parsing - Fixed umapinfo actor index calculation - Fixed weapon swap overrides while holding down fire when running out of ammo in cl9+ - Fixed a key frame desync in heretic caused by ambient sounds - Fixed a key frame desync in hexen caused by animated textures - Fixed a key frame desync in hexen caused by lightning - Fixed a key frame desync in hexen caused by poly objects - Fixed a key frame desync in hexen caused by inconsistent bounding boxes - Fixed a corrupt save game bug caused by msecnode orphans - Fixed strafe not applying for the quickstart cache - Fixed a rare crash caused by out-of-bounds patches in the software renderer - Fixed turn keys leaking into the mouse cache - Fixed smooth demo teleport in raven games - Fixed a case where umapinfo levels would not trigger a levelstat entry - Fixed map finish log in hexen - Fixed a umapinfo crash when using endgame in doom 2 without an endpic - Fixed some issues related to par times in umapinfo - Fixed the default umapinfo endpic for e2 - Fixed clicking caused by moving planes under certain conditions - Fixed portmidi volume spikes (ceski) - Fixed sound attenuation at long distances (decino) - Fixed distant sounds counting for parallel sfx limit (jackrjli) - Fixed `iddit` and `iddkt` behavior when only one thing exists (jackrjli) - Fixed various umapinfo consistency issues (pr+) - Fixed sky bleed opengl issue (pr+) - Fixed midtexture overlap judder (pr+) - Fixed rare desync in clang builds (pr+) - Fixed translation table behaviour (pr+) - Fixed an issue with drawing status bar numbers with offsets (woof) #### Configuration The way configuration works in dsda-doom has been completely rewritten. This was done to create a generic interface that allows for temporary and permanent changes to every configurable variable. This process required evaluating each variable's presence in the code base and migrating it from the old system to the new one. Since this migration took considerable effort, it was a good excuse to perform an audit on the config file and remove variables that have little value to the port as it currently exists, and to make some semantic changes in a few places. This additionally makes the settings less confusing and overwhelming for new players (though there is still work to do). It also improves predictability in the user experience and reduces the number of bugs that can occur over time. If a setting was removed, it doesn't mean it can't come back - it only means that it did not make the initial cut as I was prioritizing the things that have clear, fundamental importance. - Deconfigured the following settings (the default value is assumed): - `demo_demoex_filename` - `filter_floor` - `filter_patch` - `filter_sprite` - `filter_threshold` - `filter_wall` - `filter_z` - `getwad_cmdline` - `gl_allow_detail_textures` - `gl_arb_multitexture` - `gl_arb_texture_compression` - `gl_arb_texture_non_power_of_two` - `gl_arb_pixel_buffer_object` - `gl_arb_shader_objects` - `gl_boom_colormaps` - `gl_clear` - `gl_color_mip_levels` - `gl_colorbuffer_bits` - `gl_detail_maxdist` - `gl_depthbuffer_bits` - `gl_exclusive_fullscreen` - `gl_ext_arb_vertex_buffer_object` - `gl_ext_blend_color` - `gl_ext_framebuffer_object` - `gl_ext_packed_depth_stencil` - `gl_ext_texture_filter_anisotropic` - `gl_finish` - `gl_fog_color` - `gl_hires_24bit_colormap` - `gl_hires_override_pwads` - `gl_mask_sprite_threshold` - `gl_motionblur` - `gl_motionblur_att_a` - `gl_motionblur_att_b` - `gl_motionblur_att_c` - `gl_motionblur_min_angle` - `gl_motionblur_min_speed` - `gl_nearclip` - `gl_patch_filter` - `gl_shadows` - `gl_shadows_factor` - `gl_shadows_maxdist` - `gl_sky_detail` - `gl_sprite_blend` - `gl_sprite_filter` - `gl_sprite_offset` - `gl_spriteclip` - `gl_spriteclip_threshold` - `gl_sprites_frustum_culling` - `gl_texture_external_hires` - `gl_texture_filter` - `gl_texture_hires_dir` - `gl_texture_hqresize` - `gl_texture_hqresize_patches` - `gl_texture_hqresize_sprites` - `gl_texture_hqresize_textures` - `gl_texture_internal_hires` - `gl_use_display_lists` - `gl_use_paletted_texture` - `gl_use_shared_texture_palette` - `gl_use_stencil` - `gl_ztrick` - `health_bar_full_length` - `health_bar_green` - `health_bar_red` - `health_bar_yellow` - `hud_list_bgon` - `hud_msg_lines` - `hudcolor_list` - `hudcolor_mapstat_time` - `hudcolor_mapstat_title` - `hudcolor_mapstat_value` - `hudcolor_mesg` - `hudcolor_titl` - `hudcolor_xyco` - `interpolation_maxobjects` - `level_precache` - `map_always_updates` - `map_overlay_pos_width` - `map_overlay_pos_height` - `map_overlay_pos_x` - `map_overlay_pos_y` - `movement_maxviewpitch` - `mus_extend_volume` - `patch_edges` - `render_paperitems` - `speed_step` - `sprite_edges` - `sprites_doom_order` - `tran_filter_pct` - Changed the following settings: - `sound_card` (unused and removed) - `music_card` (unused and removed) - `gl_light_ambient` (unused and removed) - `map_use_multisamling` (corrected to `map_use_multisampling`) - `health_red` (changed to `hud_health_red`) - `health_yellow` (changed to `hud_health_yellow`) - `health_green` (changed to `hud_health_green`) - `ammo_red` (changed to `hud_ammo_red`) - `ammo_yellow` (changed to `hud_ammo_yellow`) - `quickstart_window_ms` (changed to `startup_delay_ms`) - `movement_mousenovert` (replaced by `movement_vertmouse`) - `render_multisampling` (changed by `gl_render_multisampling`) - `render_fov` (changed by `gl_render_fov`) - `useglgamma` (changed by `gl_usegamma`) - `automapmode` (split into `automap_follow`, etc) - `movement_mouselook` (replaced by `allow_freelook`) - `samplerate` (replaced by `snd_samplerate`) - `slice_samplecount` (replaced by `snd_samplecount`) - Rearranged and consolidated sections in the config file - Added console commands for editing config variables (see console section above) - Added command line arguments for editing config variables (see above) Edited January 15, 2023 by dsda-dev 86 Share this post Link to post
Andrea Rovenski Posted December 23, 2022 (edited) does hexen format mean its possible some zdoom-in-hexen maps would be functional without zdoom? Also, congrats on release :D Edited December 23, 2022 by Andrea Rovenski 2 Share this post Link to post
dsda-dev Posted December 23, 2022 3 minutes ago, Andrea Rovenski said: does hexen format mean its possible some zdoom-in-hexen maps would be functional without zdoom? Also, congrats on release :D Back when hexen format support was first implemented some people went looking and did find some zdoom maps that could be completed. The port doesn't currently support decorate, acs, or mapinfo though, which still rules out a lot of stuff. 7 Share this post Link to post
Maribo Posted December 23, 2022 DSDA-Doom v0.25.0 package for Debian-based distros: dsda-doom-0.25.0-Linux.zip 6 Share this post Link to post
pantheon Posted December 23, 2022 In the immortal words of the Kool-Aid Man, "Oh yeah". 2 Share this post Link to post
Dweller Dark Posted December 23, 2022 The indexed light mode looks like great! I did notice a small bug regarding Hexen, the last part of the Fighter's punch animation seems to happen twice if attacking an enemy and killing it. 2 Share this post Link to post
GarrettChan Posted December 23, 2022 Oh man, the greatest christmas gift ever :) 6 Share this post Link to post
Gregor Posted December 23, 2022 Congratulations on the release! Can't wait to try it out. 1 Share this post Link to post
Stroggman Posted December 23, 2022 I'm stoked to play this new release, lots more goodies in it 1 Share this post Link to post
Xaser Posted December 24, 2022 (edited) Thanks for the shoutout! I'll make a longer post at some point showing off the new indexed lightmode in more detail (and listing a few known to-do items and some other related musings), but tl;dr the idea is to emulate the look of the software renderer as closely as possible. Just keep in mind this is basically version 1.0 of the feature, and it's very much not perfect yet. There will probably be bugs, there are a few known to-dos and "unfinished" bits (spectres in particular), and it's still pr+'s GL renderer under the hood, which has made a lot of major improvements in terms of compatibility in recent years but isn't perfect either (i.e. some visual tricks still break in GL). That said, definitely give it a try; the more eyes on it, the better. :P [EDIT] Also need to give a huge shoutout to @jmickle66666666, since this whole deal is really just an adaptation of her work getting Doom software lighting working in shaderville in Unity -- she made a great blog post about it here, which was basically the blueprint for this whole thing: https://medium.com/@jmickle_/writing-a-doom-style-shader-for-unity-63fa13678634 Edited December 24, 2022 by Xaser 13 Share this post Link to post
BigBoy91 Posted December 24, 2022 Diggin it so far. Lovin the more stripped down approach. 0 Share this post Link to post
maxmanium Posted December 24, 2022 @Xaser Would it be possible to properly emulate the sprites clipping into the floor? 3 Share this post Link to post
maxmanium Posted December 24, 2022 Also, some questions for @dsda-dev: - Did something change about sounds getting cut off? It seems to only happen sometimes. - Is it still possible to limit max view pitch in software mode? Btw, it might just be me, but I feel like the extended hud font characters aren't being adjusted to doom format like everything else, so they seem kinda stretched out. 4 Share this post Link to post
tmorrow Posted December 24, 2022 I'm running win7. All pre v25 releases had a dsda-launcher. Has it been removed? I've double checked, v24.3 has it, v25 doesn't. I'll post more details about what does/doesn't work if indeed the launcher has been removed. If not, then my question is, how do I get the launcher to come up? Shift click on the exe, iwad, pwad or lmp used to do it before. 0 Share this post Link to post
Shepardus Posted December 24, 2022 1 hour ago, maxmanium said: - Is it still possible to limit max view pitch in software mode? movement_maxviewpitch is among the deconfigured settings, it now assumes the default values of 56 degrees up, 32 degrees down for software mode. 1 hour ago, maxmanium said: Btw, it might just be me, but I feel like the extended hud font characters aren't being adjusted to doom format like everything else, so they seem kinda stretched out. Technically it's 0.24.3 that compresses the characters rather than 0.25.0 stretching them, but no it's not just you. The extended HUD is now scaled independently; there's a setting to adjust the scale but it doesn't let you squish the characters like before. 54 minutes ago, tmorrow said: I'm running win7. All pre v25 releases had a dsda-launcher. Has it been removed? I've double checked, v24.3 has it, v25 doesn't. I'll post more details about what does/doesn't work if indeed the launcher has been removed. If not, then my question is, how do I get the launcher to come up? Shift click on the exe, iwad, pwad or lmp used to do it before. From the patch notes: Quote Removed legacy windows launcher See the official launcher by PBeGood4 here. 1 Share this post Link to post
tmorrow Posted December 24, 2022 (edited) Ok, I'll stick to 24.3 thanks. I guess there's no point posting what does/doesn't work without the use of an external launcher. I know you meant well but that suggested launcher is disgusting. The launcher's first suggestion is to move all of my iwads to the launcher directory (which would break all other engines that use the DOOMWADDIR environment variable to know where the iwad/pwads live, like vanilla, chocolate, crispy, prboom+, zdoom and gzdoom). To humor it, I copied the iwads instead and then tried to playback a demo by dragging and dropping as it suggested. It then failed because the launcher is unable to parse pathname's properly (can't handle paths with spaces in them). At that point I deleted the launcher. I enjoy being able to shift/double click the exe, iwad, pwad or lmp (even within a zip) and let stuff just work. Edited December 24, 2022 by tmorrow had a deeper look at the launcher. Ugh! 1 Share this post Link to post
Xaser Posted December 24, 2022 (edited) 6 hours ago, maxmanium said: @Xaser Would it be possible to properly emulate the sprites clipping into the floor? Sorry, I'm not planning on diving any further into the GL engine than whatever's necessary to support the new lighting mode. I'm nowhere near a GL expert; I basically learned just enough to get this particular feature in working order, since it's been on my wishlist for aeons. :P That said, it's still worth bringing these things up, since there are some other folks who have poked and prodded at the GL renderer a bit in recent-ish times, but that's a pretty big undertaking from my understanding and I'm not the guy for the job, unfortunately. Edited December 24, 2022 by Xaser 2 Share this post Link to post
Edward850 Posted December 24, 2022 The concept can likely be borrowed from Strife:VEs GL renderer if someone's confident enough to dig into it. It's shaderless so should fit in dsda reasonably well. 2 Share this post Link to post
RHhe82 Posted December 24, 2022 An early christmas present, I see! Sadly I'm unable to play Doom until the 26th :( One question: I've usually made the version update by extracting the package on my old DSDA directory so as to preserve settings. As I understood, configuration stuff has been revamped, so I take it this is not a viable option this time? 0 Share this post Link to post
Ennello Posted December 24, 2022 I have been waiting for this one to be (Christmas) presented for a while. Glad it's finally being released to the (X)masses!!! 0 Share this post Link to post
Ramon_Demestre Posted December 24, 2022 (edited) Win32 build of dsda-doom v0.25.0 https://github.com/RamonUnch/dsda-doom/releases/download/v0.25.0/DSDADoom-0.25.0-win32.7z Note: There are too many glitches for me in Opengl mode because I do not have shaders on my 3d card so I cannot test gl any more. Edited December 24, 2022 by Ramon_Demestre Mak link clickable 4 Share this post Link to post
pltr Posted December 24, 2022 VirusTotal says the release on GitHub is malicious. Is the program safe to run? 0 Share this post Link to post
Ramon_Demestre Posted December 24, 2022 Which file are you using? for me there are zero positives: https://www.virustotal.com/gui/url/34b6e9e1ef3ad363387f07a057a8ea688e1baa07a7b67c427a8c0f4256c24033?nocache=1 Even if I extract dsda-doom.exe I get no positives: https://www.virustotal.com/gui/file/aeb9dc1744e454744e68888ab3ba537d2bdf17e52932151d7d952546db99c21b If the sha256 of you dsda-doom.exe v0.25.0-win32 is not aeb9dc1744e454744e68888ab3ba537d2bdf17e52932151d7d952546db99c21b then you got infected. 0 Share this post Link to post
pltr Posted December 24, 2022 The "use extended HUD" button acts weird. If the extended HUD + status bar is on, and you disable the ex HUD, the ex HUD won't disappear until you change the view size using + or -. Also, the auto map doesn't show the map name anymore. 20 minutes ago, Ramon_Demestre said: Which file are you using? for me there are zero positives: https://www.virustotal.com/gui/url/34b6e9e1ef3ad363387f07a057a8ea688e1baa07a7b67c427a8c0f4256c24033?nocache=1 Even if I extract dsda-doom.exe I get no positives: https://www.virustotal.com/gui/file/aeb9dc1744e454744e68888ab3ba537d2bdf17e52932151d7d952546db99c21b If the sha256 of you dsda-doom.exe v0.25.0-win32 is not aeb9dc1744e454744e68888ab3ba537d2bdf17e52932151d7d952546db99c21b then you got infected. I'm talking about the release on https://github.com/kraflab/dsda-doom, not the ones you are using. 1 Share this post Link to post
Shepardus Posted December 24, 2022 1 hour ago, RHhe82 said: One question: I've usually made the version update by extracting the package on my old DSDA directory so as to preserve settings. As I understood, configuration stuff has been revamped, so I take it this is not a viable option this time? You can still use your existing config, as the file format has remained the same. There are a lot of new settings added and old settings removed, though, so if you were thinking of refreshing your config, now would be a good time to do so. 14 minutes ago, pltr said: The "use extended HUD" button acts weird. If the extended HUD + status bar is on, and you disable the ex HUD, the ex HUD won't disappear until you change the view size using + or -. Can confirm the same, I think this is a bug. 14 minutes ago, pltr said: Also, the auto map doesn't show the map name anymore. I'm pretty sure this behaves the same as it did in 0.24.3 - the map name is hidden when using overlay mode, but is not hidden otherwise. 1 Share this post Link to post
pltr Posted December 24, 2022 I've been playing around with the customizable full screen HUD and it works well. However, I do have a few nitpicks: For big_X HUD components, the character width always matches the "Not adjusted" setting of the "Status Bar and Menu Appearance" option, not your chosen setting. Also, the character kerning is inconsistent between the 1 0 and the 0 0. For big_ammo, the color is always red. For big_health and big_armor, the sprites are always visible. It would be nice if there was an option that hides them. 1 hour ago, Shepardus said: I'm pretty sure this behaves the same as it did in 0.24.3 - the map name is hidden when using overlay mode, but is not hidden otherwise. It's a bit different. In 0.24.3, if ex HUD is on, the map name shows up if overlay mode is off. If overlay mode is on, you see the ex HUD instead of them map name. If ex HUD is off, then the map name always shows up. In 0.25.0, the map name shows up if overlay is off and hides if overlay is on, regardless of whether ex HUD is on. 2 Share this post Link to post
HackNeyed Posted December 25, 2022 Very cool release! I'm really liking the nearly full and yet also minimal HUD. Also, maybe old news but thanks for redirecting ENDOOM to the terminal too. 0 Share this post Link to post
Spectre01 Posted December 25, 2022 Have all OpenGL filtering options been removed? At the very least, I enjoyed using gl_nearest and 16x anisotropic for better fidelity on distant textures. 0 Share this post Link to post
Xaser Posted December 25, 2022 (edited) Have you tried switching the lightmode from "indexed" to "shaders"? Fancy GL options like filtering and anisotropy aren't compatible with the indexed lightmode, so you'd need to switch back to one of the truecolor modes first. If it's still not working, it may have been pruned, but: Quote If a setting was removed, it doesn't mean it can't come back - it only means that it did not make the initial cut as I was prioritizing the things that have clear, fundamental importance. At least one other person has posted about missing anisotropic filtering, so you're not alone on it. Edited December 25, 2022 by Xaser 1 Share this post Link to post
Recommended Posts