Why does the Minus World exist?



In Super Mario Bros. for the NES and Famicom there exists a secret world, accessible by clipping through a wall to the first warp zone and entering the left-most pipe.

This pipe will take you to level " -1". In the NES release, this level is extremely similar to 7-2, except the pipe at the end will send you back to the beginning of the level. There is no way to escape.

Why does the Minus World exist, and why are all the level numbers negative?

In World 1-2 of Super Mario Bros., Fire Mario runs, lands on the front of the exit pipe, and quickly crouches and jumps to reach a peak where the exit pipe crosses the ceiling. At that moment, Mario stops crouching and is ejected through the wall to reach the warp zone and ducks into the pipe to the minus world. (Click for attribution of both the image and this alt-text.) Level 1 of the Minus World.


Posted 2016-11-06T19:31:09.187

Reputation: 8 136

2It's actually <blank>-1 – immibis – 2018-04-03T00:37:45.083


Someone voted to close this question and it ended up in the CV queue. While I understand why this question was asked on Retrocomputing, you might want to elaborate a little bit on the glitch in a Retrocomputing context so others decide not to vote to close your canonical Q&A pair.

– JAL – 2016-11-07T00:00:18.583

There is this cool video explaining it https://www.youtube.com/watch?v=Hv_h_R3o9r8

– user24300 – 2016-11-08T03:19:57.203



In Super Mario Bros, you can access warp zones in three areas of the game. There are two of these that are important for the minus world glitch: the one at the end of World 1-2 (following the exit pipe) and the one at the end of World 4-2 (also following the exit pipe).

The first warp zone takes you normally to World 2, 3, and 4, while the second one only allows the player to World 5, however, the warp zones internally must have three locations.

Internally, the game represents the second warp zone mentioned as World 36, World 5, and World 36 again. This can be verified by looking in a level editor, as shown here:

SMB Utility with an unedited copy of the Super Mario Bros ROM open to the 'Other Settings' screen showing the warp zone locations

This was done, because the 36 (0x24)'s tile is a tile that takes the color of the current background (for all intents and purposes, transparent). The first nine represent the numerals 0 through 9, and the next 26 being capital letters (A-Z).

This gives the appearance in World 4-2 of a warp zone with only one location, as shown in the screenshot below:

Screenshot of warp zone at the end of World 4-2

For unknown reasons, the World 4-2 warp zone is the "default" warp zone, and it's warp zone data is used if there is no other data loaded. Normally the game loads the data from the first warp zone when you walk to the end (scrolling the screen), but performing the wall glitch moves the character without scrolling the screen. There is a scroll stop tile which moving into the warp zone area activates, which refreshes the current warp zone data.

Because when you perform the wall glitch, it moves the character without scrolling the screen, you never scroll far enough to activate the scroll stop which refreshes the warp zone data. Because of this, the default is then used, and because the pipe exists, you are free to swim in the never-ending ocean that is World 36-1.

