TASVideos

Tool-assisted game movies
When human skills are just not enough

Game Resources / NES / Super Mario Bros 2

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

[Tier: Moons][Console-verified]NES Super Mario Bros. 2 (USA PRG0) "warps" in 07:41.16 by Aglar & Andrewg.
FCEUX movie (.fm2) (date: 2011-01-21)
MP4 file via BitTorrent (size: 10.16 MB, length: 10:32)
Mirror www.archive.org
Watch on (www.youtube.com)
Watch on (aktan.site90.com)
Submission #2981 — Author's comments
Discuss this movie
Obsoletes movie #1002 (07:52.67)
Rating: 8.7 (40 votes)
View Publication
- Takes damage to save time
- Uses warps
- Heavy glitch abuse
- Genre: Platform
Super Mario Bros 2 is one of our most competed games. This movie is Aglar and Andrewg's improvement of 10.73 seconds over adelikat and Cardboard's attempt to perfect this route.

This time, the authors found new glitches to get to the end faster.

If you are wondering how some of the tricks in this video work, see the Super Mario Bros. 2 tricks page.

You can also see this movie played back on an actual NES.

Runs for the GBA version and SNES version are available, as well.


[Tier: Stars][Console-verified][Has commentary]NES Super Mario Bros. 2 (USA PRG0) "warpless" in 18:29.26 by Aglar & Andrewg.
FCEUX movie (.fm2) (date: 2011-03-01)
MP4 file via BitTorrent (size: 20.91 MB, length: 21:26)
Mirror www.archive.org
Watch on (www.youtube.com)
Submission #3015 — Author's comments
Discuss this movie
Obsoletes movie #1001 (19:39.93)
Rating: 9.1 (32.5 votes)
View Publication
- Takes damage to save time
- Forgoes warps
- Heavy glitch abuse
- Genre: Platform
Award - NES TAS of 2011
Warpless Super Mario Bros. 2 has been improved by 1:08.73 over the previous submission thanks to some astonishing new glitches.

For more information about some of the tricks used in this movie, check the Super Mario Bros. 2 tricks page.

You can also watch this movie played on an actual NES.


Andrewg's vocal commentary during the run's video can be watched on YouTube.

[Tier: Moons][Console-verified]NES Super Mario Bros. 2 (USA) "princess only" in 08:29.57 by adelikat.
FCEU movie (.fcm) (date: 2007-10-06)
MKV file via BitTorrent (Modern HQ) (size: 9.96 MB, length: 11:48)
MP4 file via BitTorrent (Compatibility) (size: 14.66 MB, length: 11:48)
Mirror www.archive.org (MKV Modern HQ)
Mirror www.archive.org (MP4 Compatibility)
Watch on (www.dailymotion.com)
Watch on (www.youtube.com)
Submission #1720 — Author's comments
Discuss this movie
Obsoletes movie #960 (08:43.23)
Rating: 7.2 (40 votes)
View Publication
- Uses a suboptimal character
- Takes damage to save time
- Uses warps
- Heavy glitch abuse
- Genre: Platform
This is an improvement of 13.66 seconds over laughing_gas's princess-only run of Super Mario Bros. 2 (aka. Super Mario USA).

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. Since then, improvements have removed Mario from that run as well. (In fact, Princess is the only character not used in the fastest warpless run either.)

This run played on a real NES

RAM values relevant to tricks/optimization

Address Set #12: Super Mario Bros. 2 (USA)
System: Nintendo Entertainment System
Download .wch file for: BizHawk
Domain Address Data Type Signed Endian Description
System Bus 0010 Byte Unsigned Big Global Timer (256 frames)
System Bus 0028 Byte Unsigned Big X Level Position
System Bus 0032 Byte Unsigned Big Y Position On-screen
System Bus 003C Byte Signed Big X Speed
System Bus 0046 Byte Unsigned Big Y Speed
System Bus 0407 Byte Unsigned Big X Level Subpixels
System Bus 0408 Byte Unsigned Big Enemy #1 X subpixels
System Bus 0409 Byte Unsigned Big Enemy #2 X subpixels
System Bus 040A Byte Unsigned Big Enemy #3 X subpixels
System Bus 040B Byte Unsigned Big Enemy #4 X subpixels
System Bus 040C Byte Unsigned Big X Camera Position
System Bus 040C Byte Unsigned Big Enemy #4 X subpixels
System Bus 040D Byte Unsigned Big Object #1 X subpixels
System Bus 040E Byte Unsigned Big Object #2 X subpixels
System Bus 040F Byte Unsigned Big Object #3 X subpixels
System Bus 0410 Byte Unsigned Big Object #4 X subpixels
System Bus 0411 Byte Unsigned Big Y Subpixels
System Bus 0417 Byte Unsigned Big Enemy #1 Y subpixels
System Bus 0417 Byte Unsigned Big Object #1 Y subpixels
System Bus 0418 Byte Unsigned Big Enemy #2 Y subpixels
System Bus 0418 Byte Unsigned Big Object #2 X subpixels
System Bus 0419 Byte Unsigned Big Object #3 X subpixels
System Bus 0419 Byte Unsigned Big Enemy #3 Y subpixels
System Bus 041A Byte Unsigned Big Enemy #4 Y subpixels
System Bus 045F Byte Unsigned Big Boss Invulnerability Timer #1
System Bus 0460 Byte Unsigned Big Boss Invulnerability Timer #2
System Bus 0468 Byte Unsigned Big Enemy Health #1
System Bus 0469 Byte Unsigned Big Enemy Health #2
System Bus 04BF Byte Unsigned Big X Level "2nd Byte"
System Bus 04CA Byte Unsigned Big Squat Timer

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

Type Speed Value Pixels per Frame
Walking 24 1.5
Running 36 2.25
Toad Run with Item 43 2.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.


See also



Combined RSS Feed
GameResources/NES/SuperMarioBros2 last edited by Spikestuff on 2013-10-31 07:14:27
Page info and history | Latest diff | List referrers | View Source