Jump to content

dsda-doom source port [v0.24.3]


Recommended Posts

8 hours ago, Kappa971 said:

I compiled dsda-doom with Visual Studio 2019 (later I also tried 2022) and vcpkg (libdumb isn't there? I had to add it manually). Doom and Heretic work, Hexen crashes after choosing the difficulty or when the demo starts.


Hexen crashing after choosing a difficulty seems like the “centered weapons crash”. Did you compile the latest version (0.21.3) ?

Share this post


Link to post
2 hours ago, Kappa971 said:

 I have installed all necessary dependencies, but the (installed) fluidsynth library isn't detected and It doesn't detect OpenGL.


Did you try to use “ccmake” to fix the fact that it didnt detect these libraries?

 

Run ccmake the same way you would run cmake.

Share this post


Link to post

Sorry, by "canonical" I meant for dsda-doom specifically - the one that I use and thus the one that produces builds that are tested and that I will debug. 😉 There are many places in the code base that have visual studio specific differences, that are there to make it compile, but which I can't affirm are producing the identical results myself.

 

I use msys2 with mingw 64bit. My assumption is anyone compiling for themselves will be able to run a debug build to diagnose issues they run into in their own environment. Most likely the issue is related to visual studio or to 32bit, if you're compiling that.

 

Issue trackers on GitHub for doom ports tend to be filled with inane feature requests that don't belong, which is why I disabled it for dsda-doom. I don't plan on changing that. I could track things somewhere else although I doubt normal users would check something else, I assume this thread is where they will go.

Share this post


Link to post
1 hour ago, kraflab said:

Issue trackers on GitHub for doom ports tend to be filled with inane feature requests that don't belong, which is why I disabled it for dsda-doom. I don't plan on changing that. I could track things somewhere else although I doubt normal users would check something else, I assume this thread is where they will go.

 

I haven't experienced this with any of my projects. Sure, you occasionally get some stupid reports, but this is minor background noise compared to genuine reports not being made because it's too inconvenient.

Share this post


Link to post

My experience for other ports is that I end up opening issue reports on other people's behalf because making a github account for something you could just explain in a forum post is too much overhead for typical users. I also get reports more directly on the speedrunning discord. I haven't really felt like there's a problem with reports not being made, at least I'm not out of things to fix or getting blindsided by anything :^)

 

The main loss I see is that potential contributors looking for some small issues to work on won't be able to easily find a list of things that need looking into. But to me this is overshadowed by the maintenance cost of the issue tab - I just expect it would give me a net increase in work to do that I'd rather put into the code.

Share this post


Link to post
4 hours ago, Graf Zahl said:

IMO Visual Studio 2019 is "the" canonical build environment for Windows. Have you tried to run your build in the debugger to see where it crashes? If you can give that information it'd be a lot easier to find the cause. Since you experience the crash and have set up the build environment you are in the best position to provide more help. In any case, I don't expect this to be a compiler specific problem but far more likely a setup issue that was never expected by some code in here.

776373808_Immagine2021-09-14122359.png.1a9c55ef5681db0ff781fc3cf9223f1b.png

Share this post


Link to post

I translate as it is in Italian:
Exception thrown
Exception was thrown: Read access violation.
p was 0x7FF710939EC0

Share this post


Link to post
8 minutes ago, kraflab said:

I also get reports more directly on the speedrunning discord

 

I'm not sure that this is really exhaustive. Your port has gained a lot of traction outside the speedrunning community already and I am pretty sure that none of these people will ever visit there.

 

12 minutes ago, kraflab said:

The main loss I see is that potential contributors looking for some small issues to work on won't be able to easily find a list of things that need looking into.

 

Well, let me disagree on your behalf then. :P

At the pace you are currently developing it will be inevitable that mistakes are being made, especially in the lesser used parts of the engine, and if you do not provide a convenient means to your users to report these issues I am fairly certain that a lot of info will get lost - especially the discussions that happen after the report - if people feel they cannot easily contribute.

 

12 minutes ago, kraflab said:

 

But to me this is overshadowed by the maintenance cost of the issue tab - I just expect it would give me a net increase in work to do that I'd rather put into the code.

 

How about trying at least? If you feel it doesn't work for you you can still change your mind, but without trying we'll never see how things may go.

 

