2013/03/07

Lateral Block Clipping

When Mario isn't small or ducking and is on Yoshi, their hitbox is very different from when it's not the case. Depending on how one approaches a block, like a cement block or a brown block, he or she can pass through it as Mario and Yoshi were two independent sprites. Demonstration here.

Fixing a reference
As it can be done in various blocks, it's useful to set a system of coordinates.
X axis: Mario's position will be 0 when he is in the first X position where he can touch the block.
In this example, the Xblock = 0 coincides with 579.0

Y axis: his position will be 0 when he is touching the block from above.
In this example, the Yblock = 0 coincides with 144.0

The lateral of the block
Every solid block of the game has a region of 5 pixels that pushes Mario outside, even if he stands below the block and jumps. In our system, the first position of real roof is Xblock = 5.0. This means that in Xblock = 4.F,  Mario will be pushed to the left until Xblock < 0.0.
In the other side of the block, the lateral behaves similarly.
In our previous block, Xblock = 5.0 if  X = 284.0.

The "hole" in the block
In the lateral of each sides, there's a region in which Big Mario mounted on Yoshi can enter without touching the block. This region is:

24.00 ≤ Yblock < 26.0

Provided that 0.0 ≤ Xblock < 5.0 (left side of the block) or 21.0 ≤ Xblock < 26.0 (right side).

In our previous block, Yblock = 24.0 if Y = 168.0 and Yblock = 25.F if Y = 169.F.



Inside the block
Between the laterals we have the interior of the block. The game usually will push Mario to the left when he is inside, depending on his Y position. So, if you are traveling to the left, you must only pass through the lateral of the right and the rest will be easy. In order to get boosted more, don't fall faster.
But, if you are traveling to the right, there's an additional complication. You have to jump from the "hole" to a region that doesn't push you to the left. In order to perform it, Yblock < 22.0 when 5.0 ≤ Xblock < 21.0 (inside the block).

Keeping this in mind, Mario needs X speeds up to 41 when doing this trick to the right (if he's not flying or swimming) and a Y speed of at least 33 to get inside:





This trick underwater
 In water levels, you can do this trick too. But now you can stay in the "hole" during more than a frame, because it's pretty easy to manipulate the vertical speed. Clipping to the left is incredibly easy and can be done without tools. Clipping to the right is much harder, but possible. In fact, one can get boosted 5 pixels (normal corner boosting saves only 2). Here's a sample that can be done in the 96-exit TAS.

6 comments: