Youda008 / DoomRunner

Preset-oriented graphical launcher of various ported Doom engines (an alternative to ZDL)
GNU General Public License v3.0
205 stars 13 forks source link

[Possible Bug] Complevel in Crispy Heretic/Hexen (possibly also Crispy Strife) #74

Closed NightFright2k19 closed 1 year ago

NightFright2k19 commented 1 year ago

Weird things happen with the -complevel setting when switching ports.

Example:

I am setting up -complevel 4 for Plutonia through the launcher. If I go to Doom Complete now, it sets -compatmode 4. Heretic and Hexen (which don't support compatmodes/complevels) get +compatmode 4. If I check "Compatibility Level" in the "Launch" tab, it's empty and when switching back to Plutonia (where I made the setting in the first place), it's empty as well.

Is that expected behavior or am I supposed to remove the complevel settings before changing to another port? I think the problem is that it doesn't reset the complevel settings properly when switching to a title with a different port.

Observations:

Youda008 commented 1 year ago

ffs, i just made a release 10 minutes ago

Can you please record me a short video or gif of the bug? I'm not sure i understand what you're describing.

NightFright2k19 commented 1 year ago

I guess it is hard to understand if you don't have my kinda setup in front of you. I'll see if I can find a way to visualize it. At least with lots of screenshots if I can't figure out anything else.

I am sorry I didn't notice this earlier, but I simply didn't pay attention to what would happen if you switch games assigned to different ports. I had assumed one would have to set it up separately for each game, but apparently complevel is inherited to some degree. It may not be intended, but that's what seems to happen.

Youda008 commented 1 year ago

If you have any of the modern graphics cards, you must have either the AMD Radeon Adrenaline or NVidia ShadowPlay, they can record with a press of a keyboard shortcut. If you have neither, OBS is a good alternative, although it's little more difficult to use.

NightFright2k19 commented 1 year ago

Alright then. Here is a demo video with what I have described above. Hopefully, MP4 @ 1080p is an acceptable format for you (had to zip it since otherwise it would be too large for upload).

complevel_demo.zip

(At the end of the video, I am doing the reset I mentioned in my report after the first bullet point under "Observations".)

Personally, I would expect the complevel setting to remain confined to the game I have currently selected, i.e. if Plutonia is chosen and I set it to CL4, there shouldn't be any complevel setting applied to Doom, Doom II, TNT etc. when switching to those afterwards, regardless which ports these are using. Instead, the launcher seems to apply the same CL setting (at least the command line parameter, not what you chose in the "Compatibility Level" dropdown menu) to other games as well if you switch, which is the first error, plus it even applies the parameter incorrectly (e.g. Crispy Heretic/Hexen do not need any complevel settings), which is the second error.

Youda008 commented 1 year ago

Ah, ok, i see what you're trying to do.

First of all, do you use this option? obrazek Because otherwise the selected comp level is stored once for the whole launcher regardless of your selected preset or whatever.

Secondly, the compat level combo-box must be reset to when an engine is changed to some that expects different parameter (-complevel vs -compatmode) than the previous one, because then the previous selected value is no longer valid, because different parameters have different possible values (-complevel 4 is not the same as -compatmode 4)

The bug here is that the reset is not complete. The combo-box is reset, but it stays on the command line. That's a little mystery for me, but i will figure that out.

NightFright2k19 commented 1 year ago

OK, I had set it to "Save globally". When I change it to "Save to preset", it seems to be fixed. Anyway, it shouldn't behave like this with the other option, but I think there's no doubt about that.

Youda008 commented 1 year ago

So, you're essentially asking to store the compat level in relation to the selected WAD? Am i correct? Or you want it to be stored always in the Preset, regardless of the setting in Initial Setup?

NightFright2k19 commented 1 year ago

I would say wad-based complevel saving would make the most sense to me, yeah. One way or the other, it wouldn't be depending on the "Save globally"/"Save to preset" selection any more, so it should be more robust in any case.

Youda008 commented 1 year ago

I will have to think about this, because this would become yet another exception to the overall design.

Youda008 commented 1 year ago

Can you please briefly test that this version doesn't break anything that was working before? DoomRunner-1.6.3-preview1.zip I would like to do one more bug-fix release before i start reworking the way Launch options are stored, to solve the original issue.

NightFright2k19 commented 1 year ago

My browser doesn't let me download this because it claims the d/l contains a virus (probably a false positive, though).

NightFright2k19 commented 1 year ago

Seems to work as intended in the final release now. Thumbs up!

Youda008 commented 1 year ago

Hello @NightFright2k19, i implemented an experimental feature that allows choosing different storage for individual option groups.

It works like this: new_feature

Does this fit your use-case better?

You can try a preview here: DoomRunner-1.7-experimental.zip

The launcher got more complicated with this rework, so it is possible new bugs will arise.