WadSmoosh - merge all official id releases into one PK3 IWAD

Software projects like source ports (3DGE, Eternity, etc), launchers like ZDL, and other useful utilities belong in this forum.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Re: WadSmoosh - merge all official id releases into one PK3

Postby MrDowntempo » Sun Feb 11, 2018 9:42 pm

Purity666 wrote:Success!

I've added a new funtion to the wadsmoosh.py script to add the exit and level to the wad. While compiling an executable using pyInstaller, I found out that omgifol wasn't compatible anymore to python 3.6 - the MD5 class is not supported anymore hence I had to update omgifol as well.

If you're going for the same level of obscurity of the XBox Doom secret exits, it hardly matters where you put it; switches without a switch texture are never going to be found by someone who doesn't already know they're there.


Right, that makes no sense. So I played around a bit with omgifol (as I was curious in it anyway) and extended your add_secret_exit function to also add a switch texture (which should fit to the base texture used before adding the switch):

Code: Select allExpand view
def add_secret_exit(map_name, line_id, side_id='', side_texture=''):
    # sets given line # in given map as a secret exit switch
    wad = omg.WAD()
    wad_filename = DEST_DIR + 'maps/%s.wad' % map_name
    wad.from_file(wad_filename)
    ed = omg.MapEditor(wad.maps[map_name])
    ed.linedefs[line_id].__dict__['action'] = 51
    if side_id != '':
          ed.sidedefs[side_id].__dict__['tx_mid'] = side_texture
    wad.maps[map_name] = ed.to_lumps()
    wad.to_file(wad_filename)


So the procedure for adding the level and switch looks like this for now:

Code: Select allExpand view
def add_tech_level():
    logg('Adding tech gone bad bonus level...')
    logg('  Adding secret exit and switch SW1STARG to E1M7')
    add_secret_exit('E1M7', 721, 908, 'SW1STARG') #STARG3
    logg('  Adding e1m8b.wad as E1M11')
    add_secret_level('e1m8b', 'E1M8', 'E1M11')


Code: Select allExpand view
    # only supported version of thihs @ https://www.doomworld.com/idgames/levels/doom/Ports/d-f/e1m8b
    if get_wad_filename('e1m8b') and should_extract:
        add_tech_level()


...and while I was adding the texture for E1M7, I did the same for the Xbox maps:

Code: Select allExpand view
Adding Xbox bonus levels...
  Adding secret exit and switch SW1STARG to E1M1
  Adding SEWERS.WAD as E1M10
  Adding secret exit and switch SW1STONE to MAP02
  Adding BETRAY.WAD as MAP33
Adding tech gone bad bonus level...
  Adding secret exit and switch SW1STARG to E1M7
  Adding e1m8b.wad as E1M11
Creating doom_complete.pk3...


I'm quite happy with the result, especially because I used python, pyInstaller and omgifol for the first time...

Greetings
Purity


Are these changes making it to the official wadsmoosh? I want to make a smooshed wad with betray and sewers added with the visible exit. If not, can I just copy the code in this post into the latest wadsmoosh and use that?
MrDowntempo
 
Joined: 01 Mar 2017

Re: WadSmoosh - merge all official id releases into one PK3

Postby Yarn366 » Sun Mar 04, 2018 1:53 am

Awesome tool! I haven't played it much, but I did notice some minor issues:

  • Thy Flesh Consumed is missing par times. Original releases of Ultimate Doom didn't display par times for these levels, but releases that run on Doom Classic (such as Doom 3: BFG Edition) do, and GZDoom uses these when playing this episode in DOOM.WAD. WadSmoosh should thus do the same.
  • You copied the par times for the Xbox secret levels from their parent levels. These times aren't really appropriate for these levels, and the Xbox version doesn't display actual par times for them.
  • The music for E1M10 is wrong; it should be D_E2M1, not D_E3M1.
  • If extracting from the version of DOOM2.WAD from Doom 3: BFG Edition, the titles for the secret levels should be changed to "IDKFA" and "Keen" to match those stored in the level files (due to censorship). GZDoom already stores these strings as HUSTR_31B and HUSTR_32B, respectively, so WadSmoosh should use those in this case. (You can identify this version of DOOM2.WAD by looking for DMENUPIC, M_ACPT, M_CAN, M_EXITO, and M_CHG.)
