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!

Re: Maps that need compatibility settings.

Postby drfrag » Thu May 28, 2020 11:28 am

The problem causing the crash is that the sector is null, in MapLoader::LoadSideDefs2:
Code: Select allExpand view
      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
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Maps that need compatibility settings.

Postby drfrag » Thu May 28, 2020 4:34 pm

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 allExpand view
sd->sector = sec = &Level->sectors[0];

Crashes here:
Code: Select allExpand view
sd->SetTextureXOffset(LittleShort(msd->textureoffset));

Code: Select allExpand view
>   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
drfrag
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Maps that need compatibility settings.

Postby Rachael » Thu May 28, 2020 4:39 pm

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
Rachael
Webmaster
 
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: Maps that need compatibility settings.

Postby drfrag » Fri May 29, 2020 5:26 am

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
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Maps that need compatibility settings.

Postby drfrag » Fri May 29, 2020 6:40 am

No, it isn't, still crashes from time to time. The texture names change and are random junk.
Code: Select allExpand view
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
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Maps that need compatibility settings.

Postby drfrag » Fri May 29, 2020 10:59 am

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
User avatar
drfrag
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Previous

Return to Bugs

Who is online

Users browsing this forum: No registered users and 3 guests