Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
GoneAway

dsda-doom source port [v0.24.3]

Recommended Posts

A (quite) belated reply, but let's write it:

 

On 2/15/2021 at 1:48 PM, Gez said:

Can we hope to eventually get Heretic complevels for the various versions of Heretic? @NY00123's work here can be a starting point.

 

Thanks for bringing this up at the time. As of last May, all DOS revisions of Vanilla Heretic/Hexen EXEs I'm currently aware of should be covered in my repositories.

 

The most important thing to know is that there's not just one, but two revisions of Hexen identified as "1.1". The later one fixes a bug observed in DK, where a monster could spawn after breaking a suit of armor even if -nomonsters was passed. The only other changes are in the version string. The released source code for Hexen matches the later revision.

 

Originally, I mistakenly assumed that only the earlier revision had a binary release in the 90s. Thus, I submitted a patch for Chocolate Doom, reverting the behaviors impacted by -nomonsters from the later 1.1 revision to the earlier one. Even after learning that, in fact, there are two binary revisions floating around, the earlier one appears to be more common.

 

Note that Chocolate Doom 3.0.1 still has the later revision's behaviors, while my patch is in the git repository.

 

There are also two revisions of Hexen identified as "1.0", but the only change is that the song "Chess" isn't started before waiting for level load, in case CD audio is in use.

 

As for the question if multiple complevels are to be supported, that's eventually up to the dev. As it's known, this should indeed increase the compatibility with contents (especially demos), but it'll also add more code to maintain.

 

Even for Doom, not all versions are covered by complevels. v1.4 is one example. The same holds to the id Anthology revision of Final Doom, which can be emulated by Chocolate Doom using "-gameversion final2".

 

Heretic 1.0 might be the most interesting target, due to the original demos, but the rest are probably not as much. I can also add that there are very few differences between the EXEs of shareware v1.0 and registered v1.0, although I don't think they should impact gameplay; A few changes appear to be UI-related, and there's also the removal of the dependency of -record on -devparm.

 

Share this post


Link to post
On 11/11/2020 at 3:38 PM, kraflab said:
On 11/11/2020 at 3:38 PM, kraflab said:

Hello everyone :^)

 

Introducing the dsda-doom source port, which is a fork of prboom+um.

 

The focus is on tooling that is important for our automation work on the archive, quality-of-life improvements for demo recording, and fun additions to the demo playback experience.

 

Patch Notes:

v0.21

v0.20

v0.19

 

Old Patch Notes:

  Reveal hidden contents

New in 0.1.0

  • Use -analysis to set up an analysis.txt file (similar to levelstat.txt but for more general stuff, including pacifist verification). This will be expanded over time.
  • Use -track_pacifist to print a "Not pacifist!" message when you break the category rules.

New in 0.2.0

  • added reality and almost_reality fields to the analysis.

New in 0.3.0

  • added missed_monsters and missed_secrets fields to the analysis.

New in 0.4.0

  • added skill, nomonsters, respawn, fast, stroller, 100k, 100s, weapon_collector, tyson_weapons, turbo, and category to the analysis.
  • added -track_100k option: show a notification when you reach 100% kills (as seen on intermission)
  • added sound effect for pacifist / 100k notifications

New in 0.5.0

  • Use -time_keys to show a split when you pick up a key.

  • Use -time_use to show a split when you press the use key.

  • Use -time_secrets to show a split when you find a secret.

  • Use -time_all to enable all the split options.

New in 0.6.0

  • Use -export_ghost xyz to create a ghost file (xyz.gst) - works during demo playback and recording.
  • Use -import_ghost xyz to import a ghost file (xyz.gst) - works during demo playback and recording.

New in 0.7.0

  • Ghosts pause / fast-forward during movies to start each map together.
  • The -import_ghost command now accepts a list of files (-import_ghost ghost1 ghost2 ghost3 ...).

New in 0.7.1

  • Ghost files now support any number of players - a 4 player coop demo exports a 4 player ghost file.
  • Ghost color now cycles through the 4 player colors.
  • Fix for jittery ghosts at the end of the file.

Experimental in 0.8.0

  • Use the "restart current map" key while demo recording to perform an in-game restart.

New in 0.8.2

  • Added options menu (in general)
  • Added "strict mode" option, defaults to on. When on, tas settings are disabled while recording, unless you pass in the "-tas" parameter (always sr50, sr50 on turns, and game speed). This is a safeguard against accidentally leaving one of these settings on.
  • Added "cycle ghost colors" option, defaults to off.

New in 0.8.3

  • Smart Totals renamed to Max Totals and "fixed" to show kill constraint for max.

