From SMWiki
Jump to: navigation, search

Sprite number(s)



Normal sprite

Graphics file(s)

GFX01 (SP2)



Mario about to put a key into the keyhole of Donut Plains 1.
A keyhole ends the level and activates the secret exit when a key is carried into it. It can also be triggered if you are riding a Yoshi, the Yoshi has a key in its mouth, and you walk into it. Not all levels in Super Mario World have keyholes; some that do are Donut Plains 1 and 2, Vanilla Dome 1 and 2, Forest of Illusion 3, Chocolate Island 2, and Valley of Bowser 4. The keyhole is sprite E, and the key is sprite 80.


  • There is also an interesting glitch where in one of the Forest of Illusion levels. If you have the key in Yoshi's mouth, and you stand right above the keyhole, when the time up comes, you will go up, then fall down onto the keyhole.
  • Another glitch, while it is not abusable, is a set of two actions that may take place while the "keyhole expansion" is taking place. The first is while riding a Yoshi with a key in its mouth, you can spit the key out, leaving it frozen in place in the foreground of Yoshi's head until the keyhole recloses. The second glitch, while pointless and serves no purpose whatsoever, is that you can duck as many times as you want while on Yoshi, before the keyhole recloses. Both of these glitches are cool, and otherwise useless while playing.
  • It is possible to jump infinitely with a key, cape, and wall, while fluttering, hold the key and hug the wall while falling, then throw the key to the wall and if done correctly, Mario will be able to jump up and hold the key at the same time.


  • The keyhole expansion and shrinking uses windowing HDMA to achieve the effect.

Related Addresses

ROM Addresses
PC SNES Description
x04D12 $00:CB12 Opening window data. x4DA3 - Change 4B to 49 to fix a misplaced tile on the keyhole "iris in" effect.
x0E3D1 $01:E1D1 Sprite that can unlock keyholes in its stunned status (Default is 80: Key)
x0E411 $01:E211 Keyhole shrinking timer.
x0E416 $01:E216 Keyhole music
x0E451 $01:E251 Top tile of keyhole
x0E456 $01:E256 Bottom tile of keyhole
x0E45B $01:E25B Keyhole palette/GFX page

RAM Addresses
SNES Description
$7E:04A0 HDMA table for windowing effects (keyhole, level end, etc.)
$7E:1433 Scaling factor of the growing circle before the Titlescreen starts.

Starts at 0, circle gets bigger when the value increases. Loads titlescreen when value becomes #$F0 or higher. Also used for the keyhole.

$7E:1434 Set to #$30 to end level via keyhole
$7E:1435 Keyhole growing/shrinking flag.
$7E:1436 Keyhole X position
$7E:1437 Keyhole Y position
Personal tools