Difference between revisions of "Super Mario Bros."

From SDA Knowledge Base

Jump to: navigation, search
(Created page with "{{Sda run|http://speeddemosarchive.com/Mario1.html}} ====Tricks==== DISCLAIMER: This page is referring to NES Classic, not any of the remakes. ==Walljump (SMB1, SMB2j)== ...")
 
(restructured and removed everything that requires L+R or does not save time)
Line 1: Line 1:
 
{{Sda run|http://speeddemosarchive.com/Mario1.html}}
 
{{Sda run|http://speeddemosarchive.com/Mario1.html}}
  
====Tricks====
+
==General Tricks==
  
DISCLAIMER: This page is referring to NES Classic, not any of the remakes.
+
DISCLAIMER: This page is referring to the NES/Famicom original release, [[Super Mario Bros./Versions|not any of the remakes]].
  
==Walljump (SMB1, SMB2j)==
+
====The "21 frame rule"====
  
  Walljump is when you jump towards a wall and somehow Mario's foot catches the wall and allows to jump again, boosting from the wall. The walljump in the left image is easy to try even on the real console. In the right image (using a custom map), three walljumps are performed.  
+
Every time the screen blacks out (entering a new level), the game delays for a varying amount of time.  
 +
The delay is actually calculated so that the current playing progress will be rounded up to next 21 frame boundary. <br>
 +
<br>
 +
As an example, this means that if you complete a level in <br>
 +
• 1 frames, the level length will be N+21 frames <br>
 +
• 15 frames, the level length will be N+21 frames <br>
 +
• 20 frames, the level length will be N+21 frames <br>
 +
• 21 frames, the level length will be N+21 frames <br>
 +
• 22 frames, the level length will be N+42 frames <br>
 +
• 30 frames, the level length will be N+42 frames <br>
 +
• 42 frames, the level length will be N+42 frames <br>
 +
• 43 frames, the level length will be N+63 frames <br>
 +
And so on, where N is a constant minimum length of the black screen. <br>
 +
Therefore, the only part of the game that can be improved by a time less than 21 frames is the entire last level. <br>
  
 +
====Flagpole jump====
 +
If you hit a flagpole at the highest possible position, Mario will enter the castle faster. In most levels this saves a framerule.<br>
 +
To get a perfect time in 8-1, you need to jump at the last possible frame and have previously altered the walking animation by hitting the star block in the middle of this level.<br>
  
 +
====Alternate pipe glitches====
  
 +
The alternate pipe glitch occurs when a pipe takes you to somewhere other than where it was intended to. <br>
 +
Theory: The game can have only one "entry point" (a pipe or vine) per screen. The reason lies in how the game is designed: There is just one global variable in the game RAM that determines where pipes or vines in the current screen lead. Once the screen scrolls far enough for the next target label to be loaded from the level data, all entry points in the current screen will lead to that place. <br>
 +
<br>
 +
• If Mario is far on the right side of the screen, the entry point variable will be out of date, so a new entry point will lead to the target of the previous one (Example: In 4-2 of SMB1, if Mario is far enough on the right side of the screen, he can use the pipe to go to the warp room since the destination info of the vine is still valid. Making the vine appear is not required for this glitch. The only thing needed is that the screen hasn't scrolled too far when the pipe is entered.) <br>
 +
• If the screen is ahead of Mario (Mario is on the left side of screen), the variable will have updated too soon, so you can access a future entry point's target from an earlier entry point. (Example: In 8-4 of SMB1, in the area before the water area, instead of going in the pipe after the lava pit, go a little past the previous pipe, and then turn around and go in that pipe, and it will take you to the water area instead of taking you back to the beginning of the level.) <br>
  
Theory:
+
Methods of getting Mario to the left side of the screen<br>
Walljump happens because the game does a floor check (a simple "is there a solid block below him?" test) even during a wall-ejection. Wall-ejection is SMB's mechanism to push Mario out of a wall when he entered it partially. The game ejects Mario towards the opposite of his steering.
+
  
To perform a walljump, you need two things:
+
Just move back. <br>
Some horizontal speed towards the wall
+
<br>
Mario's feet must hit the wall exactly at a block boundary (every 16 pixels)
+
Methods of getting Mario to the right side of the screen<br>
  
It's possible to perform walljump from any non-lethal solid material (bricks, pipes, etc.)  
+
• Teleport to the right edge of the screen the vine glitch (explained above). <br>
 +
• If you enter a wall, the wall will automatically transport Mario towards the right edge of the screen without scrolling. <br>
 +
• If Mario bumps into the left edge of an obstacle (wall, pipe, coin block etc.) while jumping, the screen scrolling will momentarily stop even if Mario continues to move to the right. Since Mario accelerates faster into the direction he doesn't face to, you should use this trick while jumping backwards (Mario faces to the left). <br>
  
+
====Avoiding fireworks====
==Flagpole glitch (SMB1, SMB2j)==
+
  
Complete the level without lowering the flag by glitching into the base block of the flagpole and touch the flapole from inside. Doing so is faster than lowering the flag. The points you get from the flagpole will be only 100. This trick can not be used in 8-3 since the timer would turn 343 which results in fireworks. The flagpole glitch was originally found by klmz.
+
Fireworks come when a level is completed with the last digit of the timer at 1, 3, or 6.<br>
 +
Getting fireworks wastes time, so you should slow down instead of hitting a timer at a time, which yields fireworks.<br>
  
 +
====Lip jumps====
  
==Flagpole glitch using an enemy==
+
It is possible to stand on the edge of a pipe even where's a plant coming out of the pipe. There are a few pixels of room at both sides of the pipe. You can land on it, and jump immediately again. <br>
  
Koopa Troopas and Bullet Bills can be useful for flagpole glitching. When Mario enters the block at the flagpole with proper height, the "walking to the castle" sequence will be skipped. Landing on shells results in a higher bounce than Bullet Bills, so in order to use shells for this version of the flagpole glitch, you need to be inside the block at the flagpole already, at the moment you bounce off.
+
====Walljump====
  
 +
A walljump is when you jump towards a wall and somehow Mario's foot catches the wall and allows to jump again, boosting from the wall.<br>
 +
Walljumps happen because the game does a floor check (a simple "is there a solid block below him?" test) even during a wall-ejection. Wall-ejection is SMB's mechanism to push Mario out of a wall when he entered it partially. The game ejects Mario towards the opposite of his steering. <br>
 +
<br>
 +
To perform a walljump, you need two things: <br>
 +
• Some horizontal speed towards the wall <br>
 +
• Mario's feet must hit the wall exactly at a block boundary (every 16 pixels) <br>
  
==Vine teleporting glitch (SMB1, SMB2j)==
+
It's possible to perform walljump from any non-lethal solid material (bricks, pipes, etc.) and most notably in the second room of 8-4 to enter the next pipe quickly.<br>
  
If you touch a vine at the extreme left edge of the screen, you'll be transported to the right edge.  
+
====Know random enemy patterns====
Uses: In 4-2 of SMB1, hit the vine block and get up on the ceiling. Walk to the right so that about half of the vine block gets scrolled off the screen, and the vine will dissappear. Go back to the left and touch the vine, and if you went the correct amount to the right, you'll be teleported to the extreme right edge of the screen. If you misestimated the amount, you'll get stuck in the left edge of the screen.  
+
The random number generation in this game is purely frame-based. If you reach an enemy at the same frame (excluding lag frames) from reset, he will behave the same. Due to the 21 frame rule (which also applies to the title screen), it is possible to know what frame rule you are on.<br>
 +
This can be used in 8-3 to safely avoid the Hammer Bros.<br>
  
 +
====Flagpole glitch using an enemy====
  
==Alternate pipe glitches (SMB1, SMB2j)==
+
Koopa Troopas and Bullet Bills can be useful for flagpole glitching. When Mario enters the block at the flagpole with proper height, the "walking to the castle" sequence will be skipped. Landing on shells results in a higher bounce than Bullet Bills, so in order to use shells for this version of the flagpole glitch, you need to be inside the block at the flagpole already, at the moment you bounce off.<br>
 +
With a lucky Bullet Bill spawn this trick is possible in 8-2.
  
The alternate pipe glitch occurs when a pipe takes you to somewhere other than where it was intended to.
+
====Going through walls as big Mario====
Theory: The game can have only one "entry point" (a pipe or vine) per screen. The reason lies in how the game is designed: There is just one global variable in the game RAM that determines where pipes or vines in the current screen lead. Once the screen scrolls far enough for the next target label to be loaded from the level data, all entry points in the current screen will lead to that place.
+
  
• If Mario is far on the right side of the screen, the entry point variable will be out of date, so a new entry point will lead to the target of the previous one (Example: In 4-2 of SMB1, if Mario is far enough on the right side of the screen, he can use the pipe to go to the warp room since the destination info of the vine is still valid. Making the vine appear is not required for this glitch. The only thing needed is that the screen hasn't scrolled too far when the pipe is entered.)  
+
When Mario is big, he can simply perform a duck-jump into the corner and start walking. This is because his head will be well inside the ceiling, enabling the ejection to the right. (If he ducks again before he is fully inside the wall, he'll be ejected to the left instead.)<br>
• If the screen is ahead of Mario (Mario is on the left side of screen), the variable will have updated too soon, so you can access a future entry point's target from an earlier entry point. (Example: In 8-4 of SMB1, in the area before the water area, instead of going in the pipe after the lava pit, go a little past the previous pipe, and then turn around and go in that pipe, and it will take you to the water area instead of taking you back to the beginning of the level.)
+
Doing this at the end of 1-2 lets you reach the "Minus World".<br>
  
Methods of getting Mario to the left side of the screen
+
===="Stomping" enemies from below====
  
• Just move back.  
+
You don't need to land on the top of an enemy to kill it. As long as you're moving downward as you hit the enemy, you'll kill it. If you time it just right, sometimes you can even hit the bottom of the enemy. This is useful for killing enemies that seem to be too high to jump on. <br>
  
Methods of getting Mario to the right side of the screen
+
====Jumping through hammers====
  
• Teleport to the right edge of the screen the vine glitch (explained above).
+
How it's done: The game does a very poor job of detecting collisions with hammers, so sometimes you can go through a hammer without getting hit, and sometimes you can completely miss a hammer and still get hit. <br>
• If you enter a wall, the wall will automatically transport Mario towards the right edge of the screen without scrolling.  
+
Bowser will start throwing hammers beginning from 6-4. Even if it looks like there's no gap in the stream of hammers, it's still likely that you'll be able to get through without taking a hit. <br>
• If Mario bumps into the left edge of an obstacle (wall, pipe, coin block etc.) while jumping, the screen scrolling will momentarily stop even if Mario continues to move to the right. Since Mario accelerates faster into the direction he doesn't face to, you should use this trick while jumping backwards (Mario faces to the left).  
+
  
 +
====The Minus World====
  
==Going through bricks (SMB1, SMB2j, SMB3)==
+
This is a well-known glitch which occurs when Mario glitches behind the wall in 1-2 in SMB1 and enters the first pipe. <br>
 +
The minus world is basically just a random location of the game ROM, it is not a real world. It wasn't designed that way ― it's just an oversight of the programmers that you can get into the pipe before the correct warp labels are assigned. <br>
  
There are several occasions when Mario can partially or even completely enter a solid object (brick, question mark block, etc).  
+
In the NES version of Super Mario Bros., the "minus world" was a looping, uncompleteable copy of world 2-2. In the FDS version, however, it is an underwater 1-3, 2-3, and an underground 4-4, making it completable. <br>Completing the game this way would give the "in another castle" message, but would return to the title screen as if 8-4 had been beaten; hard mode and the level become accessible, as well.<br>
The easiest of them, though not very useful, is to stand under a brick so that less than half of Mario is under the brick, and then jump up. Mario will not hit the brick, and will get pushed away from the brick instead. When the pushing away effect happens, if you try to manually steer away from the brick, the brick actually pulls you inside instead of ejecting.  
+
  
This is a basic technique which has many uses.
 
  
TODO: Explain the flagpole glitches with images (might need to merge "Going through bricks" and "Flagpole glitch").
+
==Tricks considered too difficult or of too little use==
  
+
====Accelerating faster====
  
Application: Catch a power-up before it appears
+
When you need to accelerate from zero speed, you can do it faster if you jump a small jump backwards and steer to the opposite direction Mario is facing. This can be used to start a level faster, to accelerate faster after exiting a pipe and to complete a walljump faster. <br>
 +
Press "left" for 1 frame. Press the "A"-button for 3 frames to make a small jump to the right. This will leave you about two pixels farther than a normal start. (TODO: This method may be suboptimal.)<br>
 +
In a non-TAS run, this would only be useful in 8-4 due to the framerule.
  
If you are quick enough, you can catch the bonus item through the block even before it has completely exited from the block it came from.
+
====Flagpole glitch====
In the example image on the right, you can see that it's also possible to jump again after getting a mushroom or fire flower (have the "A"-button pressed at the end of the transformation).
+
  
 +
Complete the level without lowering the flag by glitching into the base block of the flagpole and touch the flapole from inside. Doing so is faster than lowering the flag. The points you get from the flagpole will be only 100. This trick can not be used in 8-3 since the timer would turn 343 which results in fireworks. The flagpole glitch was originally found by klmz.
  
Application: Jump into a solid object below a floor
+
====Going through walls as small Mario====
  
For the purpose of this glitch, any solid object (including pipes) counts as a floor.
+
'''Jump into a solid object below a floor'''<br>
It is really difficult to perform (much harder than the walljump), but here are the instructions.
+
  
1. You need proper speed. If the object is only 2 blocks tall, such as the pipe in the end of 1-2, you can not jump into it while running. Use the left+right trick to deaccelerate quickly before jumping. If you have too high speed, you'll just find yourself standing on top of the object instead of inside it.  
+
For the purpose of this glitch, any solid object (including pipes) counts as a floor. <br>
2. You need the right position. The right position is: as near as possible. You are too near, if when you jump toward the object, you'll bump into it without getting ejected pixel by pixel.
+
It is really difficult to perform (much harder than the walljump), but here are the instructions. <br>
3. Immediately when the wall starts ejecting Mario, start steering away from it. This causes the wall to pull you in instead of push you out.
+
4. Immediately after your vertical movement stops, start moving to the direction you want to go. If the wall is ejecting you now, you failed some of the previous steps.  
+
  
The easiest way to perform this trick is into 2-block tall obstacles at walking speed.
+
1. You need proper speed. If the object is only 2 blocks tall, such as the pipe in the end of 1-2, you can not jump into it while running. Deaccelerate before jumping. If you have too high speed, you'll just find yourself standing on top of the object instead of inside it. <br>
1. Do a minimal height jump (hold A for 1 frame) at the exactly right distance. You are too close, if you bump into the wall without a chance to counter the ejection.  
+
2. You need the right position. The right position is: as near as possible. You are too near, if when you jump toward the object, you'll bump into it without getting ejected pixel by pixel.<br>
◦ You held A for more than 1 frame (or your jumping platform was less than 2 block distance far from the floor), if you land on top of the floor.  
+
3. Immediately when the wall starts ejecting Mario, start steering away from it. This causes the wall to pull you in instead of push you out. <br>
 +
4. Immediately after your vertical movement stops, start moving to the direction you want to go. If the wall is ejecting you now, you failed some of the previous steps. <br>
  
2. When the wall would start ejecting, hold to the opposite direction from the obstacle.  
+
The easiest way to perform this trick is into 2-block tall obstacles at walking speed.  <br>
3. Once Mario lands into the wall, start walking normally. ◦ If the wall just ejects Mario, you were too far from the wall when you jumped.  
+
1. Do a minimal height jump (hold A for 1 frame) at the exactly right distance.<br>
 +
◦ You are too close, if you bump into the wall without a chance to counter the ejection. <br>
 +
◦ You held A for more than 1 frame (or your jumping platform was less than 2 block distance far from the floor), if you land on top of the floor.<br>
 +
2. When the wall would start ejecting, hold to the opposite direction from the obstacle. <br>
 +
3. Once Mario lands into the wall, start walking normally.<br>
 +
◦ If the wall just ejects Mario, you were too far from the wall when you jumped. <br>
  
 +
'''Jump into a wall just below a solid ceiling and walk through it'''
  
This trick is apparently also possible in SMB3 (noticed against some water level end pipes).  
+
To perform the trick, do a walljump into the wall position right below the ceiling. When you get foothold, jump immediately. When you land, jump again. When you land again, jump again. Usually three or four jumps are enough before you can walk through the wall. Each jump takes you deeper into the wall. <br>
  
A special case of this trick is called 'the swim of death', as demonstrated in the image on the right. The physics of Super Mario Bros is nearly the same in air and in water, and thus walls can be entered in water too.  
+
During each of the jumps, you need to steer heavily to the opposite direction you're going to. Otherwise the wall will eject Mario. <br>
  
TODO: Add other swimming tricks.  
+
Note: Steering only has effect during a jump (i.e. when Mario is not standing or walking). If Mario is standing, the direction of ejection is determined by the location of his upper body in relation to the left edge of the wall. (If it's partially out from the wall, he'll be ejected to the left (unstoppable unless you jump). Otherwise, he'll be ejected to the right (stoppable, speedable). <br>
  
  
 +
'''Jump into a solid wall and walk through it'''
  
 +
It is possible to perform the wall-entry trick even without a ceiling. However, it requires extremely precise positioning and efficient speed. This is the hardest of all of the tricks. <br>
 +
Instructions: You will need to have a proper X-subpixel position value for this to work. A subpixel is a position component which is not rendered onscreen. In this game, 16 subpixels make up 1 pixel. Now when you jump into a wall (not doing this trick), you might be pushed out immediately without having entered the wall at all. At other times you might have been able to be inside the wall partially. This is the result that you want when optimizing your X-subpixel position. You can press "left" for 1 frame while running to the right to decrease your subpixel value by one unit. Do this until jumping into a wall will result in Mario being partially inside the wall. If this condition is met, you can follow these instructions. <br>
  
 +
1. Jump towards a wall, approach its edge as closely as possible right before you enter it, and become embeded in it as deep as possible at the first frame you have entered it. The required minimum depth is 3 pixels. <br>
 +
2. Immediately when the wall starts ejecting you, start steering away from it. This causes the wall to pull you in instead of pushing you out. <br>
 +
3. As soon as you land inside the wall, jump while moving away from the wall for 1 frame. You have to hit the block above you inside the wall. You may have to repeat doing this until you are so deep inside the wall that you will not be ejected out while you are walking forwards inside the wall.<br>
 +
◦ If you can't hit the solid block above when jumping, you will be ejected out. You will need to try again from the start. <br>
 +
4. After you have entered the wall deep enough, start moving in the direction you want to go as soon as you land. If the wall is ejecting you now, you failed the previous steps. <br>
  
Application: Jump into a wall just below a solid ceiling and walk through it
+
'''Off-screen wall climbing'''
  
-> With small Mario (SMB1, SMB2j)
+
This trick is trivial to perform. When there is a hole on the left side of the screen, you can cram Mario in between of the screen edge and the wall, and climb upwards the hole. Mario will be unable to fall down. It can be used to reach the ceiling of the dungeon in places where there normally is no route to the ceiling. <br>
To perform the trick, do a walljump into the wall position right below the ceiling. When you get foothold, jump immediately. When you land, jump again. When you land again, jump again. Usually three or four jumps are enough before you can walk through the wall. Each jump takes you deeper into the wall.  
+
By jumping repeatedly and steering to the left, it can also be used to enter the wall.
  
During each of the jumps, you need to steer heavily to the opposite direction you're going to. Otherwise the wall will eject Mario. 
+
====Vine teleporting glitch====
 
+
Note: Steering only has effect during a jump (i.e. when Mario is not standing or walking). If Mario is standing, the direction of ejection is determined by the location of his upper body in relation to the left edge of the wall. (If it's partially out from the wall, he'll be ejected to the left (unstoppable unless you jump). Otherwise, he'll be ejected to the right (stoppable, speedable).
+
 
+
 
+
 
+
 
+
 
+
-> With big Mario (SMB1, SMB2j, SMB3)
+
 
+
As demonstrated in the right image, big Mario doesn't need to do any of the complicated stuff that applied to when he is small. When he is big, he can simply perform a duck-jump into the corner and start walking. This is because his head will be well inside the ceiling, enabling the ejection to the right. (If he ducks again before he is fully inside the wall, he'll be ejected to the left instead.)
+
 
+
 
+
 
+
Application: Jump into a solid wall and walk through it
+
 
+
It is possible to perform the wall-entry trick even without a ceiling. However, it requires extremely precise positioning and efficient speed. This is the hardest of all of the tricks.
+
Instructions: You will need to have a proper X-subpixel position value for this to work. A subpixel is a position component which is not rendered onscreen. In this game, 16 subpixels make up 1 pixel. Now when you jump into a wall (not doing this trick), you might be pushed out immediately without having entered the wall at all. At other times you might have been able to be inside the wall partially. This is the result that you want when optimizing your X-subpixel position. You can press "left" for 1 frame while running to the right to decrease your subpixel value by one unit. Do this until jumping into a wall will result in Mario being partially inside the wall. If this condition is met, you can follow these instructions.
+
 
+
1. Jump towards a wall, approach its edge as closely as possible right before you enter it, and become embeded in it as deep as possible at the first frame you have entered it. The required minimum depth is 3 pixels.
+
2. Immediately when the wall starts ejecting you, start steering away from it. This causes the wall to pull you in instead of pushing you out.
+
3. As soon as you land inside the wall, jump while moving away from the wall for 1 frame. You have to hit the block above you inside the wall. You may have to repeat doing this until you are so deep inside the wall that you will not be ejected out while you are walking forwards inside the wall. ◦ If you can't hit the solid block above when jumping, you will be ejected out. You will need to try again from the start.
+
 
+
4. After you have entered the wall deep enough, start moving in the direction you want to go as soon as you land. If the wall is ejecting you now, you failed the previous steps.
+
 
+
+
Application: Off-screen wall climbing (SMB1, SMB2j)
+
 
+
This trick is trivial to perform. When there is a hole on the left side of the screen, you can cram Mario in between of the screen edge and the wall, and climb upwards the hole. Mario will be unable to fall down. It can be used to reach the ceiling of the dungeon in places where there normally is no route to the ceiling.
+
By jumping repeatedly and steering to the left, it can also be used to enter the wall, as shown in the right example image.
+
 
+
Aside from brick walls, it works with other solid walls too.
+
 
+
 
+
==Accelerating faster (SMB1, SMB2j except with Luigi)==
+
 
+
When you need to accelerate from zero speed, you can do it faster if you jump a small jump backwards and steer to the opposite direction Mario is facing. This can be used to start a level faster, to accelerate faster after exiting a pipe and to complete a walljump faster.
+
Press "left" and "right" for 1 frame. Press the "A"-button for 1 frame to make a small jump to the right. Start holding the "B"-button. When landing on the ground you will need to face backwards for one frame (without holding the "B"-button). The next frame you can start jumping again, holding the "B"-button and you will have gained running speed.
+
 
+
 
+
==Shooting faster (SMB1, SMB2j)==
+
 
+
By pressing right+left at the same time, you can shoot to the left and the shots travel horizontally at twice the normal speed. It looks very aggressive, compared to the normal merrily bouncing fire balls. Though, this technique is more userful in water levels since it doesn't slow down Mario.
+
 
+
=="Stomping" enemies from below (SMB1, SMB2j)==
+
 
+
You don't need to land on the top of an enemy to kill it. As long as you're moving downward as you hit the enemy, you'll kill it. If you time it just right, sometimes you can even hit the bottom of the enemy. This is useful for killing enemies that seem to be too high to jump on.
+
 
+
This is not a walljump. This image illustrates how "landing" on a turtle at the
+
right time can save Mario's life, even if it is only his moustache that lands on the turtle.
+
 
+
==Walking inside enemies (SMB1, SMB2j)==
+
 
+
When you stomp an enemy, the enemy becomes a friend for a short while, so if you stomp it from below,
+
you don't need to worry about being immediately killed by it when you bounce upwards.
+
In fact, you can sometimes get inside an enemy right after stomping it,
+
and the enemy doesn't harm you as long as you are inside it.
+
 
+
 
+
==Bouncing high off turtles (SMB1, SMB2j, SMB3)==
+
 
+
How it's done: If you jump toward a turtle while it's in the air, you can stomp it while moving upward and keep moving upward. The maximum height that you'll be able to reach if you keep holding down A depends on the exact frame that you made your jump and which part of the turtle you hit, so if you aren't bouncing high enough, keep adjusting your jump.
+
This is useful for being able to get over an obstacle or landing on another enemy after bouncing off a turtle.
+
 
+
In SMB2j, a special case was added for flying turtles: When you "stomp" them in upward motion, you'll gain a lot of vertical velocity.
+
 
+
+
==Jumping through hammers (SMB1, SMB2j)==
+
 
+
How it's done: The game does a very poor job of detecting collisions with hammers, so sometimes you can go through a hammer without getting hit, and sometimes you can completely miss a hammer and still get hit.
+
Bowser will start throwing hammers beginning from 6-4. Even if it looks like there's no gap in the stream of hammers, it's still likely that you'll be able to get through without taking a hit.
+
 
+
It is easier if you are small or ducking, due to the smaller hitbox.
+
 
+
 
+
==Turning around quickly (SMB1, SMB2j)==
+
 
+
Press left and right simultaneously for 1 frame.
+
When you press left+right, you'll start walking backwards to the right. How exactly it works is slightly different in SMB1 and SMB2j, but what is common for both of them is that your running speed is instantly reduced to a walking speed or even slower. This allows for a much more sudden braking. It can be applied anywhere where you need to brake quickly.
+
 
+
 
+
==Avoiding fireworks (SMB1, SMB2j)==
+
 
+
In SMB1, fireworks come when a level is completed with the last digit of the timer at 1, 3, or 6.
+
In SMB2j, fireworks come when the last digit of your coin counter matches the last digit of the timer.
+
 
+
Getting fireworks wastes time, so you should avoid them.
+
 
+
+
==Sliding on one foot (SMB1, SMB2j)==
+
 
+
This is a well-known trick which requires the fiery Mario. When you start a level or exit from a pipe, hold B and jump, and continue holding B. When you move, Mario will slide instead of running, for some time. This trick is trivial to do on the real console.
+
 
+
 
+
 
+
+
==Lip jumps (SMB1, SMB2)==
+
 
+
It is possible to stand on the edge of a pipe even where's a plant coming out of the pipe. There are a few pixels of room at both sides of the pipe. You can land on it, and jump immediately again.
+
 
+
 
+
 
+
 
+
==The "21 frame rule" (SMB1, SMB2j)==
+
 
+
In SMB1 and SMB2j, every time the screen blacks out (entering a new level), the game delays for a varying amount of time.
+
The delay is actually calculated so that the current playing progress will be rounded up to next 21 frame boundary.
+
 
+
As an example, this means that if you complete a level in
+
• 1 frames, the level length will be N+21 frames
+
• 15 frames, the level length will be N+21 frames
+
• 20 frames, the level length will be N+21 frames
+
• 21 frames, the level length will be N+21 frames
+
• 22 frames, the level length will be N+42 frames
+
• 30 frames, the level length will be N+42 frames
+
• 42 frames, the level length will be N+42 frames
+
• 43 frames, the level length will be N+63 frames
+
And so on, where N is a constant minimum length of the black screen.
+
Therefore, the only part of the game that can be improved by a time less than 21 frames is the entire last level.
+
 
+
+
==Walking in place (Moonwalking)==
+
 
+
See level 8-4 of HappyLee's SMB walkathon TAS for a demonstration.
+
This kind of moonwalk where Mario is walking in place without further input is a special state which can be achieved by pressing "left" and "right". It happens sometimes when you slow down the speed on the ground with "left" and "right". While walking in place, the X-speed goes "1, 255, 1, 255..."and it will never stop, so the X-subpixel goes "x, x-16 ,x, x-16...". When "x"=0, "x-16" turns to be 240, so the X-pixel has changed. Mario is shaking and the screen begins to scroll. This is what makes the moonwalk trick useful, because the screen scrolls without further actions.
+
 
+
== Firebar hiding trick==
+
 
+
A FireBar can't always hurt Mario. In the image on the right, The firebar moves too fast to hurt Mario because there is no frame rendered where Mario is ""inside"" the firebar.
+
 
+
 
+
==Small fiery Mario / negative Mushroom (SMB1, maybe SMB2j too)==
+
 
+
(The following explanation is copied from Wikipedia. It is a good explanation, but someone seems to stick to that it is “fan cruft” and does not belong into an encyclopedia. Thus copying it here instead of linking to the Wikipedia article.)
+
Internal to the game, Mario’s powerup state is recorded in two independent variables; one describes size (0=regular; 1=super) and the other tracks the ‘upgrade state’ (0=need mushroom; 1=need flower; 2=has flower). The ‘size’ decides the sprite (small on 0; big on 1) used for Mario; the ‘upgrade state’ decides what powerup will come out of a block (mushroom on 0; flower on 1 or 2) and what will happen when Mario is hit (die on 0; switch ‘size' and clear ‘upgrade state’ on 1).
+
 
+
These states can be knocked out of synchronization. The game checks for all sprite collisions, knocks the ‘upgrade state’ to 0 if it hits, and switches size only when all checks are done. If Mario’s sprite strikes the King Koopa sprite and the bridge release sprite in one frame, the game will register the collision between Mario and Koopa, knock the ‘upgrade state’ to 0, register the collision between Mario and the bridge release, and jump into the level complete loop that causes Mario to walk to the right ― and never switches the ‘size’ variable.
+
 
+
If Mario was naturally large (state 1 or 2, size 1) when he hit the switch he will stay large (state 0, size 1). If he strikes an enemy he will die (because his ‘upgrade state’ is 0), but he can break blocks. If he gets a mushroom, he will shrink and be unable to hit blocks; if he is hit now, he will grow again. If he gets a fire flower, his palette will be changed and he will be able to shoot (but the game will use the large image for shooting; it will, however, keep Mario’s small feet if Mario is moving). Mario will now be Little Fiery Mario.
+
 
+
If Mario was naturally small (state 0, size 0) when he hit the switch, he will appear to die but the level will still be beat and he will not lose a life. If Mario was unnaturally small (state 1 or 2, size 0) when he hit the switch (that is, if he does this trick twice), he will revert to his normal form. When Mario dies his size is set small and his state is set unupgraded, no matter how he died or what his state was before.
+
 
+
Using the third part only of a 3-code Game Genie code for “Always Stay Big” will produce similar results (the code is SZLIVO). As long as Mario has gained a power-up, he will become small when hit, then grow when hit a second time. This is a much simpler way to view the “Little Fiery Mario” quirk.
+
 
+
This glitch appears to have been fixed in the Super Mario All-Stars version, though the two-variable mechanism behind it still exists.
+
 
+
==The Minus World (SMB1)==
+
 
+
This is a well-known glitch which occurs when Mario glitches behind the wall in 1-2 in SMB1 and enters the first pipe.
+
The minus world is basically just a random location of the game ROM, it is not a real world. It wasn't designed that way ― it's just an oversight of the programmers that you can get into the pipe before the correct warp labels are assigned.
+
 
+
In the NES version of Super Mario Bros., the "minus world" was a looping, uncompleteable copy of world 2-2. In the FDS version, however, it is an underwater 1-3, 2-3, and an underground 4-4, making it completable. Completing the game this way would give the "in another castle" message, but would return to the title screen as if 8-4 had been beaten; hard mode and the level become accessible, as well.
+
 
+
 
+
==Low-Gravity Mario (SMB1)==
+
 
+
When a level starts, Mario is in a special state regarding falling speed until he jumps for the first time. He regains this state whenever there is a screen transition (when a new level starts or after exiting a pipe). This is not useful for speedrunning, though it is featured in the "minimum buttons pressed" submission.
+
TODO: Add image (1-1 after exiting the pipe, landing on the two goombas).
+
 
+
 
+
==Koopa walking in mid-air (SMB1)==
+
 
+
Usually, when a shell is being landed on in mid-air, it will just turn around and continue falling down. But if a shell is being landed on at the bottom of the screen (within the first two rows of blocks), the shell will not be falling down anymore, mysteriously. When the Koopa Troopa starts walking, he will be walking in mid-air and he will be able to walk through solid obstacles.
+
TODO: Add image.
+
 
+
==Enemies, firebars, or platforms not appearing (SMB1/SMB2J)==
+
 
+
Sometimes enemies or objects will not appear when they are supposed to normally. When there are 5 or more object sprites on the screen (this can include firebars, fireballs, and platforms) this will occur. One of the most bizarre cases of this is seen in level 4-4 of SMB2J (The Lost Levels). If you approach Bowser the moment 5 other sprites are on screen, Bowser will not spawn. It is as if you've already defeated him.
+
TODO: Add image.
+
  
 +
If you touch a vine at the extreme left edge of the screen, you'll be transported to the right edge.
 +
Uses: In 4-2 hit the vine block and get up on the ceiling. Walk to the right so that about half of the vine block gets scrolled off the screen, and the vine will dissappear. Go back to the left and touch the vine, and if you went the correct amount to the right, you'll be teleported to the extreme right edge of the screen. If you misestimated the amount, you'll get stuck in the left edge of the screen.
  
==Any% times==
+
==any% times==
  
World 1-1: 370 left
+
World 1-1: 370 left<br>
  
World 1-2 Warp to 4-1: 346 left
+
World 1-2 Warp to 4-1: 346 left<br>
  
World 4-1: 340 left
+
World 4-1: 340 left<br>
  
World 4-2 Warp to 8-1: 354 left
+
World 4-2 Warp to 8-1: 354 left<br>
 +
(Can the timer be trusted here?)<br>
  
World 8-1: 200 left
+
World 8-1: 200 left<br>
 +
A high 199 can achieve the same result as a low 200. To get a perfect time, you need to hit the very highest pixel of the flagpole (one blue background pixel between Mario and the flag).<br>
  
World 8-2: 342 left
+
World 8-2: 342 left<br>
  
World 8-3: 242 left
+
World 8-3: 242 left<br>
  
Lose control: 314 left
+
Lose control: 314 or 315 left<br>
 +
The timer is not to be trusted in this case. A 314 can be faster than a 315.<br>
  
 
[[Category:NES]]
 
[[Category:NES]]
 
[[Category:Virtual Console]]
 
[[Category:Virtual Console]]
 
[[Category:Games]]
 
[[Category:Games]]

Revision as of 05:13, 12 September 2013

SDAlogo runner.png This game has a run page on SDA!

General Tricks

DISCLAIMER: This page is referring to the NES/Famicom original release, not any of the remakes.

The "21 frame rule"

Every time the screen blacks out (entering a new level), the game delays for a varying amount of time. The delay is actually calculated so that the current playing progress will be rounded up to next 21 frame boundary.

As an example, this means that if you complete a level in
• 1 frames, the level length will be N+21 frames
• 15 frames, the level length will be N+21 frames
• 20 frames, the level length will be N+21 frames
• 21 frames, the level length will be N+21 frames
• 22 frames, the level length will be N+42 frames
• 30 frames, the level length will be N+42 frames
• 42 frames, the level length will be N+42 frames
• 43 frames, the level length will be N+63 frames
And so on, where N is a constant minimum length of the black screen.
Therefore, the only part of the game that can be improved by a time less than 21 frames is the entire last level.

Flagpole jump

If you hit a flagpole at the highest possible position, Mario will enter the castle faster. In most levels this saves a framerule.
To get a perfect time in 8-1, you need to jump at the last possible frame and have previously altered the walking animation by hitting the star block in the middle of this level.

Alternate pipe glitches

The alternate pipe glitch occurs when a pipe takes you to somewhere other than where it was intended to.
Theory: The game can have only one "entry point" (a pipe or vine) per screen. The reason lies in how the game is designed: There is just one global variable in the game RAM that determines where pipes or vines in the current screen lead. Once the screen scrolls far enough for the next target label to be loaded from the level data, all entry points in the current screen will lead to that place.

• If Mario is far on the right side of the screen, the entry point variable will be out of date, so a new entry point will lead to the target of the previous one (Example: In 4-2 of SMB1, if Mario is far enough on the right side of the screen, he can use the pipe to go to the warp room since the destination info of the vine is still valid. Making the vine appear is not required for this glitch. The only thing needed is that the screen hasn't scrolled too far when the pipe is entered.)
• If the screen is ahead of Mario (Mario is on the left side of screen), the variable will have updated too soon, so you can access a future entry point's target from an earlier entry point. (Example: In 8-4 of SMB1, in the area before the water area, instead of going in the pipe after the lava pit, go a little past the previous pipe, and then turn around and go in that pipe, and it will take you to the water area instead of taking you back to the beginning of the level.)

Methods of getting Mario to the left side of the screen

• Just move back.

Methods of getting Mario to the right side of the screen

• Teleport to the right edge of the screen the vine glitch (explained above).
• If you enter a wall, the wall will automatically transport Mario towards the right edge of the screen without scrolling.
• If Mario bumps into the left edge of an obstacle (wall, pipe, coin block etc.) while jumping, the screen scrolling will momentarily stop even if Mario continues to move to the right. Since Mario accelerates faster into the direction he doesn't face to, you should use this trick while jumping backwards (Mario faces to the left).

Avoiding fireworks

Fireworks come when a level is completed with the last digit of the timer at 1, 3, or 6.
Getting fireworks wastes time, so you should slow down instead of hitting a timer at a time, which yields fireworks.

Lip jumps

It is possible to stand on the edge of a pipe even where's a plant coming out of the pipe. There are a few pixels of room at both sides of the pipe. You can land on it, and jump immediately again.

Walljump

A walljump is when you jump towards a wall and somehow Mario's foot catches the wall and allows to jump again, boosting from the wall.
Walljumps happen because the game does a floor check (a simple "is there a solid block below him?" test) even during a wall-ejection. Wall-ejection is SMB's mechanism to push Mario out of a wall when he entered it partially. The game ejects Mario towards the opposite of his steering.

To perform a walljump, you need two things:
• Some horizontal speed towards the wall
• Mario's feet must hit the wall exactly at a block boundary (every 16 pixels)

It's possible to perform walljump from any non-lethal solid material (bricks, pipes, etc.) and most notably in the second room of 8-4 to enter the next pipe quickly.

Know random enemy patterns

The random number generation in this game is purely frame-based. If you reach an enemy at the same frame (excluding lag frames) from reset, he will behave the same. Due to the 21 frame rule (which also applies to the title screen), it is possible to know what frame rule you are on.
This can be used in 8-3 to safely avoid the Hammer Bros.

Flagpole glitch using an enemy

Koopa Troopas and Bullet Bills can be useful for flagpole glitching. When Mario enters the block at the flagpole with proper height, the "walking to the castle" sequence will be skipped. Landing on shells results in a higher bounce than Bullet Bills, so in order to use shells for this version of the flagpole glitch, you need to be inside the block at the flagpole already, at the moment you bounce off.
With a lucky Bullet Bill spawn this trick is possible in 8-2.

Going through walls as big Mario

When Mario is big, he can simply perform a duck-jump into the corner and start walking. This is because his head will be well inside the ceiling, enabling the ejection to the right. (If he ducks again before he is fully inside the wall, he'll be ejected to the left instead.)
Doing this at the end of 1-2 lets you reach the "Minus World".

"Stomping" enemies from below

You don't need to land on the top of an enemy to kill it. As long as you're moving downward as you hit the enemy, you'll kill it. If you time it just right, sometimes you can even hit the bottom of the enemy. This is useful for killing enemies that seem to be too high to jump on.

Jumping through hammers

How it's done: The game does a very poor job of detecting collisions with hammers, so sometimes you can go through a hammer without getting hit, and sometimes you can completely miss a hammer and still get hit.
Bowser will start throwing hammers beginning from 6-4. Even if it looks like there's no gap in the stream of hammers, it's still likely that you'll be able to get through without taking a hit.

The Minus World

This is a well-known glitch which occurs when Mario glitches behind the wall in 1-2 in SMB1 and enters the first pipe.
The minus world is basically just a random location of the game ROM, it is not a real world. It wasn't designed that way ― it's just an oversight of the programmers that you can get into the pipe before the correct warp labels are assigned.

In the NES version of Super Mario Bros., the "minus world" was a looping, uncompleteable copy of world 2-2. In the FDS version, however, it is an underwater 1-3, 2-3, and an underground 4-4, making it completable.
Completing the game this way would give the "in another castle" message, but would return to the title screen as if 8-4 had been beaten; hard mode and the level become accessible, as well.


Tricks considered too difficult or of too little use

Accelerating faster

When you need to accelerate from zero speed, you can do it faster if you jump a small jump backwards and steer to the opposite direction Mario is facing. This can be used to start a level faster, to accelerate faster after exiting a pipe and to complete a walljump faster.
Press "left" for 1 frame. Press the "A"-button for 3 frames to make a small jump to the right. This will leave you about two pixels farther than a normal start. (TODO: This method may be suboptimal.)
In a non-TAS run, this would only be useful in 8-4 due to the framerule.

Flagpole glitch

Complete the level without lowering the flag by glitching into the base block of the flagpole and touch the flapole from inside. Doing so is faster than lowering the flag. The points you get from the flagpole will be only 100. This trick can not be used in 8-3 since the timer would turn 343 which results in fireworks. The flagpole glitch was originally found by klmz.

Going through walls as small Mario

Jump into a solid object below a floor

For the purpose of this glitch, any solid object (including pipes) counts as a floor.
It is really difficult to perform (much harder than the walljump), but here are the instructions.

1. You need proper speed. If the object is only 2 blocks tall, such as the pipe in the end of 1-2, you can not jump into it while running. Deaccelerate before jumping. If you have too high speed, you'll just find yourself standing on top of the object instead of inside it.
2. You need the right position. The right position is: as near as possible. You are too near, if when you jump toward the object, you'll bump into it without getting ejected pixel by pixel.
3. Immediately when the wall starts ejecting Mario, start steering away from it. This causes the wall to pull you in instead of push you out.
4. Immediately after your vertical movement stops, start moving to the direction you want to go. If the wall is ejecting you now, you failed some of the previous steps.

The easiest way to perform this trick is into 2-block tall obstacles at walking speed.
1. Do a minimal height jump (hold A for 1 frame) at the exactly right distance.
◦ You are too close, if you bump into the wall without a chance to counter the ejection.
◦ You held A for more than 1 frame (or your jumping platform was less than 2 block distance far from the floor), if you land on top of the floor.
2. When the wall would start ejecting, hold to the opposite direction from the obstacle.
3. Once Mario lands into the wall, start walking normally.
◦ If the wall just ejects Mario, you were too far from the wall when you jumped.

Jump into a wall just below a solid ceiling and walk through it

To perform the trick, do a walljump into the wall position right below the ceiling. When you get foothold, jump immediately. When you land, jump again. When you land again, jump again. Usually three or four jumps are enough before you can walk through the wall. Each jump takes you deeper into the wall.

During each of the jumps, you need to steer heavily to the opposite direction you're going to. Otherwise the wall will eject Mario.

Note: Steering only has effect during a jump (i.e. when Mario is not standing or walking). If Mario is standing, the direction of ejection is determined by the location of his upper body in relation to the left edge of the wall. (If it's partially out from the wall, he'll be ejected to the left (unstoppable unless you jump). Otherwise, he'll be ejected to the right (stoppable, speedable).


Jump into a solid wall and walk through it

It is possible to perform the wall-entry trick even without a ceiling. However, it requires extremely precise positioning and efficient speed. This is the hardest of all of the tricks.
Instructions: You will need to have a proper X-subpixel position value for this to work. A subpixel is a position component which is not rendered onscreen. In this game, 16 subpixels make up 1 pixel. Now when you jump into a wall (not doing this trick), you might be pushed out immediately without having entered the wall at all. At other times you might have been able to be inside the wall partially. This is the result that you want when optimizing your X-subpixel position. You can press "left" for 1 frame while running to the right to decrease your subpixel value by one unit. Do this until jumping into a wall will result in Mario being partially inside the wall. If this condition is met, you can follow these instructions.

1. Jump towards a wall, approach its edge as closely as possible right before you enter it, and become embeded in it as deep as possible at the first frame you have entered it. The required minimum depth is 3 pixels.
2. Immediately when the wall starts ejecting you, start steering away from it. This causes the wall to pull you in instead of pushing you out.
3. As soon as you land inside the wall, jump while moving away from the wall for 1 frame. You have to hit the block above you inside the wall. You may have to repeat doing this until you are so deep inside the wall that you will not be ejected out while you are walking forwards inside the wall.
◦ If you can't hit the solid block above when jumping, you will be ejected out. You will need to try again from the start.
4. After you have entered the wall deep enough, start moving in the direction you want to go as soon as you land. If the wall is ejecting you now, you failed the previous steps.

Off-screen wall climbing

This trick is trivial to perform. When there is a hole on the left side of the screen, you can cram Mario in between of the screen edge and the wall, and climb upwards the hole. Mario will be unable to fall down. It can be used to reach the ceiling of the dungeon in places where there normally is no route to the ceiling.
By jumping repeatedly and steering to the left, it can also be used to enter the wall.

Vine teleporting glitch

If you touch a vine at the extreme left edge of the screen, you'll be transported to the right edge. Uses: In 4-2 hit the vine block and get up on the ceiling. Walk to the right so that about half of the vine block gets scrolled off the screen, and the vine will dissappear. Go back to the left and touch the vine, and if you went the correct amount to the right, you'll be teleported to the extreme right edge of the screen. If you misestimated the amount, you'll get stuck in the left edge of the screen.

any% times

World 1-1: 370 left

World 1-2 Warp to 4-1: 346 left

World 4-1: 340 left

World 4-2 Warp to 8-1: 354 left
(Can the timer be trusted here?)

World 8-1: 200 left
A high 199 can achieve the same result as a low 200. To get a perfect time, you need to hit the very highest pixel of the flagpole (one blue background pixel between Mario and the flag).

World 8-2: 342 left

World 8-3: 242 left

Lose control: 314 or 315 left
The timer is not to be trusted in this case. A 314 can be faster than a 315.

Personal tools