If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!
This page is a good article.

Super Mario Bros.

From The Cutting Room Floor
Jump to navigation Jump to search
This page contains changes which are not marked for translation.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎中文(简体)‎ • ‎日本語 • ‎한국어

Title Screen

Super Mario Bros.

Developer: Nintendo
Publishers: Nintendo (JP/EU/AU/US/CA), Samurai (IN), Hyundai (KR)
Platforms: NES, Famicom Disk System
Released in JP: September 13, 1985 (Famicom), February 21, 1986 (FDS)
Released in US: October 18, 1985[1]
Released in EU: May 15, 1987
Released in AU: July 10, 1987
Released in KR: December 25, 1987


CodeIcon.png This game has unused code.
EnemyIcon.png This game has unused enemies.
ObjectIcon.png This game has unused objects.
GraphicsIcon.png This game has unused graphics.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.


PrereleaseIcon.png This game has a prerelease article
BugsIcon.png This game has a bugs page
DCIcon.png This game has a Data Crystal page

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.

A few of the unused elements in this game would later be used in the game’s sequel in Japan, which was functionally just a set of new levels for this game, with some minor tweaks and seriously jacked up difficulty.

See also: leaked development materials for the SNES port included in Super Mario All-Stars.

Sub-Pages

Read about prerelease information and/or media for this game.
Prerelease Info
Read about notable bugs and errors in this game.
Bugs

Unused Objects

Enemy 04

Enemy 04 has a green Koopa's sprite index 0c and palette index 01. It uses a stubbed-out initialization routine and normal enemy movement. In the leaked Super Mario All-Stars source code, red Koopas have commented-out code for turning into this enemy after getting stomped. (which means that red Koopa originally could be hit twice)

Unused Green Paratroopa

Enemy object 09 is a version of the green Koopa Paratroopa that simply walks in place due to a stubbed-out movement routine. It turns into a red Koopa Troopa when stomped, because the function for handling Paratroopa demotion doesn't take the unused enemy type into account. (This can be kicked btw)

In the SMAS source code, 09 is revealed to be a scrapped enemy with the internal name 'fly green', whose code was almost completely commented out. It appears to be an early version of the green Paratroopa.

A small fragment of code relating to its size remains in the final game.

Enemy 13

Enemy 13 is entirely dummied out, with stubbed initialization and movement functions, and the invalid value ff for both its sprite and palette indices. If forced to spawn it appears as an upside-down, scrambled Buzzy Beetle that turns into an intangible shell after being hit with a fireball, but this is a glitch not reflective of its intended behavior.

The SMAS source code reveals it to be another scrapped enemy with removed code. Its internal name is '-1 ( bakudan )', revealing it to be a scrapped version of the Spiny.

Object 19

Object 19 has an invalid sprite index f6 and palette index 02, which is used by red Koopas. Its initialization and behavior routines are stubbed out.

In the Super Mario All-Stars source code, this object is called 'bridge'.

Object 1A

Object 1A uses invalid sprite index fc and red palette index 02. Its initialization and behavior routines are stubbed out.

Unused Fire Bar Types

Enemy object 1E is a short Fire Bar that quickly rotates counterclockwise. This type is never used in any valid levels, however; its clockwise counterpart 1C is used only in World 5-4.

Unlike invalid Fire Bars 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). Fire Bar (1E) has both the faster speed ($38) and counterclockwise rotation ($10) programmed in.

This behavior was later used in World A-4 of the Japanese Super Mario Bros. 2. It would later return in the Game Boy Color remake, where it remains unused due to the remake's version of A-4 being inaccessible.

Objects 20, 21, and 22 use the Fire Bar behavior routine, but have stubbed out initialization functions and no entries in the speed and rotation direction tables seen above. If the pattern used by the short Fire Bars was to be repeated, then 20 would have been a fast clockwise long Fire Bar, 21 slow counterclockwise long and 22 fast counterclockwise long.