Yarn366
 
Joined: 02 Mar 2018

Re: WadSmoosh - merge all official id releases into one PK3

Postby JPL » Sun Apr 29, 2018 10:09 am

Yarn366 wrote:Awesome tool! I haven't played it much, but I did notice some minor issues:

  • Thy Flesh Consumed is missing par times. Original releases of Ultimate Doom didn't display par times for these levels, but releases that run on Doom Classic (such as Doom 3: BFG Edition) do, and GZDoom uses these when playing this episode in DOOM.WAD. WadSmoosh should thus do the same.
  • You copied the par times for the Xbox secret levels from their parent levels. These times aren't really appropriate for these levels, and the Xbox version doesn't display actual par times for them.
  • The music for E1M10 is wrong; it should be D_E2M1, not D_E3M1.
  • If extracting from the version of DOOM2.WAD from Doom 3: BFG Edition, the titles for the secret levels should be changed to "IDKFA" and "Keen" to match those stored in the level files (due to censorship). GZDoom already stores these strings as HUSTR_31B and HUSTR_32B, respectively, so WadSmoosh should use those in this case. (You can identify this version of DOOM2.WAD by looking for DMENUPIC, M_ACPT, M_CAN, M_EXITO, and M_CHG.)


Thanks for the notes, these are exactly the kinds of issues I want to fix. There's a new build on the bitbucket page and on WadSmoosh's itch.io page that should address all these.
User avatar
JPL
 
 
 
Joined: 09 Apr 2012

Re: WadSmoosh - merge all official id releases into one PK3

Postby Yarn366 » Fri May 04, 2018 8:09 pm

