Master Levels Support

Remember, just because you request it, that doesn't mean you'll get it.

Moderator: GZDoom Developers

Master Levels Support

Postby Scuba Steve » Mon Feb 01, 2021 8:38 am

Is there a reason GZDoom doesn't have native support for Master levels? Shouldn't there be a doom.id.doom2.master filter and when starting GZDoom, have Master Levels listed as one of the iwad choices?
Scuba Steve
 
Joined: 27 Mar 2004

Re: Master Levels Support

Postby Rachael » Mon Feb 01, 2021 8:48 am

The biggest reason: It's a bunch of wads, most of them "MAP01" (or some other arbitrary map number) - and, also, the need for an organized set is also catered by Wadsmoosh which organizes them nicely.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Master Levels Support

Postby Gez » Mon Feb 01, 2021 9:29 am

Technically there's an all-in-one masterlevels.wad file found in the PSN version. This one could potentially be supported as an IWAD in the fashion of Deathkings for Hexen (as in, loading Doom II first).

But since it was never officially available on PCs, support for this version is not exactly a priority. I think Crispy Doom officially supports it, though.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Master Levels Support

Postby Scuba Steve » Mon Feb 01, 2021 2:37 pm

Eternity supports Master levels natively. Couldn't GZDoom rename the maps like it does for NRFTL and just add a Master Levels Episode?
Scuba Steve
 
Joined: 27 Mar 2004

Re: Master Levels Support

Postby Blzut3 » Sun Feb 07, 2021 1:47 pm

It could, but there's far too many opinions on how the master levels should be handled that I don't think it's possible to really do satisfactory handling. I suppose the best two options are to either handle like the Unity port (Master Level Menu Interface and EE), or go strictly like PSN (similar to Wadsmoosh or my merging utility and I think Crispy?). GZDoom could definitely pick a side, but we have a healthy ecosystem of mods to let users decide for themselves, so not sure if it's worth bothering? Especially since that doesn't even touch on questions like pistol start and music selections for which there are a ton of opinions. (Or how in the PSN case the map ordering is quite lazy.)
Blzut3
Pronounced: B-l-zut
 
 
 
Joined: 24 Nov 2004
Github ID: Blzut3
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
Graphics Processor: ATI/AMD with Vulkan Support

Re: Master Levels Support

Postby Scuba Steve » Mon Feb 08, 2021 7:03 pm

I have always felt that GZDoom should have native support for all id Software commercial releases, and Master Levels fits the bill. It might be a a mismatch of separate pwads, but I feel a player should be able to dump the pwads into a folder or compress them into a zip and GZDoom knows to rename them and apply something akin to a doom.id.doom2.master filter and have 'Master Levels' appear in the starting interface along with Plutonia, TNT, and NRFTL.
Scuba Steve
 
Joined: 27 Mar 2004

Re: Master Levels Support

Postby krutomisi » Mon Feb 08, 2021 9:21 pm

Scuba Steve wrote:.

your best bet is either "Blutz3 Unofficial Master Levels for Doom 2 Patch" (here) or WadSmoosh

I would advise going with WadSmoosh as it will then allow you to play the Works of the Masters
User avatar
krutomisi
 
Joined: 11 Jan 2021

Re: Master Levels Support

Postby Scuba Steve » Mon Feb 08, 2021 11:06 pm

I used the Blutz method, but I wanted to run a custom title screen, but it would be really helpful to have an internal filter to sort Master Levels titlepics/interpics.
Scuba Steve
 
Joined: 27 Mar 2004

Re: Master Levels Support

Postby Rachael » Tue Feb 09, 2021 2:55 am

I do realize what you are asking us to do but I am not comfortable implementing such a thing simply because it increases complexity of the code in a not-completely-performance-critical-area-but-its-something-to-look-out-for-spot. Plus such an implementation could have unintended side effects if it is not done carefully.

