Duke4.net Forums: Fixes for map crashes in EDuke32 - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Fixes for map crashes in EDuke32

User is offline   NightFright 

  • The Truth is in here

#1

Hey folks,

I just tried to play through "Alien Invasion" (by Fred Hero), but when trying to load E2L6, EDuke32 (r3727) gives me this error:

Subway found no zero'd sectors with locators
at (30976,21248).


It seems to be a glitch with the shuttle at the very beginning of the level which works similar to E2L2 in the original game. Since I have no clue about map editing, maybe someone can take a look and possibly fix this? Would be much appreciated!
(Presumably) bugged map is attached.

This post has been edited by NightFright: 20 May 2013 - 01:47 PM

0

User is offline   underTaker 

#2

Here you go.

Attached File(s)

  • Attached File  E2L6.zip (39.74K)
    Number of downloads: 261


This post has been edited by underTaker: 05 May 2013 - 09:54 AM

2

User is offline   NightFright 

  • The Truth is in here

#3

Works like a charm. Thanks a lot, pal! :) I wonder how this map could have been included with the addon in the first place. It definitely won't work in EDuke32 the way it is, maybe with the DOS exe (but I doubt it). I will have this fix included with my updated EDuke32 addon pack soon, I'll make sure you get a little honorable mention. Oh, and some rep, too. ^^

This post has been edited by NightFright: 05 May 2013 - 12:55 PM

0

User is offline   Jimmy 

  • Let's go Brandon!

#4

Well, apparently the mod is from 1998. Which means that it could be a bug from the original game not working as intended or it could be a bug from EDuke32.
0

User is offline   Micky C 

  • Honored Donor

#5

Helix or someone probably just decided to make eduke32 more strict when it comes to detecting problems such as this. I haven't looked at the map, but just last week I was making a map and got that error which allowed me to fix it, so I found it useful.
0

User is offline   NightFright 

  • The Truth is in here

#6

Right now, I am doing a complete playthrough of "Alien Invasion", checking for more potential problems.