New in 0.8.4

  • With demo overwrite off and the recording name matches an existing file, it picks the first unused name demo-01234.lmp.
  • Improved demo file cleanup (fix restart limit).

New in 0.9.0

  • You can now rewind the game :^)

New in 0.10.0

  • The level time with tics now shows in the top left corner of the intermission screen.
  • New option: extended hud. This puts max totals, kill percent, and timers on top of the normal hud.

New in 0.12.1

  • You can now play heretic :^)

New in 0.13.0

  • Fix heretic crash when marking the map (currently disabled)
  • Fix heretic crash when exiting the settings before the game starts
  • Fix crash related to loading save files or key frames (thanks zx64)
  • Fix heretic shadowsphere transparency in software mode (reported by PaquoCastor)
  • Fix heretic chaos sphere crash (reported by PaquoCastor)
  • Now autodetect heretic as an iwad (launching without args or dragging wad to exe)
  • Launcher supports heretic as iwad
  • Completely rewrote the input binding system
    • All inputs can be bound to key / mouse / joy
    • Multiple keys can be bound to the same action
    • You can now cycle between 3 separate input binding profiles
      • Settable in key binding menu & with a key in the dsda section
    • You can unbind joy buttons
    • Random system keys like "volume up" shouldn't cause random effects (at least it is fixed for me)
    • More joy buttons can be configured
    • The key binding configuration format has changed...you'll need to rebind your keys.

New in 0.13.1

  • Fix automap input errors
  • Hide map name when the map overlay is on with ex hud

New in 0.14.0

  • Fixed a desync in saves / key frames related to blockmap ordering
  • Fixed a desync in saves / key frames related to soft-deletion
  • Fixed an issue with rewind timing
  • Key frames now store the whole demo buffer
  • Manual key frames now create backup files (backup-ttt.kf)
  • You can now continue recording a demo from a key frame (-record x.lmp -from_key_frame backup.kf -complevel x)
    • When recording from a key frame, the restart demo key returns to the original key frame.

New in 0.15.0

  • Fixed a desync in saves / key frames related to a bug in mbf thinker subclasses
  • Fixed a desync in saves / key frames related to the msecnode graph
  • Fixed a bug where the initial wipe could eat frames
  • New option: "wipe at full speed" - causes the wipe animation to always run at 100% game speed (defaults to on)
  • New feature: use "-first_input f s t" to build the first tic for tases, where f = forwardmove, s = sidemove, and t = angleturn.
    • Example: "-first_input 50 50 32" will do a quarter turn left and sr50 forward right.

New in 0.15.1

  • Fixed split times being off by 1
  • Fixed analysis stats not resetting when hitting the demo restart key (e.g., pacifist tracking)
  • Added "track demo attempts" option. When enabled, displays "Attempt x / y" at the start of a demo, where x is the count for the current session (increases when you use the demo restart feature) and y is the total count (based on the demo filename). Defaults to on.
    • File names now follow this pattern, so the attempt count matches the filename: file.lmp, file-00002.lmp, file-00003.lmp (skip -0 and -1).
  • Added many cheat bindings - you can now activate idclip, iddqd, iddt, etc at the touch of a button
  • Protected more things with strict mode:
    • show alive monsters
    • health bars
    • palettes
    • iddt, idbehold, idmypos

New in 0.15.2

  • Fixed dehacked infinite ammo

New in 0.16.0

  • Implemented palette swapping
    • The special graphic at the end of heretic e2 now displays correctly
    • New keybinding: cycle palette (for testing / mapping)
      • Starts with PLAYPAL, followed by PLAYPAL1 to PLAYPAL9

New in 0.17.0

  • Set mouse carry default to on (doesn't change existing configs)
  • Zero mouse activation position (fixes a bug where the first mouse input can be incorrect)
  • Track mouse position only once per tic (reduces small mouse input truncation)
  • Unscale mouse input (makes mouse input to game input 1:1)
  • Carry fractional vertical mouse movement
  • Carry fractional mouse strafe
  • Allow non-integer horizontal mouse sensitivity ("fine sensitivity" option)
  • Close an exploit in mousewheel input
  • Unlock mouse sensitivity scales (99 is no longer a limit)
  • Show values next to mouse scales in doom (already in heretic)
  • Update umapinfo spec to 1.3

New in 0.17.1

  • Fix automap scroll with uncapped fps

New in 0.18.0

  • Fancy stuff:
    • When playing with uncapped fps, you may experience up to 1ms less input lag.
    • When playing with capped fps, you may experience up to 2ms less input lag.
    • Improved interpolation stability.
  • The flowing lava in heretic e2m2 now flows.
  • Fixed extended hud vertical alignment for nonstandard status bar format.
  • Fixed a crash related to state recursion in custom monsters.
  • Fixed a desync caused by opening the menu on the intermission before the numbers are done.
  • You can idclev and -warp to any map from e1m0 to e9m9 and map00 to map99 now, if they exist (from pr+).
  • Add software mode exclusive fullscreen option (from pr+).
  • Fixed a crash related to automap icons (from pr+).

 

The project is over here: https://github.com/kraflab/dsda-doom

 

Support / builds for mac

 

Windows Build:

dsda-doom-0.21.3.zip

 

In build 0.21.3 for Windows, I get an error saying "I_SignalHandler: Exiting on signal: signal 22". Is there a .dll file I'm missing or something stupid like that? Lmao

Share this post


Link to post

Btw if I did something wrong when posting, please tell me. This is my first ever post after lurking on Doomworld for over a year :)

