We just reached 20,000 articles on this wiki!
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

New Super Mario Bros. Wii

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

New Super Mario Bros. Wii

Developer: Nintendo EAD
Publisher: Nintendo
Platform: Wii
Released in JP: December 3, 2009
Released in US: November 15, 2009
Released in EU: November 20, 2009
Released in AU: November 11, 2009
Released in KR: August 7, 2010
Released in CN: December 5, 2017 (NVIDIA Shield)
Released in HK: July 3, 2010
Released in TW: July 3, 2010


AnimationsIcon.png This game has unused animations.
AreasIcon.png This game has unused areas.
DevTextIcon.png This game has hidden development-related text.
EnemyIcon.png This game has unused enemies.
ObjectIcon.png This game has unused objects.
GraphicsIcon.png This game has unused graphics.
ModelsIcon.png This game has unused models.
MovieIcon.png This game has unused cinematics.
ItemsIcon.png This game has unused items.
MusicIcon.png This game has unused music.
SoundIcon.png This game has unused sounds.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.
PiracyIcon.png This game has anti-piracy features.


PrereleaseIcon.png This game has a prerelease article
NotesIcon.png This game has a notes page
BugsIcon.png This game has a bugs page

New Super Mario Bros. Wii takes the revamped 2D side-scrolling action from the DS title and kicks it up a notch by what many fans would consider a dream come true: simultaneous cooperative multiplayer in the main game. It also marks the return of Yoshi, the Koopalings, and Kamek, and pretty much set the standard for the Mario universe in the years that followed.

Sub-Pages

Read about prerelease information and/or media for this game.
Prerelease Info
Miscellaneous tidbits that are interesting enough to point out here.
Notes
Read about notable bugs and errors in this game.
Bugs


NewSuperMarioBrosWii-WatterBubbleBodyTemporaryImage.png
Unused Objects
New hits and old favorites.
NSMBWUnusedKoopaIcon.png
Unused Level Features
Things that just don't come into play.
NSMBWUnusedPenguinIcon.png
Unused Graphics
Quite a lot of graphics ended up getting scrapped.
ChineseNSMBWIIHUD.png
Version Differences
Having Wii in the title when it's on an entirely different platform.
NotesIcon.png
English Translation Differences
Sigh. Yep. This again.

Tournament Mode

Hmmm...
To do:
  • Investigate and if possible reactivate the code
  • Fully investigate and get proper renders of the layouts

From February to March 2010, Nintendo hosted a Coin Battle tournament in Japan (NewスーパーマリオブラザーズWii コインバトル日本一決定戦). This apparently used a special version of the game. There was also a "Coin Battle Championship" in Italy and a "National Coin Challenge" in Australia, but for the latter at least, it seems like the retail version of the game was used.

Interestingly, layout files for some of the special screens used for the tournament still exist, but only in the Korean, Taiwanese, and NVIDIA Shield TV versions, which were built after the tournament. They are "MultiCourseSelect_tournament" and "MultiCourseSelect_tournamentButton". There are also code leftovers in the Korean, Taiwanese, and NVIDIA Shield TV versions. There are strings that reference layout files and actors that aren't in the other versions, "MULTI_COURSE_SELECT_TOURNAMENT" and "MULTI_COURSE_SELECT_TOURNAMENT_BUTTON".


(Source: CLF78)

E3 Demo Leftovers

There are a few leftovers from the E3 2009 demo (which was also used at later events that year).

Text

You can play for 10 minutes. After 10
minutes, the session will automatically end.

This was shown on the title screen.

EVENT VERSION

Shown on the level selection screen and the time up screen.

Thank you for playing!
You can continue
your adventure
in the retail version!

Displayed when the session ended.

SCORE
COINS
ENEMIES
LIVES LEFT

Displayed in the Free for All results.

(Source: Original TCRF research)

TIME_UP Actor

NSMBWEventVersionTimeUp.png

Displayed when the session ended, after which the game would reboot. Renders a layout from /Layout/timeUp/timeUp.arc.
You can display this actor in-game by enabling the following Action Replay code (for PAL version 1) and entering any stage:

cc30a6b8 fffffff0
04926010 386002be
047b35f4 989f0259

Earlier time up layout

