Maps that need compatibility settings.

Is there something that doesn't work right in the latest GZDoom? Post about it here.

Moderator: GZDoom Developers

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3111
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: Maps that need compatibility settings.

Post by drfrag »

The problem causing the crash is that the sector is null, in MapLoader::LoadSideDefs2:

Code: Select all

		if ((unsigned)LittleShort(msd->sector)>=Level->sectors.Size())
		{
			Printf (PRINT_HIGH, "Sidedef %d has a bad sector\n", i);
			sd->sector = sec = nullptr;
		}
So does it make sense using sector 0? Or a fake null sector? :?
Last edited by drfrag on Thu May 28, 2020 4:39 pm, edited 1 time in total.
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3111
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: Maps that need compatibility settings.

Post by drfrag »

PRBoom+ and others (but not Crispy) use sector 0 and that mostly fixes the crash but still crashes at times and crashes earlier.
With:

Code: Select all

sd->sector = sec = &Level->sectors[0];
Crashes here:

Code: Select all

sd->SetTextureXOffset(LittleShort(msd->textureoffset));

Code: Select all

>	lzdoom.exe!MapLoader::LoadSideDefs2(MapData * map, TMap<FString,FMissingCount,THashTraits<FString>,TValueTraits<FMissingCount> > & missingtex) Line 2172	C++
 	lzdoom.exe!MapLoader::LoadLevel(MapData * map, const char * lumpname, int position) Line 3012	C++
 	lzdoom.exe!P_SetupLevel(FLevelLocals * Level, int position, bool newGame) Line 465	C++
 	lzdoom.exe!FLevelLocals::DoLoadLevel(const FString & nextmapname, int position, bool autosave, bool newGame) Line 1165	C++
 	[Inline Frame] lzdoom.exe!G_DoLoadLevel(const FString & newGame, int) Line 1039	C++
 	lzdoom.exe!G_InitNew(const char * mapname, bool bTitleLevel) Line 552	C++
 	lzdoom.exe!G_DoNewGame() Line 422	C++
 	lzdoom.exe!G_Ticker() Line 1127	C++
 	lzdoom.exe!TryRunTics() Line 1993	C++
 	lzdoom.exe!D_DoomLoop() Line 1381	C++
 	lzdoom.exe!D_DoomMain_Internal() Line 3660	C++
 	lzdoom.exe!GameMain() Line 3673	C++
 	lzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 963	C++
 	lzdoom.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, wchar_t * cmdline, int nCmdShow) Line 1242	C++
User avatar
Rachael
Admin
Posts: 13110
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Maps that need compatibility settings.

Post by Rachael »

drfrag wrote:IMO it's not worth adding a compatibility entry for this, it's a random 1994 quality map. I mean the bad reviews discourage dowloading it and it always crashed in ZDoom.
I'm not really sure the quality of the map matters in these decisions...
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3111
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: Maps that need compatibility settings.

Post by drfrag »

IMO there should be a minimum, Graf said at some time there were already too many compatibility entries. I don't think supporting every random map out there is a good solution.
Anyway it's fixed and i've done a PR.
https://github.com/coelckers/gzdoom/pull/1092
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3111
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: Maps that need compatibility settings.

Post by drfrag »

No, it isn't, still crashes from time to time. The texture names change and are random junk.

Code: Select all

e1m1 - Hangar

Linedef 72 has a bad sidedef
Linedef 74 has a bad sidedef
Sidedef 92 has a bad sector
Unknown middle texture 'ÿ#+ÿ' on second side of linedef 72
Unknown top texture 'ÿOc{ÿ' on second side of linedef 72
Unknown bottom texture '‡Ÿ·ÿ7/ÿ' on second side of linedef 72
Sidedef 95 has a bad sector
Unknown middle texture 'ÿ#+ÿ' on second side of linedef 74
Unknown top texture 'ÿOc{ÿ' on second side of linedef 74
Unknown bottom texture '‡Ÿ·ÿ7/ÿ' on second side of linedef 74
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3111
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain

Re: Maps that need compatibility settings.

Post by drfrag »