Share this post


Link to post
40 minutes ago, Sr_Ludicolo said:

In build 0.21.3 for Windows, I get an error saying "I_SignalHandler: Exiting on signal: signal 22". Is there a .dll file I'm missing or something stupid like that? Lmao


You need to launch the game with the -nomusic parameter.

iirc, kraf said this problem will be fixed soon

Share this post


Link to post

Speaking of the latest build, I can't export text files with v.0.21.3. I remember I built from source a linux binary, and I was able to create text files perfectly

 

Whenever I use the parameter, it shows this

image.png.308154d4e7347af8c0c673b6a2270842.png

Share this post


Link to post
1 hour ago, PBeGood4 said:


You need to launch the game with the -nomusic parameter.

iirc, kraf said this problem will be fixed soon

ah, thank you!

Share this post


Link to post

It seems the Cacodemon's death animation isn't offset properly in OpenGL with sprite clipping set to "Smart." it bumps up on one of the frames and its been seriously bugging me since I've noticed it. Any chance this can be fixed?

Share this post


Link to post
13 hours ago, Firebert said:

It seems the Cacodemon's death animation isn't offset properly in OpenGL with sprite clipping set to "Smart." it bumps up on one of the frames and its been seriously bugging me since I've noticed it. Any chance this can be fixed?

Since this bug is probably in prboom+, I'd recommend opening a report there. Most likely JadingTsunami or one of the other opengl-savvy contributors will get it fixed quickly.

Share this post


Link to post

Hey, two questions:

 

Are ammo counts showing up on the Advanced HUD planned for the future? Last mention of that was from Garrett almost a year ago.

 

I've also noticed that vanilla resolution of 320x200 is not an option in DSDA but exists in the UM fork. It would be nice to have, along with the widescreen equivalent.

Share this post


Link to post
6 hours ago, Spectre01 said:

I've also noticed that vanilla resolution of 320x200 is not an option in DSDA but exists in the UM fork. It would be nice to have, along with the widescreen equivalent.

320x200 shows up for me, along with 320x240, 640x400, and 640x480. You should be able to manually set it in the config file or with the -geom parameter too.

Share this post


Link to post
On 10/3/2021 at 12:13 PM, kraflab said:

Since this bug is probably in prboom+, I'd recommend opening a report there. Most likely JadingTsunami or one of the other opengl-savvy contributors will get it fixed quickly.

Forgot to reply to this thread, I got this as a response. I think it works well.

 

Quote

Thanks for providing the additional data. I think this is expected just given how smart clipping works.

Have you tried the following settings? They may meet your needs:

   1. Sprite clipping = constant

   2. Sprite out of floor offset = 2

You can adjust the sprite out of floor offset to suit your tastes.

 

Share this post


Link to post
10 minutes ago, MatrixCL said:

The parameter -consoleplayer doesn't seem to work, or I'm doing something wrong. I'm trying to see the perspective of the second player in a co-op demo with "-playdemo <filename>.lmp -consoleplayer 2", but still see the first player's perspective. Luckily F12 still works though.

 

https://github.com/kraflab/dsda-doom/blob/master/prboom2/src/g_game.c#L4022

It's actually -consoleplayer 1 to see the second player's perspective.

Share this post


Link to post

I tried that too. But actually I might have an older version of DSDA, so I might've posted this too early.

 

Edit: Yea sorry, my mistake. I was still on version 0.19.7.

Share this post


Link to post

EDIT: This post is not a dsda-doom exclusive bug, I did some more testing and this occurrence is not exclusive to this dsda-doom, it also happens in prboom. While I was not able to replicate this occurrence with under 200 green armor, it seems every time a megasphere is picked up with 200 green armor, the protection the megasphere grants remains green armor level protection. Must be some oversight in the original game or something.

 

