The Legend of Zelda has a Minus World
January 5, 2019 6:05 AM   Subscribe

More than 30 years after its release, a hacker has discovered a "minus world" in The Legend of Zelda (NES). Watch YouTuber SKELUX showcase his discovery here including a brief explanation of "minus worlds" (named after the most famous example of the phenomenon, Super Mario Brothers' World -1) and a short walkthrough of the "minus map." This glitched-out 8-bit fever dream of Bizarro Hyrule features such apparitions as the Backwards Armos, the Boomerang Octorok, and the Zora-Ghost Manhandla.

With apologies to JHarris--this couldn't wait for Zelda Day 2019.
posted by duffell (24 comments total) 16 users marked this as a favorite
The rundown is that even when using a hack to walk through walls in the game, it had safeguards to keep you from entering areas of the map that didn't exist. So, they put together a second hack to remove those safeguards, and the result is being able to walk around in the 'code' that the game is trying and failing to interpret as actual level data.

It's not really "hidden content" like I've seen a bunch of articles/tweets frame it as; it's mainly notable because the game doesn't just fall over and crash once those safeguards are removed. Most if not all tile-based cartridge games of that complexity and/or era are likely to have similar results if you bypass those safeguards either through hacks or through glitches.

One such infamous example is Super Mario Land 2 where you can glitch through the ground very early on and fall through to uninitialized memory -- and then you can navigate through that extremely carefully to a point that actually sets off the ending to the game. Here's the current speedrun world record for that category if you want to see that in action.
posted by flatluigi at 7:04 AM on January 5 [13 favorites]

I'm disappointed that the music for the minus world isn't a really doom-y, minor key version of the regular music. It would go well with the incredible number of graveyards in the minus world.
posted by Gray Duck at 7:11 AM on January 5 [1 favorite]

Reminds me of Real-Life Tron on an Apple IIgs.
posted by Pope Guilty at 7:32 AM on January 5 [5 favorites]

We're in the upside down.
posted by Fizz at 7:35 AM on January 5 [3 favorites]

So the 'code' that the game is trying and failing to interpret as actual level data as you put it, flatluigi, looks pretty close to being level data! I know that levels are basically big arrays that the interpreter turns into graphics and uses in "if" statements to govern your play. What kind of data is in the RAM/ROM that is so easily interpreted as standing for tunnels, sprites, graves, etc? How is the interpreter not just spitting out lots of flickering garbage? It must be written to be very forgiving, making very fuzzy decisions, to allow the level editor lots of leeway to make errors, right?
posted by TreeRooster at 8:05 AM on January 5 [1 favorite]

Yeah, the assertion "Zelda has a minus world" is kind of nonsense; this article at least has a fairly measured take on it. This Zelda minus world is like the secret song on an old Beatles album that you can only hear by punching a hole in the album sleeve and putting it on the turntable. Yeah, it will make sounds, and there will probably even be rhythmic components to it, but calling it a song on the album is definitely stretching things.

And that's an insightful question, TreeRooster - part of it is due to how Zelda level data is encoded. The game doesn't have enough capacity to record each tile of each screen, so instead there's ~256 possible vertical strips of tiles in a table, and then each screen is made of a selection of those tile strips placed side by side. When the game reads nonsense as level data, it's grabbing arbitrary strips from the table and placing them together, so what you get looks like fragments of real map because that's what it's made of.
posted by NMcCoy at 8:27 AM on January 5 [15 favorites]

nthing flatluigi and NMcCoy. There really isn't much to this. Sure, you can hack any program to read data from an unexpected place – and, if the data format is simple enough, it'll work well enough to put something on the screen (although it'll probably be buggy, as demonstrated here).

It must be written to be very forgiving, making very fuzzy decisions, to allow the level editor lots of leeway to make errors, right?

Not necessarily. Things were much simpler in the NES era – the data for a given Zelda screen is probably little more than a simple grid of bytes, each one indicating what type of tile occupies a cell. Feed any stream of bytes into that, and it's going to result in something resembling a game screen.
posted by escape from the potato planet at 8:40 AM on January 5 [3 favorites]

Oh, here's a really close analogy: Imagine you're making one of these old games and you want to put a fairly large amount of text in it, but you're short on space, so you can't just encode all of the text directly. What you could do instead is choose a set of 255 words that all your text can be composed of (which is actually pretty reasonable and workable!), make a table of those words in the game's ROM corresponding to numbers (so 25 = "SECRET", 83 = "PENINSULA", etc.) and then just store each sentence as a string of word-bytes instead of letter-bytes -- so if you want to give the player a hint of "EASTMOST PENINSULA IS THE SECRET", that just takes 5 bytes instead of 32.

But all the other data in your game is also made of numbers from 0 to 255, so eventually some player's going to hack your text-displaying function to point to your music data or whatever (which will of course contain repetitions and patterns) and make a YouTube video about all the hidden messages in your game like "SWORD SECRET IS BEWARE SWORD SECRET AND GOLD SWORD SECRET TO MONSTERS UNDERGROUND UNDERGROUND UNDERGROUND UNDERGROUND".
posted by NMcCoy at 8:48 AM on January 5 [25 favorites]

I had no idea about the vertical strips. Each screen is 16 x 11 tiles, but you're saying instead of defining 176 tiles per screen, you really define 16 strips.

And it also appears to define a sort of palette of what tiles it will use. I was expecting that. Like, if you could use the same strip with different palettes and what was a tree with one palette might be graves on another palette.

Though, I hadn't expected, they seem to define two palettes per screen, rather than just one. One applies to the two tiles along all the outer edges of the screen, and one applies to the centre. I suppose in the hand-crafted map, they made the division less obvious by combining palettes that worked well together.

Though, what were they doing with the monsters that makes them so glitchy? It means they're doing something beyond just picking monsters from a list, but that they can offset what sprites they use. And what kind of weapon they shoot.
posted by RobotHero at 9:32 AM on January 5 [1 favorite]

Random data can serve as valid level data in these old games mostly because storage space was at an extreme premium. All data on the cartridge was therefore stored as compactly as possible. For example, perhaps they allocated 3 bits to an enemy ID field and then told the game designers, "You only have space for 8 different types of enemies", and so the designers made 8 different enemies. Therefore there's no number that indicates an "invalid" enemy.

Any possible stream of data that would build an "invalid" level, from an information theory point of view, means that there's wasted space or redundancy in the level specification. You don't want to waste any space at all when you're trying to fit a huge game into 128 kB. Every byte is precious, and every bit is descriptive.
posted by zixyer at 9:39 AM on January 5 [8 favorites]

I seem to remember getting into some really glitchy game states on the original NES Zelda game where stuff like that happened. We called them "minus worlds" back then too?
posted by nikaspark at 11:28 AM on January 5

We called them "minus worlds" back then too?

The term "minus world" does date back to the 80s. The original minus world, in Super Mario Brothers, is officially called that in the third issue of Nintendo Power. I don't know if players at the time generalized the term to refer to other glitched world states, but it would make sense.
posted by skymt at 1:28 PM on January 5 [4 favorites]

reading that article spurred the memory that what we did in Zelda was the trick where you'd go back to the home tile and we wondered if there was a minus world like the one in Mario Bros.'s cool that some decades later that was proven :-)
posted by nikaspark at 2:33 PM on January 5

nikaspark, if you can remember what you did, then a horde of speedrunners would really like to talk to you.
posted by JHarris at 2:58 PM on January 5

Anyway, I'm glad that I don't have to be the one to remind everyone that this trick is not really what it represents itself as being, because multiple other people already have! And they've articulated some things I've thought about how to describe for a good while, like NMcCoy's and zixyer's explanations of how, when you're really pushing to save memory and compressing as far as you can, glitches can take on profound and interesting consequences.

So yeah, the whole thing is bunk. You cannot enter these areas without both disabling the game's safeguards and being able to walk though walls anyway. Although, it's interesting bunk, inspired interesting descriptions of why it's bunk, and I don't blame duffel for posting it at all since this thing has been all over the internet and someone was bound to post it anyway. I considered doing it myself just to get it over with.

It should be noted that there is a known, and oft exploited, glitch that lets you wrap Link around the screen horizontally, which is often used by speedrunners to save a few seconds, and with the Ladder this trick can be used to wrap completely around the whole map, saving huge amounts of time.
posted by JHarris at 3:14 PM on January 5 [2 favorites]

Eh, I still think it's cool. The glitched-out enemies were completely bananas. The fact that the game still runs and functions somewhat normally under glitchy circumstances is pretty amazing.
posted by duffell at 3:40 PM on January 5 [4 favorites]

Minus world... Thank you for this post, I now understand the last three years. We've fallen into a minus world.
posted by hoist with his own pet aardvark at 10:15 PM on January 5 [4 favorites]

This reminds me of Hidden Worlds in Metroid.
posted by radwolf76 at 5:51 AM on January 6

posted by otherchaz at 6:06 AM on January 6 [5 favorites]

In Link's Awakening, there's a well-known bug that lets you warp from one side of a screen to another, and it's pretty trivial to get past the boundaries of the map this way. I spent a lot of time as a kid wandering around in random memory of that game this way, although I didn't realize at the time that's what I was doing. I liked when I found a room that I could recognize as a version of a specific room in the game, but fucked up now.
posted by vibratory manner of working at 12:03 PM on January 6 [2 favorites]

That was one of the cool things about this video to me, vibratory--I know the overworld map of LOZ better than most neighborhoods I've lived in (Christ, I'm seeing how that looks typed out, and uh, ANYWAY), so seeing that every one of the glitched squares in Bizarro Hyrule was based off a real overworld square (but, you know, weird as fuck) was really fun.
posted by duffell at 12:27 PM on January 6

