Super Mario Bros. 3

From The Cutting Room Floor
Jump to: navigation, search
Featured article
Other languages:English 100% • ‎français 16%

Title Screen

Super Mario Bros. 3

Developer: Nintendo
Publisher: Nintendo
Platform: NES
Released in JP: October 23, 1988
Released in US: February 12, 1990
Released in EU: August 29, 1991


AreasIcon.png This game has unused areas.
EnemyIcon.png This game has unused enemies.
GraphicsIcon.png This game has unused graphics.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.


PrereleaseIcon.png This game has a prerelease article

Super Mario Bros. 3 is one of the best-selling games of all time, and with good reason. It also has plenty of unused material hidden within it.

Contents

Sub-Pages

SMB3Hammer7.png
Unused levels
16 levels only accessible by hacking.
SMB3ToadStatue.png
Unused graphics
Quite a bit packed in here.
Smb3 suit.png
Version differences
"Miss twice and your out!"
SMB3Bonus1.png
Unfinished bonus games
Bonus game data left in the ROM.

Developer Debug Leftovers

There are some leftover debug routines in the game, but none can be accessed without cheat devices or hacking.

Level Select and Debug Menu/Mode

The walls have eyes!

Game Genie code KKKZSPIU activates a level select and debug mode.

On the title screen:

  • Press Up or Down to select a world to start on.
  • Press A to increase the number of lives by 5 (a tile will change each time you press the button).
  • A + B + Down on Controller 2 warps you to the Princess' chamber at the end of the game.
  • A + B + Right warps you straight to the final curtain.

When you start a game, your item box will be filled with one of every item plus an extra Warp Whistle, and the remaining slots will be filled with P-Wings. During gameplay:

  • Press Select on Controller 1 to cycle through all of Mario's forms.
  • A / B + Select gives Mario a Kuribo's Shoe (it may look messed-up in some levels, but will otherwise work fine).

Additionally, you'll have infinite time – it will still tick, but Mario won't die once it runs out.

The menu shown in the picture was found elsewhere in the ROM and hacked into the title screen; it doesn't appear if you use the Game Genie code by itself. Apply this IPS patch to a Super Mario Bros. 3 ROM to see it for yourself.

Originally, it appears that this menu would have been accessible from the "1 PLAYER" / "2 PLAYER" selection menu if Player 2 was holding A + B. It is also possible that this served some other purpose, but the above menu would be the most likely candidate. See Disassembly source for PRG bank #24, search for "Title_Do1P2PMenu:" Interestingly, the button check is still there but the action it was supposed to perform was overwritten with a series of NOP (no operation) instructions, likely done just before release.

(Source: menu found by BMF54123; code created by David Wonn; disassembly by Southbird)

Disconnected Debug Leftovers