So far, there was at least one map where I had to use cheats in order to continue, which was E2L1 ("Mission Impossible"). I couldn't find the switch to open up the sewer section. Maybe it was there and I just didn't see it (can happen with some mods), but it could also be that it really was forgotten (or just doesn't work with EDuke32). There is a valve panel in a circular section with a pool of slime in its center. I assume you would have to press it to open the section beyond or so, but I had to use clipping cheat. Maybe someone else is smarter than me, or otherwise something in this map is also broken.
In other levels, such as E2L5 "U96", keycards are almost perversely well hidden (blue keycard, cough cough), but well, if it's about the whole map crashing, it has nothing to do with level design. :)

BTW: In general, this mod, even though it's quite simplistic regarding level design, is surprisingly entertaining. In case no other errors are found until I am done with it, I will upload the fixed version over at Duke4.net (or give it to someone who can do it).

This post has been edited by NightFright: 05 May 2013 - 11:52 PM

0

User is offline   underTaker 

#7

To precise: the error was really simple, after taking a look on the starting sector where capsule was closing to the station, the path sector has got a tag for split door or something like that (i don't remember now). I just have removed it, and the error is gone. I don't know if the tag was mistaken or not.
0

User is offline   NightFright 

  • The Truth is in here

#8

Another map issue, this time not with "Alien Invasion", but with a map from the "Steve Long Episodes". Again, map crashes when loading it, using latest EDuke32 r3798.

Error message from eduke32.log:
Fatal Signal caught: SIGSEGV. Bailing out.
current actor: 299 (842)
g_errorLineNum: 2509, g_tw: 4


Any way to fix it?

And a side question:
Screenshot below is from E3L2 (not E3L3, my bad) of the same pack. This is a texture misalignment in the map or a rendering issue with EDuke32?

This post has been edited by NightFright: 21 May 2013 - 10:50 AM

0

User is offline   Helixhorned 

  • EDuke32 Developer

#9

View PostNightFright, on 20 May 2013 - 01:47 PM, said:

Another map issue, this time not with "Alien Invasion", but with a map from the "Steve Long Episodes". Again, map crashes when loading it, using latest EDuke32 r3798.

I can't reproduce the crash. The map is structurally OK, and the custom CON code is relatively simple, so it shouldn't give any trouble.

Quote

Any way to fix it?

First, attempt to narrow down the suspected cause. Are you running a vanilla setup?, which renderer, etc...

Quote

And a side question:
Screenshot below is from E3L3 of the same pack. This is a texture misalignment in the map or a rendering issue with EDuke32?

What is the map? (It's not E3L3.) What are the coordinates?
0

User is offline   NightFright 

  • The Truth is in here

#10

OK, I guess in order to reproduce this, you should try with my test build for the Steve pack (2.2 MB), even though I changed nothing about the maps, just some very minor con stuff to remap some music etc. It has a grpinfo file included for easier usage.

My EDuke32 setup:
- EDuke32 build: r3798
- Polymer, 1920x1200, 32bit
- System: Win7 Ultimate x64, 12 GB RAM, Nvidia GF GTX 670 (Forceware driver v314.22)

From my settings.cfg (everything besides key bindings):
osdeditpal "12"
osdtextpal "12"
osdtextshade "2"
r_swapinterval "1"
r_texcache "0"
r_textureanisotropy "16"
r_texturemode "4"
hud_stats "1"
hud_textscale "200"
in_mousesmoothing "0"
mus_volume "255"
r_ambientlight "4.000000"
sensitivity "9.000000"
skill "1"
snd_fxvolume "135"
snd_numvoices "64"


From eduke32.log, only relevant sections:
[Setup]
ConfigVersion = 276
ForceSetup = 1
NoAutoLoad = 1
SelectedGRP = "stevepak.grp"
ModDir = "/"

[Screen Setup]
Polymer = 1
ScreenBPP = 32
ScreenHeight = 1200
ScreenMode = 1
ScreenWidth = 1920
WindowPositioning = 0
WindowPosX = 0
WindowPosY = 0
MaxRefreshFreq = 60
Out = 0
Password = ""


---------------------------------------------------------------

About the graphics/texture distortions:

You are right, it wasn't E3L3, but E3L2. My bad.
A similar distortion I encountered in E1L3 already, at a wall which exploded. The building texture stretched all across the screen. Screenie from Mapster32 attached.

Distortion coords (as close as I could get):
E1L3: wall 1138 or 1233, x: -4865 y: 7425 ang: 784
E3L2: wall 2732 --> 2696, x: 7911 y: 29394

I hope this helps.

There were even more glitches like that in that pack, but the two I mentioned were the worst (so far, since I couldn't check beyond E3L3).

This post has been edited by NightFright: 21 May 2013 - 11:47 PM

0

User is offline   LeoD 

  • Duke4.net topic/3513

#11

I can reproduce the E3L4 crash. No CONs involved. Slightly different crash log when using "-map".

Attached File(s)


0

User is offline   Helixhorned 

  • EDuke32 Developer

#12

View PostNightFright, on 21 May 2013 - 11:04 AM, said:

About the graphics/texture distortions:

You are right, it wasn't E3L3, but E3L2. My bad.
A similar distortion I encountered in E1L3 already, at a wall which exploded. The building texture stretched all across the screen. Screenie from Mapster32 attached.

Distortion coords (as close as I could get):
E1L3: wall 1138 or 1233, x: -4865 y: 7425 ang: 784
E3L2: wall 2732 --> 2696, x: 7911 y: 29394

Well, these two maps on the other hand are very corrupt. Issuing "corruptcheck tryfix ??" in Mapster32 lowers the corruption level to level 3 and no corruption, respectively. This should be done from 2D mode, since Polymer invokes undefined behavior when attempting to draw the offending map portion. Currently, Polymer is the renderer that is most sensitive to map corruptions, so there's a good reason for keeping them clean.
0

User is offline   NightFright 

  • The Truth is in here

#13

View PostHelixhorned, on 22 May 2013 - 07:59 AM, said:

Well, these two maps on the other hand are very corrupt. Issuing "corruptcheck tryfix ??" in Mapster32 lowers the corruption level to level 3 and no corruption, respectively. This should be done from 2D mode, since Polymer invokes undefined behavior when attempting to draw the offending map portion. Currently, Polymer is the renderer that is most sensitive to map corruptions, so there's a good reason for keeping them clean.

Maybe this should be done with all of these maps. xD But I am not sure if that will fix the crash in E3L4, however. :/
0

User is offline   Helixhorned 

  • EDuke32 Developer

#14

View PostLeoD, on 21 May 2013 - 11:58 AM, said:

I can reproduce the E3L4 crash. No CONs involved. Slightly different crash log when using "-map".


View PostNightFright, on 22 May 2013 - 08:16 AM, said:

Maybe this should be done with all of these maps. xD But I am not sure if that will fix the crash in E3L4, however. :/


It was a Polymer bug manifesting itself only on Windows for some reason. Fixed in r3799.
1

User is offline   NightFright 

  • The Truth is in here

#15

Great, the new build fixed the problem indeed! Thanks a lot, pal! ;)

I have tried to fix E1L3 with the Mapster32 command, but I think it does not work. When doing that, that wall won't blow open at all any more, so it's even worse. I think this would need to be fixed manually.
0

User is offline   Helixhorned 

  • EDuke32 Developer

#16

View PostNightFright, on 22 May 2013 - 12:45 PM, said:

I have tried to fix E1L3 with the Mapster32 command, but I think it does not work. When doing that, that wall won't blow open at all any more, so it's even worse. I think this would need to be fixed manually.

You're right, that place around E1L3's wall 1222 is pretty messed up! Try moving some walls there and you'll notice that they're not connected as they should be. I will take a look at it since there's a prospect of discovering new types of how a map can be broken. Yum!

In general, yes, "corruptcheck tryfix" does safe transformations, but manual intervention may be necessary to restore the map to what the mapper intended.
0

User is offline   NightFright 

  • The Truth is in here

#17

Just so everyone realizes what we are actually talking about, see attachment (steve_e1l3). Note the tiny crack on the right side (which will actually never disappear)... xD

The worst thing with that crappy wall is that it will stay like that even after blowing it up... Means you don't even see what's behind before you actually jump into the skybox. xD The whole pack has many of these "anomalies", but nowhere is it as bad as there (and E3L2 maybe). Problem here is that a keycard or something you need to finish the level lies beyond, so it would be good to have it working, even if it's rather a visual (even though massive) glitch. If both maps got fixed regarding those two walls, it would already be more than you could ask for.

---------------------------------------------------
Some of Steve's episode 3 maps are fine examples for messy mapping, apparently even with one showstopper:

E3L5:
- First, you see some automated doors with space beyond (e3l5_spacedoor1). You think: "No way to get past that." But if you enter the door anyway, you see there's a normal room behind it (e3l5_spacedoor2). If you turn around, you see the mess in all its glory from the other side (e3l5_spacedoor3).
- Before the exit, it gets even more fun: There is a ramp into space (e3l5_ramp1). If you go on, in 9 of 10 cases you will get crushed when trying to enter the teleport tube (e3l5_ramp2). Only with a lot of luck and patience, you can make it (and you have to, because otherwise you cannot finish the level).

E3L6:
- Some invisible walls you apparently cannot pass without DNCLIP, at least I didn't find a way. The path across the water to the castle seems to be blocked half way, both above AND under water (e3l6_castle). By the way, underwater it can happen that all of a sudden, gravity kicks in when diving under obstacles covering the water surface... ;) Figured it out, it's a pivot bridge you have to activate with a button. It's stupid though since you seem to be able to get past the obstacle easily.
- If you make it past that and enter the garden mini maze beyond, jumping on the hedges will get you stuck, you cannot jump down again (maybe the author never meant you to be able to get on top of them, but well, you can).

E3L8:
- When exiting the sewers and entering the streets at the beginning of the level, the floor of the main street is completely missing (steve_e3l8_streets1), and when you turn around the corner, a bit more (steve_e3l8_streets2).
- Later, when hunting for the keycards, a section is blowing up in some building and the floor is gone there, too (steve_e3l8_interior).

E3L11:
Rather minor issue with floor and ceiling missing in this control room (steve_e3l11).

I think making the whole pack work properly would be the job of a lifetime... xD But some of the maps are really cool considering their age, especially the three boot camp levels and the sunk, upside-down ship (all in ep.2). For these four levels alone, it's already worth playing the pack (and restoring it to a state where it's at least playable without in-your-face glitches/showstoppers).

---------------------------------------------------
It's remarkable in general how well EDuke32 still runs these bugged maps after all. This SIGSEGV error was the first during many hours of gameplay testing with quite old TCs back from the late 90s, the other crash happened due to a map error (see above). Other than that, besides a few visual glitches, no bigger issues. Another proof that it's a really good port. ^^

This post has been edited by NightFright: 03 June 2013 - 12:40 AM

0

User is offline   Helixhorned 

  • EDuke32 Developer

#18

OK, I took another look at E1L3. First, run "corruptcheck_noalreadyrefd" until it shows to regard 1:N redwalls as corruptions. (This OSD command toggles between two states. Yes, it's a bit messy and inconsistent at times, but it's not the corruption checker's main job to be pretty.)

A better way of cleaning it up then would be to first issue "corruptcheck tryfix" until the map is not altered (yes, multiple passes can be necessary.) This way, Mapster32 will attempt to recreate the red-wall connections instead of whiting them out. Second, run "corruptcheck tryfix ??" to white out those ones where no match between two walls could be found. Note their numbers and correct manually when necessary.
Next, the remaining two-walled sectors should be cycled using Alt+[ or Alt+] and eliminated. Since they have zero area, multiple trials may be necessary to highlight them, but you'll notice a message in the status bar. A highlighted two-walled sector can only be deleted using LShift+Ctrl+DEL. However, this may introduce corruptions again under certain circumstances, so read the messages carefully. It definitely helps to know the BUILD map format, i.e. what the different sector and wall members are for.

This map pack seems like a good candidate to learn that workflow a bit. Have a lot of "fun"!
0

User is offline   NightFright 

  • The Truth is in here

#19

I think I managed to do it by just relying on Mapster32's auto correction. I don't dare doing too much on my own, I am lacking skills for that.

Anyway, it seems I brought E1L3 down from 26 errors to 8, and checking ingame revealed the glitch is gone (see screenshot). ;) I was able to finish the level without any major visual disturbance, which more or less means "mission accomplished". While I was at it, I properly aligned sprite #161 (graffiti) which was floating in the middle of a conveyor belt, not being aligned to the wall. Similar with sprite #223 (dipswitch2) which was not wall-aligned.

I will do this for some more maps of that pack where necessary. You will surely get the complete result as download once it has been thoroughly tested. Thank you very much for your help! ^^

This post has been edited by NightFright: 25 May 2013 - 03:40 PM

1

User is offline   NightFright 

  • The Truth is in here

#20

Bump!

Somebody reported an EDuke32 crash problem with Zaxxtor's "Oblivion" pack which I had included with the EDuke32 addon compilation. It affects E2L10 (Death Valley) and the error is the following according to the report:

Subway found no zero'd sectors with locators at (48896,52480).

Since this is very similar to the issue from "Alien Invasion", I was wondering if this is possible to be fixed as well. Find the (presumably) bugged original map in the attachment.

This post has been edited by NightFright: 08 April 2016 - 02:04 AM

0

User is offline   NightFright 

  • The Truth is in here

#21

*Bump*

Any news on the issue above? It's the only map in the addon which doesn't work. Would be great if that got fixed since it's a showstopper. As far as I understood, Zaxtor uses a 2-way train in the beginning of the map which moves the wall away from the player (instead of moving the train section), giving the illusion of "departing" from the station (while you actually remain stationary).

I have identified the last working EDuke32 snapshot with which the level is loading properly: eduke32_win32_20121113-3158.
Changelog for r3161 which is the first broken build. My bet is the error was introduced with 3159.

I am not sure now if this is something that can be fixed/changed in the map or if the coding team needs to take a look to restore functionality in a future snapshot.

This post has been edited by NightFright: 07 June 2016 - 06:21 AM

0

User is offline   Hendricks266 

  • Weaponized Autism

  #22

The diff for that revision is a mess. I would run TX over with a van, but Helix already did by reverting it and splitting it into 14 separate commits.

That said, I don't see how the sector effect ever worked unless Zaxtor does something to it in CON. The code for generating that error didn't change in that span.

The SE in question is sprite 2325, located in sector 0. The code checks all the walls of the sector containing the SE for one that meets these conditions:

1. The wall's nextsector >= 0
2. The nextsector's hitag = 0
3. The nextsector's lotag < 3

All the walls of sector 0 (walls #0 through #8) have sector 37 for a nextsector, and sector 37 has 0 for a hitag and 20 for a lotag. Even before the change from signed to unsigned, "20 < 3" would never be true.

Me confuse.
0

User is offline   Hendricks266 

  • Weaponized Autism

  #23

Okay, for some reason the old revision is reading sector 0's lotag as -16364, which passes the test. I have to investigate further.

EDIT: Looking at the map with a hex editor, the lotag is indeed 20.

EDIT 2:

prelevel(), premap.c:

        switch (sector[i].lotag)
        {
        case ST_20_CEILING_DOOR:
        case ST_22_SPLITTING_DOOR:
            if (sector[i].floorz > sector[i].ceilingz)
                sector[i].lotag |= 32768;
            continue;
        }


As a signed value, this makes the lotag -32748. As an unsigned value, it makes it 32788.

A_Spawn(), game.c:

        case ACTIVATORLOCKED__STATIC:
        case ACTIVATOR__STATIC:
            sp->cstat = (int16_t) 32768;
            if (sp->picnum == ACTIVATORLOCKED)
                sector[sp->sectnum].lotag |= 16384;
            changespritestat(i, STAT_ACTIVATOR);
            break;


-16364

Conclusion: Zaxtor got very lucky. That said, I don't know what the purpose of the lotag < 3 check is, so I would be in favor of relaxing it so that old maps that get lucky like this still work, without breaking anything.

This post has been edited by Hendricks266: 07 June 2016 - 01:45 PM

3

User is offline   NightFright 

  • The Truth is in here

#24

So that basically means you guys would implement a check into a future snapshot for this? Would help a lot actually since I think there is no way to make the map work in any other way. I doubt that there are many levels out there doing it like this, anyway.

Thanks a lot for the sophisticated analysis of the issue, Hendricks!

This post has been edited by NightFright: 07 June 2016 - 11:55 PM

0

User is offline   Hendricks266 

  • Weaponized Autism

  #25

I'll have a fix in my next push.
1

User is offline   NightFright 

  • The Truth is in here

#26

Thanks a lot, pal! I guess it's also OK to say thanks on behalf of Zaxtor with whom I have been in contact regarding this issue. His approach had been to include some EDuke32 build with his addon that worked, but since the goal of my addon compilation was/is to make these mods work with recent snapshots again, that wasn't exactly what I had been aiming for. I'll provide feedback about whether it works or not as soon as the snapshot with the fix/bypass/etc is available.

This post has been edited by NightFright: 08 June 2016 - 11:24 PM

1

User is offline   NightFright 

  • The Truth is in here

#27

Just wanted to confirm that the map now loads without problems when using latest snapshot r5775. Thanks a lot again! ^^
1

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options