fabiangreffrath / crispy-doom

Crispy Doom is a limit-removing enhanced-resolution Doom source port based on Chocolate Doom.
https://fabiangreffrath.github.io/crispy-homepage
GNU General Public License v2.0
802 stars 132 forks source link

Wrong RSKY1 with -iwad doom2.wad #627

Closed tpoppins closed 4 years ago

tpoppins commented 4 years ago

Latest Crispy daily build, Win7 x64 Pro SP1.

Running Crispy with -iwad doom2.wad gives a starry night sky for the first 11 levels when the Master Levels are present in %DOOMWADDIR%. This occurs with direct -warp or starting a new game from the menu with any of the three episode choices (HoE, NRFTL, ML). Adding -pack doom2 to cmdline doesn't solve this.

# ./crispy-doom -iwad doom2.wad -pack doom2 -warp 01
                           Crispy Doom 5.8.0
Z_Init: Init zone memory allocation daemon.
zone memory: 024B0020, 32 MiB allocated for zone
V_Init: allocate screens.
M_LoadDefaults: Load system defaults.
saving config in default.cfg
W_Init: Init WADfiles.
 adding g:/WADS/_all\doom2.wad
 [No Rest for the Living] adding g:/WADS/_all\NERVE.WAD
 [The Master Levels 01] adding g:/WADS/_all\ATTACK.WAD
 [The Master Levels 02] adding g:/WADS/_all\CANYON.WAD
 [The Master Levels 03] adding g:/WADS/_all\CATWALK.WAD
 [The Master Levels 04] adding g:/WADS/_all\COMBINE.WAD
 [The Master Levels 05] adding g:/WADS/_all\FISTULA.WAD
 [The Master Levels 06] adding g:/WADS/_all\GARRISON.WAD
 [The Master Levels 07] adding g:/WADS/_all\MANOR.WAD
 [The Master Levels 08] adding g:/WADS/_all\PARADOX.WAD
 [The Master Levels 09] adding g:/WADS/_all\SUBSPACE.WAD
 [The Master Levels 10] adding g:/WADS/_all\SUBTERRA.WAD
 [The Master Levels 11] adding g:/WADS/_all\TTRAP.WAD
 [The Master Levels 12] adding g:/WADS/_all\VIRGIL.WAD
 [The Master Levels 13] adding g:/WADS/_all\MINOS.WAD
 [The Master Levels 14] adding g:/WADS/_all\BLOODSEA.WAD
 [The Master Levels 15] adding g:/WADS/_all\MEPHISTO.WAD
 [The Master Levels 16] adding g:/WADS/_all\NESSUS.WAD
 [The Master Levels 17] adding g:/WADS/_all\GERYON.WAD
 [The Master Levels 18] adding g:/WADS/_all\VESPERAS.WAD
 [The Master Levels 19] adding g:/WADS/_all\BLACKTWR.WAD
 [The Master Levels 20] adding g:/WADS/_all\TEETH.WAD
  loaded 0 DEHACKED lumps from PWAD files.
===========================================================================
                         DOOM 2: Hell on Earth
===========================================================================
 Crispy Doom is free software, covered by the GNU General Public
 License.  There is NO warranty; not even for MERCHANTABILITY or FITNESS
 FOR A PARTICULAR PURPOSE. You are welcome to change and distribute
 copies under certain conditions. See the source for more information.
===========================================================================
I_Init: Setting up machine state.
OPL_Init: Using driver 'SDL'.
NET_Init: Init network subsystem.
M_Init: Init miscellaneous info.
R_Init: Init DOOM refresh daemon - .....................................................
P_Init: Init Playloop state.
S_Init: Setting up sound.
I_SDL_PrecacheSounds: Precaching all sound effects......................

Loading DOOM2.WAD as a PWAD to either Final DOOM IWAD fixes the sky but gives TNT/Plutonia level names in the automap (as expected). Oddly, adding -pack doom2 to this setup brings back the starry sky.

fabiangreffrath commented 4 years ago

Ah, apparently some of the 20 separate Master Levels PWADs contain replacement skies. Damn, I wasn't aware of that! This means that the auto-loading feature wil have to become an even more complicated mess than it already is now...

tpoppins commented 4 years ago

Yes, Dr. Sleep's ML WADs and Chris Klie's COMBINE share the same RSKY1, while those by Jim Flynn use the same graphic as a STARS patch along with custom TEXTURE1 and PNAMES.

That's eight WADs: COMBINE GERYON MANOR MINOS NESSUS TTRAP VESPERAS VIRGIL

Additional considerations for authenticity. BLACKTWR (MAP25) and TEETH (MAP31 and MAP32) should have D2's RSKY3 due to their map numbers. BLOODSEA and MEPHISTO (both MAP07) should have the original RSKY1 for the same reason. There's also the music track assignment to consider, I guess MUSINFO would take care of that.

For the time being I opted for disabling autoloading MLs in d_pwad.c unless -pack master is on cmdline. Had to add "master" in d_main.c as a new pack for that to work. Not posting the DIFF because I haven't figured out yet how to make it work quite as intended -- at the moment it autoloads MLs with "-pack doom2" and doesn't with "-pack master" (I'm a dumbass :).

fabiangreffrath commented 4 years ago

So, for these 8 PWADs I need to rename the included TEXTURE1, PNAMES and RSKY1 lumps out of the way to prevent them from changing anything non-ML-related in the other "episodes".

fabiangreffrath commented 4 years ago

I'd rather not touch the music tracks, else we'd end up with 11 subsequent maps (which were all intended to replace MAP01) all playing D_RUNNIN!