Talk:Super Mario Bros.

Unused levels besides minus world?
Does anyone know if their are unused levels in this game besides the accesible-by-glitch-only minus world? It probably stands to be noted that that the "minus world" water level is technically world "36-1" not " -1", apparently because the game uses a blank tile to display the number 36, at least according to wikipedia and its cited source. Could unused levels after world eight and prior to 36 exist?


 * There are no unused levels in this game (or much other unused data, for that matter). --BMF54123 18:08, 8 September 2011 (EDT)


 * Actually, isn't -1 just garbage data that was somehow able to be read as a level? It's not a level that was made on purpose, so it's not actually an "unused level" to begin with. ...Right? {EspyoT} 07:03, 9 September 2011 (EDT)


 * Level -1 just happens to point to another level's data. Don't know which one, though. (All the water levels look the same to me.) The reason it loops forever is because warps are world-specific, allowing sublevels to be used without leading to the same world. As the ending pipe in -1 doesn't have a warp defined for World 36 (only the original world(s) it was used in), it defaults to the current level. Err, wait, how is that relevant again? --Smallhacker 11:12, 9 September 2011 (EDT)

Offset: (ROM)

04 03 02 (L1-2)

24 05 24 (L4-2)

08 07 06 (L4-2)

By using this glitch, he has the pipes of 4-2 and more specifically those leading to World 5. In the 4-2, there is a pipe instead of three. The other two are not present, but they use 36 by default. With a code, it is possible to visit the worlds 255 most of the game are the same with different graphics.

The glitch in the FDS version of the game is completely different, you can visit three levels. There is always -1, but it is very different. Then there is the -2 and -3. Example with this image:



--Dark Linkaël 11:38, 9 September 2011 (EDT)

Changed tiles?
Is there any actual evidence behind the changed tiles paragraph? --Frantik 07:06, 5 June 2010 (EDT)
 * The fact it exists is pretty much proof in its own regard, notwithstanding that it disappears in 16&times;16 chunks as well. Actual proof? Not quite. --Xk-sig.png Xkeeper (talk) 07:19, 5 June 2010 (EDT)
 * Proof of what? There are many other blocks in the game that are 8x16 block repeated.  The game engine requires all background elements be 16x16, made up of 4 8x8 tiles.  The breakable bricks in the underground levels are just one 8x8 tile repeated 4 times. And that's why the bridge disappears in 16x16 chunks.  As someone very familiar with the inner workings on that game, it's my opinion there is nothing significant about the bridge graphics.  But I'm not gonna change it ;) --Frantik 08:40, 5 June 2010 (EDT)
 * The difference is that the 16&times;16 tiles for the bricks are just two 8&times;8 tiles repeated (just 2 unique graphics) -- the bridge is a full 16&times;16-block graphic, with 4 unique tiles, just like Super Mario World's Boss Door graphics. --Xk-sig.png Xkeeper (talk) 08:49, 5 June 2010 (EDT)
 * No it's not.. it's just two tiles (0x77 and 0x79) repeated twice... unless we have different ROMs... there are only two tiles in the rom for the bridge. --Frantik 08:54, 5 June 2010 (EDT)
 * ... Ugh. Damnit, maybe we goofed up somewhere, but I swear it wasn't like that when I wrote it. ._. --Xk-sig.png Xkeeper (talk) 09:03, 5 June 2010 (EDT)
 * The only thing I can see is the bridge may have originally been 4 unique tiles but was reduced to only 2 since tiles 0x78 and 0x7A are used for the title screen. But it's likely the breakable bricks also had the same thing happen to them since the title screen graphics are interspersed among those tiles too.  I'm sure all of the graphics went through revisions, and without real evidence not really worth adding, unless you're just adding any random theory people have ;) --Frantik 09:14, 5 June 2010 (EDT)
 * I think the odd layout of the CHR tiles is worth mentioning on the page, as long as the wording implies that something might have been changed. I'm kind of wondering why a few of the tiles are arranged like 8&times;16 sprites (top, bottom, top, bottom) while the rest are in the standard 16&times;16 (top, top, bottom, bottom) format.


 * On a related note, I think there is good evidence that the "SUPER MARIO BROS." letters on the title screen did not originally have a brown block background. Nearly all of the tiles necessary to draw the letters themselves exist at the end of the CHR data in an organized fashion; the rest of the tiles that are scattered about are mostly shadows and pieces of the aforementioned background. If the decision to add it came late in the development process, then obviously the easiest thing to do would be to examine the existing tiles and try to fit the new pieces in wherever possible, rather than remap a bunch of tiles (leading to the simplification of the bricks and Bowser bridge).


 * I've been told by a few different people that some change during development required a major reorganization and simplification of the graphics, though they never told me exactly what, or where they got their information. Obviously the placement of the title screen tilemap in the CHR (kind of an oddity in itself) shrunk the available graphics space by a full 20 tiles, though it's impossible to tell if that was planned early on, or was forced late in development due to a shortage of PRG space. Blah blah blah words. --BMF54123 19:21, 7 June 2010 (EDT)