Fixed for real this time, it seems. :) The logic to deal with NO_INDEX is not in, i've used a dummy sidedef.
https://github.com/coelckers/gzdoom/pull/1093
ZellSF
Posts: 18
Joined: Tue Aug 13, 2019 12:04 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: Maps that need compatibility settings.

Post by ZellSF »

Not sure if this is the right place for this, but I can't get Sunlust's (https://www.doomworld.com/idgames/level ... ds/sunlust) map30 to work properly at all.

1 of 2 things happen in Boom (strict) compatibility mode or default compatibility mode. Either the monster spawning starts too early, or it fails to spawn the revenants in the first arena.

Edit: apparently this was mentioned and the monster spawning too early just happens in Boom (strict) (it shouldn't though?). But the revenants failing to spawn happens in both modes + boom.
Yarn366
Posts: 58
Joined: Fri Mar 02, 2018 11:48 pm

Re: Maps that need compatibility settings.

Post by Yarn366 »

Regarding REKKR E1M3:

To open the door to the freezer room, you're supposed to press the middle button, then the left button, then the right button, in that order. The middle button completely lowers a lift in a hidden room; the left button raises that lift a step; and the right button opens a slit that, if the player pressed the buttons in the correct order, allows a scarecrow-looking thing to shoot a wall that opens up the freezer room.

In GZDoom, the problem isn't that the scarecrow isn't firing (it is), but that it shoots its arrows a bit too low, so they don't pass through the slit. Because of this, the player must press the left button again (to raise the scarecrow's lift more) immediately after entering the correct button combination; this gives the scarecrow a chance to shoot through the slit (due it its extra height), thus opening the freezer room.
Warden
Posts: 41
Joined: Sun May 24, 2020 11:06 am

Re: Maps that need compatibility settings.

Post by Warden »

Played through obtic.wad recently, MAP01 needs compat_shorttex, checksum:

Code: Select all

41C12F740CD7635E4595D3661237992F
User avatar
Rachael
Admin
Posts: 13110
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Maps that need compatibility settings.

Post by Rachael »

I don't have the time to test this, nor the desire to set up Obituary on my system right now - so I've put it in a pull request so it doesn't get lost: https://github.com/coelckers/gzdoom/pull/1381
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48376
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Maps that need compatibility settings.

Post by Graf Zahl »

What is it needed for? I also have no desire looking for some random change occurring in that map.
Warden
Posts: 41
Joined: Sun May 24, 2020 11:06 am

Re: Maps that need compatibility settings.

Post by Warden »

Sorry, forgot to mention it's for the yellow key. Without the compat flag, the platform it's on raises up too high when you cross linedef 496 (W1 Floor Raise by Shortest Lower Texture).
Last edited by Warden on Mon May 24, 2021 5:18 pm, edited 2 times in total.
Warrex
Posts: 78
Joined: Thu Aug 08, 2013 2:00 pm

Re: Maps that need compatibility settings.

Post by Warrex »

Perdition's Gate (http://visionsofdoom.us/wads/perdgate.zip) Map 07 (https://doomwiki.org/wiki/MAP07:_UAC_Nu ... %27s_Gate))

The yellow door can only be opened once (Action 34: D1 Door (Yellow) - Open Stay). Reentering the previous area again triggers a linedef that closes the door (Action 107: WR Door Close Stay (fast)) and the yellow key does not work anymore (btw: Why?).
Warden
Posts: 41
Joined: Sun May 24, 2020 11:06 am

Re: Maps that need compatibility settings.

Post by Warden »

Return to Phobos (return01.wad) has an ancient bug in map E1M2 where the switch to raise the exit bridge doesn't work in versions of Doom past patch 1.2. Here's a level_compatibility.zs fix:

Code: Select all

        case 'E0D747B9EE58A0CB74B9AD54423AC15C': // return01.wad e1m2
        {
            // fix broken switch to raise the exit bridge
            SetLineSpecial(1248, Floor_RaiseByValue, 39, 8, 512);
            break;
        }
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48376
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Maps that need compatibility settings.

Post by Graf Zahl »

Yeah, that one. Ran into it in 1995 with no idea why the map was broken.

Return to “Bugs [GZDoom]”