NSMBWTimeUpTrialPlay.png

Present in the Korean version (and all versions thereafter) is a "timeUp_trialPlay" layout, which seems to be an earlier or alternate version of the layout used by the above actor.


(Source: CLF78)

Unused Hint Movies

There are a total of 82 hint movies. While 62 of them are used, the rest of them go unused. They mostly contain Super Skills, and are broken due to the level layout being different from when the inputs were recorded.

1-3: Four unused Super Skills
2-2: Four unused Super Skills
2-5: Three unused Super Skills
3-2: One unused Infnite 1-Ups
3-5: Three unused Super Skills
6-Castle: One unused Super Skills
7-Tower: One unused Star Coin & one Super Skill
9-8: Two unused Super Skills

World 7-Tower

Star Coin

~ Player jumps on Bullet Bills to get 1-Ups
~ Collects the first star coin above the Banzai Bill
~ Breaks the hidden block and jumps onto the roof
~ He goes into the pipe and collects the second star coin
~ Jumps onto the moving platform and kills himself

Super Skills

~ Player starts with a Propeller Suit
~ The player gets hurt two times
~ Shows the secret exit

Unused Behaviors

Hmmm...
To do:
Star Coins can be moved by Sand Spouts, even before being displaced with a POW Block?
  • Spike Tops and Chain Chomps can be bounced off with Yoshi. The former is also unused in New Super Mario Bros. U but the latter doesn't work in that game. Both are used in Super Mario Maker.
  • Chain Chomps, Thwomps and Prickly Goombas have hitboxes that are impenetrable by Yoshi's tongue.
  • Switches can be pressed by Yoshi, even when the player is not riding Yoshi.
  • Dry Bones have the standard behaviour for overworld enemies being in water (splashing when entering and moving slowly when in).
  • Yoshi detaches from Mario if they enter water.
(Source: Original TCRF research)

Switching Layers

The game has good support for changing Mario's active layer, letting him stand on foreground or background tiles. This is used to implement the Mini-Mario pipe secrets in 1-3, but it seems Nintendo planned to do more with it:

  • Entrances have an unused setting to spawn Mario on any layer.
  • The unused sprite EN_REVERSE can switch Mario between layers, too.
  • Every sprite can be placed on any layer; this is the only configurable setting in the game that applies to all types of sprites. This feature is only used in 1-3 to move three types of sprites (coin, invisible 1UP, and special exit controller) to the background layer.

Unused Darkness Setting

NSMBW-UnusedLightingSettingScreenshot.png

There is an unused darkness setting which causes triangular light beams to be generated by each player. The beams face the same way as the players and each can be rotated between 0 and 180 degrees by tilting the relevant Wii Remote.

(Source: Original TCRF research)

Unused Camera Settings

All settings described here are configurable in level files.

Modes

The camera has eight modes, of which 2, 5 and 7 go unused.

Mode 2 causes the camera to only zoom out in multiplayer mode if the players are far apart vertically, instead of in any direction. Even then, it won't zoom out the entire way unless the player who's moving away vertically is flying with a Propeller Suit or Block. Interestingly, this mode has its own unique list of zoom-level options.

Mode 7 is the horizontal equivalent of Mode 2, but without the unique zoom levels.

Mode 5 enables an unused feature that lets the level designer switch the camera to different settings (mode, zoom, bounds, and "ZoomChange") based on activated flag IDs. The configuration for this is actually stored in its own section of the level data, which is empty in all levels in the final game.

Unfortunately, there's no transition when the settings change, making this feature jarring and unusable unless zoom sprites (206) are used to hide the change. It's also buggy: the first set of camera settings in the level data can't be the first one to activate, due to an incorrectly initialized variable, and any changes to the camera bounds are immediately reverted on the next frame.


(Source: RoadrunnerWMC)

Zoom Levels

Anyone who complains about zoom levels in handheld platformers should try playing this

There are a few unused zoom level options, but most aren't very interesting. One fixes the camera's size at just 7 tiles tall. Another is similar, but also allows the camera to expand in multiplayer mode up to the absolute maximum of 28, which is the size used in the giant bonus area in World 9-3.


(Source: RoadrunnerWMC)

Flying-Only Upward Scrolling

