Master Levels Support
Moderator: GZDoom Developers
-
- Posts: 1055
- Joined: Sat Mar 27, 2004 8:56 pm
Master Levels Support
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?
-
- Admin
- Posts: 13254
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: Master Levels Support
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.
-
-
- Posts: 17751
- Joined: Fri Jul 06, 2007 3:22 pm
Re: Master Levels Support
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.
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.
-
- Posts: 1055
- Joined: Sat Mar 27, 2004 8:56 pm
Re: Master Levels Support
Eternity supports Master levels natively. Couldn't GZDoom rename the maps like it does for NRFTL and just add a Master Levels Episode?
-
-
- Posts: 3108
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Re: Master Levels Support
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.)
-
- Posts: 1055
- Joined: Sat Mar 27, 2004 8:56 pm
Re: Master Levels Support
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.
-
- Posts: 24
- Joined: Mon Jan 11, 2021 10:17 am
Re: Master Levels Support
your best bet is either "Blutz3 Unofficial Master Levels for Doom 2 Patch" (here) or WadSmooshScuba Steve wrote:.
I would advise going with WadSmoosh as it will then allow you to play the Works of the Masters
-
- Posts: 1055
- Joined: Sat Mar 27, 2004 8:56 pm
Re: Master Levels Support
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.
-
- Admin
- Posts: 13254
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: Master Levels Support
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.
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.
-
- Admin
- Posts: 13254
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: Master Levels Support
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
It would also deal with the Heretic/Hexen/Strife renames as example:
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.
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 all
// 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..
Code: Select all
iwad game.heretic {
sprite HEAD LICH
// ..etc..
}
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.
-
- Lead GZDoom+Raze Developer
- Posts: 48595
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Master Levels Support
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.
What we really need is to merge this with IWADINFO into one format.
-
- Posts: 23
- Joined: Fri Apr 23, 2021 6:30 pm
- Graphics Processor: nVidia with Vulkan support
- Location: New Zealand
Re: Master Levels Support
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 polishedRachael 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.txtIt would also deal with the Heretic/Hexen/Strife renames as example:Code: Select all
// 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..
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.Code: Select all
iwad game.heretic { sprite HEAD LICH // ..etc.. }
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.

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.
-
- Posts: 519
- Joined: Mon May 10, 2021 8:08 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): EndeavorOS (basically Arch)
- Graphics Processor: Intel with Vulkan/Metal Support
Re: Master Levels Support
Scuba Steve wrote: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?
Use Wadsmoosh.
-
- Global Moderator
- Posts: 2646
- Joined: Sun Jun 25, 2006 4:43 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Location: Citadel Station
Re: Master Levels Support
As great as Wadsmoosh is, it's not a be all end all solution. I agree with Scuba Steve here, it would be nice to have an in-engine way of handling the Master Levels.