The Mechanics of Up-B Walljump

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
#1
Special thanks to; Evsen/Vesne, this was definitely a joint effort. Achilles, gave us really crucial information to uncover the mechanics, and all round super helpful and informative dude. KoopaTroopa, for his insight into applications and leading me on the right track. Dan Salvato, for his guides on memory addresses and helping me get into advanced labbing

HOW TO DO

There are 3 different setups for Up-B walljump

Setup 1: Hugging Up-B Walljump

http://gfycat.com/IdealisticRevolvingGoa

Whilst hugging against the wall, perform an Up-B. Once you reach the peak height and start falling, you will be able to walljump until frame 29. The peak height changes with different up-b angles. Here are the precise frame numbers for different angles:

DI Full Horizontal
Walljump occurs on frame 23 earliest (earlier timings will buffer this)
Window 21-29

Diagonal DI (inbetween straight up and straight horizontal)
Walljump occurs on frame 24 earliest (earlier timings will buffer this)
Window 22-29

Straight up (No DI)
Walljump occurs on frame 25 earliest (earlier timings will buffer this)
Window frame 23-29

Extended Upb
Walljump occurs on frame 27 earliest (earlier timings will buffer this)
Window 25-29

Here is a gfy to demonstrate the varying walljump windows.

http://gfycat.com/SadOccasionalAppaloosa

Setup 2: Fadeaway Up-B Walljump


Without hugging a wall, perform an up-B and position it so that when you start falling, you are pushed backwards. You can do this in 3 different ways:

1. Aiming to peak just above a ledge

http://gfycat.com/ImpeccablePoisedGossamerwingedbutterfly

2. Aiming to peak just above a bump on a wall

http://gfycat.com/HilariousMeanAmericanratsnake

3. Up-bing onto a inclined wall

http://gfycat.com/SecondImpishChinesecrocodilelizard

The walljump window opens once you are pushed backwards, and closes on frame 38, unless you stop touching a wall before then. Typically the window opens at a later point then hugging walljumps, and is more often than not from frame 30 or above.

Setup 3: Impossible Up-B Walljump

http://gfycat.com/UncommonPreciousAmericanlobster

The only known way to fadeaway up-b walljump on a flat vertical wall. You must position yourself perfectly and perform a full horizontal DI'ed up-b, and start touching the wall on precisely frame 23*. There is a guaranteed position setup by performing a walljump, and on frame 18 (frame after 16.00) of the walljump movement, performing the up-b back to the wall.

Once you set this up and touch the wall on frame 23, you can then walljump on frames 24-29.

*It's technically possible to start touching on frame 22, read the mechanics to understand why

EXTRAS

Hugging Up-B Reverse Walljump

http://gfycat.com/KlutzyTangibleCottonmouth

On a stage with 2 flat vertical walls close together, whilst hugging one of the walls perform a reversed up-b as to hit the opposite wall. Then assuming you start touching the opposite wall before you start falling, a reverse walljump window will open. The frames numbers are identical to regular hugging upbwjs. To perform the reverse walljump, push into the wall (rather than the regular away from the wall).

Walljumping On the Bottom of Battlefield

http://gfycat.com/AlertDependableHypsilophodon

Drop from the ledge with back or cstick, and immediately start fading in. Doublejump and position yourself to perform an impossible upbwj on the center of the underneath (where the spinning orb is). There are 2 parallel walls here which you can continuously walljump from. Walljumps decay each time you use them (and refresh when you become grounded), so you will not be able to stay there forever.

Going Under Battlefield (TAS)

https://gfycat.com/UncommonEveryCuckoo

By performing an impossible walljump on the bottom of battlefield like above, you can then you cape and a maximum b-press tornado, to gain enough horizontal positioning to perform another impossible upbwj on the side wall. Then performing an upb once in range for the ledge.