One unused camera setting is the direct equivalent of one used in New Super Mario Bros. and New Super Mario Bros. 2. In those games, it prevents the camera from scrolling upward more than a certain, adjustable number of tiles unless Mario is climbing a vine (in the former) or flying as Raccoon Mario (in the latter), and is used for hiding secret areas. Here, it prevents the camera from scrolling upward at all unless Mario is flying using a Propeller Suit or Block. Oddly, instead of adjusting the scroll distance as in the other games, the attached numeric value adjusts the camera's size in multiplayer mode.

This is actually enabled in a few areas, but only ones where the camera can't scroll at all anyway. It might be enabled just due to laziness, since value "0" enables it and "15" is needed to disable it.

The feature was probably scrapped in this game because it looks glitchy and probably wouldn't work well in multiplayer.


(Source: RoadrunnerWMC)

Other Settings

  • Bounds: Levels can specify how close the players need to be to the top/bottom edges of the screen for the camera to scroll vertically. That's used, but the values can also be different between single-player and multiplayer modes, which isn't.
  • "ZoomChange": This unused setting does nothing.
  • The camera can be configured to consider any cardinal direction as "forward" through the area, including leftward, which is unused.


(Source: RoadrunnerWMC)

Unused Text

test1

First message in the file with obvious purpose. In the Japanese, USA Spanish text, it is the same, the meaning is the same, except there is no "1" on the end.

Story Mode

Seems to a label for the main mode on the menu.

VS Mode
As you make progress in Story mode,
you'll unlock more courses to play
in VS mode.

Seems to be text for an early/scrapped multiplayer mode.

Select a Mode

Another piece of unused text for the main menu.

(Source: Original TCRF research)

Unused Audio

Hmmm...
To do:
  • Add rips for all of these.
  • Check why the inaudible ones are inaudible, and if they are "used" despite not being audible. Even better, create a setup that automatically logs all the sounds triggered by the game while playing.
  • These streams are supposedly unused: BGM_MINIGAME_FANFARE_KOOPA.32.brstm (empty) and down_multi_lr.n.32.brstm

Many, if not all, the sounds that were in NSMB are also present here with their original filenames. They aren't listed below.

Streams

There exists a single unused track in the game, named cheepfanfare_lr.ry.32

The BRSAR has a entry called "STRM_BGM_DEMO_OMAKE" (demo = cutscene, omake = bonus), but there is no BRSTM to go along with it.

(Source: Original TCRF research)

Sound Effects

Hmmm...
To do:
Sounds 1648 to 1846 seem to be ported straight from NSMB's sounds (with some of them playing improperly). Are they changed at all and are any of them used?

135 - SE_SYS_CTRL_0_CONNECTED_RC
Inaudible.


137 - SE_SYS_CTRL_1_CONNECTED_RC
Inaudible.


139 - SE_SYS_CTRL_2_CONNECTED_RC
Inaudible.


141 - SE_SYS_CTRL_3_CONNECTED_RC
Inaudible.


181 - SE_SYS_ONE_DOWN
Inaudible. Used in New Super Mario Bros.


181 - SE_SYS_STOCK_ITEM
Used in New Super Mario Bros.


182 - SE_SYS_STOCK_ITEM_USE
Used in New Super Mario Bros.


306 - SE_PLY_JUMP_CLIFF
Inaudible.


307 - SE_PLY_SCALE_CLIFF
Inaudible.


332 - SE_PLY_OTHER_OFF
Inaudible.


333 - SE_PLY_BREAK_FREE
Inaudible.


334 - SE_PLY_BREAK_FREE_PRPL
Inaudible.


354 - SE_PLY_PNGN_WATER_SLIDE
Inaudible.


359 - SE_OBJ_RADAR_ONPU
"Onpu" means "note". This could be related to the strange note icon seen in the E3 2009 trailer.


360 - SE_OBJ_RADAR_ONPU_1
xxxx


361 - SE_OBJ_RADAR_ONPU_2
xxxx


362 - SE_OBJ_RADAR_ONPU_3
xxxx


363 - SE_OBJ_RADAR_ONPU_4
xxxx


364 - SE_OBJ_RADAR_ONPU_5
xxxx