(It's worth noting that in the Famicom Disk System version of the game, you get an underwater version of 1-3/5-3 instead, followed by World 2-3/7-3, and then an underground version of 4-4.)

But aren't there only 8 worlds?

There are eight intentionally developed worlds, with four levels each. However, the game doesn't stop at World 8. In fact, theoretically there are a total of 256 valid worlds (0-255).

A byte stores both the world counter and level counter. When a level is loaded, it loads an area from an address. For worlds 0 and 9-255, it loads other data as the room offset. A Japanese fan site has documented all of the worlds and levels and even describes the mechanism on how Super Mario Bros. loads the levels (and why the worlds work they do).

Worlds 2-2 and 7-2 are duplicates of each other, and it also happens to be World 36-1 in the NES version. Because no pipe data in ever loaded (it is loaded when 2-2 and 7-2 load I believe) it uses the default start position for the pipe which is the beginning of the level.

Is there more to this?

Yes. In Season 3 Episode 35 of Pop Fiction, the team behind the internet show covered more of these "lost levels", sourcing Legends of Localization. They found that using cartridge hot swapping (and a form of memory corruption), one is able to access all 256 worlds.

Most are unplayable and load garbage data, sometimes from RAM, but some are levels from the actual game, either with the correct tileset or not.

Videos of all 256 worlds can be found here.

Some Further Reading

Minus World - Super Mario Wiki
Deconstructing the Minus World


Posted 2016-11-06T19:31:09.187

Reputation: 688

1@wizzwizz4 If you consider this to be a more complete answer, why not accept it? – Steven M. Vascellaro – 2018-03-26T13:16:22.503

1@StevenVascellaro Because I got distracted. Thanks for the reminder! – wizzwizz4 – 2018-03-26T15:25:17.870

14Welcome to Retrocomputing. Thanks for giving this great answer; this is exactly what I meant when I said "better or more complete answer". Have an upvote! – wizzwizz4 – 2016-11-07T07:21:06.773

4what program is that level editor window screenshot from? – user17915 – 2016-11-07T12:49:05.887

1@wizzwizz4 Thank you! This part of the game always fascinated me, so I'm glad I could share a bit of knowledge here. :) – a-- – 2016-11-07T15:13:33.680

3@user17915 It was taken from SMB Utility. – a-- – 2016-11-07T15:13:52.447


thanks. Is it this one? http://www.romhacking.net/utilities/178/

– user17915 – 2016-11-07T15:33:10.533

1@user17915 Yes, it is. – a-- – 2016-11-07T15:33:48.193

I'm getting weird characters in it's interface and in it's readme.txt file. Is there any way to fix this? – user17915 – 2016-11-07T16:10:40.320

@user17915 There is a version of the application translated to English – a-- – 2016-11-07T16:31:05.017


The 256 levels could also be reached by using Game Genie when you figure out the pattern. (For example, they published codes for starting on worlds 2 through 8 here: http://www.gamegenie.com/cheats/gamegenie/nes/super_mario_bros.html).

– Xantix – 2016-11-07T18:43:33.737


Warp zones exist at the end of some levels. In order to access them, you have to break through blocks at the top of the level, then run along the top until a secret area becomes visible. In order to access the warp zone below you, you have to fall through a gap at the right-most side of the level.

The loading of the right-most wall is what triggers the message to appear and the pipes to initialise. Before they initialise, they contain the data for the 4-2 standard warp zone, which has only one pipe (to level 5-1). The other pipes' warp data is filled in with the blank (air) tile, internally numbered with 36.

The initial "uninitialised" state of the pipes is not a problem; whenever you access the warp zone you have to walk far enough right to fall through the gap, and therefore load the right-most wall. That is, unless you clip through the wall. By doing this, you are preventing the pipe's warp location from changing from World 36 before you enter it.

World 36 was never programmed into the game. As a result the game tries to interpret "garbage data" when trying to load the level. For some reason, the data in question is mostly sections of other levels, so the level is still somewhat playable. However, as you have already found out, it is impossible to complete the first level in the NES version, as the pipe at the end simply leads back to the start.

The reason the level number is displayed as  -1 at the top of the screen is due to the way tile data works. Tile 36 is the empty space, and so this is what the game draws instead of the world number, which is the reason for the appearance of "no world". This is not coincidence; the very reason that the world you are warped to is World 36 is because tile 36 is blank (see the second paragraph).

This effect is what causes the Minus World to appear to be "negative". There isn't actually anything "minus" about it, but the absence of any visible world number makes the dash that separates the world number from the level number look like a negative sign.

In the Famicom Disk System version of the game, due to differences, level  -1 is different (a 1-3 where you swim) and, importantly, completable. Level  -2 is identical to 7-3, and level  -3 is an underground-coloured version of 4-4 with neither Bowser nor a maze, and is full of flying bloopers. After completing the third and final level of the Minus World, you are taken back to the title screen.


Posted 2016-11-06T19:31:09.187

Reputation: 8 136


The "garbage data" being composed of other data from the game is expected with this kind of buffer overflow because the data being accessed is from other parts of memory, so it's just all kinds of data from other parts of the game that the engine is trying its best to interpret: https://en.wikipedia.org/wiki/Buffer_overflow

– Spencer Williams – 2018-01-20T09:40:24.050

When did you exactly plan to update the answer? – Ferrybig – 2018-10-03T19:56:07.907

@Ferrybig Later. It hasn't even been two years yet! :-p Seriously, though, I'll probably get around to it in about... eight months? Nine? Sounds about right. – wizzwizz4 – 2018-10-03T20:19:32.787

1I plan to update this answer later, (hopefully) complete with some pictures. If anyone has a better or more complete answer don't hesitate to post it. – wizzwizz4 – 2016-11-06T19:31:44.227

14I think it might be worth noting that there's nothing "minus" about it, and the dash is always there as in "1-1"; it's just that we're seeing "(space)-1" which people read as negative 1. All the facts are there in your answer, but people get very confused about that part of it, so it's good to call it out clearly. – hobbs – 2016-11-07T08:39:40.653

@hobbs Thanks. I've just done that. – wizzwizz4 – 2016-11-07T17:50:26.777

I'm a programmer and I fail to intuitively understand this. – noɥʇʎԀʎzɐɹƆ – 2016-11-08T00:10:20.423

3@uoɥʇʎPʎzɐɹC I'll put it in words that a programmer, as opposed to a layperson, would understand. An uninitialised left-most or right-most pipe sends you to world 36, because that's the value of the empty tile. Because all of the world and level numbers should be digits, the programmers just display the tile that corresponds to them instead of displaying multiple-digit numbers that happen to have one digit. But because tile 36 is invisible, the number doesn't display. The glitchy levels just occur because the level data pointer is pointing somewhere unexpected. – wizzwizz4 – 2016-11-08T07:29:00.273

"For some reason, the data in question is mostly sections of other levels," - is there any deeper reason for this? I'd always assumed there was some sort of highly efficient compression format involved, or that levels were structured as a list of indexes into "level sections", so any completely random data would end up looking like a level. – Random832 – 2017-01-09T16:07:20.973

@Random832 I don't know of the reason, but your "level sections" hypothesis may be correct. It may also be that the game engine is designed such that only the block of memory that contains level data is addressable as level data. – wizzwizz4 – 2017-01-09T16:40:57.967