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

[Feature] Master Levels/SIGIL support #55

Closed NightFright2k19 closed 1 year ago

NightFright2k19 commented 2 years ago

The PrBoom+ Launcher has a nice feature that lets you launch the Master Levels directly. It's mostly warping to the right map slot directly depending on your selection (e.g. Blacktwr.wad as MAP25 etc), so you don't have to know which map to set when warping.

Would be nice to have this here as well in some form, maybe an extra tab called "Master" which only shows up if you set up a path that points to the wad files.

Map IDs can be found here.

Youda008 commented 1 year ago

Alright, time to sort this mess up. Don't you wanna learn C++? 😄 The amount of demanded work is getting kindof overwhelming.

NightFright2k19 commented 1 year ago

I hope that was a rhetorical question. xD

Youda008 commented 1 year ago

Unfortunatelly not. I'm getting slightly burned out of this project, the requests just keep comming. And i would already like to spend my effort and creativity elsewhere. I will try to sort out the current wave of issues, but after that ... it's time to search for a new maintainer guys.

NightFright2k19 commented 1 year ago

Not all of the open request here are super important. However, ports like Crispy Doom or Woof not being able to load multiple pwads at once by default (unless you edit the launch commands) is definitely one of the bigger annoyances.

Youda008 commented 1 year ago

Uff, well this feature would require either to have a manually maintained list of known wads and their corresponding starting level, or be able to read the content of the wad and find out what the first level is. The first solution will never be complete and people will keep asking to add new and new wads. And the second is a lot of work to do.

NightFright2k19 commented 1 year ago

Or you just limit support to these specific wad files via checksum and ignore all the rest, as that PrBoom+ launcher does (I think).

Youda008 commented 1 year ago

Then give me the list. I had the MasterLevels before, but they got lost probably when i was moving to another flat.

Youda008 commented 1 year ago

@NightFright2k19 If you want this feature to get into 1.6, you need to provide me a list of WADs and their corresponding starting levels. I cannot do it myself, since i lost the Master Levels.

NightFright2k19 commented 1 year ago

Thanks for considering this, pal! I can see you are pumping a lot of effort into the next release to get as many requests done as possible.

Basically, the wads NOT using the MAP01 slot are:

Otherwise, MAP01 is used by all the others, i.e.: attack.wad, canyon.wad, catwalk.wad, combine.wad, fistula.wad, garrison.wad, manor.wad, paradox.wad, subspace.wad, subterra.wad, ttrap.wad

Youda008 commented 1 year ago

Sorry, i did not receive email notification about this one. I will add it to 1.6.1.

Youda008 commented 1 year ago

Implemented in master branch.

NightFright2k19 commented 1 year ago

Excellent! Could you maybe compile a test build so I can check it out or is the new version coming soon, anyway?

Youda008 commented 1 year ago

Here: DoomRunner.zip I'll be happy if you beta-test it, because i can't, as i don't have the Master Levels

NightFright2k19 commented 1 year ago

OK, first observation is that this obviously doesn't work if Launch Mode is set to "Default", but I guess that's normal (and also wouldn't work since no difficulty level has been selected). Otherwise it chooses the map slot correctly when selecting the wad. Well, kind of...

Good news: Any non-MAP01 maps (blacktwr.wad, bloodsea.wad, geryon.wad, mephisto.wad, minos.wad, nessus.wad, teeth.wad, vesperas.wad, virgil.wad) launch just fine.

Bad news: For some reason, the MAP01 replacements use the warp setting of the last non-MAP01 map (provided they are not selected first so that the MAP01 default setting doesn't change), which won't work.

Example: You launch virgil.wad, launcher changes to MAP03 correctly. Then you switch to attack.wad. Launch command SHOULD switch to -warp 01, but stays at -warp 03. You could now select any of the MAP01 replacements and the -warp 03 command would not be adjusted unless you manually switch to MAP01 in "Launch selected map".

Possible solution: You will probably have to explicitly define the remaining maps (attack.wad, canyon.wad, catwalk.wad, combine.wad, fistula.wad, garrison.wad, manor.wad, paradox.wad, subspace.wad, subterra.wad, ttrap.wad) for the MAP01 warp slot.

(BTW, I think you might be able to test this by just dumping some renamed Doom 2 pwads (or just a single pwad copied multiple times, with proper names) into your map folder. As long as those renamed wads have the maps the launcher needs and it doesn't look for specific filesizes or checksums, it should work as if you had the original files.)

Youda008 commented 1 year ago

EDIT: Sorry, did not read your message carefully.

Ok, i agree that those MasterLevels that start from MAP01 should be included too, otherwise the previous values from previously selected MasterLevel stays there, which is incorrect.

Of course if you start Doom into a menu, there is no possibility to specify a starting map, going via "New game" -> "difficulty" will always start MAP01 or EXM1.

NightFright2k19 commented 1 year ago

Alright then. Should be easy to fix, I guess. Will gladly test again once you have made your code adjustments, but I think it's almost impossible to still run into problems after that.

NightFright2k19 commented 1 year ago

A nice bonus would be to also have support for the other levels from the Master Level creators which were not considered by id for release. These maps have seen some increased interest lately with user compilations which include them (e.g. "Works of the Masters"), also since this puts the Master Levels in some greater context (many of them are part of some series).

I would consider adding these 20 "lost" Master Levels to the launcher "nice to have" (not a must), especially since the feature is already in. Map slots would be the following:

MAP01: anomaly.wad | cdk_fury.wad | cpu.wad | device_1.wad | dmz.wad | e_inside.wad | farside.wad | hive.wad | mines.wad | trouble.wad MAP02: dante25.wad | derelict.wad MAP03: achron22.wad | flood.wad | twm01.wad MAP04: watchtwr.wad MAP05: todeath.wad MAP06: arena.wad MAP09: storm.wad MAP30: the_evil.wad

Youda008 commented 1 year ago

I can add that. That's not a problem.

NightFright2k19 commented 1 year ago

Amazing! I promise I won't ask for more (also since there isn't anything else).

Come to think of it: Does your launcher support level warping for Sigil? It has E5M1-E5M9. (I never tried, tbh.)

NightFright2k19 commented 1 year ago

It now appears all the Master Levels launch properly. Well done!

Youda008 commented 1 year ago

And SIGIL is IWAD or how does it work, that it has 5 episodes?

NightFright2k19 commented 1 year ago

SIGIL is a pwad which you load after doom.wad, pretty much like the Master Levels work with Doom II, with the main difference being that it is a full episode.

I think the easiest way to implement support is just to add E5M1-E5M9 to the "Launch selected map" dropdown menu when doom.wad is selected. It just won't work when SIGIL_v1_21.wad (latest version) is not loaded. Luckily, SIGIL is freely available, so you can also test it on your own if needed.

Note: Some strict vanilla ports (Chocolate Doom, for example) won't allow more than the original four episodes, which is why Romero also provided a version with replaces episode 3. Anyway, I think it's OK to add ep.5 support in order to cover everything.