Super Mario Bros.
|Super Mario Bros.|
This game has a bugs page
This game has a prerelease article
Super Mario Bros. was, and still is, probably the most well-known and biggest selling NES platformer ever, especially since it was included with most NES units either by itself or with Duck Hunt. This game cemented Mario as the most famous plumber to grace televisions, with compelling gameplay, catchy music, and good graphics. It's so ubiquitous, people can't get rid of these carts once they have them.
- 1 Unused Music
- 2 Unused Objects
- 3 Unused Firebar Type
- 4 Unused Spiny Egg Behavior
- 5 Unused Timer Setting
- 6 Duplicated Scroll Stop Object
- 7 Unused Pointer
- 8 Unused Variable
- 9 Unused Pipe Behavior
- 10 Oddities
- 11 Regional Differences
An alternate "Game Over" theme with different, plunkier sounding instruments.
A "hurry up!" variation of the short clip that is played when Mario enters an underground or water level (such as World 1-2, 2-2, etc.). As the timer is reset between levels, this is never used.
An object that Mario can climb up or down like a vine. It makes a "buzzing" sound as you climb, as though Mario is repeatedly hitting his head on something. It can still be placed in-game with a level editor. Although it appears as a brown flagpole ball, the actual 16×16 metatile that is used is unique to this object.
Unused Firebar Type
Enemy object 1E is a short Firebar that rotates counterclockwise quickly. However, unlike its clockwise counterpart 1C (used only in World 5-4), this type is never used in any valid levels.
Unlike most invalid enemies (such as glitch Firebars 20, 21, and 22), this type has a valid entry in the setting table:
FirebarSpinSpdData: .db $28, $38, $28, $38, $28 FirebarSpinDirData: .db $00, $00, $10, $10, $00
The settings are stored in this order: Clockwise (1B), Speedy Clockwise (1C), Counterclockwise (1D), Speedy Counterclockwise (1E), and Long Firebar (1F). Firebar (1E) has both the faster speed ($38) and counterclockwise rotation ($10) programmed in.
This firebar type also exists in the Game Boy Color remake.
Unused Spiny Egg Behavior
The Spiny eggs are thrown by Lakitu in a simple way, with no horizontal movement whatsoever. However, this is not the intended behavior; it's actually the result of a bug! The eggs are supposed to be thrown out relative to the player's speed, Lakitu's speed, the player's position, and a pseudo-random value, as well as bounce off of any blocks or walls that they hit on the way down. The following patch will fix the Spiny egg bug:
|Download Spiny Egg Speed Patch
File: SMBSpinyEggPatch.ips (25 B) (info)
This patch is intended for the NTSC version of the game. The Bugs page has more information on the nature of this bug.
Unused Timer Setting
The upper 2 bits of first level header setting byte determines the starting timer.
The timer starts at 200 if this setting is set to 3 (11xxxxxx), though no valid level actually uses it.
Likewise, the timer starts at 000 (causes instant death on normal levels) if this setting is set to 0 (00xxxxxx). While this setting is used by intros (such as the beginning of World 1-2), the game doesn't actually use the setting, since it completely disables the timer in these levels.
Duplicated Scroll Stop Object
There are two identical scroll stop objects: 46 and 47. Only 47 is used by the game's valid levels.
Map 01 (Worlds 2-2 and 7-2) has a third level pointer for World 3, which leads to the same place as the normal World 2 and 7 level pointers.
RAM address 03F0 keeps track of the number of blocks hit, though no routine ever reads the value stored here.
Unused Pipe Behavior
L-shaped pipes (used for the beginning of underground and underwater levels) are enterable from the top like a regular pipe. However, since Mario automatically enters the side of the pipe, this behavior goes unused.
However, in the Japanese Super Mario Bros. 2, an L-shaped pipe appears in World 9-3, and it is possible to enter this pipe from the top.
The bricks and Bowser's bridge may have each used four unique tiles at some point in development, judging by the arrangement of existing tiles in the CHR data. The second and fourth tiles in each highlighted group are pieces of the block behind the title logo.
Although Bloopers normally appear only in water levels, they can be placed in non-water levels just fine and will award a whopping 1,000 points when stomped. Most other "impossible" ways to kill enemies, like hitting a Podoboo or Bowser with a Starman, only award the default 200 points, though Podoboos also have the stomp code defined.
Given that Bloopers appear in non-water levels (such as World 1-3) in the Japanese Super Mario Bros. 2 and award 1,000 points, this behavior was likely intended all along.
there's more, check out this diff of the SMB1 disassembly for details. Also add screenshots.
The PAL version mostly had some adaptions to the slower refresh rate compared to NTSC, but beyond that it also had a few bugfixes.
Just like in Vs. Super Mario Bros. and Super Mario Bros. 2, in all underwater areas (Worlds 2-2 and 7-2 plus the underwater sections of 5-2, 6-2, and 8-4), a block was added over the exit pipe to close the one-tile-high gap. In the NTSC version, it is possible to clip into that gap in Super/Fire form and get stuck in the wall with no way out.
- In World 8-2, the starting positions of the Koopa Paratroopas were changed.
- The NTSC version had a bug where if a lot of enemies were on-screen, the Springboard sprite could load into a piece of memory normally used to load powerups or the flag at the end of the level, allowing these to overwrite each other. The PAL version added a check to prevent this from happening.
- Bloopers can now get closer vertically.
- Originally in the NTSC version the branch if enemy object would add 12 pixels to the player's vertical position. In the PAL version, it decides whether Mario stomped or got hit depending on the enemy branch if enemy object.