New Super Mario Bros.
|New Super Mario Bros.|
Also known as: New Chāojí Mario Xiōngdì (CN)
This game has unused areas.
This game has a notes page
This game has a prerelease article
New Super Mario Bros. pretty much resuscitated the idea of all-new side-scrolling Mario games. Not unlike its kinda-sorta-sequel, this game has a lot of unused stuff.
- 1 Sub-Pages
- 2 Unused Header Options
- 3 Unused Entrance Types
- 4 Crash Debugger
- 5 Unused Text
- 6 Oddities
- 7 Unused Code
- 8 Regional Differences
| Unused Scenes|
| Unused Levels|
Stages that didn't make the cut.
| Unused Graphics|
Including leftovers from Super Mario 64 DS!
| Unused Tiles|
All sorts of stuff.
| Unused Tilesets And Backgrounds|
Some 8-bit background fun in here.
| Unused Music and Sounds|
Things the DS speaker didn't get to play.
| Unused Actors And Features|
Giant thing is glitchy? SCRAP IT.
Unused Header Options
Mini Mario Physics
Mario uses the otherwise unused animation zero_g_walk and appears to use some sort of variation of the Mini Mario physics (e.g., floating and leg kicking) no matter which powerup he has. However, he can't wall jump and flies huge distances when fired from a Pipe Cannon. When this mode is on while the player is Mini, Mario won't be nearly as floaty. It's unknown where this would have been used.
You can activate it while in-level by setting one of the following memory addresses to 0x01.
Start as Mini Mario
Mario will start a stage as Mini Mario. It was probably used for testing, rather than for any real gameplay purpose. You can activate it while in-level by changing any of the relevant addresses above to 0x02.
Per-area backgrounds and tilesets
The level header blocks defining backgrounds and tilesets can contain multiple entries. Each area can be set to use different background and tileset entries, which would in theory allow for multiple areas with different graphics in the same level. Unused level 3 uses this.
In practice, the code for this feature is incomplete, and a number of issues prevent it from working as intended:
- The feature was designed for an older revision of the game which used a different VRAM layout.
- The code handling backgrounds is inconsistent, reading the several background properties from different entries. This results in broken backgrounds.
- When changing areas, new graphics aren't loaded, except for the Jyotyu (blocks) palette.
It is also unclear how the support for multiple tilesets would have worked. It seems extra areas would have used tilesets 2 and up. However, in the final game, tileset 2 is occupied by the end-of-level castle.
Unused Entrance Types
|This needs some investigation.|
Discuss ideas and findings on the talk page.
Specifically: Are these behaving as intended?
Each level has an entrance type setting which affects how Mario enters the area (exit from a pipe, jump from bottom of the screen, etc.). There are several entrance types that are not used by any levels.
- 7: The player spawns in the tile above where the entrance is placed, then jumps.
- 11: Like Entrance 1, the player spawns in the tile above where the entrance is placed.
- 12: Like the used "Exit from door" entrance, the player spawns coming out of a 3D door which disappears to reveal whatever is behind it once it has closed. In this instance, though, the player and door spawn in the tile above where the entrance is placed.
- 14: Like the entrance used when the player first spawns or re-spawns after dying in Mario vs. Luigi mode, the player comes out of a pipe which grows out of the ground and then fades away. With this one, however, the player appears to be walking out of a door while coming out of the pipe. When the player spawns from this entrance after exiting from another area, the player looks like they are coming out of a doorway but without the door. What is possibly an earlier version of this entrance can be seen in the 2005 demo version.
- 15: Seemingly a duplicate of Entrance 14.
There is a hidden crash debugger in the game, similar to screens seen in other DS games developed by Nintendo, like Super Mario 64 DS and Animal Crossing: Wild World. To access the crash debugger, first crash the game (the easiest way to do this is by removing the game card during gameplay), then hold L + R + A + Left, let go, hold Down + B, let go, and finally hold Start + Select.
The top screen shows the contents of the file BUILDTIME and the reason for the crash, while the bottom screen shows a stack dump. This screen was disabled or removed in the US and European demo versions.
Every version of the game has a plain-text file called BUILDTIME in the root of the ROM filesystem:
|USA||Japan||Japan Kiosk Demo||USA Kiosk Demo|
|UROM2006-03-29 09:48:19nitro-mj||JROM2006-04-04 19:07:45nitro-mj||JROM2006-04-07 11:17:21matoba_t||UROM2006-04-07 11:29:13matoba_t|
|Europe||Europe Kiosk Demo||Korea||China|
|EROM2006-04-26 14:20:08nitro-mj||EROM2006-04-27 11:13:34matoba_t||KROM2006-12-27 14:32:43matoba_t||CROM2009-04-27 20:29:28nitro-mj|
matoba_t refers to the game's Assistant Director, Taku Matoba, nitro is the DS's code name. mj is likely the internal name for New Super Mario Bros. New Super Mario Bros. Wii uses this for part of its save-files name.
The only difference in the second version of the European demo is a slightly different header that causes DSi consoles to boot straight into the game when the console is switched on, skipping the System Menu. These were used in Nintendo DSi XL kiosks, to prevent users from accessing anything other than the game. The rest of the ROM is exactly the same.
Internal Project Name
Another possible internal name, "Mario2d", appears twice in the arm9 binary. This is used internally in the save data, and isn't present in the demo versions because they do not use save data. This name is possibly reflected in the game's two-letter code (as seen on the front of the game cart, etc) - "2D".
World Prefix List
|This needs some investigation.|
Discuss ideas and findings on the talk page.
Specifically: How is this used by the "get prefix for world" code exactly?
J VS G W7- H W8- B W2- F W6- E W5- C W3- D W4- A W1- I KINOKO
A list that explains the meaning of the prefixes used in the level filenames. It is unknown what the strange order signifies, if anything. Found in the ARM9 code. It appears to be used by the "get prefix for world" code, but the game seems to function fine if the text is blanked out.
In the introduction where Mario walks towards the castle after observing a lightning strike, there appears to be moving people in the background, but due to the resolution of the game, it is difficult to tell what they are supposed to be. When the game is played in a higher resolution, it turns out they are copies of the Toadsworth model moving around with no animations. This could suggest that Toadsworth was originally Toad, but maybe they just chose the Toadsworth model as he resembles Toad.
Misc. 2D Graphics
|I_star_red_ncg.bin||Big Star||-||This filename suggests that the Big Star was once red.|
|BGM_WATER_3||Underwater||-||This filename suggests that there were multiple underwater tracks at one point, or that the underwater theme was replaced multiple times.|
|SE_SYS_ONE_DOWN||Tapping a "W" during the credits||This filename suggests this was for some sort of "lose life" event, although it's possible that this sound was created exclusively for the credits.|
|SE_OBJ_GET_DRAGON_COIN||Getting a Star Coin||This filename suggests that Star Coins were once Dragon Coins.|
|SE_PLY_STAR_ATTACK||Enemy/block debris created by enemy or Mega Mario||This filename suggests that this sound was used when enemies were defeated by touching them as Invincible Mario.|
|SE_OBJ_BIG_ROCK_CRASH||Giant spiked ball hitting a wall||The sounds for small spiked balls rolling and hitting walls are SE_OBJ_TEKKYU_ROLL and SE_OBJ_TEKKYU_CRASH, respectively ("tekkyu" means "spiked ball"). The sound effect names for giant spiked balls suggest that they were once boulders instead.|
|SE_OBJ_BIG_ROCK_ROLL||Giant spiked ball rolling|
|SE_OBJ_ITEM_APPEAR||Item spawning from a ? block||These sounds are identical, and the game uses them interchangeably in various situations where items spawn.|
|firebar1.nsbmd||Fire Bar ball||-||This filename suggests that there were multiple Fire Bar ball models, or that the Fire Bar ball model was replaced.|
|donketu.nsbmd||Snailicorn||Bully||This filename suggests that this enemy was a Bully.|
|obj_e3_ring.nsbmd||Red Ring||-||This ring model (though likely an early version of it) was first seen by the public in E3 2005, and this filename suggests that it was created for one of the versions shown or playable at the event.|
|new_donketsu||Snailicorn||New Bully||This filename suggests that the Snailicorn model was replaced at some point in development.|
Wireless Strength Icon
What exactly is meant by "start connecting to a Wi-Fi access point"?
The game has unused code that puts a the wireless strength icon on the bottom screen on World Maps and Levels if the game's wireless code is set to start connecting to a Wi-Fi access point. The code is one of the "WM_" functions (as named in the SDK).
Overridden Debug Trigger
There is code that would bring up the Scene Load Debug Menu if Start + Select was pressed, but it isn't used as the Start + Select + L + R soft reset code overrides it.
You can use the following code to disable the soft reset button combo check.
repl_0201364C_main: B 0x201368C
Bug, level and collision code differences between the J, U, E, C, K, E-Demo (E-Demo-2 only has a header difference - see Build Date section), U-Demo and possible J-Demo (User:Kobosuke#New Super Mario Bros. - undumped) versions.
The trademark wasn't registered quite yet in the international release. The Japanese, Korean, and Chinese versions each have a subtitle (in their respective languages), while the Korean version exclusively has a copyright date of 2006-2007 instead of just 2006. The Chinese version has the 2006 copyright plus a 2009 iQue copyright; this is because iQue released it in China.
- World 6-Castle - in the US version, the tall room with the boss door is located within the main level file. The Japanese, European, and Korean versions moved the room into its own file, which is a bit odd since there's really no reason to do so and nothing was added or removed.