• he/him

Avatar by @DrDubz.
Banner by one of Colin Jackson, Rick Lodge, Steve Noake, or David Severn from Bubsy in: Fractured Furry Tales for the Atari Jaguar.


rgmechex
@rgmechex

In my last video, I showed a list of all of the (intended) powerups in Super Mario World. These included the Super Mushroom, Fire Flower, Cape Feather, Starman, 1up mushroom and moving coin.

The powerups: mushroom, flower, star, feather, 1up, and coin The six standard "powerups".

These are indeed all of the intended powerups in the game, as per the definition I made in the video. What seems to be missing here? I got a handful of comments asking about the P-balloon and why it doesn't count. I completely forgot about it, since I know how it works and how it is not technically a powerup. So let's see what it actually is.

A P-balloon I think the consensus is that the "P" on everything stands for "power" so this is a Power Balloon. But not a powerup of course.

Despite being an item that temporarily changes Mario state (like the Starman giving invincibility), the P-balloon that makes Mario puffy for a short period of time does not act like a powerup according to the game's code. Instead, it is treated as a held object.

Yes, a held object, just like a Koopa shell, P-switch, key, etc.

The P-balloon is just an ordinary item, until Mario touches it, that is. At that point, it triggers the animation to make Mario puffy, but it doesn't get deleted or despawned. It stays loaded in memory, and in fact stays in Mario's hands while he has the effect. The P-balloon is just invisible at this time.

Puffy Mario holding a visible P-balloon This is what it would look like if the P-balloon was not made invisible while Mario was puffy.

This explains a few things about the P-balloon. You cannot grab an item while Mario is puffy. This is because he is technically already holding the P-balloon, and you can't pick up a second item if you're already holding one.

Puffy Mario struggling to grab a P-Switch It would be difficult to pick up an object half the size of your body if you couldn't touch your hands together, I guess.

You also will get an item via the goal post if you end the level while puffy. This is because any item held by Mario when he ends the level will turn into another item.

Puffy Mario beating a level, and receiving a Cape Feather as a reward I like to think that this wasn't actually intended, but during testing (which I'm sure this case actually happened), the developers decided to just keep it as is as a reward for beating the level before the P-balloon timer ran out.

Why is the P-balloon a held item while the Starman is a true powerup? Well, when Mario collects a Starman, a certain timer in memory gets set and counts down. This is the invincibility timer. This is what determines if Mario has invincibility or not. Once it decrements down to zero, Mario loses the status. It is the general high-level game logic that is responsible for checking this timer and giving Mario invincibility if he needs it. The Starman sprite has no purpose after it is collected, and therefore can be removed.

However, when it comes to the P-balloon, it's a different story. The code that is responsible for Mario's floaty controls, different graphics, and actually decrementing the P-balloon timer is found within the P-balloon sprite's code itself. Therefore, if the P-balloon despawns or is otherwise removed, Mario will instantly return to normal. Therefore, the P-balloon has to stick around while Mario is puffy, and can only be removed once the P-balloon timer hits zero.

Puffy Mario becoming normal Mario The P-Balloon is also responsible for this animation playing when the timer is about to run out.

The P-balloon is actually part of a family of sprites that all share the same code. These are the P-balloon, Yoshi wings, winged golden 1up, and key.

The flying items: P-Balloon, Wings, Winged 1up, and Key These sprites have IDs $7D through $80, all in a nice group.

All of these sprites, by default, float in a sinusoidal pattern, and slightly upward. This means that the key, by default, has wings. (This is why it has wings if you were to glitch it into your item box and then press select to release it.) The default state of the Yoshi wings is actually a winged red coin. Normally you only find these wings in a ? block, and when they are revealed, they are put into a state that makes them act like Yoshi wings instead. The flying red coin (worth 5 coins) and golden 1up are both unused in the final game.

The flying items' initial states (flying red coin and flying key) versus their normal states (plain wings and key) The golden mushroom is only worth a single 1up--maybe it was meant to be something else (or colored green) at some point?

There's also a bit of code that goes unnoticed regarding the Red Coin/Yoshi Wings sprite. The coin sprite has its palette cycle through a bunch of colors. However, it only does this if the sprite is in the Yoshi Wings state. And, when the sprite is in Yoshi Wings state, the coin object is hidden, so you can't actually see this happening. Makes you wonder if the Yoshi Wings item was originally going to be something else that had wings, and flashed like this!

A rainbow flying coin coming out of a ? block Here's what the wings sprite looks like if I force the coin to always show up!

Being in the Yoshi Wings state is also what causes this sprite to spawn sparkles, to make it look extra special.


You can support Retro Game Mechanics Explained on Patreon here! Any and all support is greatly appreciated!


You must log in to comment.

in reply to @rgmechex's post:

Speaking of the Winged Key, if I recall correctly, if you manage to glitch it into existence, or use external modifications that can force it to show up, touching it deals damage as if it was an enemy- do you happen to know what reason it's like that despite the non-winged key simply being a harmless, helpful solid object?

"Therefore, if the P-balloon despawns or is otherwise removed, Mario will instantly return to normal." This is not always the case. Depending how the P-Balloon is erased, you can end up in a state where you are still puffy but can't control yourself and just keep moving in whatever direction you were moving before it got erased. I believe there's a way to do this by overloading the slots with an item from a block, so that it overwrites the balloon you're "holding". Although I recall sometimes when you do this, it does cancel the balloon state instantly, and I'm not sure the exact conditions. You can also do this by collecting a P-Balloon that's on Yoshi's tongue and letting him swallow it.

Also fun fact, you can double grab with a P-Balloon and another item! Normally the condition for double-grabbing is to touch the item in the lower priority slot exactly one frame before the other item, but I think with the P-Balloon it has to be the one in the lower slot. Usually the P-Balloon would be in a higher slot.

One more fun thing, repeatedly screen scrolling can be used to decrement the P-Balloon timer faster!