Super Mario Bros. 3/Unfinished Bonus Games
This is a sub-page of Super Mario Bros. 3.
Make a better video showing the "correct" behavior of the lost bonus games, and not recorded in widescreen.
By modifying the attributes of the Spade bonus tile with a map editor, one can access the remnants of two lost Bonus Games. The world map can be instructed to load a Bonus Game with one of three hosts, different backgrounds, and different Bonus Game types. The actual host can be any of them; they do not themselves alter how the game is run or dialog spoken.
(NOTE: The graphics in the following screenshots may be partially or completely incorrect, as many of the original tiles were either moved around or completely overwritten in the final release. Assumptions were made based on the remaining sprite and background tile configurations.)
Above are two screenshots from Rusty's Bonus Game restoration hack showing alternate hosts, backgrounds, and game types in action.
- 1 Bonus Game Hosts
- 2 Bonus Game Backgrounds
- 3 Unused Text
- 4 The Rolling Die
- 4.1 Bonus Game 0: The Dice Game
- 4.2 Bonus Game 1: The Spade Game (Roulette)
- 4.3 Bonus Game 2: The N-Spade Game (Cards)
- 4.4 Bonus Game 3: Undefined Game 1 (CCCCCCC CCCCCCC)
- 4.5 Bonus Game 4: Undefined Game 2 (DDDDDDD)
- 4.6 Bonus Game 5: Roll an Odd Number
- 4.7 Bonus Game 6: Roll an Even Number
- 4.8 Bonus Game 7: Back
Bonus Game Hosts
There are four host specifiers, but only one (0 / Toad) is used in normal gameplay; a Koopa Troopa and Hammer Brother were slated to host the Bonus Games. The CHR tiles (which appear twice in the ROM, for some reason) had been shifted at some point and do not line up correctly with code (off by 16; see Disassembly source for PRG bank #22, search for "HostTroopa_DrawSprites:" and "HostHammerBro_DrawSprites:").
|1||Koopa Troopa with box|
|2||Koopa Troopa without box|
Bonus Game Backgrounds
There are five valid bonus backgrounds, although only one is normally used. Two of them are empty and only show the brick background, and were possibly placeholders for some other variant. There are also two unused, scrambled objects that are not assigned to any particular background.
|0||Bonus room with table (typical).|
|1||Bonus room without table.|
|2||Bonus room with a corrupt blue box.|
|3 / 4||Completely empty bonus room, probably reserved for more designs.|
|N/A||Mockup of a bonus room background with a broken orange box.|
|N/A||Mockup of a bonus room background with a tall object.|
This Japanese text, originally discovered in the US ROM, was to have been spoken by the bonus game hosts. Some of it can only be displayed by poking certain memory addresses while a bonus game is running, but all of it points to the original bonus game structure which apparently was to be completely "rolling die" driven with different games of chance.
|Roll a 1 to get 1.
Roll a 2 to get a key.
Roll any other number to get coins.
|This was for Bonus Game 0, described in the next section. The prize coding is incomplete.|
|Roll an odd number
and I'll let you play
the Roulette Game.
|This was the instruction for switching to the Roulette Game.|
|Roll an even number
and I'll let you play
the Card Game.
|This was the instruction for switching to the Card Game.|
|２ もどれ||2 - Back||This was meant for Bonus Game 7, described in the next section, which was wired to kick the player to four possible fixed points on the world map.|
|ものを やろう？||Shall I give you a prize?||This was the secondary instruction for Bonus Game 0.|
|３かい プレイだよ||There are three rounds.||This message appeared after rolling an odd number. Nintendo later removed the rolling die gimmick, making it unnecessary.|
|You have two chances.
Try to find a pair
of matching cards.
|This message appeared after rolling an even number. It suffered the same fate as the string above.|
The Rolling Die
The Bonus Game structure was originally based entirely around a roll of the dice. Every game would open with the die and different instructions of how to win or proceed. As released, the die still exists in code (though the graphics are lost) but it's pushed offscreen in a forceful hack by Nintendo developers. Said hack also forces the Bonus Game to bypass the original logic controlling the die, jumping directly into the logic for what would have been the "secondary" instruction (see Disassembly source for PRG bank #22, search for "PRG022_C8E6:").
The code actually supports a total of eight bonus game variants, any of which could actually proceed to a second set of dialog. This functionality went largely unused, and Nintendo's hack breaks most of what's left. If the hack is removed, so the die is not hidden and bonus state alteration never happens, then most of the functionality returns. The lost text hints at what about half of the games should do.
Bonus Game 0: The Dice Game
|Roll a 1 to get 1.|
Roll a 2 to get a key.
|ものを やろう？||Shall I give you a prize?|
Due to incomplete/non-maintained programming, you do get rewards for completing this game, but they're incorrect.
- Rolling a "1" gives you an extra life, although it does so without playing the 1-up chime or protecting against 99 lives overflow. Unclear if this was the intended behavior. (It could be "1" gets you a "1-up".)
- Rolling a "2" actually increments the first byte of the active Player's score "storage" (used to persist 1P or 2P's score when they switch turns), but this is an improper way to change score, and when the game exits it will overwrite the storage score with the current score anyway. So most likely this was supposed to target something else.
- The other values that are meant to give "coins" actually give you 10 x (face value) points. This is not done properly (it will not add through the more significant digits), so most likely this is unmaintained code that was supposed to modify the Player's coins, not score.
Bonus Game 1: The Spade Game (Roulette)
This type ultimately hosts the Spade game as the final SMB3 defines it. This may have been the original location of Type 5 (Odd-Wins Game), or it was moved here after the die game was to be abandoned. In any case, the hack's function bypasses the primary Bonus Game logic (the rolling die) and jumps directly to the secondary instruction (as if you had won the die game). If the hack is removed, this becomes an undefined die game that mimics Type 0.
Bonus Game 2: The N-Spade Game (Cards)
This type ultimately hosts the N-Spade game as the final SMB3 defines it. This may have been the original location of Type 6 (Even-Wins Game), or it was moved here after the die game was to be abandoned. In any case, the hack's function does the same as Type 1, and will also become an undefined die game that mimics Type 0 if the hack is removed.
Bonus Game 3: Undefined Game 1 (CCCCCCC CCCCCCC)
|ううううううう ううううううう||CCCCCCC CCCCCCC|
The host will speak placeholder text: a repeating hiragana う in the original, the letter C in the English version. This is an undefined die game that mimics Type 0.
Bonus Game 4: Undefined Game 2 (DDDDDDD)
The host will just speak placeholder text: a repeating hiragana え in the original, the letter D in the English version. This is an undefined die game that mimics Type 0, however it also sets memory at address $072D to 01. The significance of this value is lost, as it has no use anywhere else in code.
Disassembly source for PRG bank #30, search for "BONUS_UNUSED_DDDD (??!) only...".
Given that う is the third hiragana in the modern order and え is the fourth, just like C and D are respectively the third and fourth Latin letters, it is probable that the two first bonus games had あ/A and い/B as placeholders at an earlier point in development.
Bonus Game 5: Roll an Odd Number
|Roll an odd number|
and I'll let you play
|３かい プレイだよ||There are 3 rounds.|
The host gives directions of rolling an odd number to play the "Roulette" game, which refers to the "Spade" game. If the Bonus Game exit code is corrected to use this game type, the workflow will proceed directly to the Roulette/Slot-machine/Spade game if the player successfully rolls an odd number. Even more interesting, the original host greeting will be cleared and a second set of text will be written.
Normally, the Roulette/Spade game gives you only one chance to line up the pictures, but there is an unused counter at RAM address $419, which is normally set to 00; setting it to any other value during the game will allow you to keep trying until either you win, or the counter reaches zero (whichever comes first). Simply press A, B, or Start to spin the reels again. A simple one-byte correction to code can restore the multiple turn behavior.
To fix this game, edit the disassembly source for PRG bank #30; search for "If Bonus_GameType <> BONUS_SPADE, jump to PRG030_8D85" and change the CMP one line before to use "BONUS_UNUSED_ODDROULETTE".
To restore the multiple tries ability, edit the disassembly source for PRG bank #22, search for "Roulette_ConfigTurns:" and change the LDA #$00 to LDA #$02.
Bonus Game 6: Roll an Even Number
|Roll an even number|
and I'll let you play
|You have two chances.|
Try to find a pair
The host gives directions of rolling an even number to play the "Card" game, which refers to the "N-Spade" game. If the Bonus Game exit code is corrected to use this game type, the workflow will proceed directly into the Card/N-Spade game if the player successfully rolls an even number. Even more interesting, the original host greeting will be cleared and a second set of text will be written.
To fix this game, edit the disassembly source for PRG bank #30, search for "If Bonus_GameType <> BONUS_NSPADE, jump to PRG030_8D95", and change the CMP one line before to use "BONUS_UNUSED_EVENCARD".
Bonus Game 7: Back
|２ もどれ||2 - Back|
Perhaps the most oddball of lost games, the host gives apparently incomplete directions about "2" (a die roll perhaps?). This game is the only host-significant one, as the "item" atop the "Koopa Troopa with Box" host sets you up to land on one set of two possible fixed locations on the world map. The other determining factor was apparently supposed to be whether you had approached the game on the world map by traveling leftward/upward vs. rightward/downward, although in practice this code doesn't seem to work right (see Disassembly source for PRG bank #22, search for "Bonus_Return2_SetMapPos:").
The screenshot is from a hack by Southbird demonstrating all eight types of bonus games. The docks out on the water are fixed target points that Type 7 will potentially cast you out onto. There is no evidence exactly what the point was of this "bonus game" (if you can even call it that), but its code suggests that the object sitting on the Koopa Troopa's box is not a power-up but perhaps some other indicator that was a destination you were to be sent to.
Whether this was malicious or for accessing some kind of secret part of a world map has been lost to time.