Super Mario World Tricks

The purpose of this page is to document information relevant to TASing for the SNES Super Mario World game.

Because of the nature of this site, the focus here is 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 required.

The tricks included on this page also work on SMW-derivatives such as Super Demo World and Super Mario World Kaizo.

To see these tricks used, you can watch any of these movies:

In a perfect world,

  • Some simple SMV demonstrations of these tricks
  • Some more/updated animated GIFs

But neither of these are critical.

Explanation of terms to be used on this page

  • ← and → will be used for "left" and "right" on the directional pad.
  • All explanations on this page assume Mario is facing to the right. (→)
  • All explanations assume the Y button to be used for all purposes, at all times unless both X and Y need to be pressed.

Walking
Mario's speed when holding →.
Running
Mario's speed when first holding right together with Y.
Sprinting
Mario's speed when holding right together with Y for a prolonged time.
Flying
Mario's top speed when flying with a cape.
P-meter
A value in memory that increases as Mario runs. Once this reaches its peak, Mario begins to sprint.

Pixel
One graphical "block" on the screen. Used to determine Mario's position on screen.
Subpixel
A smaller unit of measure used in internal game calculations for a more precise measuring system. In this game, subpixels are measured in sixteenths of a pixel.

Running / Sprinting

Explanation of oscillating speeds

The algorithm for Mario's sprinting speed does not actually give him a constant speed. Instead, his speed varies between five different values (48, 47, 48, 47, 49). Releasing → will stop this oscillation on whatever speed Mario is traveling that frame. By releasing → on the right frame while in mid-air, this oscillation will stop on a speed faster than Mario runs on average. This trick is fully utilized with continuous jumping, as detailed below.

Mario's running speed also oscillates (36, 35, 36, 35, 37). So even in situations where there isn't enough space to run to sprinting speed, this technique can still be used to gain a bit of ground.

Hopping glitch

When traveling forward in mid-air after either (1) releasing → in mid-air as detailed above, or (2) releasing Y when flying, Mario will travel forward at his current speed until he touches the ground (if → is not pressed again), at which point he begins to slow down. However, by jumping on the first frame allowed after touching the ground, Mario does not lose any speed. Using this technique, jumping over and over through a level can be faster than running, or can allow traveling at flight speeds through terrain that may not be able to be flown through without stopping or slowing down.

Other ways to quickly get up to speed in order to take advantage of this glitch include sliding, hitting an enemy that changes Mario's velocity, and entering a pipe cannon.

6/5

A way to gain some of the advantage of oscillating speeds without losing a full running meter is known as 6/5. Since sprinting speed oscillates every five frames, the trick is to jump, and while in the air, release → on the maximum speed for the maximum number of frames allowed so that pressing → together with Y for five frames will oscillate the speed back to the fastest value, refill the running meter to full, and consider the overall speed.

The pattern to fully optimize forward speed in mid-air while keeping a full P-meter is to release → for six frames, then press → together with Y for five frames, and repeat. It was previously (erroneously) thought that eight frames of releasing was the most optimal way to improve forward speed (and thus, the trick was called "8/5"), but the speed of the frames when recharging the P-meter was not considered in this analysis. Looking at average speeds, the 6/5 wins out.

Average speed using 6/5: (49 * 6 + (49 + 48 + 47 + 48 + 47) ) / 11 = 48.45454...
Average speed using 8/5: (49 * 8 + (49 + 48 + 47 + 46 + 47) ) / 13 = 48.38462...

Thus, when in the air, releasing → on the fastest speed for six frames, then holding → together with Y for five frames allows for the most optimal (though very slight) boost compared to running normally. The pattern can be done multiple times before touching the ground, depending on the height of the jump. The only requirement is that every frame that releases → has Mario in the air, so jumps must be timed correctly to allow this.

Flying

Oscillating flight speed

When flying, pressing → accelerates Mario. However, once top speed is reached, the speed begins to oscillate, repeating its cycle of (51, 50, 49, 48, 47) every 5 frames. If → is released when this value is at its highest, Mario keeps that speed instead.

Fast air-catching