365 - SE_OBJ_RADAR_ONPU_1_1
xxxx


366 - SE_OBJ_RADAR_ONPU_2_1
xxxx


367 - SE_OBJ_RADAR_ONPU_3_1
xxxx


368 - SE_OBJ_RADAR_ONPU_4_1
xxxx


369 - SE_OBJ_RADAR_ONPU_5_1
xxxx


370 - SE_OBJ_ONPU
xxxx


498 - SE_EMY_IGAKURIBO_OPEN
"IGAKURIBO" refers to the Chestnut Goomba.


499 - SE_EMY_IGAKURIBO_OPEN
xxxx


566 - SE_OBJ_GET_COIN_OLD
A coin sounds similar to the SMB and NSMB coin sound, but cut off earlier and with a slight echo.


681 - SE_OBJ_RC_CANNON_READY
Inaudible. "RC_CANNON" refers to the Wii Remote-controlled cannons in the Green Toad Houses.


686 - SE_OBJ_RC_LIFTLINE_MOVE
Inaudible. Possibly refers to the Wii Remote-controlled on-track lifts, as the sounds for those come right before this one.


691 - SE_OBJ_SUISHA_ROLL
Inaudible.


752 - SE_OBJ_FREE_FALL
Inaudible.

756 - SE_OBJ_RC_FENCE_ROLL
Inaudible.

868 - SE_VOC_MA_THANK_YOU
Inaudible. There is no equivalent for the other players.

1080 - SE_VOC_ITEM_KO_CRY_FAR
Inaudible. "ITEM_KO" refers to the Toads that Mario has to rescue.

1080 - SE_VOC_ITEM_KO_CRY_MID
"

1080 - SE_VOC_ITEM_KO_CRY_NEAR
"

1275 - SE_VOC_BOSS_KP_CS_LAUGH
Bowser ("KP") doesn't appear in the World Map ("CS").

1524 - SE_MG_UH_LIFT_START
Inaudible. "MG" refers to Toad Houses and Enemy Battles.

1531 - SE_MG_UH_LIFT_STOP
Inaudible. "MG" refers to Toad Houses and Enemy Battles.

1633 - SE_OBJ_CS_KINOPIO_HERE
Inaudible.

1561 - SE_PLY_FOOTNOTE_CS_YOSHI
You can't bring Yoshi onto the World Map.

(Source: Original TCRF research)

Early Level Configuration

Present in the World Map folder on the disc is an unused configuration file for the "Collected Star Coins" screen (CollectionCoinCourseSort.arc), which indicates an early level layout. The full contents can be seen on the Notes page, but among the more notable differences:

  • World 1 didn't have 1-6.
  • World 2 had a Ghost House and lacked 2-6.
  • World 3 had two Ghost Houses.
  • World 4 had 4-7 and didn't include the Ghost House and Airship.
  • World 5 had 5-7.
  • World 6 has 6-7, and could have no Airship.
  • World 7 had 7-7 and didn't have the Ghost House. It could have included a Cannon.
  • World 8 had a second Tower, marked as "Secret".
  • All of the first 8 world would have Airships, and like in the final game, the player would only know about the one in world 8 before clearing the castle.
  • There's no World 9 yet.

Early Features

In prerelease screenshots, we see that the game originally had a Red and a Blue Yoshi. They were changed to Pink and Light Blue in the final version. The filenames for the Yoshi models, though, still follow the old colouring: Y_tex_red.arc, Y_tex_blue.arc.

The game was originally going to have Mega Mario, but it seems to have been canned very early on - EN_ITEM (the actor which manages the various powerup items) has an empty value which loads a mushroom model from I_big_kinoko.arc, but it crashes the game when used, and it does not have any other code which uses the value. There is no way to enable it without ASM hacking.

The file I_big_kinoko.arc does not exist, and it is not referenced by the game otherwise. Also, as other evidence of Mega Mario having been planned, the "flying pipe" objects were ported over from New Super Mario Bros. but are not used in the final game.

Oddities

Pipe Joint

Early Final
NSMBW-EarlyPipeJoint.png NSMBW-FinalPipeJoint.png

The pipe joint texture used in the World 6 Map and the World 6 Map icon depicts an earlier pipe joint. It can also be seen in the E3 2009 demo version.

