Doom2 Map 13 "Downtown" slow-down
This is a weird one. Since I haven't played the original Doom2 levels for probably 6 years, I decided to give them a go again. I am having a problem with massive slow-down in only this level, map 13. Using Beta 6.6, but posting here as I can't say it is version specific.
It runs fine until I teleport up to sector 240 (near the centre, R of blue key, N of blue door). From that point, the game slows to a stop except for the music/sounds. (Well almost a stop. Took almost a minute for the tab key to bring up the map, or the escape key to bring up the exit menu.)
I had to make quicksaves and loads to finish. Strangely, those keys worked fine. F6, Y, F9, Y and it returns to normal for 10-20 seconds. Got through and started map 14, and no problems at all. Restart the computer and it does it again in Map 13 though, even restarting the level.
So I've never seen a slow-down like this, and wondering what could cause it, and if someone else can confirm it. I could send somebody a saved game to check if that would help. It does it consistently.
System:
Windows XP SP2
Pentium dual core E5200@ 2.50GHz
Gigabyte G31M-ES2C
1GB RAM
ATI Radeon HD 4650 video
RealTek High Definition Audio (on Motherboard)
No add-ons except jDRP
It runs fine until I teleport up to sector 240 (near the centre, R of blue key, N of blue door). From that point, the game slows to a stop except for the music/sounds. (Well almost a stop. Took almost a minute for the tab key to bring up the map, or the escape key to bring up the exit menu.)
I had to make quicksaves and loads to finish. Strangely, those keys worked fine. F6, Y, F9, Y and it returns to normal for 10-20 seconds. Got through and started map 14, and no problems at all. Restart the computer and it does it again in Map 13 though, even restarting the level.
So I've never seen a slow-down like this, and wondering what could cause it, and if someone else can confirm it. I could send somebody a saved game to check if that would help. It does it consistently.
System:
Windows XP SP2
Pentium dual core E5200@ 2.50GHz
Gigabyte G31M-ES2C
1GB RAM
ATI Radeon HD 4650 video
RealTek High Definition Audio (on Motherboard)
No add-ons except jDRP
Comments
Let me install the new 6.6 and give it a go, thanks for describing in much detail. I'll edit this post with my results.
I knew someone would eventually see this. Probably we all play PWADs since the old maps are to familiar to be much fun. (Although, playing the original was the first thing I did after discovering JDoom. It was almost like a completely new game.)
Well I had to look up 'memory leak' and found that to be way over my head. That certainly sounds like the symptoms. I didn't have FPS on to see, but could see when it started and then quickly get worse. It never bogged down totally though. No crash, and I never had to ctrl+alt+del to get out.
I can't remember now, but when I was learning to map I read that there is some trick used with the sky in that map. Found it, scroll down to "Buildings of Different Height" at this page.
Where I teleported to is a shorter building that must use this trick, as the doorway in/out actually has 2 floors and ceilings over each other, and maybe beta 6.6 is having a problem with it.
I don't believe I have ever tried using this in a map, so maybe I will start up Wad-Author and make a test level.
edit:
I guess that area is not using 2 floors/ceilings, so trying to find where in this map the trick is used. Maybe this is not the trouble...
edit 2:
As a test, I separated map13 from the IWAD and played it as map01. I only extracted it and changed the map number with XWE, and it ran perfectly, so whatever the problem was, it must have had nothing to do with this map at all.
I had not tried it without jDRP, but that fixed it. Loaded my save without it and played through perfectly. Enable it again, load my save, and it starts the slow-down within 30 seconds.
So, what would explain why other test games with the same map did not reproduce the error? Not having the exact same 'partical death' timing - one death still occuring as I stepped onto the teleporter and immediately caused another at a higher location?
I was speaking program code, but it isn't even educated so don't worry too much about it ) I suppose we'll have to try individual things from the jDRP and also look at max-verbose logging...
Now I can take a more scientific approach, checking one box at a time and playing that 'corrupted' save until I find the one that causes it. Of course, once that item is found it will need to be tested by itself, and may prove to be a combination of resources together rather than a single part.
Could be rather time consuming with 115 items in the box. My algebra is not good enough to calculate how many possible combinations there are, but at least I can help to narrow it down a bit.
My algebra sucks too, but instead of trying one at a time it is technically quicker to do it like so:
a) Enable 50% (half) of them and the other half unchecked, and test your savegame
b) If the slowdown does not occur, go back to a) and do it for the other half, otherwise continue
c) You already eliminated half of the possible culprits. Of the half you now have selected that made the slowdown occur, uncheck half of THEM. Now you only have 25%, one quarter of the full 155 selected that could be the possible culprit. And etcetera...
However, there may be more than 1 specific option causing it. That makes above method tricky. So try to do it in chunks by the "type" of resource instead. I would do it, but i've been busy. I'll give it a go tomorrow though
It might also be specific to ATi cards, I didn't realise that. I have a 9600GT so it'll be worth me to test it anyway.
I cannot duplicate what happened in any new game, so if you want to experiment also, then you'll need the save where I broke it: http://numerometria.com/doom/66bad13.zip (47KB 'DoomSav1.dsg')
And, I just posted a general suggestion for a Snowberry GUI improvement, after finding this checkbox ticking to be a royal pain in the arse.
I've had similar problems (no add-ons). In Plutonia Map02, when you hit the switch at the start to lower the floor you're on, the game slows down big time, even if I change it to the smallest resolution possible. In Plutonia 2 Map30, when the floor in the final room lowers to the final boss, the game slows down.
3.4 GHZ Pentium 4
2.25 GB RAM
ATI X700 (256MB PCI-Express)
sonicdoommario, I believe the slowdown you're experiencing may be related to something else - since psyren already concluded it was the jDRP causing it yet you don't have it enabled.
I can confirm this bug/issue on my machine too. See below for the codebox of my original post after this, it was a rant and is completely irrelevant [see next post].
psyren, just disable that one item and you're good to go
I have no idea how to fix it though I assume it's something in the DED, the Model or PCX graphics wouldn't cause this kind of thing [right?]
State-based generator with infinite lifetime! So the mancubus fireballs must be allocating the same amount of particles each state without wiping them clean. This might explain the slowdown with the fireballs...
There's no static flag on either of them, so that it will cause the generators to be replaced when the max generator limit is reached, but it should still leave them allocated until such a time when they are replaced. So it gives the effect that there's nothing wrong, but there may be something wrong... Maybe change them to mobj-type generators and up the particle count appropriately to necessitate 12 or so sources(two mancubi shooting six fireballs at once should be enough, right?)
The smoke may not want to be continuing until the very end of the explosion, in which case the "noptc" flag should be set slightly after the onset of the explosion?
EDIT: A formula for how many particles are needed could go as such:
Particle life * spawn rate * number of sources
So say the most a particle can last is 50 tics, and the most it spits out is 2 per tic, so that's about 100 possible at once in one source. Since the particles allocated are distributed throughout each source in a mobj-type generator, allocate as many as are necessary for as many objects as you want emitting them before it begins to have less particles. Don't forget, though, (I think) that the particles are already alloted once the generator is created, so don't allot like 1,000,000 particles! In this example case, if we have a torch or something looking just right, and you think that the most a level has is 10, then just multiply the 100 by 10. 1,000 must be alloted in this case. Make enough sense?
I'm glad your eagle eye came in to save the day Psych.
If you make them mobj-defined, then it'll only take two generators total to keep it steady.
Change the 'State = "FATSHOT#"' lines on the "FATSHOT1" and "FATSHOT2" generators to (the object name).
Since they're both on the same mobj (not sure if it's necessary for mobj-type or only state-type) change the flags on the second generator to 'Flags = blendimul | extra' so that it's also added in addition to the last one.
Particles for each one:
1- which is 5 particles * 2 manc fireballs * 3 manc bursts * 2 mancs firing at the same time which is 12 sources
2- which is 12 (sources) * 6, which is how many (like 5) which will be on screen at the same time for each source, depending on the tics each particle lives and how rapidly they're spawned
Because presim is used to think ahead for the state-based ones, I'm not sure it'll look exactly the same for the mobj-type ones, and since I think there are enough states to accomodate so many at a time, PERHAPS ONLY changing the max ages like so would suffice:
1- (4(tics for FATSHOT1) * 1(the spawn rate)) + 5(max particle life) = 9, but you could probably round it up to 10 tics to be safe, so
2- (same formula) (4*.2) + 26 = 26.8 rounded up to like 27 or 28