YTread Logo
YTread Logo

Super Mario World - Level End Glitches

Jun 09, 2021
There are three major

glitches

in Super Mario World that are used in speed races to complete

level

s faster. They are: creating Yoshi's wings, spawning an invisible Koopa Kid boss, and collecting an orb with a question mark in the inventory. Each of these

glitches

allows the player to end a

level

prematurely, and they all work in their own way. Yoshi can grow wings by holding a blue shell in his mouth, but there are some blocks in the game that contain special wings that transport Mario and Yoshi to an extra room and finish the level. There are only three of these blocks in the game, but using block duplication, they can be created in many other different levels.
super mario world   level end glitches
Block duplication is a technical issue that occurs due to a discrepancy between which tile is hit by an item and which tile should have been activated. When a tile is activated, it is deleted and a sprite version of the block is created in its place. This is responsible for the crash animation and generating the element contained within the block. Then, when it returns to its neutral position, it is removed and another tile, usually a brown block, is placed in its place. When the tile it collides with and the tile it activates are different, this results in the block being duplicated, as the original is never removed.
super mario world   level end glitches

More Interesting Facts About,

super mario world level end glitches...

Most sprites in the game have a position that determines their location and a clipping box that determines their collision with tiles such as the ground and blocks. This clipping box can be moved from the position of the object; we will show it with a red box. The green dot marks the actual position of the object. Due to a programming oversight, the coordinate used to determine which tile will be activated is a combination of the object's position and its clipping box. The Y coordinate is strictly the Y position of the sprite, but the X coordinate is the horizontal center of the sprite's clipping box.
super mario world   level end glitches
In this example, which is used with most transportable elements, the resulting coordinate, marked with the blue dot, is actually floating above the object's clipping box. If this coordinate is not within the boundaries of the tile that triggered the collision, the block will be duplicated on the tile where the coordinate is located. In the horizontal case, sprites that are inside a solid slab are ejected outwards so they don't get stuck. This can cause the detection coordinate to slip outside the tile boundaries before the block activation is handled. In the vertical case, if the collision is high enough on the tile, the clipping box may be inside the tile, but the detection coordinate may be above the tile.
super mario world   level end glitches
This can be easily done by throwing an element upwards inside a block so that the block is duplicated upwards. Both events can occur simultaneously, which will cause the block to duplicate diagonally up and to the sides. This may seem pretty useless for Yoshi's wing block, as having more than one in a level isn't very useful at all. However, to decrease the number of unique items in the game, right? Super Mario World blocks contain different elements depending on their location in the level, more specifically their with a blue or gray P switch, a note pad with a flower, feather, or fire star, and a ? lock with a key, Yoshi's wings, P balloon or Koopa shell.
Duplicating any of these blocks horizontally will produce the previous or next item in the series. For example, duplicating a vine block on the left will produce a 1-up mushroom, and duplicating a note block with a star on the right will produce a fire flower. The most important thing for us is that duplicating a key block to the right will produce Yoshi wings, and duplicating a P balloon block to the left will also produce wings. This can be used on six extra levels, bringing the total to 9. Although it's actually 8, since the P balloon in Donut Secret 2 is on a sublevel, which breaks the transition of the wings so the level becomes unbeatable.
It doesn't stop there. Let's talk about Dragon Coins. Dragon Coins are the large collectible coins that take up two tokens. If Mario touches half of the coin, the other side will also be removed. The Dragon Coins tile IDs are $002D and $002E for the top and bottom respectively. To remove tiles when Mario touches them, the bottom byte is changed to $25, resulting in $0025, which is a completely blank tile. The top byte never changes! It makes sense, since the top byte is already $00, why bother rewriting zero again? We can exploit this property by duplicating a block with an ID of $0100 or higher on top of one of the coin halves and collecting the other half.
This will result in a tile being created with an ID of $0125, which happens to be the ? Lock with the key, wings, P balloon and shell. The block is invisible at first, as a blank tile was expected to be created, but if the tile is reloaded by moving it off-screen, it will show its true shape. This block can then be activated or duplicated to create the Yoshi wings we are looking for. Using the technique, another 20 levels can be completed with Yoshi's wings. Only a few of them are faster than completing the level normally and at the same time easy to execute, like Vanilla Dome 1 for example.
Some of them require duplicating tons of blocks throughout the level, like in Yoshi's Island 1. And some of them are incredibly difficult to achieve, even with emulator tools, like Butter Bridge 1. Here's a tool-assisted movie recorded by Bruno Visnadi who abuses the flight mechanic of Mario's cape to duplicate a bunch of multi-coin blocks over Dragon Coin in the air. Sprite number $29 is the Koopaling sprite. He actually drives all seven different Koopalings; Similar to blocks with different elements, it initializes a different boss depending on the Y position of the sprite. Starting at Y coordinate 0 and increasing, handle Morton, Roy, Ludwig, Iggy, Larry, Lemmy, and Wendy Koopa.
By using a couple of glitches, this sprite can be generated arbitrarily, skipping the initialization process. What's left is an invisible, glitchy boss that can be killed with fireballs to end the level prematurely. Before describing what's going on, we need to know how Super Mario World handles which enemies are currently charged. To do this, allocate memory to load up to 12 sprites simultaneously. When a new object needs to be loaded into memory, an empty slot is searched and if one is found, all the properties of the object will be loaded into that slot. Conventionally, slots are numbered 0 to 11 or 0 to B in hexadecimal.
Here you can see each sprite labeled with its slot number. When Yoshi grabs an enemy, its slot number is stored with Yoshi's data to indicate whether it is currently on Yoshi's tongue or in Yoshi's mouth. Additionally, the licked object will place its own flag for the same purpose. Then, when Yoshi swallows or spits out the sprite, Yoshi's data is replaced with -1 to indicate that there is no longer anything stuck to his tongue. There is one case where this value is not updated with -1, and that is when an enemy comes out of Yoshi's tongue upon taking damage while he licks it.
This results in transportable sprites retaining some strange properties; for example, Koopa's projectiles will simply fall to the ground when kicked. The next time Yoshi sticks out his tongue, this sprite space reference will be correctly updated with -1 until another sprite gets caught in his tongue. Because of this, there is no inconsistency and the bond between Yoshi and the goblin attached to him is not completely broken. However, there is a way to completely destroy this bond between the two, and that is to use the doubletongue error. When the player presses X or Y to stick his tongue out at Yoshi, Mario's animation timer is set to 18 and decrements once every active running frame.
When this value is 18, Mario removes his hand from it. At age 16, Yoshi's animation timer is set to 6; at 12, Mario hits Yoshi in the back of the head; and at 0, he removes his hand. Yoshi's animation timer is used to show the face he makes before Mario hits him in the head; decreases once in each frame. Under continuously active execution, this is a flawless system. The problem is that there are in-game events that pause the execution of certain items without actually pausing the entire game. The best example of this is when Mario takes a power-up that changes his appearance.
Mario's animation timer in particular does not decrease during the period when the game is frozen, but Yoshi's does. If Mario's animation timer is 16 when this pause occurs, Yoshi's animation timer will be set to 6 every frame until the game resumes. This anomaly will cause Yoshi to stick out his tongue twice in a row, even though the player only pressed the button once. This happens even if Yoshi can't swallow something he picked up with his first tongue. For example, if you grab a shell with your first tongue, your second tongue will still appear even if Yoshi's mouth is full.
This resets the sprite slot that Yoshi has in his tongue to -1, and he now has a null sprite in his mouth. If you combine this bug with the food cancellation, the end result is being able to have a goblin in Yoshi's mouth and not in Yoshi's mouth at the same time; the bond between the two has been broken. The goblin can be spat out as if it were still in his mouth and can be killed as if it were not in his mouth. In fact, if you kill the sprite in his mouth, the sprite slot is still considered to be in Yoshi's mouth.
This means that another sprite can appear in that slot and enter the same limbo state as the original sprite. The last thing you need to know before putting together the trick to kill the boss is how the sprites use what is called their stun timer. The stun timer is a generic timer that any object can use for any purpose; It will automatically be reduced once every one or two frames. The name stun timer comes from its most common use: it dictates how long a Koopa will remain stunned inside its shell before jumping. In fact, this is the default action for any sprite when it is transportable.
When a transportable item expires its stun timer, another item spawns. In this case, a shellless Koopa is spawned from a shell. The Koopas are the only sprites to use this feature in practice; Other transportable sprites that have non-zero stun timers, such as Goombas and Buzzy Beetles, override this mechanic just so they can wake up. Any other object that may be transportable and may have its stun timer set to a non-zero value will spawn a different object. For example, P switches are usually transportable and their stun timer is set when Mario steps on them to determine how much time until they disappear.
By using Yoshi to eat the P-switch before he disappears, the P-switch will remain deflated with its stun timer set. The object that is generated is determined by an out-of-bounds indexed table. The only expected values ​​are the shell-less Koopas in four different colors. So there are three requirements for a sprite to be generated from another: 1) it cannot be one of these sprites, 2) it must have its stun timer set, and 3) it must be transportable. Number 1 is easy to satisfy, but what about the other two? For number 2, we can use another use of the stun timer. It turns out that this timer is also used to determine how long the smoke cloud will persist after killing an enemy with a spin jump or Yoshi.
The problem with this method is that the slot is still considered occupied until the smoke cloud completely disappears and the timer is at zero. Using the doubletongue error we can avoid this restriction, as you will see in a moment. And then for number 3, we can use Yoshi to force the sprites to be transportable, even if they weren't meant to be. Any object that comes out of Yoshi's mouth can be put into a transportable or kicked state by spitting it out while crouching or standing, respectively. For example, here is a mistake that you yourself may have made by accident.
When all sprite slots are full, the target ribbon sprite will be forced into an occupied slot no matter what. If the overriding object turns out to be the object in Yoshi's mouth, the goal ribbon will be placed in Yoshi's mouth automatically. The sprite can then be kicked or transported by spitting it out. The sprite graphic looks quite buggy as it was never intended to be in any of these states. If we did this bug and at the same time set his stun timer, we would get a sprite that would spawn like the P-switch and Cheep Cheep.
In this case, the goal tape generates a red Parakoopa. Combining these three glitches, Double Tongue, Broken Yoshi's Tongue Link, and Involuntary Stun Spawn, a Koopaling Boss Goblin can be spawned by stunning a Sliding Blue Koopa. Note thatIn this example, the Sliding Blue Koopa will appear in slot number 9. So we will try to unbind Yoshi's tongue and have it persist in slot 9. The first step is to activate the double tongue bug. We'll do this by dropping this fire flower from the item box and sticking out Yoshi's tongue while touching it. To break the bond with Yoshi's tongue, a non-swallowable object must be grabbed with the first tongue.
Koopa's first shell will work perfectly. By throwing it into the air like this, it will be easier to grab it after jumping to the fire flower. The second tongue must then touch an object that is in slot 9 for that slot to be considered to be in Yoshi's mouth. In this setup, the blue Koopa is in slot 9, so the second tongue must reach over the red Koopa and grab the blue Koopa. Then, to cancel this tongue grab, we run into the red Koopa in front of Mario, so the blue Koopa falls off Yoshi's tongue. At this point, the blue Koopa is in that limbo state and is inside and not in Yoshi's mouth.
We can spit it out remotely or kill the Koopa by stomping on it. Now there is nothing on the screen that is in slot 9, but Yoshi still has it in his mouth. If we spit out whatever is in Yoshi's mouth now, the blue Koopa would revive, or at least the shell of him. Instead of doing that, let's go back to the left and respawn the sliding blue Koopa. It appears in slot 9, so it is now the sprite in limbo. Just like in the goal tape example, we can spit it out in a kicked or transportable state and make a glitchy mess.
However, to spawn the unwanted sprite, the Koopa's stun timer must be set before spitting it out. We can do this by stomping on it first and creating a cloud of white smoke, which sets the stun timer for this slot. See, using the smoke puff works in this case since the sprite being killed and the sprite coming out of Yoshi's mouth are in the same slot, thanks to the broken link. This makes the Doubletongue Bug a very easy way to stun many goblins who should never have been stunned in the first place. Now, the Koopaling item is invisible since it was not initialized correctly, but works similarly to Morton, Ludwig, and Roy Koopa.
Jumping on him once will cause him to teleport off screen, so the best way to defeat him is to shoot him with 12 fireballs. This will trigger the defeated boss's fanfare and the level will be completed. This trick can be used on any level with a blue gliding Koopa; this includes Yoshi's Island 1, Groovy and Cookie Moutain. And by using unintentional spawning of stunned sprites, a slithering blue Koopa can be spawned in other levels and then stunned to spawn the Koopaling. Here's a Masterjun-assisted movie recording tool that does exactly that in Valley of Bowser 4. There's a special item at the end of the sunken ghost ship, and that's the green one. orb.
Tapping it will end the level immediately. It is possible to insert one of these orbs into the inventory box using an item swap bug and then drop it anywhere you want to end that level prematurely. In this context, a power-up is defined as a sprite that activates the subroutine that attempts to modify Mario's state. The only power-ups provided were mushrooms, fire flowers, cape feathers,