Code:
        sendPads = [GCPadStatus(frame, 0) for frame in range(startFrame, startFrame + 500)]
        sendPads[0].JoyVert = 0
        for i in range(1,78):
            sendPads[i].JoyHoriz = 0
        sendPads[41].Y = True
        sendPads[81].B = True
        sendPads[81].JoyVert = 255
        for i in range(82,104):
            sendPads[i].JoyHoriz = 0
        for i in range(104,121):
            sendPads[i].JoyHoriz = 255
        for i in range(121,500):
            sendPads[i].JoyHoriz = 0
        sendPads[157].B = True
        for i in range(220, 262):
            sendPads[i].B = i % 2 == 0
        sendPads[220].JoyVert = 0
        sendPads[220].JoyHoriz = 128
        sendPads[299].B = True
        sendPads[299].JoyVert = 255
        for i in range(300,330):
            sendPads[i].JoyVert = 140
            sendPads[i].JoyHoriz = 220
        sendPads[322].JoyHoriz = 0
        sendPads[368].JoyVert = 255
        sendPads[368].B = True
        for i in range(369,399):
            sendPads[i].JoyVert = 255
            sendPads[i].JoyHoriz = 170

Infinite Impossible Up-B Walljump Climb (TAS)

Although walljumps decay, they stop decaying after 256 walljumps. The horizontal velocity never changes when it decays, only the vertical velocity. So everytime you walljump, you can setup for an impossible upbwj. After substantial walljump decay, you actually start walljumps with negative vertical velocity, but by the 256th walljump, the vertical distance you lose, is less than the vertical distance you gain from the up-b. Thus, you can climb a wall infinitely.

Infinite* Impossible Up-B Walljump under Jungle Japes (TAS) *(until you get hit by klaptrap)

There are 2 small walls underneath jungle japes, and fortunately walljump's horizontal velocity, positions mario for an impossible upbwj on the opposite wall. Because you up-b very shortly after walljumping, even a fully decayed walljump will set up the next upbwj.

MECHANICS

Simplified

Walljump Requirements

To be able to use a walljump you need to meet two basic requirements. You need to have a certain amount of horizontal momentum and then come in contact with a wall. The game checks if you meet this required momentum by comparing the distance between your horizontal position in the previous two frames. If you have enough horizontal momentum and come in contact with a wall then the game will recognize that you are capable of walljumping.

Once the game recognizes this it starts a timer that counts how many frames you have been hugging a wall and have been capable of walljumping. Anytime you attempt to walljump the game checks to see if the timer is active and see how many frames it has been since you started hugging the wall and were capable of walljumping, if it is between 0-130 frames then it will let you walljump.


Pausing/Resuming Walljump Timer
It is actually possible to pause the timer and essentially have the game store the fact that you have been touching a wall and capable of walljumping for X number of frames. The timer is only active and capable of starting or continuing to count the frames when you are airborne and either jumping, falling, or in tumble after the hitstun from an attack ends.

This means you can pause the timer at any point by using an aerial, special, or airdodge. You can also pause the timer by becoming grounded by either grabbing the ledge or using one of the previous options to recover on stage. The timer will remain paused until you reenter one of the timers active airborne states (jumping, falling, tumble after hitstun). When the timer resumes it will either be set to 254 if you are not touching a wall or continue counting if you are touching a wall. Once the timer resumes you will be capable of walljumping again.

Up-B Walljumps
Normally it is impossible to walljump out of a special because the timer will be paused and it is impossible to walljump when the timer is not actively running. Mario's Up-B is unique because it is the only special in the game that you can walljump out of. This is because the walljump timer is actively running during part of the move (Fun fact: Doc, Luigi, Peach, Marth and Roy's Up-B has the same functions, but they just can't walljump generally).

As Mario rises up at the start of his Up-B the timer will be paused but once Mario begins falling at sometime between frames 23-27 the timer will be activated until frame 37. Which frame Mario begins to fall and the timer activates is dependent on the angle of the Up-B. The further forwards the Up-B is angled the earlier Mario begins falling with the earliest being frame 23 and the latest being frame 27. After frame 37 Up-B ends and Mario enters free fall (FallSpecial) and the timer will be paused.

This information on the mechanics behind walljumps can explain why each type of Up-B walljump setups work.

Hugging Up-B Walljump
With hugging Up-B walljumps you start the walljump timer by coming in contact with the wall before starting you Up-B. The timer will be paused once the Up-B starts as Mario begins rising upwards. Once Mario begins falling sometime between frame 23-27 the timer will be reactivated and since you are still touching the wall it will continue counting and allow you to walljump. The window to walljump out of a hugging Up-B walljump ends at 29 because Mario gets pushed away from the wall when he outstretches his hands and the game sees that you are no longer touching the wall and the timer is set to 254.