(Source: doppelganger's SMBDis (Setting Table))

Object 23

Object 23 has stubbed-out initialization and behavior routines.

The Super Mario All-Stars source code calls this object 'loop elevator' and features a significant amount of commented-out code that when restored reveals this object's original intended behavior as a lift that moves in a counterclockwise circle.

Tree Branch

SuperMarioBrosBrownBall.png

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. According to the leftover source code from the All-Stars version this object is internally known as Wood-3, meaning that it was meant to be attached to the trees located in the Tree levels.

Objects 3D and 3E

Enemy objects 3D and 3E consist of two and three green Koopa Troopas, respectively, and are placed four tiles higher compared to their used counterparts. The equivalent objects for Goombas are used in a few levels, but these aren't used anywhere. Both of these objects would later be used in the Japanese Super Mario Bros. 2.

Unused Timer Setting

The upper 2 bits of the first level header setting byte determines the starting timer.

Value Bits Starting Timer
0 00xxxxxx 000
1 01xxxxxx 400
2 10xxxxxx 300
3 11xxxxxx 200

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.

This setting is also used in cloud bonuses and World 4-2's vine warp zone, however the current level's timer is still valid there, so this setting goes ineffective.

Coin rooms (such as the one in World 1-1), water bonus (World 5-2) and World 8-4's water portion, however, use setting 1.

Unused Spiny Egg Behavior

The Spiny eggs are thrown by Lakitu in a simple straight-down way, with no horizontal movement whatsoever. However, this is not the intended behavior, and is 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. This behavior is left unchanged in the Japanese Super Mario Bros. 2, so the same fixes can be applied.

The following patch will fix the bug:

Download.png Download Spiny Egg Speed Patch
File: SMBSpinyEggPatch.ips (25 B) (info)


This patch is intended for the Japan/US version of the game. The Bugs page has more information on the nature of this bug.

In Super Mario Maker this behavior has been restored and the Spiny eggs are thrown as though this patch is applied.


(Source: doppelganger's SMBDis (Spiny egg function), GoldS (patch))

Unused Pipe Behavior

The L-shaped pipes used in the intro leading to underground and underwater levels can be entered from the top like a regular pipe. However, it is impossible to experience that behavior during regular gameplay, since Mario automatically enters the side of the pipe, and as such this behavior goes unused.

SMB2FDSWorld9-3.png

An L-shaped pipe appears in World 9-3 of the Japanese Super Mario Bros. 2, and it is possible to enter this pipe from the top.

Unused Tiles

SMB-UnusedTile.png

A vertical string that was meant to be used for the pulley lifts, based on its location in the CHR data. The final game uses graphics from the flagpole instead.

SMB-UnusedF.png SMB-UnusedJ.png SMB-UnusedX.png

The letters F, J, and X are in the rom, but they are never used. However, the F is used as part of the ending in the sequel albeit edited with a dropshadow.

Oddities

Unused Variable

RAM address 03F0 keeps track of the number of blocks hit, though no routine ever reads the value stored here.

Unused Pointer

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.

Unused World 7-1 Enemy Data

Three of the Koopa Paratroopas and one of the first two Hammer Bros. are set to only appear after World 5-3. This suggests that there was meant to be an easier version of this level at one point, as is the case with some other levels.

Duplicated Scroll Stop Object

There are two identical scroll stop objects: 46 and 47. In the original source code, these are respectively labeled "SCRON" and "SCROFF", but they're connected to the same code, and only the latter is used by the game's levels.

Removed Tiles

SuperMarioBrosBGTiles.png

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.

Piranha Plant's Stem Animation

The Piranha Plants' heads have a two frame animation. Interestingly, this also applies to the stem, however the two graphics used to "animate" it are completely identical, resulting in the stem being stationary. It should be noted that the Piranha Plant in All Night Nippon Super Mario Bros. (Or Japanese DJ Tamori, to be exact) does use this bottom half as part of the visible animation.

Above-Ground Bloopers

SMB 1000Bloopers.png

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.

Unused Hidden 1-Up Coin Count

When finishing the fourth stage of each world, the game compares the number of coins that the player collected in the third stage to a value stored in the byte array at 0x32d2, offset by the world number - 1. If the number of coins collected is greater than or equal to the required amount, a flag is set that makes an invisible 1-up block tangible on the first level of the next world. This byte array defines a coin requirement of 99 for world 8, which is unused because in addition to there not being a world 9, it is impossible to collect 99 coins in 8-3.

5-1 Starting Castle

SMB1 NES Castle oddity.png

For unknown reasons, most likely an oversight, World 5-1's starting castle is not the 3-tiered one as seen in every other world. This was not fixed in the SNES and GBC remakes.


(Source: original discovery: Supper Mario Broth, further research: Halfbit)

Regional Differences

Acactussayswhat?
Please elaborate.
Having more detail is always a good thing.
Careful, you'll lose an eye.
This page or section needs more images.
There's a whole lotta words here, but not enough pictures. Please fix this.

The European version, released about 18 months after the Japanese and US versions (which are identical), contains several minor tweaks and bug fixes.

European Version

Japan/US Europe
Super Mario Bros (NTSC) underwater.png Super Mario Bros (PAL) underwater.png
Japan/US Europe
SMB1J 5-2 Underwater Section.png SMB1E 5-2 Underwater section.png
  • 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 in the European version over the exit pipe to close the one-tile-high gap. In the Japanese and US version, it is possible to clip into that gap in Super/Fire form and get stuck in the wall with no way out other than letting the time run out.
Japan/US Europe
SMB1J 8-2 1st Page.png SMB1E 8-2 1st Page.png
  • In World 8-2, the starting positions of the Koopa Paratroopas were changed.
  • The Japanese and US 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 power-ups or the flag at the end of the level, allowing these to overwrite each other. The European version added a check to prevent this from happening.
  • The lowest position a Blooper can reach on-screen was lowered by 4 pixels, allowing them to, unlike other versions, hit Super or Fire Mario if he's standing on the ground.
  • Originally in the Japanese and US version, the branch of an enemy object would add 12 pixels to the player's vertical position. In the European version, it decides whether Mario stomped or got hit depending on the enemy branch of the enemy object.
  • Mario's initial downward acceleration at the start of the level is higher.
  • Mario's vertical acceleration on springs is now defined.
  • The movement function for Cheep Cheeps was drastically simplified.
  • The vertical difference deciding whether Mario stomped or got hit depends on the enemy.
  • Rather than doing an ASL (Arithmetic Shift Left) on the injury timer, the value is set explicitly.
  • On water stages, Mario's vertical speed is set to 0 after nullifying.
  • Some enemies (more specifically: Piranhas, Bullet Bills, Goombas, Spinies, Bloopers, and Cheep Cheeps) have a larger hitbox.
  • The second tone of the coin grab sound effect is different.
  • The death theme is slightly different.
(Source: MrWint's smb-dis)

Revisional Differences

Hmmm...
To do:
Is anything notably different in the FDS port, aside from the "minus world" leading to a different level?

Super Mario Bros. + Duck Hunt

The beginning of the program was overwritten with code to swap in the menu bank and jump to $8000 on reset (though the bankswitch happens before the JMP instruction can be processed). Additionally, a duplicate tile was removed to make space for the registered trademark symbol used on the menu screen, which necessitated a small change to the title screen tilemap. The code is otherwise identical to the standalone NTSC release.

Super Mario Bros. + Duck Hunt + World Class Track Meet

The reset vector was altered to point to an MMC1 reset instruction inserted at $F2CA (originally six unused $FF bytes), which resets the mapper and swaps in the bank containing the menu code. The code is otherwise identical to the standalone NTSC release.

Nintendo World Championships 1990

Original Nintendo World Championships 1990
SMB Title.png NWCSMBNESTitle.png

The player options and top score are removed from the title screen. Notably, so is Mario, resulting in a static screen instead of gameplay demos.

Additionally, pressing Start to start the game doesn't work. Instead, the game starts by itself after a few seconds.

Original Nintendo World Championships 1990
SMBNESStart.png NWCSMBStart.png
  • You start with 99 lives. Notably, the lives counter has been modified to display this correctly.
  • Your lives are capped at 99, similarly to later Mario games.
  • The game can't be paused.
  • The game ends when you collect 50 coins.

Anniversary Edition

Original 25th Anniversary Edition
SMB1J Question Block.gif SMB25thAnniversary Question Block.gif

In the 25th Anniversary Edition for Virtual Console, bundled with specially-marked Japanese and Australian Wii consoles, the question mark on the ? Block was changed to "25".

References