That being said though, I do not mind adapting and updating Blzut3's compiler, if nothing else to provide the internal filter. Furthermore it is possible to create a pseudo-ipk3 such as is done here to load such an archive with your own custom IWADINFO settings. That was never the intended usage of IWADINFO but it does work, nevertheless.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Master Levels Support

Postby Rachael » Tue Feb 09, 2021 6:10 am

After some thought about this, I have come up with a solution that I might be happy with, but, it will be some time before I will be able to implement it. So for now, this post merely serves as a blueprint.

The current version of the "nerve.wad" rename scheme would be refactored and made into a lump with the following format:

Lump Name: compat-renames.txt
Code: Select allExpand view
// alias, size, md5, filename
"nerve-original" 3819855 967d5ae23daf45196212ae1b605da3b0 nerve.wad {
  map01 level01
  map02 level02
  // .. etc ..
}

"nerve-new" 3821966 4214c47651b63ee2257b1c2490a518c9 nerve.wad {
  alias "nerve-original"
}
// .. etc..


It would also deal with the Heretic/Hexen/Strife renames as example:
Code: Select allExpand view
iwad game.heretic {
  sprite HEAD LICH
  // ..etc..
}


For the checks, the check order is very important in order to avoid impacting loading times too much. First the size would be checked, then the file name, then the md5 hash sum. Order of least impactful to most impactful.

Also, dropping it into a lump allows it to be loaded through a filter, i.e. specifically specifying "master levels" as an iwad, so that they can still be loaded in their original way.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Master Levels Support

Postby Graf Zahl » Tue Feb 09, 2021 6:29 am

Most of what's needed here already exists in Raze's GRPINFO parser. It can identify files by a CRC32/size pair and optionally rename/remove entries to make them work.
What we really need is to merge this with IWADINFO into one format.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Master Levels Support

Postby Devalaous » Fri Apr 23, 2021 8:56 pm

Rachael wrote:After some thought about this, I have come up with a solution that I might be happy with, but, it will be some time before I will be able to implement it. So for now, this post merely serves as a blueprint.

The current version of the "nerve.wad" rename scheme would be refactored and made into a lump with the following format:

Lump Name: compat-renames.txt
Code: Select allExpand view
// alias, size, md5, filename
"nerve-original" 3819855 967d5ae23daf45196212ae1b605da3b0 nerve.wad {
  map01 level01
  map02 level02
  // .. etc ..
}

"nerve-new" 3821966 4214c47651b63ee2257b1c2490a518c9 nerve.wad {
  alias "nerve-original"
}
// .. etc..


It would also deal with the Heretic/Hexen/Strife renames as example:
Code: Select allExpand view
iwad game.heretic {
  sprite HEAD LICH
  // ..etc..
}


For the checks, the check order is very important in order to avoid impacting loading times too much. First the size would be checked, then the file name, then the md5 hash sum. Order of least impactful to most impactful.

Also, dropping it into a lump allows it to be loaded through a filter, i.e. specifically specifying "master levels" as an iwad, so that they can still be loaded in their original way.


Not too long ago I was working on a QoL mod for the Master Levels that added dehacked/mapinfo, Scuba Steve's custom-made widescreen titlepic and interpic, and the NRFTL midipack, and I was making two versions; one for all the loose levels, including the 7 rejected Master Levels that are on the idgames archive, and one for the all-in-one wad that the PS3 has, and can be manually built from Doom BFA. I wanted to do what GZDoom did with NRFTL and have it appear as its own episode, but I couldn't figure out how NRFTL did the conversion from MAP00 to LEVEL00. I had to either give up and have the Master Levels episode replace base Doom 2, or go into the masterlevels.wad and rename all the levels to ML00, which isn't too ideal for a QoL mod that was meant to make things easier and feel more polished :p

There was a little talk of asking the GZDoom devs to one day natively support Master Levels, nice to see a thread about it here.
Devalaous
 
Joined: 23 Apr 2021
Location: New Zealand
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: nVidia with Vulkan support


Return to Feature Suggestions

Who is online

Users browsing this forum: No registered users and 0 guests