Impossible Up-B Walljump
The impossible Up-B walljump is performing a non-hugging Up-B walljump on a flat vertical wall. This seems like it should be very simple to perform and only require timing an Up-B so you come in contact with a wall after the timer is activated. Unfortunately this doesn't work because you won't come in contact with enough horizontal momentum (measured by distance traveled between the previous 2 frames). Mario's Up-B loses vertical velocity quickly so the only way to reach the required momentum to trigger the walljump timer is to come in contact with the wall on either frame 22 or 23 using a fully horizontally DI-ed Up-B. A full DI Up-B is required so that the walljump window opens as early as possible at frame 23. If you come in contact with the wall any earlier than frame 22 you won't meet the required horizontal momentum requirement because there will have been no horizontal movement between frames of 21 and 22 since they were both hugging the wall.

Fadeaway Up-B Walljump
To meet the required horizontal movement to trigger the walljump timer fadeaway Up-B walljump's use the stage to push them backwards. The game does not require the horizontal movement to be towards the wall so you can use backwards movement as well. To do a fadeaway walljump space an Up-B so that you peak just above the ledge or bump and then a walljump window will open once you fall onto the ledge or bump and get pushed backwards. An inclined wall will constantly push you backwards and meet the horizontal momentum requirement so it only requires timing your walljump between when you start falling and frame 37.

Hugging Up-B Reverse Walljump
Hugging Up-B reverse walljumps are essentially the same as regular hugging Up-B walljumps but start the walljump timer on one wall and then pause the timer and switch to the other wall using an Up-B so that when the timer resumes you are hugging the other wall. Since the walljump timer initially stored a walljump sending you away from the wall it will still send you in the same direction which now causes you to walljump towards the other wall.

Advanced

Certain airborne states contain a walljump sub-interrupt function, within their main interrupt function. Generally only neutral airborne states, like JumpF, JumpB, JumpFAerial, Fall etc, have this, but Mario's Up-B also has it once falling (but not in SpecialFall). (Fun fact: Doc, Luigi, Peach, Marth and Roy's Up-B has the same functions, but they just can't walljump generally).

Enabling Walljumps has 2 criterias;

1) ECB left or right point is touching a wall
2) TopN horizontal difference between previous 2 frames is >= 0.5Mm (x-coord frame delta)

Each character has a wallride byte counter which when away from a wall is set to 254. When meeting the 2 criterias above, and in one of the airborne states mentioned above, the counter is set to 0. Each consecutive frame after, where the ECB left/right is touching the wall, and still in a walljump compatible state, the counter will increment by 1. Once this counter reaches 130, walljumps will be disabled.

