A fun historical note is that Doki Doki Panic actually started out as a prototype for a game that was considered for SMB sequel, but the prototype was deemed not exciting enough. Later, when Nintendo was asked to make a game for Yume Kojo '87 (Dream Factory '87) event in Osaka, the prototype was dusted off and turned into a complete game starring the mascots of the event. Hence the full title: Yume Kojo: Doki Doki Panic. The game turned out more popular than expected on the disk system, and eventually, when Nintendo started re-releasing some older disk titles as Famicom cartridges, they brought the international version of SMB2 back to Japan as Super Mario USA. Thus, the "failed" prototype fully redeemed itself and became an official SMB game it was meant to become from the very start.
I'm surprised there's no mention of the trick where you get a star, go into Subspace, and then leave right as the star is running out so you can hear the Subspace music continue to play in the main level.
I just realized the white's of Mario's eyes would HAVE to be a separate sprite since otherwise, there'd be four colors to his sprite not counting transparency which would be impossible for an unmodified NES.
theres actually an interesting video by retro game mechanics explained about this. iirc how they ended up doing it was they found they were able to use white for the eyes by using the lack of any color data in those areas, essentially adding a 0th color to the 4 available colors
SMB2 also has some other quirks that no one has delved into (at least none that I'm aware of) 1) The random knock out of a monster when entering a door/vase etc. Sometimes the enemy will be knocked out for no reason. You don't attack it, it just flips upside down and that's that. 2) The legendary double Mouser glitch. Not sure why or how this happens but if you manage to die at Mouser and on your next life, there will be two Mousers instead of one. Again, not sure why this happens and its only happened to me once but I do recall it happening to other people as well.
@@MaxOakland iirc you only need to defeat the "correct" Mouser. The other one will just disappear like a normal enemy would. In fact if you view SMB2 in one of its level editors, some normal enemies can be set as bosses while ALL the bosses (yes, even Wart!) can be set as normal enemies.
@@ZyrusSmith Well... Doki Doki Panic started life as a Mario prototype, but Nintendo turned it into a promotional tie-in for Fuji TV's Dream Factory. Mario 2 is just as much a Mario game as 1 and 3.
I like how Mario 2 has a particularly strong sense of high weirdness. The fact that it's a retool of a game tied to a different setting lends it a really distinct feel in the mechanics and presentation, emphasizing the "dream world" aspect of Subcon - There's a clear progression from SMB to SMB3, but SMB2? it's an aberration, unlike anything that came before and anything that came since, like a uniquely weird dream that comes and passes in the night. No mean feat in a series that already had a steep sense of psychedelia behind the presentation.
An interesting bit of trivia that I always liked was while Super Mario 2 is based on Doki Doki Panic, Doki Doki Panic runs on the Super Mario 2 engine, so it came full circle, and both games are by the team that made Super Mario Bros. Super Mario 2 isn’t a simple re-skinning, it is a legit sequel, just with an unusual story, and I like stories.
@@ZyrusSmith You seem to miss the point here. Doki Doki was made right after SMB1 by the same team, and started life as a prototype. There's enough Mario DNA there, clearly.
@@ZyrusSmith it's not. keywords here: existing Mario sequel prototype -He recalls, "I remember being pulled over to Fuji Television one day, being handed a sheet with game characters on it and being told, 'I want you to make a game with this'." Resuming Miyamoto's design team's work with the existing Mario sequel prototype engine, they greatly expanded the gameplay, created dozens of levels, and released the advergame-themed Yume Kōjō: Doki Doki Panic... en.wikipedia.org/wiki/Super_Mario_Bros._2#Development SMB2 isn't even JUST a "retexture" of doki doki panic. the prototype was a retexture (which all they changed was the main 4 characters) but in the prototype, you can't "sprint" by holding down B; Toad is the only one who can move faster when he's holding an item, everyone else moves at walking speed. there was plenty of behind the scenes work than just a sprite swap. SMB2 is as much Doki Doki Panic as Battle of Olympus is Zelda II
There is no such thing as "a Doki Doki game". "Doki Doki" is an onomatopoeia for a beating heart, and is part of a descriptive subtitle, not a franchise or series name. The full title is "Yume Koujou: Doki Doki Panic" and refers to Yume Koujou '88, an event sponsored by Fuji TV which Doki Doki Panic was created to promote. It would be accurate to say it's a Yume Koujou game, not a "Doki Doki" game.
@@ZyrusSmith Except the Shy Guys and other enemies from the game have made appearances all over later Mario games. Shy Guys even show up as a cameo enemy in Links Awakening, and they behave as mimics in other Zelda games do. It's pretty safe to say that Mario 2 was legitimately retconned into being an actual Mario game, even if it takes place in a dream like Link's Awakening does (hey, there's an idea: Shy Guys are an inhabitant of the dream world). And why wouldn't it be? Yume Koujou: Doki Doki Panic had some great ideas, and Mario 2 improved them further. They could have just let the game disappear with the event once it was over, but why waste perfectly good enemy concepts and gameplay ideas when it could be folded into the Mario canon and design formula?
This is so cool! I don’t much about coding, especially at this level, but your video made it easy to follow. It was interesting to learn more about how old games like this work. The mention of Game Genie was also very interesting. As a kid, I just assumed that the codes I entered with those devices were arbitrarily assigned “passwords” of sorts to achieve the desired effect in-game. I never knew that each GG code uniquely corresponded to an alteration of addresses in the assembly code!
“I hope you enjoyed this peek behind the scenes” I sure as hell did! Great video man! My mind was sincerely blown to learn how the game genie actually worked
You didn't have to debug to hear the mario theme in subspace! My brother and I discovered back in the 80s that if you go into subspace while you have the effects of a star man, AND if you then choose to exit subspace via the door right at the last few blinks of being invincible, the subspace Mario 1 theme will play in the overworld in its entirety! This is pretty easy to pull of in the very first world on the log bridge. Grab your potions, get your starman, throw your door and head in, then out right at the end of invincibility.
I do love these types of videos! Thanks for explaining the animation glitch. I remember noticing that way back and thought something looked a bit off. Of course back in late 80's most of us had our NES hooked up to whatever crappy CRT our parents would let us use so it wasn't as easy to notice!
Love these magic ASM breakdowns! I have a master's in CS and this low level stuff still blows me away, especially when it's showcased side-by-side with the fantabulous end results ^_^
Just recently on Discord, I explained why the eyes go wild when you stand in front of a door. Didn't have video, but I did confirm that it is indeed a priority thing. Most of the sprites would rotate positions each frame to work around the eight sprites per line limit (a common enough method) but the player's four parts were always first... and that's without counting the eye whites; those were stuck in the flicker cycle.
19:15 You can activate the suicide code by pausing the game then holding Up + B & A on controller 2, the unpause. That way you only sacrifice 1 life instead of starting over.
@@resonator7728 If I remember correctly the game is referred to as Zelda because they reused it from that game since it is also another FDS NES conversion
@Noah Douglas: That code his a left over from Doki doki panic, since doki doki panic got a save feature because it was on the disk system, after you beat a world and you wanted to save in game, you have to used the suicide code to force a game over in order to be able to have the save option you must used the suicide code inside a door, for the character to infinitely die. I know this because I played Doki doki panic in emulator and Rom.
This is a great concept for a video series, happy to see this blowing up your channel, got recommended this from the youtube algorithm, and excited to see more!
Really fascinating and fun video! Growing up, SMB2 was always this elusive, strange (in a good way) game that I only got to play occasionally when visiting my cousins. I've always loved it, it might even be my favourite among the NES Mario games!
For me it was editing executables and DLL files to customize the GUI in Windows 95/98. Followed by hacking Pokémon Red/Blue/Yellow with a GameShark for fun and profit.
Small correction: the death sound, as well as the damage sound, the veggie sounds, and the boss hit & death sounds (among possibly others) are actually produced by the Disk System's extra one-channel soundchip in Doki Doki Panic, and are sampled into DPCM for the Mario 2 conversion (since the western NES doesn't allow extra sound hardware through the cartridge slot like the Famicom does). The same trick was done for FDS sound effects in other such conversions like Zelda, Metroid, and so on - especially those FDS sounds which are meant to sound like vocalizations.
I love learning about things buried in game code, like those animation frames being omitted. One of my favorite examples is the first Final Fantasy, lots of spells don’t work as intended. Intersting stuff!
I love the way you find something to play with in every video, instead of just showing off what's already there. That was really the essence of programming for me when I was a kid: "huh, what happens if I change this?". Mostly crashes, but sometimes you got something cool to happen, and even the crazy glitches might teach you something. Also as soon as you got to 15:28 I didn't even notice all the other added animations, all I could think was "that waterfall cycle looks like crap, like it's missing a frame".
@@ZyrusSmith So? I didn't know that as a kid. None of us did. It was a mario game to us. And to me, the best one by far, followed by 3 and world. The downside is that we wil likely never see it fully in mario maker, but oh well.
Yes I keep watching more of these and they're all so great. This is the kind of stuff we need for programmers to watch. It only shows quite how impressive their feats had been.
I remember that I heard the complete loop of the SMB1 theme in SMB2 when I was a kid. The game started to glitch (perhaps the game was dirty) once I entered the subspace and I couldn't leave. So I was granted with the full SMB1 musical experience... for eternity!!... Or until I turned off the console. Hahaha! :D
This is such an underrated channel! There are a few others out there which discuss code and debugging in retro games too, but they never fail to lull me to sleep after 5 mins. 😁 You, sir, keep things interesting throughout. 🤝
It’s crazy how much SM2 influenced the series down the line with the addition of staple enemies and items, like Shy guys, ninji, and POW block, along with each of the characters’ signature moves, like peach’s hover, Luigi’s charged jump, and so on. I mean, it also is what the well know cartoon was based on.
That’s all true although it should be noted that the POW block was based upon the mid-air item which appeared in the original 1983 ‘Mario Bros.’ arcade game.
I recently discovered your channel and the 'Behind the Code' series of videos and I am really liking them! I love seeing the inner workings of these entertainment classics! Amazing that we can modify them all these years later and also learn more about how the 'magic' was made!
Loved that little assembly session! I managed to figure out smb1's x and y velocity, and removed the instruction that moves you left, and applies friction, so now you can only move right, and can't stop unless you hit something! Useless, but it's fun to understand what it's doing!
New to the channel but really loved this vid. I have extremely limited coding experience but the information was presented in a way even i could understand and follow
Really great video series. I've always been amazed by video games programming, even more so by old gen games in assembly language. So having such detailed look at how it really works is amazing. Thank you for doing this.
14:18 Finally someone explained this phenomenon! I could have SWORN that the mushroom tiles were facing left but this whole time they were facing right!!! You got me nintendo...you got me good.
Fantastic video! I know absolutely nothing about code, but I used to tinker around with emulators as a teenager and loved getting a peek into the developer side of games. This brings back lots of great memories. Thank you!
Quite honestly that arrangement of the underground theme from the original SMB which is the prototype of the underground theme from smb2 sounds a lot more pleasing than the one we actually got, but then again it would get repetitive to have the same underground theme just rearranged in each NES Super Mario Bros.
God this brings back memories. I remember getting this for my birthday at pizzahut. I played to death. I remember always using Princess for every level because of her glide ability but Luigi for level 3. I also love hearing how code works and the seeing the skeleton behind these classic game. Makes me want to design games myself.
"We finally can look at the RAM to change the subspace timer and listen to the whole SMB1 theme." I, an intellectual: "...or do what I did when I was 7: get a star in subspace, exit subspace, then thanks to a rather peculiar bug, listen to the entire SMB1 theme after the invincibility runs out, no technical knowledge required."
Dude def please keep making this series I really enjoyed it. It's awesome! Also can see you're getting some decent views with this series so stick with it you gained a new sub in me based just on this series. I was actually upset there was only 2 episodes lol
One time, I told my uncle about how interested I was in learning how to make games for the Atari 2600, and he lent me this 6502 trainer device to learn from. Sadly, I wasn't able to figure it out. Also, for some strange reason, I feel like playing Super Mario Bros 2.
I love SMB2, this was a great video! Super interesting - I’ve only played this game on the gameboy advance version, so seeing all these NES tricks is fascinating
If you listen closely, the Starman music didn't just add percussion but it replaced the old percussion. The prototype theme sounds a lot like the SMB1 version using the noise channel for percussion which was later replaced with lo-fi digital samples for drums.
Hello, this is the first time I've seen one of your videos and have no prior knowledge to any coding in this video. I really appreciate that your video is extremely detailed and I think you do a great job explaining how the coding works. I've learned so much about programming and mario 2 at the same time......also I paused the video to make this comment. I haven't even finished the video!
Fantastic and original idea for a video! I like many others have been interested in this for years but felt it would go over my head...until now. Your video is easy to understand, expertly edited, and touches on many small naunces I'd noticed for years - like the albatoss wing animation! Ive been super bored lately so I'm going to be checking this stuff out, thanks for this man!
Just discovered your channel and it's amazing! I just finished your back log. Would love to see a video on the topic of arbitrary code execution in Pokemon Red/Blue, particularly why the glitch item F8 exists.
There was a poster that came with the SNES that used photos from a prototype of Link To The Past. The magic meter and a whole bunch of other things in the screenshots were completely different from the retail release.
I used to glitch the game in the "subspace" area by picking up a grass or a vegetable top right at the time when you are kicked out. That can cause a coin to flip out of the door in normal space and sometimes make the original super Mario song play in its entirety or until you do something to change the music. Like finish the level or go through a door.
Ha! I got burned by that Fryguy bug the first time I played this. Most of my mushroom blocks were where the door was supposed to appear so I had assumed something was wrong with that. My "fix" was to make the fight harder by minimizing the number of mushroom blocks landing in that space.
You know? I'm with you about the Super Mario 1 theme in the subspace room. Man, I wish I had that game genie code in the late 80's. Imagine, also, being able to walk through the entire level in the subspace room. I wonder how many goodies we miss out on, not knowing exactly where to throw the potion at.
It's so interesting how many different "hidden" stuff you can find on games just by modifying a few lines of code. I did something similar with a GameShark Lite, a copy of Resident Evil for PSX, and an old game's magazine. There's a GameShark code there for modifying the items available at the items box in each slot, and I had realized that just by changing the last 4 values, I could get any items I wanted beyond what the magazine taught. That's the first time I learned about the cut "dumdum rounds" for the Colt Python, but I also found out about an oil canister of some kind (maybe for refilling the lighter). I could also get the sprite for the lockpick, which you never actually see in the inventory, and also fuel for the flamethrower. I was so amazed at those discoveries at the time. That's one of the reasons that I love emulators today, because of the tools they provide to find so many things in games.
I knew of the "Mario 1" Theme, as if you exist sub-space at an exact moment while invincible, you can have that theme play in the regular world until you meet a boss, or end the level.
Don't need to debug anyting to hear the original Mario theme in Mario 2. Just grab a starman and exit subspace just as the star power is ending. If you time it right the Mario 1 theme will continue to play in the regular overworld. Discovering this as a little kid was something I still remember now, for some reason.
Nice video! There's actually a suicide command in SMB2 so you don't have to reset when you encounter the Fry Guy glitch. It's even in the manual. Supposedly it exists in case you do something like dig your way to the bottom of an area you can no longer jump out of. I think it would be interesting to see if SMB2 in Super Mario All*Stars had any regressions. SMB3 certainly did... like the notch they cut out of the end of the ship in World 8 which helped American players jump out of the water.
That feature using the second controller is pretty useful, and is an acknowledgement by the programmers that removing the timer from SMB1 could result in the player being trapped forever. I've had to use it when getting trapped inside a tower of mushroom blocks (like the one you need to build in world 7 to reach a high platform).
@@DisplacedGamers Super Mario All Stars's SMB1 always bugged the crap out of me because you didn't bounce back after hitting a block like you did in the original game. I've found a patch for it though, and it plays great. Would really love to see what the issue was.
Fun fact: The subspace music in the Super Mario All-Stars version does the same. But being as the SMB1, SMB2, SMB3, and (in some cases) Super Mario World are compiled into the same ROM, the All-Stars version just borrows the tune straight from All-Stars SMB1. The whole tune is there. They only shortened it to match the SMB2 subspace version.
yt recommended this vid and I liked it. I have no idea of coding, but I enjoyed this video and the zelda one in the series "behind the code". i checked the rest of your channel but its not my type of content.
Thank you for this video! I had the sprite swapping glitch happen to me on an original NES back in the day, where the Mario sprite was split in two for an entire level (maybe longer.) I saved a small video and a picture of this on my 'smart' phone back in the day. Also, I always wondered why the animations on my "rev 0" cartridge looked not quite right. I had thought it was a limitation of the system or something like that, but I was incorrect. How could they let something like a single frame of every animation slip through the testing cracks? It always bothered me since day one of playing this great game. Again; THANK YOU for this in-depth look at watching RAM values and injecting hex values.
A fun historical note is that Doki Doki Panic actually started out as a prototype for a game that was considered for SMB sequel, but the prototype was deemed not exciting enough. Later, when Nintendo was asked to make a game for Yume Kojo '87 (Dream Factory '87) event in Osaka, the prototype was dusted off and turned into a complete game starring the mascots of the event. Hence the full title: Yume Kojo: Doki Doki Panic. The game turned out more popular than expected on the disk system, and eventually, when Nintendo started re-releasing some older disk titles as Famicom cartridges, they brought the international version of SMB2 back to Japan as Super Mario USA. Thus, the "failed" prototype fully redeemed itself and became an official SMB game it was meant to become from the very start.
15:45 - thank you *so much* for this, I've always wondered why Albatoss's animation looked a bit hack! Fantastic piece of information!
you _would_ be the one to mention that, wouldn't you
I'm surprised there's no mention of the trick where you get a star, go into Subspace, and then leave right as the star is running out so you can hear the Subspace music continue to play in the main level.
Andious Wandarier lol i just commented about this and saw your comment 😂
I did that a lot as a kid! I’d love to know how the code allowed for that.
used to love doing that as a kid, but I can't remember how I discovered it exactly
When I applied to be a game tester at Sega I had to write about a bug I had discovered on my own and this is what I wrote about!
Totally off subject but I never see anybody repping Red *Wizard* (or any of the upgrades) and I think it's pretty cool that you are.
I just realized the white's of Mario's eyes would HAVE to be a separate sprite since otherwise, there'd be four colors to his sprite not counting transparency which would be impossible for an unmodified NES.
If they had modified his face a little they could have had just that sprite use white instead of one of the three normal colors.
theres actually an interesting video by retro game mechanics explained about this. iirc how they ended up doing it was they found they were able to use white for the eyes by using the lack of any color data in those areas, essentially adding a 0th color to the 4 available colors
Check 5:03 where mario's eye white sprite shifts priority with the door sprite.
This was awesome, hoping for more “Behind the Code” episodes!
SMB2 also has some other quirks that no one has delved into (at least none that I'm aware of) 1) The random knock out of a monster when entering a door/vase etc. Sometimes the enemy will be knocked out for no reason. You don't attack it, it just flips upside down and that's that. 2) The legendary double Mouser glitch. Not sure why or how this happens but if you manage to die at Mouser and on your next life, there will be two Mousers instead of one. Again, not sure why this happens and its only happened to me once but I do recall it happening to other people as well.
Do you have to defeat both mousers to win the level?
@@MaxOakland iirc you only need to defeat the "correct" Mouser. The other one will just disappear like a normal enemy would. In fact if you view SMB2 in one of its level editors, some normal enemies can be set as bosses while ALL the bosses (yes, even Wart!) can be set as normal enemies.
I preferred this smb2 over the Japanese version. Each character has its own abilities, you can pick up weapons or enemies and throw them.
Yeah but it isn't even a Mario game. It's just a retexture of a Doki Doki game.
@@ZyrusSmith it's a good game, but not a good MARIO game
@@t4ky0n it's not that good
@@hioman it's alright, I don't like it tho.
@@ZyrusSmith Well... Doki Doki Panic started life as a Mario prototype, but Nintendo turned it into a promotional tie-in for Fuji TV's Dream Factory.
Mario 2 is just as much a Mario game as 1 and 3.
I like how Mario 2 has a particularly strong sense of high weirdness. The fact that it's a retool of a game tied to a different setting lends it a really distinct feel in the mechanics and presentation, emphasizing the "dream world" aspect of Subcon - There's a clear progression from SMB to SMB3, but SMB2? it's an aberration, unlike anything that came before and anything that came since, like a uniquely weird dream that comes and passes in the night. No mean feat in a series that already had a steep sense of psychedelia behind the presentation.
An interesting bit of trivia that I always liked was while Super Mario 2 is based on Doki Doki Panic, Doki Doki Panic runs on the Super Mario 2 engine, so it came full circle, and both games are by the team that made Super Mario Bros. Super Mario 2 isn’t a simple re-skinning, it is a legit sequel, just with an unusual story, and I like stories.
Yeah but it isn't even a Mario game. It's just a retexture of a Doki Doki game.
@@ZyrusSmith You seem to miss the point here. Doki Doki was made right after SMB1 by the same team, and started life as a prototype. There's enough Mario DNA there, clearly.
@@ZyrusSmith it's not. keywords here: existing Mario sequel prototype
-He recalls, "I remember being pulled over to Fuji Television one day, being handed a sheet with game characters on it and being told, 'I want you to make a game with this'." Resuming Miyamoto's design team's work with the existing Mario sequel prototype engine, they greatly expanded the gameplay, created dozens of levels, and released the advergame-themed Yume Kōjō: Doki Doki Panic...
en.wikipedia.org/wiki/Super_Mario_Bros._2#Development
SMB2 isn't even JUST a "retexture" of doki doki panic. the prototype was a retexture (which all they changed was the main 4 characters) but in the prototype, you can't "sprint" by holding down B; Toad is the only one who can move faster when he's holding an item, everyone else moves at walking speed. there was plenty of behind the scenes work than just a sprite swap. SMB2 is as much Doki Doki Panic as Battle of Olympus is Zelda II
There is no such thing as "a Doki Doki game". "Doki Doki" is an onomatopoeia for a beating heart, and is part of a descriptive subtitle, not a franchise or series name. The full title is "Yume Koujou: Doki Doki Panic" and refers to Yume Koujou '88, an event sponsored by Fuji TV which Doki Doki Panic was created to promote. It would be accurate to say it's a Yume Koujou game, not a "Doki Doki" game.
@@ZyrusSmith
Except the Shy Guys and other enemies from the game have made appearances all over later Mario games. Shy Guys even show up as a cameo enemy in Links Awakening, and they behave as mimics in other Zelda games do. It's pretty safe to say that Mario 2 was legitimately retconned into being an actual Mario game, even if it takes place in a dream like Link's Awakening does (hey, there's an idea: Shy Guys are an inhabitant of the dream world).
And why wouldn't it be? Yume Koujou: Doki Doki Panic had some great ideas, and Mario 2 improved them further. They could have just let the game disappear with the event once it was over, but why waste perfectly good enemy concepts and gameplay ideas when it could be folded into the Mario canon and design formula?
This is so cool! I don’t much about coding, especially at this level, but your video made it easy to follow. It was interesting to learn more about how old games like this work.
The mention of Game Genie was also very interesting. As a kid, I just assumed that the codes I entered with those devices were arbitrarily assigned “passwords” of sorts to achieve the desired effect in-game. I never knew that each GG code uniquely corresponded to an alteration of addresses in the assembly code!
“I hope you enjoyed this peek behind the scenes”
I sure as hell did! Great video man! My mind was sincerely blown to learn how the game genie actually worked
You didn't have to debug to hear the mario theme in subspace! My brother and I discovered back in the 80s that if you go into subspace while you have the effects of a star man, AND if you then choose to exit subspace via the door right at the last few blinks of being invincible, the subspace Mario 1 theme will play in the overworld in its entirety! This is pretty easy to pull of in the very first world on the log bridge. Grab your potions, get your starman, throw your door and head in, then out right at the end of invincibility.
I do love these types of videos! Thanks for explaining the animation glitch. I remember noticing that way back and thought something looked a bit off. Of course back in late 80's most of us had our NES hooked up to whatever crappy CRT our parents would let us use so it wasn't as easy to notice!
Love these magic ASM breakdowns! I have a master's in CS and this low level stuff still blows me away, especially when it's showcased side-by-side with the fantabulous end results ^_^
Just recently on Discord, I explained why the eyes go wild when you stand in front of a door. Didn't have video, but I did confirm that it is indeed a priority thing. Most of the sprites would rotate positions each frame to work around the eight sprites per line limit (a common enough method) but the player's four parts were always first... and that's without counting the eye whites; those were stuck in the flicker cycle.
Oh good! Thanks for sharing this. It was just an assumption on my part, so I am glad you shared a bit more about it, Kawa!
What discord is this if i may ask?
@@girlswithgames That'd be the byuu.org discord, invite code (one of many) yDPAWkQ.
19:15 You can activate the suicide code by pausing the game then holding Up + B & A on controller 2, the unpause. That way you only sacrifice 1 life instead of starting over.
Maybe that's why "zelda" appears in the code?
@@resonator7728 If I remember correctly the game is referred to as Zelda because they reused it from that game since it is also another FDS NES conversion
@Noah Douglas: That code his a left over from Doki doki panic, since doki doki panic got a save feature because it was on the disk system, after you beat a world and you wanted to save in game, you have to used the suicide code to force a game over in order to be able to have the save option you must used the suicide code inside a door, for the character to infinitely die. I know this because I played Doki doki panic in emulator and Rom.
That trick was common in a lot of NES games at the time, like Metroid. Saved a lot of travel time.
Cool
This is a great concept for a video series, happy to see this blowing up your channel, got recommended this from the youtube algorithm, and excited to see more!
Thank you! More on the way...
Really fascinating and fun video! Growing up, SMB2 was always this elusive, strange (in a good way) game that I only got to play occasionally when visiting my cousins. I've always loved it, it might even be my favourite among the NES Mario games!
I actually knew the music kept playing back in the 80s, but my cartridge had messed up. I was thrilled and left it up.
Messing around with emulators is how I learned hexadecimal twenty years ago! Great video
I was not born 20 years ago, wow
Watching reboot is how i learned about hexadecimal. 😂😂
@@PROPLAYEN billions of years happened before you were born. Get with the program soldier!
No. No It Wasn't....
For me it was editing executables and DLL files to customize the GUI in Windows 95/98.
Followed by hacking Pokémon Red/Blue/Yellow with a GameShark for fun and profit.
That off-by-one bug in the sprite animation is quite epic ! I’m amazed it could get unnoticed up to the release!
Bro, this channel is a gold mine
Small correction: the death sound, as well as the damage sound, the veggie sounds, and the boss hit & death sounds (among possibly others) are actually produced by the Disk System's extra one-channel soundchip in Doki Doki Panic, and are sampled into DPCM for the Mario 2 conversion (since the western NES doesn't allow extra sound hardware through the cartridge slot like the Famicom does). The same trick was done for FDS sound effects in other such conversions like Zelda, Metroid, and so on - especially those FDS sounds which are meant to sound like vocalizations.
I love learning about things buried in game code, like those animation frames being omitted. One of my favorite examples is the first Final Fantasy, lots of spells don’t work as intended. Intersting stuff!
I love the way you find something to play with in every video, instead of just showing off what's already there. That was really the essence of programming for me when I was a kid: "huh, what happens if I change this?". Mostly crashes, but sometimes you got something cool to happen, and even the crazy glitches might teach you something.
Also as soon as you got to 15:28 I didn't even notice all the other added animations, all I could think was "that waterfall cycle looks like crap, like it's missing a frame".
I loved it! This is my absolute favorite NES game of all time and its been great to see some technical details about it. Great stuff!
Yeah but it isn't even a Mario game. It's just a retexture of a Doki Doki game.
@@ZyrusSmith So? I didn't know that as a kid. None of us did. It was a mario game to us. And to me, the best one by far, followed by 3 and world. The downside is that we wil likely never see it fully in mario maker, but oh well.
Don't know when I subscribed to you, but I know it was worth it
I'm glad this showed up in my recommendations. Very good in depth video. Earned a subscriber.
Yes I keep watching more of these and they're all so great. This is the kind of stuff we need for programmers to watch. It only shows quite how impressive their feats had been.
I remember that I heard the complete loop of the SMB1 theme in SMB2 when I was a kid. The game started to glitch (perhaps the game was dirty) once I entered the subspace and I couldn't leave. So I was granted with the full SMB1 musical experience... for eternity!!... Or until I turned off the console. Hahaha! :D
You can get it by leaving subspace right as a starman wears off
This is such an underrated channel! There are a few others out there which discuss code and debugging in retro games too, but they never fail to lull me to sleep after 5 mins. 😁 You, sir, keep things interesting throughout. 🤝
Man , I wish code classes was fun like your videos.
I remember having that Fryguy glitch happen when I was a kid and being really confused when the door didn’t appear after beating the boss.
Good gravy ... initially this seems so difficult but going along the explanation made me realize what a pain game creation back in the day was.
oh where have been all my life, i love looking at oldschool code. sub.
quite a interesting video about Mario 2...and inner workings of the game
It’s crazy how much SM2 influenced the series down the line with the addition of staple enemies and items, like Shy guys, ninji, and POW block, along with each of the characters’ signature moves, like peach’s hover, Luigi’s charged jump, and so on. I mean, it also is what the well know cartoon was based on.
That’s all true although it should be noted that the POW block was based upon the mid-air item which appeared in the original 1983 ‘Mario Bros.’ arcade game.
I needed this video 26 years ago.
Floating White Block has always been my SMB2 go to character.
This is one the best in-depth Mario code videos I've seen in a long time.
I recently discovered your channel and the 'Behind the Code' series of videos and I am really liking them! I love seeing the inner workings of these entertainment classics! Amazing that we can modify them all these years later and also learn more about how the 'magic' was made!
Loved that little assembly session! I managed to figure out smb1's x and y velocity, and removed the instruction that moves you left, and applies friction, so now you can only move right, and can't stop unless you hit something! Useless, but it's fun to understand what it's doing!
New to the channel but really loved this vid. I have extremely limited coding experience but the information was presented in a way even i could understand and follow
Hope this "Behind the code" becomes a regular series. the last and this video was really cool.
Really great video series.
I've always been amazed by video games programming, even more so by old gen games in assembly language.
So having such detailed look at how it really works is amazing.
Thank you for doing this.
@ 0.40 you said that shouldnt be to hard to follow. well sir, do not underestimate the power of whisky. ill have to watch again when ive sobered up
Ha!
this was amazing please keep the good work
I program industrial systems for a living. It's amazing how similar the logic is. I'm now emboldened to go messing around in the emulator debugger.
14:18 Finally someone explained this phenomenon! I could have SWORN that the mushroom tiles were facing left but this whole time they were facing right!!!
You got me nintendo...you got me good.
Fantastic video! I know absolutely nothing about code, but I used to tinker around with emulators as a teenager and loved getting a peek into the developer side of games. This brings back lots of great memories. Thank you!
Dude your channel is so underrated! Absolutely GREAT content!! You deserve more subs ASAP!
Quite honestly that arrangement of the underground theme from the original SMB which is the prototype of the underground theme from smb2 sounds a lot more pleasing than the one we actually got, but then again it would get repetitive to have the same underground theme just rearranged in each NES Super Mario Bros.
God this brings back memories. I remember getting this for my birthday at pizzahut. I played to death. I remember always using Princess for every level because of her glide ability but Luigi for level 3.
I also love hearing how code works and the seeing the skeleton behind these classic game. Makes me want to design games myself.
i remember when I modified the title screen to play the full song years ago. Super Mario Bros 2 is definitely interesting as well as its development.
This is definitely my new favorite channel
wow, you just taught us how to make cheat codes. I feel like my childhood has been fulfilled.
I personally really love the technical explanations, even if I have no background in it at all, it's very interesting!
Im bearly learning pyton, so I am able to understand how some of this works! Very cool, makes me want to learn more.
This brought back a lot of memories of nine-year-old me.
Really well done explaining the video! Knew a bit about hex code from a ARG game my friend made
"We finally can look at the RAM to change the subspace timer and listen to the whole SMB1 theme."
I, an intellectual: "...or do what I did when I was 7: get a star in subspace, exit subspace, then thanks to a rather peculiar bug, listen to the entire SMB1 theme after the invincibility runs out, no technical knowledge required."
thanks for sharing that i love the subspace remix of 1-1 theme from smb1 so thank you
I absolutely love your videos. I hope to see your channel grow even larger. Keep up the amazing work.
Thank you! It means a lot.
Dude def please keep making this series I really enjoyed it. It's awesome! Also can see you're getting some decent views with this series so stick with it you gained a new sub in me based just on this series. I was actually upset there was only 2 episodes lol
One time, I told my uncle about how interested I was in learning how to make games for the Atari 2600, and he lent me this 6502 trainer device to learn from. Sadly, I wasn't able to figure it out.
Also, for some strange reason, I feel like playing Super Mario Bros 2.
This channel is pure gold. Subscribed!
I love SMB2, this was a great video! Super interesting - I’ve only played this game on the gameboy advance version, so seeing all these NES tricks is fascinating
This was surprisingly easy to understand . Great video.
If you listen closely, the Starman music didn't just add percussion but it replaced the old percussion. The prototype theme sounds a lot like the SMB1 version using the noise channel for percussion which was later replaced with lo-fi digital samples for drums.
Thats was interesting, you finally explain to my why if you kill fryguy with a super star you get soft locked.
This is the first video of yours I’ve seen, and I hav me to say, *superb* content man. Seriously awesome! Thanks for taking all the time and care!
I program in python and this makes a really cool video to watch. A nice blend of retro gaming and hacking (The real signification). Sweet.
Oh, this is too cool. I always wondered why his eyes flicker in front of a door.
Hello, this is the first time I've seen one of your videos and have no prior knowledge to any coding in this video. I really appreciate that your video is extremely detailed and I think you do a great job explaining how the coding works. I've learned so much about programming and mario 2 at the same time......also I paused the video to make this comment. I haven't even finished the video!
I am learning pixel art being a long time graphic designer. I learned a lot from watching this video. I also played smb2 as a child.
Love this :)
Please use this format, and investigate other roms.
Thanks for the video :)
Really glad I found this channel :] thanks for making these!
Fantastic and original idea for a video! I like many others have been interested in this for years but felt it would go over my head...until now. Your video is easy to understand, expertly edited, and touches on many small naunces I'd noticed for years - like the albatoss wing animation! Ive been super bored lately so I'm going to be checking this stuff out, thanks for this man!
Just discovered your channel and it's amazing! I just finished your back log. Would love to see a video on the topic of arbitrary code execution in Pokemon Red/Blue, particularly why the glitch item F8 exists.
There was a poster that came with the SNES that used photos from a prototype of Link To The Past. The magic meter and a whole bunch of other things in the screenshots were completely different from the retail release.
I used to glitch the game in the "subspace" area by picking up a grass or a vegetable top right at the time when you are kicked out. That can cause a coin to flip out of the door in normal space and sometimes make the original super Mario song play in its entirety or until you do something to change the music. Like finish the level or go through a door.
Ha! I got burned by that Fryguy bug the first time I played this. Most of my mushroom blocks were where the door was supposed to appear so I had assumed something was wrong with that. My "fix" was to make the fight harder by minimizing the number of mushroom blocks landing in that space.
This video is super interesting. Your channel is wildly underrated
My favorite stuff on this channel is things like the animation bug fixable with a game genie.
You know? I'm with you about the Super Mario 1 theme in the subspace room. Man, I wish I had that game genie code in the late 80's. Imagine, also, being able to walk through the entire level in the subspace room. I wonder how many goodies we miss out on, not knowing exactly where to throw the potion at.
It's so interesting how many different "hidden" stuff you can find on games just by modifying a few lines of code. I did something similar with a GameShark Lite, a copy of Resident Evil for PSX, and an old game's magazine. There's a GameShark code there for modifying the items available at the items box in each slot, and I had realized that just by changing the last 4 values, I could get any items I wanted beyond what the magazine taught. That's the first time I learned about the cut "dumdum rounds" for the Colt Python, but I also found out about an oil canister of some kind (maybe for refilling the lighter). I could also get the sprite for the lockpick, which you never actually see in the inventory, and also fuel for the flamethrower. I was so amazed at those discoveries at the time. That's one of the reasons that I love emulators today, because of the tools they provide to find so many things in games.
I knew of the "Mario 1" Theme, as if you exist sub-space at an exact moment while invincible, you can have that theme play in the regular world until you meet a boss, or end the level.
I actually had the fryguy bug happen to me once...over 30 years ago. It was buried deep in memory but it's nice to finally see an explanation.
How amazing it would've been to have all the debug tools we have now back in the 80's and 90's.
Don't need to debug anyting to hear the original Mario theme in Mario 2. Just grab a starman and exit subspace just as the star power is ending. If you time it right the Mario 1 theme will continue to play in the regular overworld. Discovering this as a little kid was something I still remember now, for some reason.
Nice video!
There's actually a suicide command in SMB2 so you don't have to reset when you encounter the Fry Guy glitch. It's even in the manual. Supposedly it exists in case you do something like dig your way to the bottom of an area you can no longer jump out of.
I think it would be interesting to see if SMB2 in Super Mario All*Stars had any regressions. SMB3 certainly did... like the notch they cut out of the end of the ship in World 8 which helped American players jump out of the water.
Great points, Emmett!
Goodness. I haven't looked at All*Stars in a long time.
That feature using the second controller is pretty useful, and is an acknowledgement by the programmers that removing the timer from SMB1 could result in the player being trapped forever. I've had to use it when getting trapped inside a tower of mushroom blocks (like the one you need to build in world 7 to reach a high platform).
@@DisplacedGamers Super Mario All Stars's SMB1 always bugged the crap out of me because you didn't bounce back after hitting a block like you did in the original game. I've found a patch for it though, and it plays great. Would really love to see what the issue was.
@@rameynoodles152 if I recall correctly, I think it's because they accidentally (?) reversed the sign in one of the calculations.
What’s the fry guy glitch? I haven’t heard of it before.
No idea programming videogames and watching rom and ram values in hex would be so interesting thank you. Please continue this type of series.
Fun fact: The subspace music in the Super Mario All-Stars version does the same. But being as the SMB1, SMB2, SMB3, and (in some cases) Super Mario World are compiled into the same ROM, the All-Stars version just borrows the tune straight from All-Stars SMB1. The whole tune is there. They only shortened it to match the SMB2 subspace version.
this is the dream video I always wanted to watch, plz make more of them!!!
yt recommended this vid and I liked it. I have no idea of coding, but I enjoyed this video and the zelda one in the series "behind the code". i checked the rest of your channel but its not my type of content.
i cannot overstate how much i love these videos! great job uncovering the full jingle! :)
Wow, POW! 17:30 Did notice that the O was out of place back then. Can't believe they released it with Albatoss and other animation wrong!!
That was a great tutorial. I learned a lot and you’re a really good teacher. Thank you!
This makes me think - that "Mario Madness!" proclamation on the game box? - I feel like it's more accurate than ever!
One of the best chanels indeed, you need to do a patreon, i will suscribe
Thank you for this video!
I had the sprite swapping glitch happen to me on an original NES back in the day, where the Mario sprite was split in two for an entire level (maybe longer.) I saved a small video and a picture of this on my 'smart' phone back in the day. Also, I always wondered why the animations on my "rev 0" cartridge looked not quite right. I had thought it was a limitation of the system or something like that, but I was incorrect. How could they let something like a single frame of every animation slip through the testing cracks? It always bothered me since day one of playing this great game.
Again; THANK YOU for this in-depth look at watching RAM values and injecting hex values.