You can also set up some rules (e.g. "no feature requests until further notice") and close such reports on sight. Estimated time would be 5 minutes a day, maybe - if it gets that high - GZDoom got less than 20 feature suggestions over the last month!

I am also fairly convinved that some people here would gladly help you out here if they could, to keep you focussed on the actual work.

 

Something else: Why aren't you hosting your binary downloads on Github? The link's only here in the forum which may make potential users believe they have to self-compile if they don't know this place. As an added bonus, with Github you can get download count statistics if you know the right website to use (I can post a link later today, right now I'm at work where I don't have it available.)

 

Share this post


Link to post

 

4 minutes ago, Kappa971 said:

I translate as it is in Italian:
Exception thrown
Exception was thrown: Read access violation.
p was 0x7FF710939EC0

Player number is 9099. Can you also make a screenshot one function up in P_SpawnMapThing? This is where the error l likely originates.

Share this post


Link to post
30 minutes ago, Graf Zahl said:

How about trying at least? If you feel it doesn't work for you you can still change your mind, but without trying we'll never see how things may go.

 

Something else: Why aren't you hosting your binary downloads on Github? The link's only here in the forum which may make potential users believe they have to self-compile if they don't know this place. As an added bonus, with Github you can get download count statistics if you know the right website to use (I can post a link later today, right now I'm at work where I don't have it available.)

I don't need to try it myself - I have already seen how it goes while watching the prboom+ tab :^)

 

I mentioned the discord not to indicate that it is exhaustive, only to point out that there are multiple channels (and the discord is significant).

 

About binaries: this is a matter of separation of concerns for me. I use github for code and not for hosting or building - that feels out of place to me, though obviously many people disagree. The first line of the readme links directly here and says that this is where builds are. Due to the nature and purpose of this port, I also prefer to not have old builds readily available which someone may download by accident.

 

Is there someone that feels like I am developing too slow or that I am not reacting to important issues? If the process is broken then I will look into fixing it, but mostly these feel like non-problems to me. Because of demo compatibility, we run exhaustive tests that have pretty deep coverage of the engine. I can't recall this port ever breaking demo sync in a release in a meaningful way (the intermission desync was decades old and inherited from prboom+, the hexen desync was due to a context not present in iwad demos and was uncovered during the beta). I also haven't felt a lack of contributions, which come mainly as small patches. Big topics I prefer / need to work on myself, both for the sake of context and because of the sensitivity of features in a port designed for competition. For some things I work closely with specific people (e.g., mbf21 implementation with xaser). So far I think the pace has been good and the bugs have not been significant.

Share this post


Link to post
1 hour ago, Kappa971 said:

I translate as it is in Italian:
Exception thrown
Exception was thrown: Read access violation.
p was 0x7FF710939EC0

See if this fixes it for you: https://github.com/kraflab/dsda-doom/commit/e704c987b12b5ba1a2afb909ca05ec44cbec7cfa

 

I'm guessing that the out of bounds position in playeringame happens to return 0 with my build, so the code never tried to dereference the playerstate in the following line in P_SpawnPlayer.

Share this post


Link to post
58 minutes ago, kraflab said:

Is there someone that feels like I am developing too slow or that I am not reacting to important issues?

 

No, neither. I just feel that the entire process as-is is very inconvenient to use for potential contributors and will surely discourage potential users from giving the needed feedback.

 

Concerning bugs, what I like to do is let them collect for a certain amount of time and then spend one day just squashing 20 or 30 at once. But for that they need to be tracked somewhere, it cannot be done if there is no centralized place that keeps track of them. I  often also do not have the time to look at the issues for several days at a time. In Discord or a single forum thread they'd quickly disappear into the ether.

 

58 minutes ago, kraflab said:

 So far I think the pace has been good and the bugs have not been significant.

 

 

I guess we never know because there's no list of issues that may qualify as an indicator. ;)

 

1 hour ago, kraflab said:

About binaries: this is a matter of separation of concerns for me. I use github for code and not for hosting or building - that feels out of place to me, though obviously many people disagree. The first line of the readme links directly here and says that this is where builds are. Due to the nature and purpose of this port, I also prefer to not have old builds readily available which someone may download by accident.

 

Hm, to me that does not make much sense. You already publish the releases on Github but they are source only. Rest assured that this is where many potential users will stop because they think that they have to self-compile. Wo does read readmes anyway? Average Joes often do not even if they are right in their face.