Whenever in a non-walljump compatible state, like any grounded state, aerials, airdodges or specials (except falling part of mario's upb of course), the counter never changes from it's last value. So when hugging a wall, and let's say the counter is at 6, and you start an up-b. It will remain at 6 during the startup and launch, regardless whether you are touching a wall or not. (This is what we mean by "storing" the walljump) Once falling, if still hugging a wall, the counter will continue to increment, if not hugging a wall, the counter will reset to 254. This is how reverse walljumps work, as when you "store" the walljump it remembers the direction you are facing, and that only gets changed when the counter goes from 254 to 0. More info about reverse walljumps

Every character has a walljump x-coord frame delta value of 0.5. When the counter is 254, and you are touching a wall. It checks the difference between the TopN x values of the previous 2 frames. So say you start touching the wall on frame 30. It then checks the TopN x value of frame 28 and frame 29, and calculates the difference. If it exceeds 0.5 then, you are able to walljump on that frame. If hugging the wall with a counter value of 254, it will keep doing this check each frame. Melee does not care if your TopN x difference is towards the wall, or away. This is how fadeaways work.

http://gfycat.com/FemaleQueasyFanworms

This can cause some unusual counter resets. Let's compare these 4 frames of Mario's backwards doublejump against the wall.



Only if we break down the TopN x values and the differences between each frame, does this make sense.

frame # | TopN x | TopN x difference since last frame

35 | 127.67308 | -
36 | 127.37640 | 0.29668
37 | 127.20132 | 0.17508
38 | 127.85938 | 0.65806
39 | 127.79240 | - (can walljump)

On 37, Mario starts touching the wall, so it compares TopN x of frame 35 and 36. This value labeled in red isn't >= 0.5, so Mario cannot walljump. Then on 38, he is still touching and so it compares the difference between 36 and 37 (also labelled as red), but it still doesn't qualify. Then on frame 39, Mario is still touching the wall, and so it compares 37 and 38 (labelled as green), which is >= 0.5 and so the counter is reset to 0 and Mario can walljump.
 
Last edited:

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
#5
Awesome post. My question is on the the fadeback up-b wall jump. How hard is the positioning for it? I've been trying to get the one on yoshis with no luck.
Not easy for sure. Doing with 100% consistency is near impossible, but you should be able to get it a few times in a row. Just takes a while to get a feel for the position.
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
#8

j3ly

Smash Lord
Joined
Mar 19, 2009
Messages
1,998
Location
London
#9
Haha, I knew I upB wall jumped a few times without hugging the wall on YS, but made myself believe I was seeing things.

Thanks for restoring peace of mind to this ol' low tier player.
 

davidabeats

Smash Rookie
Joined
Jun 11, 2016
Messages
7
#10
Wait, unless I'm missing something, it just sounds like the Impossible Walljump is just a 100% frame perfect move that also requires you to do a 100% horizontal up B. How impossible is it to do a 100% horizontal up B? What's the timing window for inputting the direction for your up B?
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
#11
Wait, unless I'm missing something, it just sounds like the Impossible Walljump is just a 100% frame perfect move that also requires you to do a 100% horizontal up B. How impossible is it to do a 100% horizontal up B? What's the timing window for inputting the direction for your up B?
The Impossible Walljump isn't really a frame perfect move, the window can't really be described in frames. It's a spacial window, as it depends on the positioning that you start the up-b.

Doing a horizontal Up-b is performed by hitting directly forward sometime before frame 7.

It decides the angle of the up-b on frame 6, and it prioritizes larger angles. So if you hit forward on any frame from 1-6, you will get the full horizontal angle. It decides whether to reverse the up-b on frame 7, by checking if you are holding backward.

So if you are facing left, and want to do a full horizontal up-b to the right, you would hit right between frames 1-6 to get the best angle in that direction, then continue holding right on frame 7, so it reverses.
 
Last edited:

davidabeats

Smash Rookie
Joined
Jun 11, 2016
Messages
7
#12
The Impossible Walljump isn't really a frame perfect move, the window can't really be described in frames. It's a spacial window, as it depends on the positioning that you start the up-b.

Doing a horizontal Up-b is performed by hitting directly forward sometime before frame 7.

It decides the angle of the up-b on frame 6, and it prioritizes larger angles. So if you hit forward on any frame from 1-6, you will get the full horizontal angle. It decides whether to reverse the up-b on frame 7, by checking if you are holding backward.

So if you are facing left, and want to do a full horizontal up-b to the right, you would hit right between frames 1-6 to get the best angle in that direction, then continue holding right on frame 7, so it reverses.
Oh, when I meant frame perfect, it was when you said this in your post

You must position yourself perfectly and perform a full horizontal DI'ed up-b, and start touching the wall on precisely frame 23*.

But putting that aside, this actually sounds 100% doable, by your definition. You have a 6 frame window to perform a directional input, and then a 1 frame window to land the walljump. Other than that tho, that's perfectly doable, right? You called it the IMPOSSIBLE walljump, so I'm just trying to figure out the impossible part of it. It's hard as ****, that's clear as day, a 1 frame window isn't exactly easy, but I just don't see the impossible part you mentioned.
 

schmooblidon

Smash Journeyman
Joined
Feb 18, 2014
Messages
491
#13
Oh, when I meant frame perfect, it was when you said this in your post

You must position yourself perfectly and perform a full horizontal DI'ed up-b, and start touching the wall on precisely frame 23*
This is also what I was referring to. This means that you need to start an up-b in the exact position where by frame 23 of the up-b, you start touching the wall. It's a 1 frame window to start touching the wall sure, but it's derived from and executed by a spacial window.

The spacial window is insanely precise, and there is no guarantee that when you are moving from behind the window to in front, you will even get 1 frame where you are within the window.
 

Josniff640

Smash Cadet
Joined
Jun 17, 2014
Messages
29
Location
Edmond, Oklahoma
#16
I have always heard that this is a 3 frame trick, being from frames 16-18. Knowing that this information was completely wrong makes me want to practice this again so I can get it correct. Thanks.
 
Top