So I was playtesting one of my maps, which is complevel 9 and had no dehacked or anything done to it, when I grabbed a megasphere and saw that my armor did not become mega/blue. Before I picked up the megasphere, I had ~25 health and ~160 green armor (I have a lot of armor bonuses in my map), and after picking up the megasphere, I received the normal 200 health and 200 armor, but my armor was still normal/green. The armor bar of the alternative hud showed green, and the armor reduced health loss by a third, just like a green armor would, despite the fact a megasphere should give blue armor. Another thing to note is I would save/load and the megasphere still acted funny, giving me green armor and not blue. I don't know if this is a source port issue, but this is the first time I've ever seen this sort of thing happen and it happened while I was playtesting my map in v0.19.7. However, I have tried recreating this phenomenon in under identical conditions (same map, same megasphere, complevel 9, same health and armor before picking up the mega) in both v0.19.7 and the latest version, v0.21.3 and have been unsuccessful. Every single time the megasphere gives me the standard 200/200 with blue armor. Unfortunately, in the original incident it slipped my mind to try grabbing other megaspheres in the map to see if it would yield similar abnormal results. So I don't know if this is a dsda-doom bug or not but I figured I'd mention this here since it happened in this sourceport and I've never seen this kind of thing happen before.

 

TL;DR - I picked up a megasphere in a normal boom compatible map with no DEHACKED stuff in it and it gave me 200/200 with green armor protection instead of blue.

Edited by KineticBeverage : Oops, this isn't a dsda-doom exclusive bug

Share this post


Link to post

Has this port always used the respawn sound effect for secret revealed like crispy doom or did it at one time use the one zdoom and prboom+ use?  Just curious, either way I'm enjoying this port.  

Share this post


Link to post
18 hours ago, BlueThunder said:

Has this port always used the respawn sound effect for secret revealed like crispy doom or did it at one time use the one zdoom and prboom+ use?  Just curious, either way I'm enjoying this port.  

At the time dsda-doom was forked from PrBoom+(UM), the secret reveal sound had already been changed to the item respawn sound effect. You can still provide your own sound by loading a WAD with the "DSSECRET" lump (place it in the autoload folder if you'd like it loaded all the time).

 

On 10/10/2021 at 2:36 AM, KineticBeverage said:

EDIT: This post is not a dsda-doom exclusive bug, I did some more testing and this occurrence is not exclusive to this dsda-doom, it also happens in prboom. While I was not able to replicate this occurrence with under 200 green armor, it seems every time a megasphere is picked up with 200 green armor, the protection the megasphere grants remains green armor level protection. Must be some oversight in the original game or something.

I didn't know about this until reading your post, but yes, it's like that all the way back to vanilla. P_GiveArmor skips setting the armor points if the player has >= 200 armor (when picking up a megasphere), but in doing so also skips setting the armor type. Don't know how it would come up with under 200 armor, though.

Edited by Shepardus

Share this post


Link to post
3 hours ago, Red Recluse said:

How record demo in source port dsda-doom-0.21.3.

-record, same as in any other source port. I know you like to do TASes, so to do that in dsda-doom you need to add the -tas parameter as well. Without -tas, the TAS features are disabled while recording.

Share this post


Link to post

When playing Heretic, DSDA doesn't switch weapons when picking up a new one. I couldn't find a way to turn autoswitch on. Is this feature not implemented?

Share this post


Link to post
35 minutes ago, Red Recluse said:

How to make a launcher DSDA-Doom.exe for -viddump video.mkv.

It works the same as in PrBoom+, so assuming you've set that up before, you can reuse the same configs and executables (FFmpeg or oggenc/x264/mkvmerge). The relevant configs to copy are under "Video capture encoding settings" in the config file:

cap_soundcommand
cap_videocommand
cap_muxcommand
cap_tempfile1
cap_tempfile2
cap_remove_tempfiles
cap_fps

 

If you don't have an existing setup, you can use the "viddumping" section here as a guide.

Share this post


Link to post
7 hours ago, Gregor said:

When playing Heretic, DSDA doesn't switch weapons when picking up a new one. I couldn't find a way to turn autoswitch on. Is this feature not implemented?

dsda-doom is demo compatible. However it works is just how the game works - it's not a question of features being implemented.

Share this post


Link to post

-file doom2.wad -record demo002 -warp 2 -complevel 4 -skill 4 it's work but don't work function -recordfromto why?                                                             -file doom2.wad -recordfromto demo002 demo003 -skipsec -10.

Share this post


Link to post
Guest
This topic is now closed to further replies.
×