When flying, pressing ← for one frame, releasing it for one frame, and pressing it again on the third frame will catch air faster than the normal 11 frames required when holding ← continuously.

Keeping flight after exiting a pipe / entering a door

When Mario makes a jump while sprinting, the game sets the takeoff meter to 80, and decrements it by 1 each frame until it returns to zero. When this value is positive, a few things react differently. First off, the screen will scroll up to follow Mario. Secondly, if Mario is caped, he will be able to ascend until this value reaches zero, at which point he will catch air and start flying.

Since this value decrements at this fixed speed, it's possible to land immediately after taking off, jumping again without running to speed, and still catch air. This happens because the value is not reset when Mario lands on solid ground, and during the second jump, the value is still positive.

A useful application of this is possible due to the fact that this value does not decrement between rooms that are connected by pipes or doors. In this way, Mario can begin flying at the end of one room, enter a pipe or door, and simply jump in the next room to enter flight mode, as long as Mario reaches the peak of his jump before the takeoff meter hits zero.

Gain extra height during takeoff

Normally, liftoff should be kept as short as possible, because the sooner the liftoff phase ends, the sooner Mario can reach his top flying speed of 51. However, sometimes even higher heights are desired near takeoff.

To accomplish this, release Y after reaching top speed at the beginning of flight, and start holding Y again a bit later, during the fall. Because the takeoff meter is still above zero, Mario will re-gain flight, and depending on how far he's fallen, will gain quite a bit of height without any horizontal slowdown. This can also be used to avoid obstacles in Mario's flight path just after liftoff.

Turn around while flying

The X and Y buttons have the same function in this game. One must be held to remain flying, so pressing the other will cause Mario to spin. Sometimes the spin will not turn Mario around, but by varying the frame Mario spins on, this can be manipulated. Also, while spinning, you can control Mario's speed with ← and →. Keep in mind that Mario can only catch air if he is moving in the direction that he is facing.

Control flight speed during flight

When flying, pressing ← and B will slow Mario down without changing his animation. Press B repeatedly to slow Mario down more.

Diving quickly

When flying, putting Mario into diving animation will increase the amount of air he can catch. A way to take advantage of the added height without having to waste time diving is to press → every other frame. After five presses of forward, Mario will be in swoop animation very quickly, and can lift off very high. Also, you will still have fast flying because → was pressed for 5 frames, which cycles the speed back to its original value. The only speed loss will be the few frames that Mario's speed oscillated due to pressing →.

Diving quickly without slowdown

This trick only works when Mario is flying and facing left. Normally when diving, each frame that forward is pressed will affect Mario's horizontal speed. However, when flying to the left, pressing ← and → simultaneously will behave just like pressing ← only, except that horizontal speed is not affected. When traveling to the left, this means Mario can get into a dive animation without losing any speed. When traveling to the right (but facing left), Mario can enter a left-facing dive animation while still traveling to the right, which sets the next air-catch to be higher.

Spin jump flying

By using the A button to start flight instead of B, Mario will spin-jump very high, following the physics of initial flight while holding an item or riding Yoshi. An advantage of this is that Mario is still running full speed after landing. A disadvantage is that this technique is not horizontally faster than running. 6/5 can be done while using this technique to move faster horizontally.

Mario can get boosts in mid-air several times if A is released and pressed again after he begins to drop.

Vertical scrolling

When Mario is flying (after takeoff), the screen will not follow him upwards if he continues to catch air. This normally is not too much of a problem, but there also is a limit to how high Mario can go above the screen. There are three ways to get the screen to begin scrolling upwards:

  • Touch the ground for more than 1 frame
  • Snag the wall (but do not walljump)
  • Grab onto a rope/vine/fence

The last technique has the advantage of keeping flight after jumping off.

Fly stuck to the ceiling

If Mario can catch air very close to the ceiling, continue holding ← and Mario will stick to the ceiling, flying along it as long as the environment allows. This can only happen by either bouncing off an enemy to the ceiling, or by a lower ceiling that Mario can approach from above.

Flying invincibility

