I have a lot to learn about managing around the AI bikes as is clear from my runs, but I'm curious have any of you found differences with them on other difficulty settings? I'm trying to find out whether there's something in my play style that puts me far more at the AI mercy than other top runners. I don't plan to try other difficulty settings for obvious reasons but if any of you notice quirks in my play please do let me know. It might also be because I base my play in corners off this TAS:
Hope everyone out there had a lovely Xmas and New Year! I took a break from the game to pick up something else. Now I'm going to finish optimising the last 9-10 levels of Fun and take a proper crack at a sub 40 minute run. Here's the latest:
Hey, hope everyone had a fantastic Christmas! :D I've picked up the game and while doing some general research last night I found out about Rev 00 and 01. I did some stuff and the difference turns out to be about 15%. Pal/Ntsc is 20% so it does make a difference, especially for a game with reactions timing involved for errors/corners.
Then I looked at the leaderboard as is, and timed each run. What surprised me was that Defanged's run seems to be using Rev 00, whereas most others are using Rev 01. Three runners seem to have significantly faster frame rates than DFD(!); guessing that might be caused by individual machines.
Would it be a good idea to standardise which Rev is used going forward? I feel like it'd be better that way than splitting times into separate spaces, and since there are control differences.
Basically yeah; it seems to be like that. A lot of levels in Fun have relatively loose save requirements though, so as you'll see in the above playthrough, I can often kill a few at the start which maximally reduces any potential lag even from on-screen bunches. Calculating travel time across a level also makes it possible in some cases to release late, such as Fun 19, which even reduces otherwise unavoidable lag frames.
Practice run of the first 15 levels totalled 12:39.33, saving 2:28 from the old run. No resets and no flubs.
That's an excellent question which I have no qualification to answer xD If you think of a totally level surface (like level 7), multiple lemmings on that surface cause headaches to draw in unless you scroll away. But a surface that's even slightly uneven seems to drastically change that outlook. I don't think it would be due to pixels on screen because overflow sprites are drawn into the background as I understand it. In any case the lag is pretty easy to manage so far. If you look at my latest video for Fun 3, you'll notice I amp the RR up to 90 and it is the fastest way to get lemmings home - that's partly because after Nuke I scroll the screen anyways, but there are a couple of other levels where you can allow many lemmings on screen at once and have the optimal solution.
Last night I busted Origins and Lemmings down to a 1:39, saving 30 seconds. And I found a one-digger solution for level 13 although using it in a run is a long way off. So maybe I can get the time closer to 35 than 40 minutes!
I don't quite understand either, but I have video and photo proof that appears to corroborate what I say, ie I took a screenshot with 18 lemmings on screen but no slowdown (ie $1ad4 was only cycling between 1-5 not 1-7). I can make a video comparison of two states if you'd like, I can understand it seems berzerk but I think the reason is to do with the way the lemmings are drawn in - excess lemmings means the game switches between animating half on one frame and half on another. Calindro is still looking into what drives the $1ad4 byte but given that going off screen mitigates the effect it seems a logical conclusion that it's to do with horizontal positioning.
I have now padded my playlist of improvements to Fun, to 11 levels, including some massive saves out of nowhere. The total improvement from these is 7524 frames, or 2:05.4. The implication is that a sub-40 minutes time may be eminently possible if I hook up perfectly, and therefore the idea of besting Garbi's SNES time is absolutely doable. Some of these strategies are hair trigger though in terms of cursor movement, but I tend to play aggressively anyways so it shouldn't take many full runs to achieve it and there's far less faffing about in general with Fun levels.
Research on lag continues but encouragingly it appears to be related to horizontal positioning on screen. Example: 20 lemmings on screen walking on a level platform will cause immense slowdown at 2 frames in 7. 20 lemmings on screen walking on a big bridge will cause barely any slowdown at all. The same applies for undulating territory.
I've started applying lag minimising concepts to the Fun levels now. I'm making a new playlist to showcase these improvements. I already found a way to gain 15 in Level 16 alone. The big banana so far is Level 17, which is technically interesting for its lack of floaters. In my last wr run it took 75 seconds. But now I can get it down in 53:
Albeit one cannot compare apples and oranges (nor 8 and 16 bit machines), Garbi's 41:32 is now well within sight if things continue apace. Ultimately I want to have the fastest time in both Fun AND Tricky excepting the insane nes run - it may take me a few months but I am determined. And frankly if I ever get bored I might try to come and steal a few of you guys' runs on other consoles, so keep improving yourselves ;)
As a coda to this thread I thought I'd post about a new tool that might be highly useful to anyone who speedruns SMS and GG games.
I have no idea how many of you out there get graphical slowdowns, but now you can watch an ecg-style trace of lag in real time through Emulicious. I made a vid about it here: www.youtube.com/watch?v=BLGrBL1DAGU
If you're interested in it, let me know since I could probably make a few graphical tweaks with Calindro (the Emulicious creator) for clarity.
We did it!
www.youtube.com/watch?v=BLGrBL1DAGU
And you thought speedrunning wasn't as complicated as emergency medical technology xD
1ad4 in main rom is the animation cycle - lucked into that find! If I set the plotter to display ($dad4)*8, I end up with a nice seismograph style effect which is clear to understand. The game usually animates lemmings every fourth frame. This includes builders and likely also bashing. The best thing about this discovery is that you could just watch this value in any emulator and probably some very skilled person could map a lua script to overlay a HUD on the screen to indicate slowdown.
Slowdown begins to occur with the ELEVENTH lemming. Cycle goes from 1/4 to oscillating between 1/4 and 1/5. So it's no wonder I had no perception of slowdown since it's only 1 frame in 9 at this point. This can be reversed by scrolling to any point where a max of 10 lemmings are being animated.
Fifteen lemmings, and it becomes 1/6, scrolling will reduce it to 1/5.
At first when eighteen pops out, and permanently when nineteen are out, that goes to 1/7. Scrolling will still reduce this to 1/5, so already that's a bigger difference than I had ever thought.
I am looking at making a lua script which will count these superfluous frames, looks relatively simple to do so and would make a nice tool. I'm a beginner but it shouldn't take ages, and would work well with recording emulators like Bizhawk.
As a bookend to the recent work I did on lag, I performed my friend's theory experiment with NTSC and PAL.
NTSC the game runs at 14 seconds of game clock takes 15 seconds real time; so that 2:20 game takes 2:30 real. In PAL the rate was 2:20 game to 3:00 real, or 6/5, as you expect.
But lag is different. Loading the same savestate to run 2:20 of game time through the clock with a screen full of 20 lemmings, NTSC took just over 4:20. PAL took just 4:28.
The implication of this is that for beginning speedrunners, the only punitive effect of using PAL is a slower time overall because of frame rate. This is compensated for because any extra lag they pick up will often be cancelled out by their having 1/6 extra reaction time in sticky situations. So if anyone out there is interested in taking up speedrunning SMS Lemmings but is nervous of all the work to do, start with the PAL speed to practice your strategies.
I have asked said friend whether it is possible to create a tool in an emulator, which can measure in real time, the dy/dx rate of change of lag tied to the game clock. You cannot just measure with lag frames because the game still runs at 60fps - it's only the animation cycles that slow down. My idea is that if such a tool is possible, it would be immensely useful to have during practice runs, since you would be able to see precisely what actions spike or lower lag, and specific areas to improve within complex levels. This would probably be essential in order to make any sort of dent in the Taxing levels. I found the RAM address that takes care of this so it seems as though it should be relatively simple to make such a monitor - if one is made I will append it to the resources section.
Here is a playlist of my progress so far, up to 19 levels at -7:39. Enjoy! Please feel free to point out stupid errors.
https://www.youtube.com/playlist?list=PLOTsjhPmEfJeElqnBUB6wPCj2k98ds9H8
Mm, I'm making very good progress in not only smashing all the level times but drastically reducing lag too. Taking as a group the 14 Tricky levels I have videoed improvements to, I have knocked off a total of 6:55 from the existing record. Total improvement of around 15 minutes down to a sub 1h15 is highly plausible since some of the remaining improvement levels are the heaviest in lag. There will probably be just as much carnage within Fun because learning from one set of levels feeds into the other. Once I get the times down for both of these, to the point where it would require a lot of grinding to improve, I'll move over to looking at Taxing; probably in the next couple of months or so.
I think he meant there might be a lower proportion of lag which means it might affect IGT in terms of having a wider time window to complete critical actions. Probably we can say to new players 'if this looks daunting, feel free to run on PAL for now' once I test it out.
Please feel free to erase the IGT's and make it invisible on full game runs yeah ^^ I've started posting new optimals based on RTA to my Youtube. In some levels only so much can be done, but I had a surprising result in Lost Something?
Ignore the 85% mistake, I was testing various methods of optimising the level. This method came out ahead of creating a playpen at the very start of the level, where I made it so small that the lemmings bunched up into 1-2 sprites width total. I guess because in both cases I scroll them off screen, it's affecting the game the same either way and so it's better to put them closer to the exit.
www.youtube.com/watch?v=lC1kv1FL2Lg&t=04
Now it just gets silly. My friend who made Emulicious, and teaches Z80, told me that the game is written such that only the first 192 lines contain the game screen. NTSC uses 262 lines, PAL uses 342. And that because of this, he thinks PAL would have far less lag because there is more time for the game to do its work each frame.
So now I'm going to have to seriously investigate THAT, and check whether it's true. If so, PAL runs could be accepted as a separate category if anyone has trouble managing their lag strategies, that might be an ideal compromise to stop people being put off the game. Fortunately for my sanity, of course, if we remove all the lag from the optimal run, NTSC will still be faster and there's no debate about that being the method of choice.
Initial tests are very positive for lag reduction being quite easy where I have control of RR etc. Very first attempt at Fun 21, my RTA went down from 2:17 to 1:53 (which would be lower if I did it right) just from a few easy tweaks. Same success in Fun 20. So it looks like the Fun levels WR can not only be easily optimised, but isn't going to have a problem presuming almost all the levels are editable like this. I might do a side by side comparison of these levels in a youtube video to highlight the difference as it's quite visually shocking.
Totals for Tricky are slightly higher as one would expect. Twenty-six levels have lag, which totals around nine minutes.
The worst problem was Level 8, because you need four blockers and twelve to rescue, so you can't get below the 14 limit I discussed, but I was able to cut lag down to 15 seconds from over 40.
Sega Three had 49 seconds lag. I've already knocked my RTA down from 3:56 to 2:26 where lag is confirmed not to exist at all.
Menacing! had 42 seconds lag/delay, some of which was from bashing unnecessarily through the brick at the start. RTA has gone from 3:26 down to 2:44, with just 9 seconds of lag because of a high save % requirement.
There's a Lot of Them About is quite hard to optimise because you can't kill any lemmings. I can cut the lag though down to about 11 seconds, and get my RTA from 2:20 down to 1:58. Interestingly, in this level the IGT remained the same across the WR and the new run.
The general overview therefore is that a lot of the lag can be dealt with even in the smelliest levels, it will simply take a lot of strategy and working out to optimise. So I would advise dropping the IGT as a criterion/marker on runs straight away, in order that newcomers will easily understand that RTA and lag are just as much to be optimised as the actual route. It does mean I may have to spend quite a while re-formulating all the strategies in laggy levels, but it means I should be able to drastically lower both my records in the near future, especially with little things such as my Attic hack.
Here's my optimisation for Tricky 20 as an example - this one takes 1:44 rta where the former took 2:10. www.youtube.com/watch?v=XTrfrh-pi5o
Indeed, my first thought would be to switch to IGT total for 30-level blocks, but before I lower any of my existing times I need to get a way better handle on just how much delay is involved in these runs as a whole. I wonder would it be restrictive or confusing, to attempt to set an upper limit on the permitted RTA delay in a run? So that runners are not punished for the game's limitations, but equally are aware that they cannot sit idly while the game animates everything at 50% speed and coast to a wr time. This is a problem from the future but solving now makes life easier.
EDITED: Since we have the exact IGT to RTA ratio, I looked through my Fun WR (which has some scrolling but not lots) and collated the total amount of the times which were down to lag/slowdown. I'll take the worst few levels for it, and practice them until I get a decent optimisation of the rta, and see where the realistic lower bound lies, and report back on any subsequent difficulties in gameplay that arise.
Fourteen(!) levels had lag which totalled nearly SEVEN minutes. And that's just on the Fun segment. It will be an interesting project to see how much I can lower this in those levels.
I don't know if it's the way I speak or something else, but many of you have the wrong end of the stick! I just want to learn about/research other games where there is slowdown because of the limitations of the hardware, as has been mentioned with Ninja Gaiden 2 which I'll check out :)
I owned the game on console as a kid, the slowdown is inherent to it and I haven't attempted to avoid it by emulation. Timmi, you really don't think much of me if you think I would post without doing my research first, do you xD SMS Lemmings has only 20 lemmings max per level, slowdown seems to start at around 14, and drako is correct that massive amounts of screen scrolling are the only real cure in many instances. Other systems' versions are radically different because they're on way more powerful hardware for starters, but Genesis TASes also have some instances of lag reduction involved.
When I said recently I mean that having started to optimise my level times I noticed just how pronounced the problem was; I just hadn't twigged it was that bad before. Really not sure why a few of you picked up on discussing the game's slowdown cos all I asked is for examples of the same in other games to get a better idea of when people use IGT v RTA, since at the moment the game is going to be a mess with these categories tracked wholly separately, and it might well be off-putting to future runners. I feel like Frank Grimes now xD
I am running it on emu but that doesn't stop the slowdown :)