11
NeoLemmix Main / Re: Don't exit on losing all lemmings (feature development)
« Last post by Simon on April 30, 2024, 11:14:42 PM »I call a replay oneframediff if and only if both of the following hold:
Now:
Here is a Bash script that takes two NL output files (pass them as argument 1 and argument 2 to this script) and tells me if the replays are oneframediff:
#!bin/bash
paste "$1" "$2" \
| sed 's%[^(]* (%,%' \
| sed 's% [^(]*(%,%' \
| sed 's% .*$%%' \
| grep ^, \
| grep -v "none" \
| grep -v "TALISMAN" \
| awk 'BEGIN { FS="," } { print $2 - $3; }'
The script prints the difference (see item 2 in my first enumerated list in this post) in run frames of the replay between the two NL versions. For a oneframediff replay, the script will print 1. If everything is oneframediff, you get a long stream of 1s.
The NL replay results format isn't the nicest to parse. But this script isn't particularly smart either; I should have relied on the consistently-appearing "... frames" in the NL replay format. Instead, the script cuts at open parentheses (, which will occiasionally appear in the level names. The script won't halt on such extra parentheses, but will produce garbage results over 1,000 or under −1,000 that we must examine by hand. All were fine.
-- Simon
- During mass-replay verification in NL 12.12.5, it shows the same high-level result (pass, fail, undetermined, ...) as during mass-replay verification in nl-2024-04-08.
- Mass-replay verification in NL 12.12.5 takes exactly one physics update longer to run this replay than the mass-replay verification in nl-2024-04-08.
Now:
- All 208 replays in Lemmings United (excluding Bonus rank) are oneframediff.
- All 120 replays in Lemmings Introduction pack are oneframediff.
- I have 3 more Icho replay collections that I'll test for oneframediff-ness. Expect more results in the next 0-3 days.
Here is a Bash script that takes two NL output files (pass them as argument 1 and argument 2 to this script) and tells me if the replays are oneframediff:
#!bin/bash
paste "$1" "$2" \
| sed 's%[^(]* (%,%' \
| sed 's% [^(]*(%,%' \
| sed 's% .*$%%' \
| grep ^, \
| grep -v "none" \
| grep -v "TALISMAN" \
| awk 'BEGIN { FS="," } { print $2 - $3; }'
The script prints the difference (see item 2 in my first enumerated list in this post) in run frames of the replay between the two NL versions. For a oneframediff replay, the script will print 1. If everything is oneframediff, you get a long stream of 1s.
The NL replay results format isn't the nicest to parse. But this script isn't particularly smart either; I should have relied on the consistently-appearing "... frames" in the NL replay format. Instead, the script cuts at open parentheses (, which will occiasionally appear in the level names. The script won't halt on such extra parentheses, but will produce garbage results over 1,000 or under −1,000 that we must examine by hand. All were fine.
-- Simon