Whenever Mario gets hit while flying, he loses his flying state and is invincible for a short time (shorter than normal hit-invincibility). At this point, flying speed can be kept by immediately starting the hopping glitch. If flying again is required, Mario will have to run back up to sprinting speed.

Fly with an item

While flying, guide Mario into an item that can be carried, and he will automatically grab it. Although he'll no longer have the flying animation, flying physics are still maintained.

This technique can be extended to spinning while in mid-air to hit a Koopa with Mario's cape, and grabbing the resulting shell in mid-air without losing speed.

Release an item and remain flying

Releasing Y while carrying an item will drop it or kick it, depending on the object. Releasing Y during flight will normally cause Mario to stop flying, but there are certain points of flight that are safe to drop an item by releasing Y for one frame and also remain flying afterwards. Examples include the first few frames after catching air, and the very top height of an air-catch, as the animation frame changes.

Catch less air

By pressing X around the same frame that Mario catches air, the height of the arc will be substantially less. This can be useful in very specific circumstances, for example, when flying through a very small area. The exact frame of pressing X can vary depending upon unknown factors.

Keeping flight after climbing

When flying by a vine, chain, or fence, press ↑ to grab it. Hold Y when jumping off the object to continue flying. The direction you face after jumping off the vine is manipulatable by jumping off at different frames.

Jump or fly through inclines

right Stairs and other 45-degree inclines are a one way platform at an angle. The game decides if Mario should land on it based only on his vertical speed. So, if Mario runs into the stairs while moving upwards, the game will determine that he is passing through them in the correct direction. This can be done without a cape by running and spin-jumping at the right time. With a cape, it can be done by flying through at a more shallow angle than the stairs.

Rope Boost

When going past a rope, such as those found in Cheese Bridge Area or Way Cool, pressing ↑ for one frame gives Mario a horizontal boost without actually grabbing onto the rope. The amount of boost given depends on when Mario grabs the rope, but generally it's best to grab the rope as early as possible. Mario can also jump off of these ropes, but jumping too early can negate the boosting effect.

Fast climbing

Pressing ↑ and B together every other frame will climb vines and chains at the same speed as the initial ascent of flight. The drawback is that the screen does not begin following Mario. This can be circumvented by landing on solid ground for more than one frame while above the screen - then the game will scroll upward until it catches up to him, and he can continuously climb above it quickly.

Yoshi flight

Normally, flying while riding Yoshi is the same as flying while holding an item - just a long jump, and the same oscillating speeds as sprinting. However, it is possible to trick the game into applying regular flight physics while riding Yoshi. Whenever Mario lands on Yoshi during flight, Yoshi flight is started. However, in most cases, Yoshi touches the ground a couple frames later. If air is caught immediately after landing, or something else keeps Yoshi from touching the ground, the flight can continue.

One problem is that although pressing ← will catch air, it will also turn Yoshi and Mario around. In order to take advantage of the flight like normal, fast air-catching must be used, followed by turning back around. You can even get a dive (without the animation) to catch a large amount of air by using ← and → simultaneously, while facing left.

Ways to initiate Yoshi flight:

  • While flying under a ceiling on Yoshi, dismount in mid-air
  • Fly onto Yoshi and an enemy or shell at the same time
  • Fly onto Yoshi while he is placed on the very edge of a platform
  • Fly onto Yoshi while he is placed on a purple triangle[1] (the kind that let you run up the wall)

Movement in water

1/1 Swimming

Even Mario's swimming speed oscillates - between 15 and 17 (or 31 and 33 if carrying an item underwater). This can be abused by pressing back and forth when reaching the highest oscillation point. This way, swimming speed can be improved from (15 + 15 + 16 + 16 + 17) / 5 = 15.8 subpixels per frame, to (15 + 17) / 2 = 16 subpixels per frame. The technique works similarly when swimming with an item.

Corner Boost

When swimming underneath a square corner, swimming upward against it can push Mario forward, reaching a destination 2 frames sooner (per boost). This trick does not apply when carrying an item underwater, but it can be done simultaneously with 1/1 swimming.

Floating through upward slopes

By holding an item and floating up at an angle shallower than the angle of the slope, it can be passed through in the same way as an incline above water.