A few more very minor suggestions:
  • For The Plutonia Experiment, use P_DM2INT for the intermission music instead of the default (D_DM2INT). This would make it possible for a modified Plutonia MIDI Pack to include intermission music that plays only in The Plutonia Experiment and not other episodes. (And don't forget to have WadSmoosh copy D_DM2INT.)
  • For TNT: Evilution, use T_DM2INT for the intermission music instead of T_EVIL. This way, when TNT: Evilution's first secret level ends, GZDoom will start the intermission music from the beginning as it does with other levels, rather than letting it continue on.
Yarn366
 
Joined: 02 Mar 2018

Re: WadSmoosh - merge all official id releases into one PK3

Postby ShockwaveS08 » Sun May 13, 2018 8:56 am

Now that Doom Classic Complete is (more or less) finished at this point, will support be extended to [Hexen + Deathkings of the Dark Citadel] and [Strife + Voices.wad]? I can picture the menus right now, which are contained in the spoiler below...

Spoiler:
ShockwaveS08
 
Joined: 07 Jul 2016
Discord: Shockwave_S08#0859

Re: WadSmoosh - merge all official id releases into one PK3

Postby Gez » Sun May 13, 2018 9:43 am

Strife+Voices is absolutely not needed. Voices.wad is already automatically loaded, and it does not have any sort of conflict.

WadSmoosh for Doom is justified in that the various IWADs are mutually exclusive and incompatible with each other. Making them coexist in a single package requires changing the map slots, updating the MAPINFO stuff, resolving all the texture conflicts, updating the levels to account for the texture conflicts resolutions, and so on.

Hexen+Deathkings could be justified too, since there are also level conflicts. No texture conflicts however, so it'd be much simpler than for Doom.

But Strife? That'd be pointless. ZDoom is already loading both files transparently, and there are no conflicts to solve.
Gez
 
 
 
Joined: 06 Jul 2007

Re: WadSmoosh - merge all official id releases into one PK3

Postby SiFi270 » Sun May 13, 2018 10:54 am

Hexen's kind of already smooshed as well since all of the original's levels are accessible from within Deathkings. The only level conflict I know of is between the first map of Deathkings and this unused empty maze, and I'd be quite surprised to find anyone who even has a Hexen 1.0 iwad containing the latter. In fact, smooshing Hexen is so easy that it's one of the first things I ever did after learning to use Slade.
Attachments
hexddmatch.wad
It even makes the multiplayer maps into their own episode, hence the filename.
(62.74 KiB) Downloaded 24 times
User avatar
SiFi270
 
Joined: 10 Feb 2015
Location: Does anyone put a serious answer here?

Re: WadSmoosh - merge all official id releases into one PK3

Postby ShockwaveS08 » Sat Jun 09, 2018 8:59 am

Has anyone tried making a slightly-fancier Titlepic for WADSmoosh? Optionally making it into a very simple Titlemap with a higher-res background logo, and "diagnostic text", as follows...

Code: Select allExpand view
DOOM Classic Complete - Build 040918
The Ultimate Doom v1.9 (or Shareware/BFG Edition)
Doom II: Hell on Earth v1.9 (or BFG Edition)
No Rest for the Living: ACTIVE
Master Levels for Doom II: ACTIVE
TNT Evilution v1.9
The Plutonia Experiment v1.9
Xbox Secret Level - Sewers: ACTIVE
Xbox Secret Level - Betray: ACTIVE
ShockwaveS08
 
Joined: 07 Jul 2016
Discord: Shockwave_S08#0859

Re: WadSmoosh - merge all official id releases into one PK3

Postby SiFi270 » Sun Jun 17, 2018 12:28 am

SiFi270 wrote:Hexen's kind of already smooshed as well since all of the original's levels are accessible from within Deathkings. The only level conflict I know of is between the first map of Deathkings and this unused empty maze, and I'd be quite surprised to find anyone who even has a Hexen 1.0 iwad containing the latter. In fact, smooshing Hexen is so easy that it's one of the first things I ever did after learning to use Slade.

I've just discovered that this doesn't actually work as well as I thought it had. When playing through Hexen 1, the first two text screens between hubs are still from Deathkings, and going through the portal from the Heresiarch's Seminary to the Silent Refectory gives you the ending text for that hub before taking you to the deatyhmatch hub. Never mind.
User avatar
SiFi270
 
Joined: 10 Feb 2015
Location: Does anyone put a serious answer here?

Re: WadSmoosh - merge all official id releases into one PK3

Postby Cheater87 » Mon Jun 18, 2018 9:33 pm

I finally got it to work, but I can't get NRFTW or Neve.wad to work with this despite it being in the list of wads.
Cheater87
 
Joined: 31 Oct 2017

Re: WadSmoosh - merge all official id releases into one PK3

Postby eharper256 » Fri Jul 13, 2018 7:08 am

Just a quick post here to point that according what Enjay noted here, apparently, when you use a Hi-Res texture pack with Wadsmoosh, we get a return to issues of wrong switch textures being used on various WADs. It also occurs with the Doom 2 skyboxes appearing Doom 1.

Not sure if anything can be done about it? I did consider adding the png's to the Wadsmoosh pk3, but that probably wouldn't work as they're .lmp's by default in there.

EDIT: I have fixed it by replacing the copies of brcom in the Doom2 folder and the base textures folder with their Doom 1 equivalents and rezipping and creating the pk3.
Last edited by eharper256 on Fri Jul 13, 2018 7:28 am, edited 1 time in total.
User avatar
eharper256
 
Joined: 25 Feb 2018
Location: UK

Re: WadSmoosh - merge all official id releases into one PK3

Postby Graf Zahl » Fri Jul 13, 2018 7:10 am

This cannot be fixed. These are conflicting contents of the IWAD itself and the engine cannot react properly to the alterations WadSmoosh has to do to make it all work as intended. You'd need hires packs that know about these changes for it to work properly.
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: WadSmoosh - merge all official id releases into one PK3

Postby eharper256 » Fri Jul 13, 2018 7:46 am

Graf Zahl wrote:This cannot be fixed. These are conflicting contents of the IWAD itself and the engine cannot react properly to the alterations WadSmoosh has to do to make it all work as intended. You'd need hires packs that know about these changes for it to work properly.

Thats a bummer, but about what I expected.

As noted in the edit, I did come up with a workaround of making the Doom 1 versions of the switches the base version in my Texture Pack and re-zipping. Of course, its not a perfect solution, as any iwads using one of the fake brown switches will probably now have the opposite problem (with stretching), and of course I can't do much about the skies, but hopefully the impact is less overall.
User avatar
eharper256
 
Joined: 25 Feb 2018
Location: UK

Previous

Return to Software and Ports

Who is online

Users browsing this forum: No registered users and 1 guest