More Unused Music?
Here is a music/sound effect modifier that I made to prove that there are indeed unused versions of songs, not an nsf artifact.

Super Mario Bros. Sound Effect Modifier 10FA:??

Music Modifier 10FB:?? 01 - Super Mario Bros. Theme 02 - Underwater Theme 03, 07, 09, 0B, 0D, 0F, 11, 13, 17, 19, 1B, 1D - Unused Song! 04, 05 - Unused Song 2! 06, 0A, 0E, 12, 16, 1A - Underwater Theme 07, 08 - Castle 0C - Underground 10 - Starman/bonus rooms 14, 15, 1C - Unused Underground Theme 17, 18 - Unused Castle Theme

Music 2 (Fanfares) Modifier 10FC:?? 01 - Player Down 02, 06 - Game Over 03, 05, 07 - Unused Player Down 04 - Ending 08 - THANK YOU BUT OUR PRINCESS IS IN ANOTHER CASTLE! Nensondubois 14:46, 23 June 2010 (EDT)
 * I have also found this, dunno if its the same thing. All NSF rips I checked don't have anything unused other than the alt Game Over and fast "Enter Pipe" music (both in the article).

Original Famicom version?
Hey guys me again. As I said in for the Super Mario 64 article, I'm curious to see if there is unused content inside the original Japanese version's ROM that was cleaned up for the American release. I think a lot of the stuff in this article stems from the American version, but I'm not sure. I doubt that this game in particular would have anything special except for maybe one or two bug fixes since I guess they were also working on creating the NES version of the game at the same time as they were developing the Famicom version. Evilhamwizard 01:12, 13 May 2011 (EDT)
 * Nope. The US and Japanese versions are 100% identical. A lot of US carts even use the Japanese (HVC) ROM chips. The only way we're going to find anything interesting is if we get our hands on a prototype. --BMF54123 01:35, 13 May 2011 (EDT)

Variable $03F0
According to the comprehensive disassembly of SMB, the RAM address $03F0 keeps track of the number of blocks hit, but it's not used by anything. Does this count as an unused material?--Purplebridge001 01:54, 16 February 2012 (EST)
 * Yep. I'd say it counts as unused code. It would be really interesting if someone suddenly found that it is used for an easter egg or something. {EspyoT} 06:54, 16 February 2012 (EST)

NSF Track 10
I just listened to that song and realized I'd heard it before... in pirate carts and Famiclones (especially Super Joy ones that are shaped like an N64 pad!) The music always sounds off on those. The game over music sounds very similar to the one listed on this page. Weird. // Foxhack 00:03, 23 April 2012 (EDT)
 * Is it possible to find roms for these things, or find them on ebay? --Hiccup (talk) 13:39, 15 February 2014 (EST)

Additional Unused Music
Using Game Genie codes PPPPPP, EPPPPP, etc, there are a few variants usually playing a looped version of the Intro to the Super Mario Bros. Theme and depending on the variant, the bass notes are held. Additionally, there is a Bowser's Castle variant that has light drums and I believe I have heard a different version of the Underwater music as well. Not entirely sure is going on here, maybe the music INIT is being modified in an obscure manner by these codes or something, I'd need to further investigate this oddity if indeed these songs are legitimate versions, just stored in an arbitrary memory range hence why they don't appear in any of the current NSF rips, or could have been omitted on purpose; though all of the variations could easily hacked into an existing rip. Nensondubois 00:37, 23 April 2012 (EDT)

Glitch Firebars, Non-moving Koopa... are they worth documenting?
There are several unused enemy IDs such as glitch Firebars or non-moving Koopas. Are they worth documenting?

It seems the glitch Firebars are placeholder of more Firebar variants. They lack proper initialization code but its behavior pointer is pointing to Firebar codes.

I can't say the same for non-moving Koopa, as they share the same basic behavior codes with other valid enemies. Purplebridge001 03:48, 17 August 2013 (EDT)

The game does special check for Blooper and Podoboo (?!) when stomped
The game seems to contain specific codes for giving bonus points when Podoboo (normally hurts Mario) or Blooper is killed by stomping. Is it worth mentioning in the main page? Purplebridge001 (talk) 22:55, 19 November 2013 (EST)