This can also be done without an item; however, it requires greater precision, and can only be done on every 16-pixel "block" boundary of the slope.

Going through solid objects

Passing through solid yellow blocks (Smashola)

right This is a strange glitch that lets Mario move very rapidly downwards though the solid yellow blocks that spin. When his cape hits the blocks at his side, they begin to spin. However, the game only allows 4 spinning blocks at once in memory, so when a fifth block is caused to start spinning, it immediately stops the first. By placing Mario over the block that stops, the game will start to push him downwards at a very fast rate. The glitch can continue itself in a domino-effect. As Mario moves downwards, he's still spinning, which causes new blocks to start spinning, which stops others, and the glitch continues.

While doing this glitch, Mario is considered overlapping with the blocks, so in addition to moving down quickly, he will move to the left slowly as well. Also, if Mario goes too far below the screen, he can die.

Pass through floors

In very specific instances, ducking in a space that is too small for full-size Mario and spin-jumping can push Mario through the floor. See Valley of Bowser 2 for an example of this.

Faster floating speed

Pressing ← and → simultaneously while Mario has a P-Balloon or is riding a Lakitu cloud will send him to the right oscillating at speeds much faster than the normal speed of travel for these objects (52, 51, 50, ..., 38, 37, 36).

This form of travel will partially ignore many barriers, and so it can be used to go through some solid objects.

In a cloud, Mario can jump out at any time, so a speed of 52 can be achieved and kept using the hopping glitch.

Survive underneath stompers

In some castles, it's possible to be smashed by a "stomper" and not take damage. As the stomper lowers onto Mario, alternate between pressing A and B every frame, and Mario will be in a constant state of jumping without being hit.

Item abuse

Jump off a P-Switch

right By jumping at the exact frame Mario lands on a P-Switch, it can be used as a platform to jump off. Note that the Y button cannot be held on this frame - otherwise, Mario will just pick up the P-Switch again. Because of that, either the P-meter must be recharged after landing, or the jump should be followed by the hopping glitch.

Land on a midair P-switch

When dropping a P-switch, it will travel with the same horizontal speed that Mario does. To land on it, Mario must slow down a bit before releasing it, and then, regain the lost speed to catch up. The best way to do this is by dropping the P-switch at a low point of Mario's oscillating sprinting speed, and then using the high point of the oscillation to catch up to it in mid-air.

Note: When dropping the P-Switch, it must be dropped, not kicked. This is done by not holding → when releasing Y.

Springboard clipping abuse

When Mario jumps on a springboard to compress it, the game ignores most kill triggers, including walls. In addition to this, Mario will remain "stuck" to the spring while it is compressing. With these properties, Mario can go through solid objects by throwing a springboard in the air, and jumping on it as it falls past a corner.

Springboard jumping abuse with Yoshi[2]

If Yoshi eats a springboard on the same frame he steps on it, he will soar upwards very fast, ignoring most boundaries. The speed and duration of of takeoff can be tweaked with the ↑ and B buttons.

Keyjumping

right The key is a unique object - it can be stood on, and it cannot be destroyed. Because of these two properties, it can be jumped off of, and also carried with in the same jump. When near a wall, this process can be repeated:

  1. Jump with the key.
  2. Drop the key near the peak of the jump (but not at the very peak).
  3. Land on the key in mid-air (without holding Y).
  4. Jump off of the key, and start holding Y on the same frame.
  5. You will now have jumped in mid-air and be holding the key. Repeat.

By this process, walls can be scaled and jumping can pretty much go anywhere, as long as a key is handy. Note that if the key has too much downward momentum, it can be jumped off of, but not carried at the same time.

Using a key to enter mid-air pipes

The key can be used as a temporary platform to fool the game into thinking that there is ground near the pipe, and enter it in mid-air. It's also possible to bring the key with you through the pipe by holding Y on the frame before heading into the pipe.

Using a key to pass through invisible coin blocks

By standing on the key as it bounces, the height can lift Mario up far enough to jump above invisible coin blocks that would otherwise appear when jumped from the ground.

Hit a question block while moving downwards

If Mario passes though the corner of a question block enough, the game will think he is far enough inside of it that it gets hit and releases its contents.