There's also one other thing: How can one download old releases? With Github they'd be neatly stored under the corresponding release tag where they are easy to find for anybody used to how Github works.

For GZDoom we formerly self-hosted our builds as well, but it is so much easier being able to point the users to that single location where they can find everything they may need. :)

 

Share this post


Link to post
23 hours ago, kraflab said:

See if this fixes it for you: https://github.com/kraflab/dsda-doom/commit/e704c987b12b5ba1a2afb909ca05ec44cbec7cfa

 

I'm guessing that the out of bounds position in playeringame happens to return 0 with my build, so the code never tried to dereference the playerstate in the following line in P_SpawnPlayer.

This solved the problem, thanks.

 

I believe someone should add a paragraph in the INSTALL file regarding Windows and MSYS2 (or Visual Studio).

Share this post


Link to post

Heretic (with the Shadow of the Serpent Riders expansion) has a bug with the first and third demos. They desynchronize (this also happens in the DOS version) but in dsda-doom, when the player dies, they don't go straight to the next demo but they are played a second time in a strange way.
Even with the Heretic 1.0 WAD the first and third demos desynchronize, these in the DOS version work fine.

Share this post


Link to post
1 hour ago, Kappa971 said:

when the player dies, they don't go straight to the next demo but they are played a second time in a strange way.

This is expected. Death doesn't end a demo, so the demo keeps going (in this case the use key causes the player to restart the map like in normal play). Those demos are for unsupported old versions of heretic.

Share this post


Link to post

I understand, in fact the first and third demos don't work even in DOS ... The ones of heretic 1.0 work fine in DOS but not in dsda-doom. dsda-doom which version of Heretic does it support? Just my curiosity, I don't care if it doesn't play Heretic demos ;)

Share this post


Link to post
42 minutes ago, kraflab said:

It should be compatible with the v1.3. Any demos for older versions may or may not play back correctly.

OK thanks. The v1.3 would be the one that includes the expansion that has demos 1 and 3 desynchronized, it is strange that at the time they didn't update or remove them.

Share this post


Link to post

Can you make an option to disable cheat codes like RNA it would be a very nice qol feature and I keep accidentally hitting them because of my binds and my fat fingers or and option to just disable all cheat codes for people with other binds

Share this post


Link to post

This feels like a bit of a frivolous ask (and may have been discussed before) but

is there an easy way that "Use" can be decoupled from "Respawn"?

i.e. allow separate key binds for:

  • pressing a switch
  • restarting a level when you die

When low on health and about to hit a switch I keep accidentally respawning and losing all my keyframes.

 

Thank you!

Share this post


Link to post

Ya, I was planning on adding some options for the use behavior when you're dead, like loading the last save / key frame / doing nothing, etc.

Share this post


Link to post
On 9/20/2021 at 8:44 PM, CHIEF QUEEF said:

Can you make an option to disable cheat codes like RNA it would be a very nice qol feature and I keep accidentally hitting them because of my binds and my fat fingers or and option to just disable all cheat codes for people with other binds

Sure, I was planning on adding an option to disable cheats at some point.

Share this post


Link to post

-config flag seems like it should work similar to -iwad. It will look for the named config in the usual paths, instead of requiring a direct path every time. -config only looks in current working directory for the named config, instead of in ~/.dsda-doom. 

 

Related to the cheats post, I have extra configs for testing maps with various cheats. Loading up different configs fixes the "half my keys are bound to cheats" issue. Similar to "input profiles" a "save to another config" might be useful.

 

Share this post


Link to post
22 minutes ago, The_SloVinator said:

Just curious. Is there a way to change secret sound effect & message?

 

Message, no. But I think you can change the sound by loading a wad with custom DSSECRET lump.

Share this post


Link to post

I believe that you can't edit stuff like the exit messages with DeHacked either, right? I was looking for that a while ago, but could never find anything for it. Would some sort of LANGUAGE style format for editing text strings be in the cards some day in the future? Obviously not some kind of pressing need.

Share this post


Link to post
On 9/23/2021 at 3:07 PM, The_SloVinator said:

Just curious. Is there a way to change secret sound effect & message?

Here is the secret sound from the original prboom+ (not pr+um and DSDA-doom) if someone wants to have it :) I use it all the time, the default sound is horrible.

secret.7z

Share this post


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