Even if you enable the debug mode above, there are a couple of leftover routines that remain inaccessible. These routines do not seem to pay attention to the aforementioned debug flag, so either the check is simply lost to time or these routines were hardwired to always work. The latter would make sense why they are disconnected from the source.

  • Free Movement Mode - Unclear how this would be accessed, but would allow you to use the D-Pad to move around the level (see disassembly source for PRG bank #0, search for "$C3EA").
  • Toggled Invincibility - Pressing Select would toggle whether you were completely invulnerable (see disassembly source for PRG bank #0, search for "$C91B"; this behavior could be easily restored by retargeting the JMP instruction or moving the Objects_HandleScrollAndUpdate label since this method would fall through into normal game code).
(Source: Southbird)

Unused 2P Level

A golden rainbow
A fourth 2P level, which has a large arc of coins and uses an otherwise unused block graphic. When a coin is collected, an incorrect tile appears in its place. There is in fact code related to this level that instigates a timer which expires and then decides that Mario lost the match. Presumably, the player who collected the most coins would win, but the code that would handle this isn't in the ROM.

(Source: Southbird)

Unused Objects

(Additional information: Southbird)

Object 00

Bank ID: ??
Object ID: 00
It has code that makes it move (up to a certain speed) based on Player input when the Player is "touching" it. What purpose this may have ever served is unclear. It may have just been used to test out collision.

Object 02

Bank ID: ??
Object ID: 02
This one is destroyed by its initialization routine if the Player is not standing on two of the same tile , otherwise it starts at a vertical height matching the Player +32 (roughly at Player's feet) and moves upward at some changing speed by peculiar logic.

Object 04

Bank ID: 00
Object ID: 04

Nice numbers
and letters.

Note: This is not how the object actually appears in-game. Image is for reference only.

A very odd object. The tiles that actually make up this object are no longer in the ROM, but it was supposed to use tiles B0-BF. It faces the Player upon initialization. If Mario/Luigi collides with this object, it will stick to him like a Micro-Goomba and will never come off, but it doesn't hinder his movement. It can be killed with a Koopa shell or Hammer.

Object 05

Bank ID: 00
Object ID: 05

More numbers
Not as many letters though

Note: This is not how the object actually appears in-game. Image is for reference only.

Another weird sprite. The tiles that actually make up this object are no longer in the ROM, but it was supposed to use tiles A0-A7. This object walks around like a normal enemy. At a certain point in its walk cycle, it will jump up to Mario/Luigi's Y position and then fall back down.

Interestingly, walking into it will bounce Mario/Luigi in the opposite direction. The only way to get damaged by this object is to let it fall on you. It can be destroyed with a Koopa shell or Hammer.

Object 0A

Bank ID: 00
Object ID: 0A

Who was the unfortunate Toad that got turned into this thing?

Note: This is the best fit for this object's graphics, but it may not be correct.

A simple stationary object that can be "pushed" by Mario/Luigi. Its collision detection doesn't seem to be complete, though, since it can be pushed into walls.

Object 1C

Bank ID: ??
Object ID: 1C
Probably the maybe most perplexing object, this causes something to fly off towards the Player, out into the sky. And where it started, a mushroom is glides along. The only thing I can think of is that this was going to be like one of those bushes in SMW where you run by them and a mushroom pops out, though the functionality is not nearly complete enough to be used that way.

Card Objects

Bank ID: 00
Object ID: 21 (Mushroom), 22 (Fire Flower), 23 (Star)

Electric Solitaire Porycard

Stationary object versions of the cards found at the end of each level! Collecting them will add the appropriate card to your inventory, but there's nothing in this object's code to handle when the card collected is the third card.

Getting to the goal with three of the same card won't trigger the 1-Up bonus. You still have to get the appropriate third card from the goal.

Peculiarly, this object calls a subroutine coined "Object_MoveAndReboundOffWall", (which would be a great function for just about every ground troop in the game!), but only this object actually calls it. But the object never moves.

Gold Cheep-Cheep

Bank ID: 00
Object ID: 88 (Single), D2 (Trio)

If it were in Mario Party, you would get 3 points for defeating it.

This Cheep-Cheep variant only appears in the seventh unused level. In that level, they always show up in groups of three (though sprite overload often keeps at least one from appearing), but a single enemy version is in the code.

It swims across the screen in a strange wavy pattern and is considerably faster than the standard red or green varieties.

Green Para-Beetle

Object ID: N/A

The speedy green!

This can only be spawned with the Para-Beetle Swarm object (see below). It flies faster than the Red Para-Beetle, but otherwise there's no difference between the two.

Bouncing Object

Bank ID: ??
Object ID: B3
A peculiar object that basically behaves similar to a Spiny Egg, but has glitched graphics. It can also curiously be "bounced" by a bounce block to turn around. Purpose unknown, maybe it was a rolling spike ball or something of that sort?

Para-Beetle Swarm

Bank ID: 00
Object ID: B7
A control object that will spawn Green and Red Para-Beetles on the left and right sides of the screen. It's used in the ninth and tenth unused levels.

Unused Level Palettes

Some level types have unused palettes. Not many, though.

Fortress

It's not easy being cut

Fortress palette #2 is a green version of the standard fortress color scheme.

Giant

In a big-ass Game Boy

Giant stage palette #2 uses shades of gray with blue water.

Plains

What an odd sky

Plains palette #1, featuring a sky with a pinkish hue.

Palette 2 (Used) Palette 6 (Unused)
Blue? Or blue-green?

Palette #6 is nearly identical to the used Palette #2. The only difference is that the blue rectangles are blue-green.

Stage Anomalies

There are a few stages with hidden foreground pieces.

Hidden Tile In-Game
A block!! Blocked off

A single brick is hidden behind the waterfall in World 4-1.

Hidden Tile In-Game
A cloud!! Clouded up?

A cloud appears behind the first slope in World 5-2.