Duplicating question blocks

By throwing an enemy or object at a question block very close to it, a question block can be duplicated near it, unveiling the item, leaving the original block untouched. This can be done to either side of the block, above it, or above-diagonally to either side.

New items from old blocks

The game differentiates certain items by the block's horizontal position in the level. For example, blue P-switches and gray P-switches are actually the same object in the game, but determined by an odd/even horizontal position of the question block which contains it. Thus, by duplicating a block to the side with a p-switch inside, it will give a P-switch of the other color.

An interesting item-group abused by this trick is the group which contains keys, p-balloons, and yoshi wings. See Super Demo World's Crystal Star World level in the short run for an example of this.

Yoshi Wings ↔ P-Balloon ↔ Shell ↔ Key ↔ Yoshi Wings

Other stuff

Platform Boost

Horizontal boosts can be achieved from rotating platforms, such as the ones found in Donut Plains 3 and Star World 4. Hopping onto the platform will boost Mario to the left or right a bit as the game places him fully on the platform. The amount of distance boosted depends on the exact positioning of the platform and how it is jumped onto.

Walljumping

Walljumping happens when Mario jumps towards a wall, and his foot catches the wall, stops his falling speed, and allows him to jump again in mid-air. In order to pull off a walljump, Mario needs at least a speed of 35 going toward a wall, and must run into the wall at exactly a block boundary (every 16 pixels). If Mario "catches" the wall, then conditions are good for a walljump - simply press jump a couple frames before he snags it.

The smallest variations in speed and position during the jump onto the wall can affect whether or not this works correctly. Keep trying!

Entering pipes without ground

By "catching" the wall at the right spot, the same way the wall is caught when performing a walljump, the game treats that state as Mario standing on solid ground. If this is done near a pipe that can be entered, but doesn't normally have ground below it (the higher pipe in Gnarly, for example), the pipe can be entered in mid-air.

Fadeout lag

Although still not completely understood, some things are now known about the lag during the end of levels.

There are three different kinds of fadeout. The first is after completing a normal level, when the black circle closes around Mario. The amount of lag here is based on Mario's score. The general pattern seems to be: "The more digits below 4, the less lag". By poking zero into the 2-byte RAM address 7E0F34, the score will be zero, and the lag given is the best that the particular exit can get.

The second is after completing a boss level. This is still score dependent, but a pattern hasn't been found, although it is definitely similar to that of normal exits.

The third is a secret exit. This depends on two things: Mario's score, and the sprites on-screen (especially the ones around the edge of the keyhole at its largest position).

Useful memory addresses

Address Meaning
7E007B (1-byte signed) Horizontal velocity[3]
7E007D (1-byte signed) Vertical velocity
7E0094 (2-byte) Horizontal position
7E13DA (1-byte) Horizontal sub-pixel
7E0096 (2-byte) Vertical position
7E13DC (1-byte) Vertical sub-pixel
7E13E4 (1-byte) P-meter
7E149F (1-byte) Takeoff Meter
7E01F2 (1-byte) In-level lag indicator[4]
7E0F34 (2-byte) Score

Quick copy-and-paste for Gocha's SNES9x memory viewer:

7E13E4,1u,P-meter
7E149F,1u,Takeoff Meter
---
7E007B,1s,X Velocity
7E0094,2x,X Position
7E13DA,1x,X SubPixel
---
7E007D,1s,Y Velocity
7E0096,2x,Y Position
7E13DC,1x,Y SubPixel
---
7E01F2,1u,Lag Indicator
7E0F34,2u,Score

Footnotes

[1]: skamastaG says these look like watermelons.
[2]: This trick can also be referred to as "Dinosoar" (Dino-soar, hyphen optional). It's a play on words. - JXQ
[3]: Notice that this value oscillates - this is the basis for tricks such as the hopping glitch.
[4]: This value changes from its default value (usually 69) when the game lags.


See also

- Game Resources - we have trick collection pages for other games too!

Get Firefox!SuperMarioWorldTricks last edited by JXQ on 2008-02-12 15:22:43
Page info and history | Latest diff | List referrers