World 7 Cliff

Early Final
Nsmb W7 CliffA.png Nsmbw W7 GrassA.pngNsmbw w7 map platform.png Nsmbw athetic tile.png


The cliff model used in the World 7 Map depicts an earlier athletic tileset design.

Credits Behavior

Most of the brick blocks in the credits scene have contents chosen randomly at runtime (between "empty," "one coin" and "15 coins," weighted unequally). However, two names are overridden to always have the same contents. Executive producer Satoru Iwata's name is spelled out using 15-coin bricks. More unexpectedly, though, coordinator Rina Yamauchi's bricks are always empty. Since most of the random bricks are selected to be empty anyway, it's unlikely that anyone would ever notice this without hacking.

(Source: RoadrunnerWMC)

Useless Zone Themes

Each zone in the game can have a "theme", which changes how things are rendered, adds effects and so on. But some levels are set to themes that are identical to the default overworld theme, rendering them useless. The following "useless" themes are used:

  • 8 - Sky/Bonus
  • 17 - Icy Cave
  • 21 - World 8 Airship

Empty openingTitle Folder

The directory /Layout/openingTitle, which corresponds to the title screen's layout, is empty. The archive containing the layout and its assets is actually located in the folder dedicated to resources exclusive to the disc's region instead, so someone moved the openingTitle data without deleting the folder in which it was originally located.

Alternate Level Slots

The world map supports and reserves level IDs for two warp cannons, towers, castles, and airships per world, even though there is only up to one of each in a single world.

Non-existent Subworlds

World 3 is split up into two maps: W3a and W3b. Interestingly enough, though, the files for Worlds 2 and 6 are named as if they were also split up (W2a and W6a). This suggests they were originally meant to have multiple segments. As a consequence, the game will attempt to load route information from W2b and W6b, but it fails and moves onto loading the next world's data instead.

In addition, the game will attempt to load info about W3c and WAa (and also fail), but this is simply due to how the game loops through the worlds, not an indication of there being more maps. If there's not a single map for the next world, it will try to load subworld a, and if the current world is a subworld, it will try loading the next subworld. It stops loading data if the next world doesn't exist, which is why it stops at World A (which comes after 9 in hexadecimal).

(Source: Original TCRF research)

Exception Handler

The exception handler is still in the game's code, but can't be seen normally without hacking or causing an exceptionally heinous glitch. When it does crash, press HOME, -, +, -, +, 1, 2, 1, 2, A on Player 1's Wii remote. The player will then see the processor state at the time of the crash, as well as some trace info. You can see it in action, for example, via the "Yoshi Berry Crash".

(Source: Skawo)

Development Text

Titlescreen Date

NSMBWOpeningTitleBuildPanePALv1.png

The titlescreen layout contains a pane called T_E3verCheck, which is deliberately disabled by the game code. When viewed, it displays the date of Apr 13 2009 19:01:59, which is presumably when the layout was created. This date does not change in any release, even as the titlescreen layout kept getting updated.

You can see it in-game with the following PAL version 1 Action Replay code:

cc30a6b8 fffffff0
04781ca8 38a00000


(Source: Skawo)

Internal Project Name

The project's internal name is "wiimj2d" or just "mj2d" (mario journey/jump 2d?), according to multiple filenames.

(Source: Original TCRF research)

Build Date and Number

Four empty files exist in the main folder with filenames listing build dates and some kind of build number.

