Lightning 4-2 Explanation
Руководства
/
Lightning 4-2 Explanation
Обновлено 4 months ago от Miniland

Overview:

Lightning is in essence regular 2 bump 4-2, but modified to be fast enough to save an extra framerule. The main timesave in the current method is by doing the second bump as a walljump off the pipe you enter. This combines a bump with the pipe entry as you don't need to accelerate up to full speed only to slow down fully to get in the pipe, but instead you only speed up to around max walking speed.

While walljumping is faster, there's one glaring issue - without crazy luck, you can only get 9 pixels from it instead of the regular 10. As a result, you need to gain 11 more pixels to move the necessary 20 pixels forward on the screen, and you only have the time to do one bump, so an 11px bump is required (it's actually possible to get 10px from the walljump, but it works exactly the same way as 11px regular bump and is therefore very very hard and unlikely)

How 11 pixel bumps work:

The furthest you can get pushed from any bump is 11 pixels forward, but this is exceedingly rare. The reason for this links to how Mario gets pushed forwards in the first place. When Mario interacts with a block, the screen stops scrolling as Mario isn't moving horizontally. When Mario stops being in contact with the block, the screen will need to start scrolling again if the player is trying to move to the right. You would think the screen would start scrolling automatically to the right, but there is actually a delay of a handful of frames where the player can move to the right after bumping against a block where the screen does not scroll. During this delay, the player can move to the right without the screen trying to catch up, which causes the player sprite to move horizontally forward on the screen relative to the screen position - in other words, you gain xpos by moving to the right during the short delay where the screen isn't moving.

Mario will be "pushed forward" by the distance that he is able to move in this frame. For example, if the player is able to move forward by 5 pixels in this frame, they will gain 5 xpos. To gain the greatest amount of xpos from bumping, the player needs to move to the right as quickly as possible, but this isn't as easy as it sounds because not all accelerations are created equally. For example, if the player is very close to the block when they bump against it they may continue "brushing against the block" even once they're not actually in contact with it. This is what causes slow walljumps where the player appears to barely move to the right: they had the wrong horizontal positioning when doing a bump, be it against a block or a pipe. As a result, the player needs to be in a precise horizontal window to get an optimal bump.

There is also a hidden attribute that affects the speed after a bump called subspeed. Subspeed is the fractional component of Mario's speed which is used in calculations to determine his position, but in many cases it simply acts as an acceleration force: high subspeed => faster acceleration; low subspeed => slower acceleration. This is a little bit of an oversimplification but it's honestly good enough in the majority of cases. As the player is trying to move to the right as quickly as possible, they want the highest possible subspeed as they hit the block.

All in all, this means that the player needs close to the highest subspeed possible (top 1/16th of values), and one specific subpixel (1/40 chance if doing a random bump). They also need to hit the block they are bumping against as high as possible, otherwise the player will brush against it too much and not gain enough xpos. This means that if a player were to do a random bump, assuming they hit the block as early as possible, there is still only a 1/640 chance they'd get 11 pixels.

What we do about this:

This 11 pixel bump is required for the whole walljump idea to work, so we need a method of doing this consistently. Originally, people thought to use the elevator as it appears that the elevator is the best type of object to bump off due to the fact that it moves downwards - you should in theory be brushing against the block for less time as on top of the player moving upwards, the elevator is moving downwards away from you. A setup was found with a ridiculous set of inputs (something along the lines of R L A _ _ _ R) which Niftski used in the very first lightning 4-2, but these inputs were virtually impossible on controller without crazy workarounds and even on keyboard with absurd. Luckily, I'm pretty sure that the whole "elevator block being the best" theory was pretty much just incorrect, and it works just as well as any other block.

Jonnyboy then found a set of inputs that allows the player to get an 11 pixel bump off of the higher coin block at the start of the level, which is what we use today. On top of removing the need to actually get down to the elevator, which requires either two frame perfect jumps or a frame perfect four frame jump, it also used a much easier set of inputs. You first lose one subpixel either by doing a 1 frame right release or in my case flicking down for a frame, then do either the inputs R _ L A R, dubbed "fake a2" inputs as they are the same as a certain set of FFA inputs, or R L L+A R(+A) while jumping on a specific frame from the ground. Both of these inputs get an 11 pixel bump, although they vary slightly in the subspeed the player has after the bump, which is important later on when we get to the pipe entry.

You then need to terminate your jump precisely, as Mario will accelerate the fastest with a specific jump height, and jumping higher or lower will be slightly slower as he'll reach running speed later. This means that there's a frame perfect A release in there to boot 😄

In total, this means that you have to do a one frame down press, one of two sets of fast inputs, and a frame perfect A release just to get the necessary 11 pixel bump.

this video shows me doing lightning with handcam and is a good thing to watch to get an idea of how it physically looks to do all of this

Second wiggle / Beginning of pipe entry:

While this walljump method is faster than regular 2 bump, it's not quite fast enough to save the framerule without fast accel in most cases, with a typical pipe entry at least. Most people think that to enter a pipe without scrolling the screen, you need to come to a complete stop before entering. Doing this only allows you to get G into warpzone, but you need I into warpzone to save the framerule with a standard perfect warpzone without accel. With G into warpzone you need to get a perfect accel and a perfect regular warpzone to barely save the framerule, which is what Niftski did in the first lightning 4-2. It turns out though that you can enter a pipe with speed under specific circumstances, which means the player doesn't have to waste time coming to a full stop, and this is what allows us to get I into warpzone and save lightning 4-2 framerule without an accel in the warpzone.

I'm not sure if you know how pipe entry works but if you do then I'll save you time - it's just smb2j 5-2 blazit but you want to not scroll the screen instead of scrolling the screen while being at the highest speed possible.

YouTube

Miniland

Lightning 4-2 Twice In A Row (with handcam)

Image

If you don't know how this works, it's to do with how the game checks to see if Mario is moving before entering a pipe. The way the game checks if Mario is moving is to see if he has moved at least one pixel to the right compared to the previous frame. This doesn't mean he has moved 16 subpixels to the right, but simply that he has moved to another subpixel: he could have EF0 subpixels one frame and F00 the next and that would count as him moving, but he could have E00 subpixels one frame and EF0 the next and it wouldn't count. If Mario is detected as moving, the screen scrolls, but it he hasn't moved over to the next pixel in that crucial frame, the screen will not scroll.

This is hugely important as we need the screen to not scroll for wrong warp, otherwise we get right warped and sent to the coin cache. However, this adds an unfortunate element of luck to the trick:

  • If Mario wants to not move by a pixel in one frame, he needs less than 16 speed, where speed is measured in subpixels per frame, as one pixel = 16 subpixels and therefore guarantees he moves by one.

  • With speed 1, Mario will move by one subpixel in the next frame. Say he has E00 subpixels, he will move to E10. Or E10, he will move to E20, etc. The only bad case for this is if he starts with EF0 subpixels, where he will then move to F00 and move to the next pixel, which scrolls the screen. This means that with speed 1, there is a 15/16 chance that the screen does not scroll depending on Mario's subpixel positioning before the pipe entry.

  • With speed 2, Mario will move by two subpixels in the next frame - E00 to E20, E10 to E30, etc. This means that the only bad subpixels are EE0 and EF0, which will put him on F00 and F10 respectively and scroll the screen. So speed 2 has a 14/16 chance of not scrolling the screen.

  • This continues downwards as you gain higher and higher speeds - speed 3 has a 13/16 chance of not scrolling, speed 4 has a 12/16 chance, etc

  • As a result, the highest speed you can enter the pipe with is speed 15, which has a 1/16 chance of not scrolling the screen, and every speed value above that will scroll the screen 100% of the time.

With 5-2 blazit in smb2j, you want the screen to scroll, so you want the greatest amount of speed possible to maximise the chance of the screen scrolling as getting to speed 16 where it will work 100% of the time is near-impossible

This is why in 5-2 you want a low xpos clip, early right press, fast L>D inputs, etc

In lightning 4-2 you want the other outcome - the screen not scrolling - but you also want to get in the pipe as fast as possible to avoid the time loss of having to slow down. Optimally, this means that you would want to enter the pipe with speed 15, as you've slowed down the least beforehand. This is actually what the TAS does!

Niftski found that with the right set of inputs for the second backwards jump wiggle, you could consistently get the same subpixels and subspeed approaching the pipe entry, which means you can get the same luck for the pipe entry consistently. The only issue is: you have to do the same second backwards jump each time.

The first set of inputs he found required double fake a2 inputs - fake a2 inputs for the bump, and then the same inputs on frame 000 for the second wiggle. The trouble with this is that fake a2 inputs are rather difficult on controller as getting lots of frames of nothing isn't easy when you're doing a fast dpad wiggle. Having said that though, lekukie and I are pretty much the only people who find RLLR inputs way easier with controller, although we are also really the only two controller people to have grinded lightning. Niftski and I then found an alternative set of inputs that were MUCH better however: you can do EITHER fake a2 or RLLR inputs for the bump, and do either R L L R+A, R L _ R+A, or in some cases fake a2 or R L L+A R inputs all for the second wiggle. This totals to something like 6 different combinations of inputs between the two backwards jumps, which is far more than any other setup found which were limited to 1 or 2 at most. This second wiggle has to be on frame 255 from the ground by the way, otherwise your subspeed will be manipped incorrectly and you'll get the "bad luck" for the pipe entry.

After doing the second backwards jump, you have to hold D+R while you land on the pipe and jump the frame you land to pause your subspeed for a frame, which raises it when you get to the pipe entry. If you don't do this D+R, your subspeed will be too low at the walljump and you'll again get the "bad luck" for the pipe entry.

