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.
Currently Published Movies
Published on 1/21/2011

Published on 3/1/2011

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.

You can watch the complete run being played back on a console.
Published on 2/23/2018

RAM values relevant to tricks/optimization
Super Mario Bros. 2
System: Nintendo Entertainment System
Domain Address Data Type Signed Endian Description
System Bus 16 Byte Unsigned Big Global Timer (256 frames)
System Bus 40 Byte Unsigned Big X Level Position
System Bus 50 Byte Unsigned Big Y Position On-screen
System Bus 60 Byte Signed Big X Speed
System Bus 70 Byte Unsigned Big Y Speed
System Bus 1031 Byte Unsigned Big X Level Subpixels
System Bus 1032 Byte Unsigned Big Enemy #1 X subpixels
System Bus 1033 Byte Unsigned Big Enemy #2 X subpixels
System Bus 1034 Byte Unsigned Big Enemy #3 X subpixels
System Bus 1035 Byte Unsigned Big Enemy #4 X subpixels
System Bus 1036 Byte Unsigned Big X Camera Position
System Bus 1037 Byte Unsigned Big Object #1 X subpixels
System Bus 1038 Byte Unsigned Big Object #2 X subpixels
System Bus 1039 Byte Unsigned Big Object #3 X subpixels
System Bus 1040 Byte Unsigned Big Object #4 X subpixels
System Bus 1041 Byte Unsigned Big Y Subpixels
System Bus 1047 Byte Unsigned Big Enemy #1 Y subpixels
System Bus 1048 Byte Unsigned Big Enemy #2 Y subpixels
System Bus 1049 Byte Unsigned Big Enemy #3 Y subpixels
System Bus 1050 Byte Unsigned Big Enemy #4 Y subpixels
System Bus 1119 Byte Unsigned Big Boss Invulnerability Timer #1
System Bus 1120 Byte Unsigned Big Boss Invulnerability Timer #2
System Bus 1128 Byte Unsigned Big Enemy Health #1
System Bus 1129 Byte Unsigned Big Enemy Health #2
System Bus 1215 Byte Unsigned Big X Level "2nd Byte"
System Bus 1226 Byte Unsigned Big Squat Timer
System Bus 1036 Byte Unsigned Big Enemy #4 X subpixels
System Bus 1047 Byte Unsigned Big Object #1 Y subpixels
System Bus 1048 Byte Unsigned Big Object #2 X subpixels
System Bus 1049 Byte Unsigned Big Object #3 X subpixels
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
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.
Speed values
TypeSpeed ValuePixels per Frame
Walking241.5
Running362.25
Toad Run with Item432.69

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.

Double jump

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.
Uses

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.

Get a bomb in the wall glitch

Used in 1-3 Mouser. TODO: Explain how this works.

Kill Birdo with a star

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.

Frame Rules

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.

Subpixel Carryover

You don't want to know.

GameResources/NES/SuperMarioBros2 last edited by adelikat 23 days ago
Page History Latest diff List referrers View Source