Super Mario Bros. Glitch Levels Explained

preview_player
Показать описание
Why do glitch levels in Super Mario Bros. look the way they do? And how are levels stored in the game's ROM anyway? It's all explained right here.

CORRECTION
At 11:20, The brown block and horizontal pipe are swapped--the pipe should have index 1001 and the brown block should be 1010.

LINKS
INLINE LINKS
Рекомендации по теме
Комментарии
Автор

The fact that pipe warps have a check for what world you're in is interesting, that explains why in every single glitch level I've ever seen, there has NEVER been a pipe transition that successfully takes you to a different level.

MrCheeze
Автор

As a programmer myself, I am pulling my head in front of those who developed this format and the loading routine.
All these edge cases create a lot of branches in the code, making the routine really complex.
Crazy to think of these times where ROM was so expensive you had to play such tricks.
I wished the video would have gotten more down to the reasons these levels crash.

wernerderchamp
Автор

This level encoding is a masterpiece of engineering, and is "living" proof that real art is born from limitations. 2k of ram, 32k of data... What the programmers and game designers were able to do within these constraints is staggering. Thank you for explaining this!

QuintusCunctator
Автор

And what made this even more hardcore is the fact that Shigeru Miyamote and his team had to design levels by hand on graph paper, then manually enter in the bit registers for every BG, BG theme, tile data, and object data for each level into their source-code editor while paying attention to the rules of the programming logic they had written to avoid lockups, crashes, and glitches, and then compile the game and run it to playtest it.
At the time, there were nearly no game development tools available to allow on the fly level editing or playtesting without having to recompile the whole game.

GreyWolfLeaderTW
Автор

As a kid, i always wanted to make my own Super Mario Bros. levels. It seemed so simple in my mind, and you almost nailed the concept i had with level storage back then (and 10 year old kid-me was frustrated at the lack of easy tools to do so). Watching this video makes so much sense to me why the reality is that was so much harder to achieve, and why there is a base level of understanding of the game's engine required to make a custom level. Really great video (and series) as always!

JoeMecca
Автор

If you're wondering how you can bump blocks when everything is on a fixed grid, there is a trick to it. First you delete the tile from the tile map, replace it with a sprite with the same tile image and animate the bump. Then at the end of the animation, you remove the sprite and if the tile object is not destructible, put the original tile back into the tile map.

The book "I Am Error" also covers the SMB1 level format (along with a lot of other NES stuff). Recommended.

DisturbedValidity
Автор

I’m making a Super Mario Bros ROM hack and I’ve learned so much about the crazy stuff behind the scenes of SMB. SMB feels like it’s one of those facade houses. Only the parts we see work the way you’d expect

MaxOakland
Автор

That animation going through the level is insanely helpful. All the concepts covered are well explained but kinda hard to visualize in practice since so much is happening at once, the animation clears all that at once. It's really really well put!

nankinink
Автор

Having been an assembly language programmer in the 8-bit era, I am truly amazed at how great the true masters were at cramming so much stuff into so little memory. Boundary checking? 5 wasted bytes, and we can't spare the CPU cycles, either. Use a lookup table; who cares if level 33 points to the executable program? You can't legitimately get there anyway.

JamieStuff
Автор

oh this is excellent. everything I could have asked for for a video about this topic

HBMmaster
Автор

In official Nintendo parlance, level "screens" are called "pages". Screen is the physical screen. The high bit of the second byte is the page flag. What we call "pixels" are dots, as pixels are a physical thing on a physical screen. Screen and pixel are physical. Dot and page are logical. What are sometimes called 8x8 tiles are "characters". What we call "sprites", which Sega uses, Nintendo calls "objects." That is why the sprites are in OAM (object attribute memory) and the background tiles are the "name table", short for character name table.

JamieVegas
Автор

19:18 i knew it! peach was actually toad in disguise the whole time!

brightblackhole
Автор

I don't know why, but the original mario game has always fascinated me. i guess it's the way retro games work, but i've watched a bunch of videos on this game and it never gets any less fascinating

SwizzleDrizzl
Автор

19:14 OH! So this is why you can kill generated bullet bills with a koopa shell but not bullet bills that come out of launchers. They had to share a slot with cheeps.

EebstertheGreat
Автор

Great details of how they achieved level design with these familiar sprites from the 8 bit days. I've played a lot of Mario brothers and often wondered about some of the underlying methodology - very interesting to see it explained here!

ClassicGameSessions
Автор

I have such an enormous level of awe and admiration for the folks behind earlier game design. The creativity which with they were able to execute their ideas in such harsh restrictions is incredible. It may be a silly sentiment, but I think present day designers would benefit from that inspiration. We have so much free space to work in now that it often feels like it's being squandered. Of course, that's just from a lay person's perspective though

Purpie_Slurpie
Автор

Honestly, I'd like to see that final animation applied to the fully-glitched levels, considering their broken data...
Or we could even see _why_ these crashing levels do so, and possibly try and remove what causes the crash to see their true appearence.

invalid_user_handle
Автор

one of my favorite parts of these videos is the interactive content you put on your website

like you didn't have to make a level decoder and decode all the glitch levels in full but you did anyways and i appreciate that and it piques my curiosity

BigOlSmellyFlashlight
Автор

Trying to make your own SMB1 levels to run on an original NES without a proper editor and compiler is like trying to edit a .JPG picture by opening it in notepad and changing text.

corkbulb
Автор

I love how Nintendo actually knew about 9-1 and used it as inspiration for 9-1 in lost levels, which also looks like an above ground level but is actually a water level

jackhumphries
visit shbcf.ru