All in all, this sets you up for an I into warpzone pipe entry all the way to just before the walljump, where the final part of the trick comes in: the pipe entry

Pipe Entry:

Now that you're set up having done the correct sets of wiggle inputs, you have to get into the pipe. At first people just did a tap jump off of the pipe, pressed left to slow down, and entered the pipe once they had stopped, but pressing left is inconsistent and messes with subpixels/subspeed so it's not any good for I into warpzone. Instead what we do now is a one frame jump for the walljump to reach the ground as fast as possible as you slow down quicker, then a frame perfect right release to slow down to 15 speed, and a frame perfect down press to enter the pipe.

If you release right too early, you have too little speed and the luck doesn't align to not scroll the screen.

If you release right too late, you run on the pipe which speeds you up fast, so the screen will always scroll.

If you press down too early, you have too much speed and the screen scrolls.

If you press down too late, you have too little speed and the luck doesn't align to not scroll the screen since you haven't stopped.

If you get a two framer, you touch the ground later so can't get into the pipe fast enough to get I into warpzone (and you aren't set up for any sort of pipe entry anyway)

If you fail the walljump, you cry 😭

It's pretty difficult although to be honest it's probably the easiest part of the entire trick since the inputs can be decomposed fairly easily, unlike with backwards jump wiggles.

With all of this, you should get I into warpzone, which is fast enough to save the framerule with a regular perfect warpzone.

Warpzone:

Years ago (in days of old, when magic filled the air, twas in the darkest depths of mordor... i like led zeppelin) when people went for perfect warpzone they would just jump on the earliest frame possible, do a very early left press and get a good pipe entry. The issue with this strategy is that you have to do a very early left press which isn't the easiest to time, and jumping a frame late is very hard to save

It was known for years that you could save an extra frame in warpzone compared to regular "perfect warpzone" but nobody knew how it worked. Niftski found a setup for this with a fast accel in 2020, but it wasn't understood very well so we never found one for no accel, until September(?) 2021 when I found one. I won't go into great detail about how it works because honestly this is getting waaaaaaaaay too long, but the jist is that if you hit the wall as far left as possible and have high subspeed Mario will accelerate very fast to the left and 'clip' into the wall the way he usually does when you do warpzone, so by doing a D+R to lose subpixels and a right release you can save an extra frame.

Either Niftski or I then found that by jumping a frame later for the extra frame save setup at the top mushroom of the warpzone, you have slightly higher subpixels, which happens to make regular perfect warpzone completely free! If you jump on frame 116 from the cloud, the standard earliest frame to jump, you just hold right up until the wall and press left exactly when you hit the wall (a 3 frame window i think) and you get an easy perfect warpzone with an easy pipe entry. If you jump a frame later on frame 117, you hold right up to the wall and press left ever so slightly earlier, and it again sets you up for an easy perfect warpzone without having to tryhard the pipe entry. This is much easier than doing the regular setupless perfect warpzone strategy as jumping a frame late by the cloud is very easily saveable, and you don't have to worry about dumb early left press timings. Additionally, if you jump a frame early for the D+R setup you can just go for extra frame save which is also very easy, and if you jump a frame late for the D+R it's not too hard to get perfect warpzone either.

All in all, this gets lightning 4-2 with zero frames to spare. This trick is obviously very very very very very very difficult, but is honestly overrated in difficulty and is very conquerable for the average player - Dagamerboi was the fifth or sixth person to get lightning and he had a 4:59 as his pb at the time, and he played on xbox controller. I've probably done lightning somewhere between 300 and 500 times, and Niftski has a similar amount, probably a little higher than mine. To my knowledge nobody else is really close to that, although Jonnyboy has done lightning around 50 times and LeKukie claims to have done it over 100 times (not so sure about that lol). Niftski and I also have also done lightning 4-2 simultaneously multiple times, the first of which is on his channel, so it definitely gets consistent. I could probably see people being close to 10% with it or maybe even more once people seriously start going for it on runs. Only issue is that it REALLY hurts the hands if people don't take super regular breaks 😬

Статистика игры
Подписчики
7,909
Времена
8,937
Игроки
1,809
Последние новости
Requirements for High-Level Any% Runs

Any% (NTSC) runs below 4:57.000 must now fulfill additional requirements in order to be verified.

  • The run's full session must be included in the submission description.
  • For emulator runs below 4:57.000, some form of input display must be visible for the duration of the run. A hand-cam or input
6 months ago
Последние темы
Опубликовано 5 months ago
games:thread_reply_count
Опубликовано 8 months ago
games:thread_reply_count
Опубликовано 2 years ago
games:thread_reply_count
Опубликовано 3 years ago
games:thread_reply_count
Опубликовано 5 years ago
1 ответ
Опубликовано 10 days ago
games:thread_reply_count