Japan Revision 1 USA Revision 1 Europe Revision 1
COPYDATE_CODE_2009-10-03_231655
COPYDATE_DATA_2009-10-03_231209
COPYDATE_LAST_2009-10-03_231655
REV_INFO_r37675
COPYDATE_CODE_2009-10-03_232303
COPYDATE_DATA_2009-10-03_231822
COPYDATE_LAST_2009-10-03_232303
REV_INFO_r37675
COPYDATE_CODE_2009-10-03_232911
COPYDATE_DATA_2009-10-03_232433
COPYDATE_LAST_2009-10-03_232911
REV_INFO_r37675
USA Revision 2 Europe Revision 2 Japan Revision 2
COPYDATE_CODE_2010-01-05_143554
COPYDATE_DATA_2010-01-05_141949
COPYDATE_LAST_2010-01-05_143554
REV_INFO_r37821
COPYDATE_CODE_2010-01-05_152101
COPYDATE_DATA_2010-01-05_150453
COPYDATE_LAST_2010-01-05_152101
REV_INFO_r37821
COPYDATE_CODE_2010-01-05_160530
COPYDATE_DATA_2010-01-05_154947
COPYDATE_LAST_2010-01-05_160530
REV_INFO_r37821
Korea Hong Kong/Taiwan China (NVIDIA Shield TV)
COPYDATE_CODE_2010-03-12_153510
COPYDATE_DATA_2010-03-12_153506
COPYDATE_LAST_2010-03-12_153510
REV_INFO_r38018
COPYDATE_CODE_2010-03-15_160349
COPYDATE_DATA_2010-03-15_160345
COPYDATE_LAST_2010-03-15_160349
REV_INFO_r38019
COPYDATE_CODE_2016-05-03_111248
COPYDATE_LAST_2016-05-03_111248 
COPYDATE_DATA_2016-05-03_111228

WIIMJ2DNP.str

A file called WIIMJ2DNP.str is present in the root folder and lists the locations of some partially-linked code. "WIIMJ2D" may be the game's internal project name - it is used for the save file's filename too. "hayakawa" is likely Kenzo Hayakawa, listed under "System Programming" in the game's credits.

Japan Revision 1 USA Revision 1
d:\home\Project\WIIMJ2D\JP\PRD\RVL\bin\d_profileNP.plf
d:\home\Project\WIIMJ2D\JP\PRD\RVL\bin\d_basesNP.plf
d:\home\Project\WIIMJ2D\JP\PRD\RVL\bin\d_enemiesNP.plf
d:\home\Project\WIIMJ2D\JP\PRD\RVL\bin\d_en_bossNP.plf
d:\home\Project\WIIMJ2D\US\PRD\RVL\bin\d_profileNP.plf
d:\home\Project\WIIMJ2D\US\PRD\RVL\bin\d_basesNP.plf
d:\home\Project\WIIMJ2D\US\PRD\RVL\bin\d_enemiesNP.plf
d:\home\Project\WIIMJ2D\US\PRD\RVL\bin\d_en_bossNP.plf
Europe Revision 1 Japan Revision 2
d:\home\Project\WIIMJ2D\EU\PRD\RVL\bin\d_profileNP.plf
d:\home\Project\WIIMJ2D\EU\PRD\RVL\bin\d_basesNP.plf
d:\home\Project\WIIMJ2D\EU\PRD\RVL\bin\d_enemiesNP.plf
d:\home\Project\WIIMJ2D\EU\PRD\RVL\bin\d_en_bossNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\JP\PRD\RVL\bin\d_profileNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\JP\PRD\RVL\bin\d_basesNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\JP\PRD\RVL\bin\d_enemiesNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\JP\PRD\RVL\bin\d_en_bossNP.plf
USA Revision 2 Europe Revision 2
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\US\PRD\RVL\bin\d_profileNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\US\PRD\RVL\bin\d_basesNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\US\PRD\RVL\bin\d_enemiesNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\US\PRD\RVL\bin\d_en_bossNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\EU\PRD\RVL\bin\d_profileNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\EU\PRD\RVL\bin\d_basesNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\EU\PRD\RVL\bin\d_enemiesNP.plf
D:\home\hayakawa\PROJECT\wii-mj2d_ver2\EU\PRD\RVL\bin\d_en_bossNP.plf
Korea Taiwan
d:\Project\wii-mj2d\KR\PRD\RVL\bin\d_profileNP.plf
d:\Project\wii-mj2d\KR\PRD\RVL\bin\d_basesNP.plf
d:\Project\wii-mj2d\KR\PRD\RVL\bin\d_enemiesNP.plf
d:\Project\wii-mj2d\KR\PRD\RVL\bin\d_en_bossNP.plf
d:\Project\wii-mj2d\TW\PRD\RVL\bin\d_profileNP.plf
d:\Project\wii-mj2d\TW\PRD\RVL\bin\d_basesNP.plf
d:\Project\wii-mj2d\TW\PRD\RVL\bin\d_enemiesNP.plf
d:\Project\wii-mj2d\TW\PRD\RVL\bin\d_en_bossNP.plf
China (NVIDIA Shield TV)
d:\Project\wii-mj2d\CN\PRD\RVL\bin\d_profileNP.plf
d:\Project\wii-mj2d\CN\PRD\RVL\bin\d_basesNP.plf
d:\Project\wii-mj2d\CN\PRD\RVL\bin\d_enemiesNP.plf
d:\Project\wii-mj2d\CN\PRD\RVL\bin\d_en_bossNP.plf

