[MAJOR Bug][Player] Mass Replay Checker Broken

Started by IchoTolot, February 04, 2017, 12:03:30 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

IchoTolot

I tried to make another mass replay check for Lemmings Reunion today. After ~ 45 passing levels the checker spit out only "error" and "<no match>" instead of "passed" and ended after that in an NL hang after I clicked to exit, which must be handled via task manager.

I picked a few of the "error" replays and checked them manually ----> they work fine and they solve!

So it seems to me that the new replay checker is currently broken. I did rebuild my pack with the very latest Flexi version just to be sure the newest update could have sth to do with it, but no change here.

EDIT:  PinoLems seems to check through just fine....investigating.....

EDIT 2: The switch to the errors seem to happen starting always at "Four Pals" after "Field Trip" has passed (replays sorted alphabetically). Both replays checked manually and they work just fine. There must be a inner NL screw up here, as from that point on only errors happen ending in a complete hang after trying to exit.

If needed I provide my nxp version + replay folder via pm!  (well sent them to namida in advance anyways :P)


namida

For me, the issue is happening at a different point, but I do get the same issue. Interestingly, for most of the levels after it starts erroring, it still detects the level correctly. I also got a "cannot allocate the DIB handle" error upon exiting the replay test menu, which suggests there might be a memory leak somewhere in the replay tester - or possibly elsewhere.

Will investigate this more in-depth later today, but for now I can confirm that I can reproduce this.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

The mass replay checker, to improve speed, temporarily disables the flushing of loaded pieces (basically - NeoLemmix usually keeps any graphic set it loads in memory, but will discard any that haven't been used for a while; during a mass replay check, this discarding is turned off). Removing the code that disables this causes it to run the check on Reunion with no issues.

So - the next thing to figure out - is it that something isn't working properly when the discarding is disabled, or is it just that Lemmings Reunion is loading so many pieces that it reaches some kind of limit? The latter is possible - Lemmings Reunion uses a lot of graphic sets, and if I'm not mistaken, in particular, it still uses the "Epic" set instead of proper mixing. Some sets might also still be at Lemmini resolution internally, which could also potentially cause issues (though if they do, this needs to be fixed on NL's side anyway). Such graphic sets can be fixed by loading and re-saving them in a recent version of GSTool; this will hard-resize them to NL resolution.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

I can't find anything that would suggest an issue elsewhere, so I think it may indeed just be that it's loading too many pieces. I've sent a version to Icho that should fix this issue for him to test (it did fix it for me), and if it seems to work for him, I'll release it.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

IchoTolot

Now it's working again! :thumbsup:

Also my old LemmingBytes replays, which caused the same error, are running through as well.

To improve speed I might have another idea: Why not use a 20sec or 1min jump for the replays ??? It doesnt need to be a hotkeyed function as those jumps would be rather unpractical for playing, but for mass replay testing they could be an option.

namida

That isn't how the replay tester works.

I suppose the best way to explain it is - it runs the game in a similar mode to how it would run during those kinds of forward jumps, but every 170 frames, it also updates the display to say how far along it is. Aside from that "update display every 10 game-time seconds", it could almost be thought of as running a forwards jump of infinite duration.

I could indeed reduce this to only update the display every 340 frames (20) seconds or even less often, but the speed improvement from this would be virtually negligable. Updating the displayed text is not particularly intensive, especially with Smooth Resizing In Menus turned off (that is one useful point - turning this off during replay testing will give a small but noticable improvement to the testing speed for this reason).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)