super

stars, and 1-ups. However, there are additional sprites that activate this routine that are not traditionally considered power-ups. These are the invisible solid sprites found at the end of Switch Palaces and all the Chargin' Chucks.
But why does it matter if they're technically power-ups if they don't change Mario's status when you touch them and you can't even eat them with Yoshi? The answer is that Yoshi can eat both sprites, or rather any sprite, by performing an item swap. When we talked about killing the boss, we saw what happened when an enemy was torn out of Yoshi's tongue by taking damage during the action. In this case, we'll see what happens when a goblin is completely removed from Yoshi's tongue before he can swallow it. The easiest way to demonstrate this is by eating a moving coin and quickly picking it up.
However, this error can be done in any way that makes the object disappear, such as moving it far enough from the screen. Let's look in slow motion. First, the coin is fixed on Yoshi's tongue. At this point the bidirectional link mentioned above is established. When Mario picks up the coin, he is removed and now there appears to be nothing on Yoshi's tongue. However, the bond is not broken until Yoshi swallows something, so the bond still exists. Although the coin no longer exists, that sprite slot is still attached to Yoshi's tongue. It's a different type of limbo state, where an elf can still exist and not exist at the same time; the difference here is that the sprite is on Yoshi's tongue instead of his mouth.
You can see this in action when Yoshi finally retracts his tongue completely and the coin is eaten again even though it no longer exists. Since the sprite slot that had the coin was empty, he simply took the attributes of whatever was last in that slot, which was the coin. This way, sprites that are removed when Mario touches them can be duplicated, as their effects activate when Mario touches them and when Yoshi eats them. Item swapping occurs when another item appears during the period of time when the item slot on Yoshi's tongue is empty. Since the link between the item and Yoshi's tongue is still active at this point, any item that appears in that particular slot will automatically adapt to Yoshi's tongue.
This applies to almost all normal sprites, meaning Yoshi can eat pretty much anything. Most sprites will only give Mario a coin when he swallows them, with the exception of power-ups, which will upgrade Mario to the appropriate status. And this brings us back to the Chargin' Chuck. Since these guys are technically power-ups, they will invoke the routine that updates Mario's status when consumed. The first thing this routine does is determine the current state combination for this execution instance, since the results depend on both Mario's current power-up state and the power-up that was collected. There are four possible states for Mario's power-up state and five intentional power-ups.
This results in 20 different combinations of the two. The routine is divided into two parts: updating Mario's power-up state and updating the contents of the item box. Each part contains a table of 20 entries that determines what action to take or what item to give in the item box. To update Mario's power-up state, these values ​​are treated as indexes in a table of pointers to subroutines that provide the appropriate power-up and set the appropriate animation. A value no less than 6 will result in a broken pointer that will likely crash the game if taken. For example, if the index of the original table is 20, which exceeds the length of the table by one, the index of the pointer will be #$38, resulting in a pointer to $1088, which contains no game code.
For the second part of the routine, the value in the second table is treated as the ID of the item that is included in the item box. The 20 integers in the table only include 0, 1, 2, and 4, no element, mushroom, fire flower, and feather, respectively. Again, if this table is indexed out of bounds, a garbage value will be read and an unrelated object will be placed in the items box. For example, if the index of the original table is 40, the value read will be #$38, which results in a Rex being placed in the element box. Now, since Chargin' Chucks are not taken into account in the state merge check, they will result in a bad index.
There are 8 different types of Chucks and 4 different Mario power-up states, so this results in 32 additional indexes that can be created that will exceed the table limits: 116 to 147. It turns out that an index of 135 will result in the green ? sphere that is placed in the element box and the subroutine located at $95C6 will be executed. This points to half a routine that deals with sprite-object interaction, but is able to return safely without failing. This rating can be created by eating a Clappin' Chuck while Mario has firepower. With the orb safely in the item box, you can take it wherever you want and drop it to finish the level immediately.
Other interesting item swaps include indexes 124 and 128 which will place a key in the item box and can be done with a Bouncin' or Whistlin' Chuck with little Mario. Index 116 will place Lakitu's cloud in the item box. This can be done by trading items from a regular Chargin' Chuck with little Mario. And if you trade the Chargin' Chuck with Big Mario, you'll get Index 117, which will put a Bullet Bill in reserve and give Mario invincibility. There are more ways to complete a level prematurely, such as spawning a Reznor boss and failing a message block to activate a palace of change, but they will be explained in a later video.
Feel free to support me on Patreon in the meantime! I'm a one-man team and work in publishing between my studies. Thanks for watching!

If you have any copyright issue, please Contact