The purpose of this page is to document all of the known tricks
of the NES Super Mario Bros 2 (aka. Super Mario USA) game so far.
Because of the nature of this site, we concentrate here on tricks
that are nearly difficult to play in real play, but are useful
in the making of tool-assisted speedruns. For most of the tricks,
a frame advance feature in an emulator is a definite must-have.
The concept for this run originated long ago because Princess was the only character not used in the normal run aiming for fastest overall time. (In fact, Princess is the only character not used in the fastest warpless run either.)
This movie improves the previous publication by 00:02.95 seconds, manly due to heavier optimization.
For a much more thorough listing, adelikat created a MS Excel spreadsheet that maps most of the game's RAM: SMB2U RAM map
(The RAM map is on the RAM Sheet of the .xls file)
Running/Walking Speeds - In Depth
Horizontal Position/Speed RAM addresses
0x0028 X value (in level)
0x04BF X value 2nd byte (255 of 0x0028 = 1 of these)
0x0407 X subpixel
0x003C X speed
This game, like all NES games operate horizontal position by the use of pixels & subpixels. Like all Mario NES games, the game has a subpixel precision of 16ths, meaning that 1 subpixel = 1/16th of a pixel. Speed is measured in "subpixels per frame". So a value of 16 speed = 16 subpixels per frame = 1 pixel per frame.
Pixels per Frame
Toad Run with Item
Toad - Running with an item
Toad is the only character in SMB2 who runs faster than normal while carrying an enemy or "heavy" items. Heavy items include mushroom blocks and keys. Heavy items do not include ripe veggies. As mentioned above Toad will run at 43 speed instead of 36 (~0.44 pixels per frame faster). This is quite a significant speed boost and often makes it worth it for Toad to go out of his way to grab an item.
How it's done: While moving towards an enemy, jump and go through the top left or right corner of the enemy.
You can either jump just before you hit an enemy on the ground that you were running towards, or it can be an enemy in the air or on a platform above you.
If you timed the jump correctly, the character's feet will pass through the top of the enemy without taking damage, and this will trick the game into thinking that you're standing on the enemy, and it will still think that even after you move farther up.
Any time before you begin to fall, you can jump again in midair.
If the enemies are positioned correctly, you can even pass through the corner of another enemy during your second jump and jump a third time.
You can use double jumps to reach high places more quickly.
Note: This trick can also be done with anything that can hurt you and that you can stand on, such as Birdo's eggs and water columns on whales.
In 1-1, use a double jump with Toad to reach the high platform so that you don't need Luigi's high jumping ability in that level.
Even though it'll take longer to get up the steps after taking the shortcut, Birdo always throws his eggs at the same time so it doesn't matter exactly how fast you get there unless you can get there a lot faster and on time to get his previous egg.
All that matters is how fast you can pick up the last egg, so Toad is slightly faster than Luigi in 1-1.
In 1-2, after getting the key from the jar, move an enemy so that it's just at the edge of the cliff, and use it to double jump over the big pit. As you make the jump in midair, duck so that you don't hit Phanto.
In 7-1, you can use a double jump to get over the big pole next to the ladder.
In addition to saving time, you can also use a double jump to do tricks and make the run look more impressive.
However, the most striking use of the double jump is shown here. With double jumps, Luigi is able to jump his way through 6-2 (as opposed to slowly riding an albatross across the stage).
Mushroom block bouncing for multiple hits
0x0460 - Boss Invulnerability Timer
This works by taking advantage of a blocks ability to land partially between two "blocks" of floor and then "snap" to one or the other. The timing window is narrow. The trick is to throw a mushroom block that hits the enemy in its head. This starts the invulnerability timer. The block then will fall to the ground, bounce, and then snap to floor under the boss. If timed right, the snapping to the floor will happen after the invulnerability timer is up and score a 2nd hit against the boss!
The example shows this trick used on Triclyde in level 6-3.
Jumping to accelerate on ice
Since you accelerate slower on ice, if you're not moving
at full speed, you should jump to accelerate faster.
As the example shows Toad jumping as soon as 4-1 starts.
Running across the ceiling
When you climb a chain or vine to the top of the screen, you can jump from it and run across the top of the level.
The example shows how this trick is used to take a radical shortcut in 7-2.
Fast Ladder/Vine Climbing
Pressing up+down at the same time while on a ladder will cause a movement glitch that results in the player being shot upwards at super high speed. This can be used for fast climbing of ladders. Using this trick with Luigi vaults him very high into the air.
As the example shows, this is particularly useful in 6-3 to avoid having to sink under the wall.
Vine/Ladder Horizontal Zipping
This involves using U+D+L+R on a vine. TODO: Explain what happens.
Item re-use Trick
This trick allows the character to reuse an item in the next screen.
This requires a potion. Through a potion on top of the item you wish to re-use. Enter the door and quickly exit. On the first frame possible after exiting, tap B to pick up the item. If done quick enough, the item will be stuck on the character's head and will not be able to be thrown. When the character enters a door, they will be holding the item in the next screen.
This has big time saving applications in 1-2 for instance. Toad can bring a veggie to do battle with Birdo which saves him from having to wait 256 frames for each of his eggs.
Running Full Speed on a Carpet Trick
This has yet to be used in a published TAS but has been confirmed to save time in 1-2. TODO: Explain how this trick works
Jumping on a carpet
Useful when the Running Full Speed trick isn't applicable. By repeatedly jumping on a carpet you can maintain a faster speed than simply riding it.
Riding a veggie through a floor
If you throw a veggie and land on it, it is possible to use it to fall through a floor. This was discovered by Glitchman.
The trick works similarly to the shortcut in 1-1 except with a veggie instead of a floor-glitched enemy.
Broken Door Glitch
If you can get into a door that is high on the screen it breaks the game in several ways.
To get to that door, however, you must be able to jump up to the door and go into it before the screen begins to scroll. 2-3 and 3-3 both offer places to do this.
Once you go into the door, the character doesn't go into it at all, but is able to run around. The screen still transitions to the next screen but it keeps the x position the character was last in. This can be taken advantage of by doing the door glitch then quickly running to a spot that you want the character to appear in.
Enemies through the floor glitch
If you throw an enemy and then take damage, the enemy will fall through the floor! This is because while taking damage, the enemies "check for a floor" routine is bypassed. Once you are done taking damage, the routine will return. If the enemy is in a floor at the time, it will remain stuck there.
Through the floor glitch
This trick is an extension of the enemies through floor trick. It is used in 1-1 to get to birdo quickly. In 1-1, you use the shyguy and the enemy through floor trick to get him stuck just under the ladder. With the right y subpixel positioning you can get the character to land on him instead of the floor. Pick him up and you will fall through the floor! This takes you do Birdo's room.
This isn't a trick per se, but it is a big timer saver in 2-1 and 4-2. With fast speed and good timing with making a star appear, Toad can keep star power until Birdo. Star invincibility kills Birdo instantly.
Running on right-moving enemies
If you run to the right on the head of an enemy that is moving to the right you get your speed plus theirs. Usually this only saves a pixel or two but that can amount to frames. On the contrary, running to the right on an enemy moving to the left loses speed.
0x0010 - Global 255 frame timer
There is no RNG in this game. EVERYTHING is dictated by this global timer. This timer resets to 0 before each level and ticks to 255 (256 frame timer).
Some events like Birdo spitting his eggs, or veggies popping out of Wart's Veggie Machine only happen once per cycle. Thus, they are on a 256 frame rule! Other events like a rocket ship take off will be on this timer but have multiple opportunities per cycle. Thus they operate on smaller frame rules.