Oh man, yeah, I had a v1.0 copy of Link’s Awakening with the map bug! It was super fun and useful, but on the other hand I managed at one point to use it to corrupt my save memory so badly that the game stopped booting, if memory serves
posted by DoctorFedora at 2:28 PM on January 6


I feel a call, like there's an unofficical Rule Of The Idealised Internet which seeks to compel people to take up something this perfect that emerges naturally from conversation and (with permission) make IMPACT GABBA SONGS AND TWINE IS FONT IMPACT GAMES IS PARSER PARSER GAMES AND TWITTER BOT IS SONGS GAMES AND ESOLANG ESOLANG ESOLANG

Very nice turn of phrase is what I'm saying.
posted by I'm always feeling, Blue at 3:46 PM on January 6 [2 favorites]

I really wish this was something that could be done more "organically" - as in the Metroid examples. I've come across these in a few games in my life - some of these I've not seen published online, and I'm tempted to record them, as they are notable for being explorable without crashing the game.

Some examples: Wizards and Warriors for the NES had a somewhat well known glitch where you could warp stages by abusing the "levitate" power that seemed otherwise not super useful... It would move you a pixel back at a time, regardless of if there was something in the way or not. The thing is, if you did this in a more vertical stage, you ended up in legitimately creepy glitch worlds that were actually navigable, although not always with visible barriers. It was rare that I'd find one completely unplayable, and again, I don't think it ever crashed the game. The glitch enemies were truly something else... If I knew how to record this sort of thing easily, I'd do so, as it's worth seeing.

There were some of these in Atari land as well - Mountain King was a strange and not particularly well known game, with a lot of verticality. By abusing the jump, you could jump to absurd heights and end up in "secret worlds" - again, this one was notable because it didn't crash the game, and you could explore them and potentially return to the main game.

I think both of these really put the seed in place that would blossom into my love of procedurally generated worlds.

Not quite a glitch world, but one of my favorites: Dungeon Explorer for the TG16 had a relatively well known cheat that would make you invincible, and also able to walk through barriers. There were also warp points hidden in trees. This made things a bit unpredictable, but what was truly great is that there was a hidden second ending you could get - There's a point where the throne is vacated, and normally you couldn't walk up to it as there's an invisible barrier, but with this code, you could simply claim the throne and abandon the quest, and get one of the best hidden video game endings ever.
posted by MysticMCJ at 12:28 PM on January 7 [4 favorites]

« Older JOY had always been an idiosyncratic operation   |   Black Americans Find Out Which African Tribe They... Newer »

This thread has been archived and is closed to new comments