StompedEnemyPtsData: .db $02, $06, $05, $06

EnemyStomped: lda Enemy_ID,x            ;check for spiny, branch to hurt player cmp #Spiny                ;if found beq InjurePlayer lda #Sfx_EnemyStomp       ;otherwise play stomp/swim sound sta Square1SoundQueue lda Enemy_ID,x ldy #$00                  ;initialize points data offset for stomped enemies cmp #FlyingCheepCheep     ;branch for cheep-cheep beq EnemyStompedPts cmp #BulletBill_FrenzyVar ;branch for either bullet bill object beq EnemyStompedPts cmp #BulletBill_CannonVar beq EnemyStompedPts cmp #Podoboo              ;branch for podoboo (this branch is logically impossible      beq EnemyStompedPts        ;for cpu to take due to earlier checking of podoboo) iny                       ;increment points data offset cmp #HammerBro            ;branch for hammer bro beq EnemyStompedPts iny                       ;increment points data offset cmp #Lakitu               ;branch for lakitu beq EnemyStompedPts iny                       ;increment points data offset cmp #Bloober              ;branch if NOT bloober bne ChkForDemoteKoopa
 * Technically, it already is. Apparently, Podoboo was deemed unimportant because it hands out default points, but Blooper awards 1,000. --AquaBat (talk) 23:25, 19 November 2013 (EST)

Regional and Revisional Differences
Anything specific? --8SomaCruzes (talk) 19:47, 24 March 2014 (EDT)
 * Not exactly. But there are quite a few versions. --Hiccup (talk) 03:59, 25 March 2014 (EDT)
 * ...There's only two. A "World" version that was released worldwide (US, Japan, and UK), and a "Rev. A" which was released in other European countries, according to Bootgod's database. Any differences are likely to be just fixing the game (but most likely the music) to play at PAL speed (60 Hz), as opposed to NTSC speed (50 Hz). -Einstein95 (talk) 04:06, 25 March 2014 (EDT)
 * There are a few more, some on the list are remakes or different games though, and can be ignored. --Hiccup (talk) 09:28, 25 March 2014 (EDT)
 * Okay, so there's Original, Rev. A, FDS remake and some CHR hacks (NES Mini, 25th anniversary, etc.). -Einstein95 (talk) 15:09, 30 March 2014 (EDT)
 * If you count them, there's also Vs. Super Mario Bros. and All Night Nippon Super Mario Bros., both of which have a few changes in level design and borrowed a handful of them from Super Mario Bros. 2 (the latter also contained the slightly modified game mechanics), as well the mirrored Super Luigi Bros. in NES Remix 2. LinkTheLefty (talk) 09:23, 31 March 2014 (EDT)

Spiny Egg Horizontal Movement
In the disassembly, this code is under the CreateSpiny function: DifLoop: lda PRDiffAdjustData,y     ;get three values and save them sta $01,x                 ;to $01-$03 iny iny                       ;increment Y four bytes for each value iny iny dex                       ;decrement X for each one bpl DifLoop               ;loop until all three are written ldx ObjectOffset          ;get enemy object buffer offset jsr PlayerLakituDiff      ;move enemy, change direction, get value - difference ldy Player_X_Speed        ;check player's horizontal speed cpy #$08 bcs SetSpSpd              ;if moving faster than a certain amount, branch elsewhere tay                       ;otherwise save value in A to Y for now lda PseudoRandomBitReg+1,x and #%00000011            ;get one of the LSFR parts and save the 2 LSB beq UsePosv               ;branch if neither bits are set tya eor #%11111111            ;otherwise get two's compliment of Y          tay iny UsePosv: tya                        ;put value from A in Y back to A (they will be lost anyway) SetSpSpd: jsr SmallBBox             ;set bounding box control, init attributes, lose contents of A          ldy #$02 sta Enemy_X_Speed,x       ;set horizontal speed to zero because previous contents cmp #$00                  ;of A were lost...branch here will never be taken for bmi SpinyRte              ;the same reason dey SpinyRte: sty Enemy_MovingDir,x     ;set moving direction to the right Is this supposed to set the Spiny Egg speed relative to the Lakitu's speed? And if so, could someone make a patch so that this works like it should? --GoldS (talk) 17:19, 30 March 2014 (EDT)
 * Actually, I think I got the intended behavior working by moving the jsr SmallBBox to after the dey here. This patch should work on the JU PRG0 ROM: --GoldS (talk) 18:02, 30 March 2014 (EDT)

This also shows behavior that I don't think can be seen in the game properly: The spiny eggs bounce off of walls in the opposite direction.