[DISC] Upcoming feature: Replay Checker

Started by WillLem, June 03, 2026, 09:18:19 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

WillLem

RetroLemmini will (at last!) be getting a replay checker which can run a replay in simulation mode (i.e. no rendering, audio, etc) and determine its result.

I've already begun work on this and it's more or less fully functional (still ironing out some rendering kinks). It currently runs automatically whenever a replay is loaded and displays the result in the window caption. This will be standard behaviour when loading a replay, so that the result is visible without having to watch the entire replay.

The plan is to allow multiple replays to be checked (basically, a Mass Replay Checker similar to NeoLemmix's), but that's a slightly bigger step and I'm looking for feedback on how users would like this feature to operate. Replay renaming is of course on the cards already, but is there anything in particular that would be useful when mass checking replays specifically in RetroLemmini?

Simon

#1
IDs in level files are easy to get wrong in seemingly normal editing workflow. The IDs are hidden in the level files and have no effect that a newbie can observe. Newbies have no obvious reason to de-duplicate IDs.

Can you find something better for replay-to-level association that doesn't give such opportunity for mistakes?

The obvious continuation here would be to immediately discuss what Lix does, and what NL does. But I hope to bring new designs to light unprimed. You can always copy existing designs later.

-- Simon

WillLem

Quote from: Simon on June 09, 2026, 07:08:16 AMCan you find something better for replay-to-level association that doesn't give such opportunity for mistakes?

Lemmini's replay-to-level matchups have always been led by the level's title and pack position. It has caused problems, particularly with external levels.

RetroLemmini patches the replay matchups for external levels, but still relies on level name and position. Here's the current match flow:

1) Check the DMA levels for a matching name and position -> fallback to external levels if no match is found
2) Check all levels for a matching name and position -> fallback to external levels if no match is found
3) Check all levels (including external) for a matching name only

This is somewhat tighter than (Super)Lemmini(Too)'s replay matching and rarely results in mismatched or unmatched replays.

I did consider implementing an ID system, but given the size of the back catalog it does seem a bit too late (and complex) to introduce this now.

Matching by name is now about 99% successful for individual replays, but yeah for a mass checker it probably does need something a bit more foolproof. Suggestions welcome.