Anti-Piracy

Wii Physical Releases

The BCA is visible with only slight magnification. NSMBW is red, so shining a light through makes the whole image red.
Perhaps the only case where you can actually see a bit flipping. Wii Sports is blue.

Every Wii disc contains 0xBC bytes of burst cutting area (BCA) data, the majority of which is part of the standard disc authentication system, but the last 0x40 bytes are exposed to games via DVDLowReadDiskBca. Although most games do nothing with this data, New Super Mario Bros. Wii uses it to perform an anti-piracy check. At the time, this was unprecedented for Nintendo to implement this.

On startup (at the very beginning of the game's main function, the game calls a function to check the BCA. The game calls DVDLowReadDiskBCA to read the BCA into a buffer. If that function returns anything other than 1 or 2, the game will die with the "An error occurred" message. If it returns 1, indicating success, it proceeds to the comparison check. If it returns 2, indicating an error, it will do different things depending on the error code.

If the drive error code is 0x020400 (Motor stopped), an error occurs. If the drive error code is 0x062800 (Medium may have changed), 0x023a00 (Medium not present / Cover opened), 0x053000 (Incompatible medium inserted), or 0x0b5a01 (Operator medium removal request), the game returns to the Wii System Menu. If the error code is 0x031100 (Unrecovered read error), it returns to the Wii System Menu; if it is anything else, it tries to read the BCA again. If it fails a second time, the same logic is repeated, except that instead of checking if the error code is 0x031100, it checks if it is the same error code as before. If it is, then the error occurred message is displayed; if it is a different code, it returns to the Wii System Menu.

The actual BCA check compares the first 0x34 bytes with an expected value of 0x33 zero bytes followed by a single 1 byte. (The remaining 0x0c bytes seem to contain manufacturing information that varies with each disc.) An example real world BCA follows:

0000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
0030  00 00 00 01 50 44 4d 43 23 0f 47 14 10 00 28 0b  |....PDMC#.G...(.|

Most other Wii games have 0x34 zero bytes in this region. The different values can actually be seen with a microscope; see the images, which compare New Super Mario Bros. Wii (red) and Wii Sports (blue).

The BCA not matching has no significant consequences; it records a value of 0x0123456A in /shared2/test2/dvderror.dat, which would possibly be seen at Nintendo's factory, but the game launches normally. The check is not performed any other time during gameplay. The comparison is also not performed if the console's model starts with RVT (as is the case for devkits), though it still attempts to read the BCA in this case. After the comparison is performed, the buffer is cleared for some reason; this does not happen if an error occurred.

This check caused issues for pirates because most modchips did not implement the read BCA command properly, causing a drive error to happen twice (and thus the "An error occured" message). Furthermore, burned discs did not have a BCA on them. However, the check was fairly easily patched out of the game.

(Source: Pokechu22)

Also notable was a lawsuit involving James Burt, an Australian man who dumped this game and uploaded it to the Internet before the game's release. He received a fine of AU$1.3 million for lost sales, along with AU$100,000 as a legal fine.

NVIDIA Shield TV

The NVIDIA Shield TV release of the game includes a change to ensure that the game only functions properly on the "Lingcod" emulator it's intended to run on.

Part of the function for generating camera matrices has been replaced with a call to lingcod_callNVSISnippet(), which the emulator reimplements in native code. The deleted code isn't important for performance, but if the hook fails, level graphics don't render.

New Super Mario Bros. Wii's title screen, with the new feature that 83% of the image is pitch black! You could technically play through the whole game like this, but you'd never want to.

Graphics for cutscenes, menus, and world maps are unaffected.

A patch to undo this and restore the level graphics can be found here.


(Source: Ninji)