You can also learn some things about Game Genie codes just by putting them into the encoder and seeing what values they're equivalent to: * A fairly well known and flashy "corrupter" code for SMB is IKAAAE. This is equivalent to setting the value at address 0080 to 4D (with no compare, meaning the Game Genie doesn't care about whatever value was in there before). * The code PIGPOG is known for causing totally random enemies and objects to appear in SMB while leaving the stage graphics intact. This is equivalent to setting the value at address 1C41 to 51 (again with no compare value). I think a whole series could be made of walking through why these Game Genie codes have the effects they do. :)
A bit of a broad topic, but I'm curious how sound drivers/engines are designed for retro game consoles. Having an awesome chiptune doesn't do a whole lot if you don't tell the hardware how to play it, or you don't have enough cartridge space to store it all.
I love that in All Stars they fixed the 1-line bug by adding more code twice. "I fixed my broken bicycle by adding a car to it." Thanks for exposing a fun little detail that I would have no chance of ever learning otherwise
@@ShiroCh_ID code bloat existed since the beginning, it's just the necessity to clean it up (usually for performance reasons) which has become more lax across time
@@frostech3149 Yes, I wish I knew how to simplify repeated code. Some of this code simplification was only possible with the 65C02 and 65816's extra available opcodes.
I still think the fix they did for both Super Mario Bros. 2 (FDS) and All Night Nippon Super Mario Bros., which involved simply removing the instruction for incrementing the warp zone control value under "WarpZoneObject," is more economic and, if the player attempted the wall-walk glitch past the normal 1-2 goal pipe to the warp zone pipes before the correct value in $06D6 is loaded, these three pipes would merely take the player to the same area the normal goal pipe would have done anyway.
This is wonderful. In Japan, people really took a lot of research into Minus World by doing the cart swap trick to load random garbage memory to get other "Minus Worlds", and it brings me great joy that there's this whole undiscovered frontier sitting here in All Stars.
Yeah, I love experimenting with game code to find stuff like minus world or all the weirdness in the original pokemon games. That bullet bill poking mario in the butt on the flagpole was completely unexpected and actually made me laugh. I really want to know what in the code of that minus world caused it.
@@childofcascadiaprobably a bug with the flagpole underwater that was never caught (recall there are no underwater levels with flagpoles in them in the main game).
@@starleaf-luna The original game never did that (see the FDS Minus World which has underwater flagpoles) so it must've been introduced during the porting process. Either that or it's one of the Game Genie codes.
There is what seems like an infinite amount of content online, so as such there are far far more people who explore topics like this with passion then you would think. Check out Bismuth7, Gamehut, and Coding Secrets, lol
I remember when I was younger, VS SMB was a game at this one arcade , and I noticed how they remove the minus world glitch by already having broken the blocks. every weekend, my dad would take me to the arcade, and I would try my hand at the game. then when I went home, I would brainstorm strategies for getting further into the game for a better high score, only to return next week and find somebody had already used my strategy to get that high score. it was surreal.
A little disappointed this didn't cover _SMB Deluxe_ for the Game Boy Color as well - IIRC the Minus World bug is fixed there, and it would've been interesting to see where it took you if that check was removed (or if it just crashes, as _All-Stars_ does). I suppose it wouldn't be 6502 ASM that would need to be parsed anymore, though, which might complicate matters.
Ahh man. I am not discounting looking at Deluxe at some point, but reversing six games for this episode including manipulating All-Stars took some time. The similar code (and even the same RAM values) helped speed things up.
@@DisplacedGamers You were definitely thorough with all the variations you showcased here. And if SMB Deluxe has different code altogether, I can see why you didn't include it. I'll look forward to your take on it sometime in the future. Since it also has a 'port' of Lost Levels, a Challenge Mode, two Versus Modes, and additional features that unlock while playing any of these, there should be plenty to talk about.
There's also the GBA NES Classic Series port, which in general seems pretty close to the original just with a different screen size, though I have no idea how it handles Minus World.
@@angeldude101 That one, I presume, is just the NES ROM running in an emulator, and would behave identically to that version. I only have _Zelda 2_ out of that line, though, so I can't say for certain.
Un related to this vid, but i recently found a rare windows 98 game with levels locked behind codes (it was a lottery game, you had to buy scratchers to get a code) Long story short, thanks to your videos I had a basic enough idea on how to play in the assembly code to patch the code checking mechanism and access most levels in the game! So a big thank you 😃
@@Golinth Sorry for the Delay ! The game is called Mozaic, it's a french-canadian game from 2001. Here's a bit of gameplay : ua-cam.com/video/9Rbu_-RaXm8/v-deo.html I'm not sure if I can put an archive link here, but I'm uploading the patche game as we speak
I wonder how that sprite bug with the Bullet Bill at 13:33 occurs. Debugging these levels and finding out how we got there might be a nightmare, though.
It's definitely an interesting point. Chronologically it's definitely true, even though people usually speak as though it wasn't. I wonder which of the two games the levels were actually designed for originally, though - Created for VS and used again for SMB2j, or created for SMB2j and included in a different game while development was still in progress?
Heh, I actually recently encountered that bounds check SMB1 has to make sure it never loads a world other than the 8 valid ones. I was confused why it existed, especially when SMB2u and SMB3 don't have it. But now it makes sense, they wanted to be absolutely sure that even if their minus world bugfixes didn't work, they still had a failsafe to keep you out of invalid levels.
This was a great video to demonstrate how complicated and interwoven a games code can be. Where one tweak doesn't always result in one change. And that it can cascade into other areas too. That's also not even taking the levels design into account either. The most fascinating part was the water ripple effect in the castle which makes me wonder if that's a mode 7 layer that can do that effect on any background layer. It definitely gives me ideas. Great video as always Chris, thanks mate.
I just started watching your videos a couple of months ago and I find them fascinating. As a programmer I too love to dissect things and find out what makes them work. Thanks for the videos and keep cranking them out.
Funny enough I remember in an arcade a stand along smb game that's now play choice but DID have the new type of lvls meaning vs. Version. It could very well mean both versions were a thing.
if it was an arcade release of the game it was probably either a repackaged playchoice rom or a repackaged nes rom. i'm pretty sure i've encountered the first case in the wild but i suck(ed) at controlling platform games with a joystick and i was low on cash so i didn't get far enough to see any differences
There was a stand-alone SMB cabinet at one of my arcades too. It was labeled with a basic “Super Mario Bros” and not “VS” nor “Playchoice 10.” I didn’t play it much because my cousin already had an NES and I got one soon after discovering the arcade cabinet. I only managed to get through 1-3 in the arcade, and from what I remember, it was the same as the NES version.
No idea if that's what you saw, but kevtris (the mastermind behind Analogue's lineup of Nt Mini, Super Nt, Pocket etc) made a video about a bootleg version implemented in large part using discrete logic chips. Look for "Vs. SMB Bootleg Arcade Board Reverse Engineering Adventure".
Neat channel you have, wish this was around back in the day when I took an assembly class. However, I am really enjoying the refreshers packaged in such a fun and unique way! The TNMT video was particularly good, as was Battle Toads. You picked some great games to analyze, and are doing such a good job with the code and explanations.
Phew. I was gonna ask for a link to the previous episode on minus worlds. But lucky for me, it's right smack dab in the middle of the "home" section of your page. Now that's good service from a channel! Answered my question before I even asked it.
Thank you for doing this follow-up to the last Minus World video! I wonder if it might be possible to incorporate the new warp zone "override bad value" code from SMAS (that you discover at 9:30) into the original NES SMB, to bypass the Minus World? However, there is one instruction here exclusive to the 65816: DEC A (decrement accumulator), which tells us if we are above ground or not. On the original 6502, after the LDA instruction denoting area type, this can be done by instead inserting either: (1) an SEC (set carry) instruction, and then an SBC (subtract with carry) with an immediate value of #$01 to identify if we're on above ground or not; or (2) changing the DEC A to an LSR A (logical shift right, which again changes $02 into $01, but via division instead of subtraction). Also, on All Night Nippon Super Mario Bros., there is a new bug that can be exploited if you do the Minus World trick and go down the far right pipe (the one that normally takes you to World 2), but try to go down that pipe and trigger the "WELCOME TO WARP ZONE" message at the same time. If successful, you'll be back at World 1-1 but the current World number is still 1-2 and the timer hasn't been reset yet, so hurry along to the goal flag to get to the real World 1-3. Please try to look into this in a later episode.
UPDATE: Instead of INC A, you can use LSR A (which also changes the current value in A at RAM variable $074E from $02 to $01, but by division instead of subtraction) and it will do the same thing.
This was great, as always! -- I'm interested in the differences between VS Super Mario Bros. and the original, as you mentioned there were physics "tweaks", etc. Mario's physics have always been a thing of mystery to me. -- Also, more Zelda and Megaman plz! :D
WOW DUDE! thank you so much for this video! you finally solved a 32 year old riddle 😆👍 in 1990 my best friend and i discovered the minus world by accident. we thought it was a secret in mario bros. and tried to solve this. we played the whole weekend, left the nes on all night etc. and then on sunday.. we came into a underwater version of koopa's castle and after that we saw a strange land level! than the game lockes up and it's over. we were completely hyper and exited by what we saw. til this very day, nobody believes us and were never able to reproduce this. now i know why! my friend had a dutch 1987 version of mario bros.game. so no combo card. on the dutch 1990's version mario / duck, which i have, this strange minus world version can not be found! amazing isn't? 😜
How weird I discovered your channel and previous video on minus world today and then you upload a follow up today. Ha. Been watching loads of your other videos today too. Really great. 👍🏼
Here's an interesting thing you might want to do a code walk through: the level compression/decompression scheme for Solar Jetman. I pick that game because it's levels are absolutely *gigantic*, probably among the largest for any NES game. And while I can take a few guesses as to how they fit 13+ gargantuan levels into 256KB of ROM, it'd be interesting to see how they actually did it. Even better, it'd be great if you showed us how you figured out how it accomplished decompression.
At the least, you used to be able to use software release date as a cue as to when the code was completed. Nowadays, it feels like nobody bothers finishing a game before releasing it.
He should start with the original SMB (which is easy enough given you can just modify the original "warp to world" codes to take you wherever you want) and then move on to the "counterpart" in All-Stars based on the technique in this video.
You mentioned baseballs in the shinobi bonus stage that wasnt utilized. According to a 2000 interview they stated that all the weapons were not agreed yet and they put a baseball in as a object to test programming and would change it after they approved the weapon it would become
To know if there are elements prioritized erroneously to be in the background you can check in VRAM. I've never used Mesen but it appears pretty robust. If it allows you to disable layers then it becomes trivial to hide the layer(s) you think are in front of out of sight elements.
I'm a little disappointed none of the official releases corrected the scroll stop glitch, when your previous video showed how easy it would be to correct.
I remember a version of donkey Kong country that maybe 1 or 2 other people have played. I borrowed my friends damaged donkey Kong country game for a week. The game ran fine. As soon as you rolled you remained in that horizontal height. So you could roll in the air and keep floating at that height. If you jumped then roll after you had rolled in the air you would jump and be able to roll at a even higher height. The animal friends had a neon glitch look to them. I never played it through but not sure what else was rearranged. What I heard is that the game had water damage.
Do you want to hear crazy? Do you remember the NES World Cup Championship cartridges? It had Super Mario Brothers on it, Rad Racer, and I forgot the third game. At any rate, one of my very good friends owned a Play N' Trade. This was back in like 2008 and business was booming. My friend that owned the store bought a copy of the World Championship (Gold) for his store and he let some of us play it (I did!). Guess what works on the World Championship carts? If you guessed minus world you would be correct. I actually was the very first person that any of us knows that actually tried it and it absolutely worked. I won a free game getting the trick to work.
Thanks for these investigations, I find them very interesting. You do well at explaining even for someone who is not a code expert. If you ever do another video on this topic, I'm curious about how the “garbage” world data in the ROM works that produces the worlds you end up in, like the differences between cartridge and FDS minus world.
@Displaced Gamers, I would love to see a video breakdown of that INSANE game breaking bug from DKC2, I believe?? Also, a Rampage (NES) video with game genie codes.... ;-) Great video!
Great video again! I loved the first one and this second one is amazing. One thing that I am curious about that I don't think I've found answers for is why SMB1 on the FDS has a different Minus World despite seeming to be a pretty clear cut port, (same thing with SMB1 on C64 though not being official) In this video you had stated that it addresses for level data a different area in code because everything was shifted to make room for FDS stuff but shouldn't that mean that where it addresses to should produce identical results? I'd love to see this question explore in maybe another video or maybe even a reply. Thanks!
Judging by this video, it seems the old code from 1985 was used as the base for the all-stars version with some fixes added as needed like what they did to prevent the minus world. If this is the case, what made them change the physics when Mario breaks a brick? Was that an intentional change? He seems to go upward and get caught on the brick above in All-stars while in the original he bounces down and keeps momentum.
That is what I wish to know, too. It is true the code for the original 1985 SMB1 was used as the starting point for all he has covered here, and that I wish to know more as to what was changed specifically for Super Mario All-Stars. For example, the bounce rate for when Mario/Luigi jumps on an enemy is not the same: * The original rate was $FC, and applied to both SMB1 and VsSMB. This meant Mario/Luigi could "fall off" and stop bouncing (or "turtle tipping") on a Koopa or Buzzy Beetle against a staircase, and have to restart. * For SMB2 (FDS, hereafter called The Lost Levels) and All Night Nippon SMB, although the normal bounce rate for jumping on an enemy is $FA, there is also a check for if Mario/Luigi had jumped on any of the Koopa Paratroopas (the ones with the wings); the bounce rate for them is set as $F8. In both cases, Mario/Luigi can continuously bounce on Koopas or Buzzy Beetles on staircases without falling off. * In Super Mario All-Stars, for both SMB1 and The Lost Levels, the bounce rate (including for Koopa Paratroopas) is $FB. Although it lacks the extended check for the Koopa Paratroopas that was present in both the original FDS TLL and ANNSMB, Mario/Luigi can still continuously jump on Koopas and Buzzy Beetles against staircases for points and 1-UPs without falling off.
This was really fascinating! Now I just really want to see you poke at Super Mario Deluxe on the GBC and the Super Mario Bros. Special! any chance of a part 3 :D
Never quite understood coding, but I think I can at least understand a little of what your discussing, but nonetheless this was a pretty interesting video
Loosely related to All Stars Minus world, but I've seen footage of peeps injecting Romhack levels into All Stars SMB, since the logic is so similar it mostly works aside from some background props.
Nice rundown of the evolution of the minus world logic. I also liked that you showed so many worlds at the end. How did you find the worlds that you showed, pure trial and error? Also, would a given world such as world T be different in say the original SMB? And do you have any idea why the FDS port's minus world is different, even though the code in 1-4 is the same, as you showed?
One of these days I'd really like to see a comparison between the Super Mario 64 engine and the Zelda:OOT engine. Since the source code to both has been reverse engineered (then leaked...) I'd like to see how much they share since - according to the lore - the Zelda 64 engine was based on SM64. Can Mario run around Hyrule Field? Can Link complete Bob-omb Battlefield?
I recall Kaze Emanuar saying that some of the optimizations he made for the Mario 64 could be integrated into OoT. So that would mean they are pretty linked together.
Perfect video! You said that pal version of smb has tweaked hitboxes for the 50hz code. Does pal mario all stars include this patch (compared to us smas), or just runs slower using us code? Second, in all stars, lost levers has bugfix compared to smas smb?
Yes, most of the same changes for the second PAL SMB1 are present in the same region's version of SMAS. The PAL SMB1 is also the first home version of the game to have the fix for the end of the water levels that corrects a glitch above the goal pipe that causes Mario/Luigi to get stuck and have to wait for time to run out.
Here is the link to the SNES Game Genie encoder: games.technoplaza.net/ggencoder/js/
Explore!
You should pin this comment 📌
@@johnfitch5358 Thanks, John.
What Adress should I use
You can also learn some things about Game Genie codes just by putting them into the encoder and seeing what values they're equivalent to:
* A fairly well known and flashy "corrupter" code for SMB is IKAAAE. This is equivalent to setting the value at address 0080 to 4D (with no compare, meaning the Game Genie doesn't care about whatever value was in there before).
* The code PIGPOG is known for causing totally random enemies and objects to appear in SMB while leaving the stage graphics intact. This is equivalent to setting the value at address 1C41 to 51 (again with no compare value).
I think a whole series could be made of walking through why these Game Genie codes have the effects they do. :)
A bit of a broad topic, but I'm curious how sound drivers/engines are designed for retro game consoles. Having an awesome chiptune doesn't do a whole lot if you don't tell the hardware how to play it, or you don't have enough cartridge space to store it all.
I love that in All Stars they fixed the 1-line bug by adding more code twice. "I fixed my broken bicycle by adding a car to it." Thanks for exposing a fun little detail that I would have no chance of ever learning otherwise
so code bloat was already a thing in 90's huh
@@ShiroCh_ID code bloat existed since the beginning, it's just the necessity to clean it up (usually for performance reasons) which has become more lax across time
@@frostech3149 Yes, I wish I knew how to simplify repeated code. Some of this code simplification was only possible with the 65C02 and 65816's extra available opcodes.
I still think the fix they did for both Super Mario Bros. 2 (FDS) and All Night Nippon Super Mario Bros., which involved simply removing the instruction for incrementing the warp zone control value under "WarpZoneObject," is more economic and, if the player attempted the wall-walk glitch past the normal 1-2 goal pipe to the warp zone pipes before the correct value in $06D6 is loaded, these three pipes would merely take the player to the same area the normal goal pipe would have done anyway.
This is wonderful. In Japan, people really took a lot of research into Minus World by doing the cart swap trick to load random garbage memory to get other "Minus Worlds", and it brings me great joy that there's this whole undiscovered frontier sitting here in All Stars.
Yeah, I love experimenting with game code to find stuff like minus world or all the weirdness in the original pokemon games.
That bullet bill poking mario in the butt on the flagpole was completely unexpected and actually made me laugh. I really want to know what in the code of that minus world caused it.
@@childofcascadiaprobably a bug with the flagpole underwater that was never caught (recall there are no underwater levels with flagpoles in them in the main game).
@@starleaf-luna The original game never did that (see the FDS Minus World which has underwater flagpoles) so it must've been introduced during the porting process. Either that or it's one of the Game Genie codes.
@@starleaf-lunadoesn’t one of the Lost Levels world 9 levels have an underwater flagpole? I assumed the codebases would be consolidated
I wish more people explored topics like this with such passion. Your dedication really shines through. Amazing work, my friend. Simply amazing.
There is what seems like an infinite amount of content online, so as such there are far far more people who explore topics like this with passion then you would think. Check out Bismuth7, Gamehut, and Coding Secrets, lol
That is a nice compliment though, I get that's the intention. Boundary Break is pretty good too.
yes
@@chimp9465 yes
Obsequious
I remember when I was younger, VS SMB was a game at this one arcade
, and I noticed how they remove the minus world glitch by already having broken the blocks. every weekend, my dad would take me to the arcade, and I would try my hand at the game. then when I went home, I would brainstorm strategies for getting further into the game for a better high score, only to return next week and find somebody had already used my strategy to get that high score. it was surreal.
A little disappointed this didn't cover _SMB Deluxe_ for the Game Boy Color as well - IIRC the Minus World bug is fixed there, and it would've been interesting to see where it took you if that check was removed (or if it just crashes, as _All-Stars_ does). I suppose it wouldn't be 6502 ASM that would need to be parsed anymore, though, which might complicate matters.
Ahh man. I am not discounting looking at Deluxe at some point, but reversing six games for this episode including manipulating All-Stars took some time. The similar code (and even the same RAM values) helped speed things up.
@@DisplacedGamers You were definitely thorough with all the variations you showcased here.
And if SMB Deluxe has different code altogether, I can see why you didn't include it.
I'll look forward to your take on it sometime in the future.
Since it also has a 'port' of Lost Levels, a Challenge Mode, two Versus Modes, and additional features that unlock while playing any of these, there should be plenty to talk about.
There's also the GBA NES Classic Series port, which in general seems pretty close to the original just with a different screen size, though I have no idea how it handles Minus World.
@@angeldude101 That one, I presume, is just the NES ROM running in an emulator, and would behave identically to that version. I only have _Zelda 2_ out of that line, though, so I can't say for certain.
in terms of code similarity Deluxe is pretty much a completely different game
Un related to this vid, but i recently found a rare windows 98 game with levels locked behind codes (it was a lottery game, you had to buy scratchers to get a code)
Long story short, thanks to your videos I had a basic enough idea on how to play in the assembly code to patch the code checking mechanism and access most levels in the game!
So a big thank you 😃
What game?
Give us the game!
@@Golinth Sorry for the Delay ! The game is called Mozaic, it's a french-canadian game from 2001. Here's a bit of gameplay : ua-cam.com/video/9Rbu_-RaXm8/v-deo.html
I'm not sure if I can put an archive link here, but I'm uploading the patche game as we speak
Wackiest game genie moments:
12:25 flagpole defender: bowser
13:01 flying fish lost above castle roof
13:17 conjoined twin koopas
13:28 piranha plants behind the ice mountains
13:33 bullet bill bites mario's butt
13:48 it insists upon itself
14:12 sorry nothing
I wonder how that sprite bug with the Bullet Bill at 13:33 occurs.
Debugging these levels and finding out how we got there might be a nightmare, though.
love me a good sorry nothing
Im so Happy that you said Lost Levels takes levels from VS and not the other way around!
It's definitely an interesting point. Chronologically it's definitely true, even though people usually speak as though it wasn't. I wonder which of the two games the levels were actually designed for originally, though - Created for VS and used again for SMB2j, or created for SMB2j and included in a different game while development was still in progress?
This is like magic to me. I get childlike wonder seeing those extra levels in all-stars. Thank you so much for the awesome video.
Heh, I actually recently encountered that bounds check SMB1 has to make sure it never loads a world other than the 8 valid ones. I was confused why it existed, especially when SMB2u and SMB3 don't have it. But now it makes sense, they wanted to be absolutely sure that even if their minus world bugfixes didn't work, they still had a failsafe to keep you out of invalid levels.
I just want to say I've binged the entire library of this youtube channel. You deserve so much more popularity than you have!
This is a fantastic follow up video to your first Minus World episode!
Kosmic needs to do a video with the AllStars Glitch Worlds now, thr foundation is right here!
Right? Bring back the glitched worlds series!
You've sharpened your already great skills at making these.
This was awesome, thank you
13:34: "Careful. This is a family game!" -Banjo in Banjo-Tooie
This was a great video to demonstrate how complicated and interwoven a games code can be. Where one tweak doesn't always result in one change. And that it can cascade into other areas too. That's also not even taking the levels design into account either.
The most fascinating part was the water ripple effect in the castle which makes me wonder if that's a mode 7 layer that can do that effect on any background layer. It definitely gives me ideas.
Great video as always Chris, thanks mate.
I just started watching your videos a couple of months ago and I find them fascinating. As a programmer I too love to dissect things and find out what makes them work. Thanks for the videos and keep cranking them out.
Excellent video. Love the talkin’ code series!
This series is actually making we want to learn coding. Love the way you explain this stuff!
One of our local arcades had a timed, stand-alone SMB cabinet, but I'm 99% sure it wasn't "VS. Super Mario Bros." and definitely wasn't "Playchoice".
Funny enough I remember in an arcade a stand along smb game that's now play choice but DID have the new type of lvls meaning vs. Version. It could very well mean both versions were a thing.
if it was an arcade release of the game it was probably either a repackaged playchoice rom or a repackaged nes rom. i'm pretty sure i've encountered the first case in the wild but i suck(ed) at controlling platform games with a joystick and i was low on cash so i didn't get far enough to see any differences
There was a stand-alone SMB cabinet at one of my arcades too. It was labeled with a basic “Super Mario Bros” and not “VS” nor “Playchoice 10.” I didn’t play it much because my cousin already had an NES and I got one soon after discovering the arcade cabinet. I only managed to get through 1-3 in the arcade, and from what I remember, it was the same as the NES version.
No idea if that's what you saw, but kevtris (the mastermind behind Analogue's lineup of Nt Mini, Super Nt, Pocket etc) made a video about a bootleg version implemented in large part using discrete logic chips. Look for "Vs. SMB Bootleg Arcade Board Reverse Engineering Adventure".
Neat channel you have, wish this was around back in the day when I took an assembly class. However, I am really enjoying the refreshers packaged in such a fun and unique way! The TNMT video was particularly good, as was Battle Toads. You picked some great games to analyze, and are doing such a good job with the code and explanations.
Phew. I was gonna ask for a link to the previous episode on minus worlds. But lucky for me, it's right smack dab in the middle of the "home" section of your page. Now that's good service from a channel! Answered my question before I even asked it.
Love your channel.
You and retro game mechanics explained are great 😃
I would have liked to see (or read) something about the 50hz version.
Any good resources on that?
twitter.com/MarioBrothBlog/status/1329515061476532224 is where I first saw it not long ago. I haven't been in the 50Hz code, myself.
The All Stars fix looks like someone treating the symptoms but not the actual cause . They realized values were invalid but didn't figure out why
The only sub where I actually get giddy when I see a new episode. I was smiling ear to ear this whole episode. Thanks a million!
This is incredible. 256 new levels with three Game Genie codes? 1993-me would never have believed it.
Thanks!
"My favorite shows are breaking bad and better call saul, what do you usually watch?"
"well..."
lol
Thank you for doing this follow-up to the last Minus World video!
I wonder if it might be possible to incorporate the new warp zone "override bad value" code from SMAS (that you discover at 9:30) into the original NES SMB, to bypass the Minus World? However, there is one instruction here exclusive to the 65816: DEC A (decrement accumulator), which tells us if we are above ground or not. On the original 6502, after the LDA instruction denoting area type, this can be done by instead inserting either: (1) an SEC (set carry) instruction, and then an SBC (subtract with carry) with an immediate value of #$01 to identify if we're on above ground or not; or (2) changing the DEC A to an LSR A (logical shift right, which again changes $02 into $01, but via division instead of subtraction).
Also, on All Night Nippon Super Mario Bros., there is a new bug that can be exploited if you do the Minus World trick and go down the far right pipe (the one that normally takes you to World 2), but try to go down that pipe and trigger the "WELCOME TO WARP ZONE" message at the same time. If successful, you'll be back at World 1-1 but the current World number is still 1-2 and the timer hasn't been reset yet, so hurry along to the goal flag to get to the real World 1-3. Please try to look into this in a later episode.
UPDATE: Instead of INC A, you can use LSR A (which also changes the current value in A at RAM variable $074E from $02 to $01, but by division instead of subtraction) and it will do the same thing.
15:39 Yes, thank you! I was always wondering how Nintendo approached this!
Those new levels look amazing, I wonder what the other combinations looks like. Nice video!
Really love these videos. Hope the mighty algorithm pushes these forward more! Amazing work and knowledge in these, thank you.
It's so cool the amount of time people have taken analyzing these old games.
Thank you!
This was great, as always! -- I'm interested in the differences between VS Super Mario Bros. and the original, as you mentioned there were physics "tweaks", etc.
Mario's physics have always been a thing of mystery to me. -- Also, more Zelda and Megaman plz! :D
The arcades used Vs. Super Mario Bros. The look and feel are exactly the same. It is just more difficult.
woah, i just watched all of the episodes in this series. good to see another! love your channel, it's amazing :D
WOW DUDE! thank you so much for this video! you finally solved a 32 year old riddle 😆👍 in 1990 my best friend and i discovered the minus world by accident. we thought it was a secret in mario bros. and tried to solve this. we played the whole weekend, left the nes on all night etc. and then on sunday.. we came into a underwater version of koopa's castle and after that we saw a strange land level! than the game lockes up and it's over. we were completely hyper and exited by what we saw. til this very day, nobody believes us and were never able to reproduce this. now i know why! my friend had a dutch 1987 version of mario bros.game. so no combo card. on the dutch 1990's version mario / duck, which i have, this strange minus world version can not be found! amazing isn't? 😜
How weird I discovered your channel and previous video on minus world today and then you upload a follow up today. Ha. Been watching loads of your other videos today too. Really great. 👍🏼
Here's an interesting thing you might want to do a code walk through: the level compression/decompression scheme for Solar Jetman.
I pick that game because it's levels are absolutely *gigantic*, probably among the largest for any NES game. And while I can take a few guesses as to how they fit 13+ gargantuan levels into 256KB of ROM, it'd be interesting to see how they actually did it.
Even better, it'd be great if you showed us how you figured out how it accomplished decompression.
Oh wow. Great findings. I remember seeing the Arcade Mario cabinet in high school, it seemed odd to me and I never played it.
Love in-depth nerdy stuff. You have a new subscriber.
Ooo. Really interested in looking at how/why code changes in various smb ports make different levels! Please make that ep!
Never was I so fast in noticing that a new vid is up :) this is gonna be a noice friday.
At the least, you used to be able to use software release date as a cue as to when the code was completed. Nowadays, it feels like nobody bothers finishing a game before releasing it.
What about Mario Deluxe on GBC? I believe the minus world bug was fixed in that version as well.
Wow! This is a fantastic video! Please, do a live exploring the 255 minus worlds and the Game Genie codes to go to them.
He should start with the original SMB (which is easy enough given you can just modify the original "warp to world" codes to take you wherever you want) and then move on to the "counterpart" in All-Stars based on the technique in this video.
The exploration at the end is like the 256 worlds glitch that was popular in Japanese magazines. I recommend checking that one out.
i always love these videos so much!!! i feel like i've actually learned something about old game coding...
You mentioned baseballs in the shinobi bonus stage that wasnt utilized. According to a 2000 interview they stated that all the weapons were not agreed yet and they put a baseball in as a object to test programming and would change it after they approved the weapon it would become
Oh baby, this is gonna be fun
Another awesome video. Thanks for sharing this! It looks like it took a ton of tedious work.
To know if there are elements prioritized erroneously to be in the background you can check in VRAM. I've never used Mesen but it appears pretty robust. If it allows you to disable layers then it becomes trivial to hide the layer(s) you think are in front of out of sight elements.
Incredible work as always!
I'm a little disappointed none of the official releases corrected the scroll stop glitch, when your previous video showed how easy it would be to correct.
Excellent breakdown! So interest!
These'll never not be interesting! And they just keep getting better!
Those hidden worlds look genuinely fun
The glitched water level you show, H-1, is exactly the same minus world you get in Vs. Super Mario Bros.!
Fun fact: Speedrunners beat "Super Mario All Stars + Super Mario World" much faster than "Super Mario All Stars".
I've seen those bright green blocks before, when I was ripping tile data out of idle boredom.
13:31 I didn't see this coming. Had a good laugh. :D Thanks making my life better.
it's so weird knowing that the SNES versions of these are actually crazier than the original version.
I love these videos. Thanks very much
Man I am STILL blown away at how underrated your whole channel is man!!
I remember a version of donkey Kong country that maybe 1 or 2 other people have played. I borrowed my friends damaged donkey Kong country game for a week. The game ran fine. As soon as you rolled you remained in that horizontal height. So you could roll in the air and keep floating at that height. If you jumped then roll after you had rolled in the air you would jump and be able to roll at a even higher height. The animal friends had a neon glitch look to them. I never played it through but not sure what else was rearranged. What I heard is that the game had water damage.
Do you want to hear crazy? Do you remember the NES World Cup Championship cartridges? It had Super Mario Brothers on it, Rad Racer, and I forgot the third game. At any rate, one of my very good friends owned a Play N' Trade. This was back in like 2008 and business was booming.
My friend that owned the store bought a copy of the World Championship (Gold) for his store and he let some of us play it (I did!). Guess what works on the World Championship carts? If you guessed minus world you would be correct. I actually was the very first person that any of us knows that actually tried it and it absolutely worked. I won a free game getting the trick to work.
this is sooo awesome
love this series
Excellent video. Love this stuff.
Woah, amazing!!
There is so many versions of Super Mario Bros that is for sure.
I was about to ask if that was Wolf and Raven I could hear playing in the background but the end screen confirmed it, fuckyea :D
this is really cool bro
Thanks for these investigations, I find them very interesting. You do well at explaining even for someone who is not a code expert. If you ever do another video on this topic, I'm curious about how the “garbage” world data in the ROM works that produces the worlds you end up in, like the differences between cartridge and FDS minus world.
This is greatly explained in the following video: ua-cam.com/video/B8o_VpY9scs/v-deo.html
You: -explains code-
Me: Ah yes, interesting.
wait wait wait wait... Hold up now... YOU PURPOSFULLY RECODED THE MINUS WORLDS?!?!? IN SMAS? (Mind broken) 🤯
You use some of the 80's-est music I've ever heard. I'd love it if you could include the track titles you use.
You rule, dude.
very curious how the first scroll stop fix looks in SMAS - you'd expect them to fix something like that with how polished it is!
There’s another combo release, along with Tetris and Nintendo World Cup. My NES with FourScore and four controllers came with that multi-cart.
All you have left is the gbc specal version
the rippling hills look so cool
@Displaced Gamers, I would love to see a video breakdown of that INSANE game breaking bug from DKC2, I believe??
Also, a Rampage (NES) video with game genie codes.... ;-)
Great video!
What sort of Rampage game genie codes?
@@DisplacedGamers Well, I think super jump, super punch, and one-hit building knockdowns? Something to spice it up a bit! Thanks for responding!
Gameboy Color version next?
13:33
Suppository Sal
Great episode
What about Lost levels in All-Stars?
Awesome vid!
Great video again! I loved the first one and this second one is amazing. One thing that I am curious about that I don't think I've found answers for is why SMB1 on the FDS has a different Minus World despite seeming to be a pretty clear cut port, (same thing with SMB1 on C64 though not being official) In this video you had stated that it addresses for level data a different area in code because everything was shifted to make room for FDS stuff but shouldn't that mean that where it addresses to should produce identical results? I'd love to see this question explore in maybe another video or maybe even a reply. Thanks!
I have to wonder what the code is like in Super Mario DX on Gameboy Color?
does minus World work in smbdx?
Judging by this video, it seems the old code from 1985 was used as the base for the all-stars version with some fixes added as needed like what they did to prevent the minus world. If this is the case, what made them change the physics when Mario breaks a brick? Was that an intentional change? He seems to go upward and get caught on the brick above in All-stars while in the original he bounces down and keeps momentum.
That is what I wish to know, too. It is true the code for the original 1985 SMB1 was used as the starting point for all he has covered here, and that I wish to know more as to what was changed specifically for Super Mario All-Stars.
For example, the bounce rate for when Mario/Luigi jumps on an enemy is not the same:
* The original rate was $FC, and applied to both SMB1 and VsSMB. This meant Mario/Luigi could "fall off" and stop bouncing (or "turtle tipping") on a Koopa or Buzzy Beetle against a staircase, and have to restart.
* For SMB2 (FDS, hereafter called The Lost Levels) and All Night Nippon SMB, although the normal bounce rate for jumping on an enemy is $FA, there is also a check for if Mario/Luigi had jumped on any of the Koopa Paratroopas (the ones with the wings); the bounce rate for them is set as $F8. In both cases, Mario/Luigi can continuously bounce on Koopas or Buzzy Beetles on staircases without falling off.
* In Super Mario All-Stars, for both SMB1 and The Lost Levels, the bounce rate (including for Koopa Paratroopas) is $FB. Although it lacks the extended check for the Koopa Paratroopas that was present in both the original FDS TLL and ANNSMB, Mario/Luigi can still continuously jump on Koopas and Buzzy Beetles against staircases for points and 1-UPs without falling off.
what about Super Mario Bros. Deluxe for the game boy color?
This was really fascinating! Now I just really want to see you poke at Super Mario Deluxe on the GBC and the Super Mario Bros. Special! any chance of a part 3 :D
Never quite understood coding, but I think I can at least understand a little of what your discussing, but nonetheless this was a pretty interesting video
Loosely related to All Stars Minus world, but I've seen footage of peeps injecting Romhack levels into All Stars SMB, since the logic is so similar it mostly works aside from some background props.
Nice rundown of the evolution of the minus world logic. I also liked that you showed so many worlds at the end.
How did you find the worlds that you showed, pure trial and error?
Also, would a given world such as world T be different in say the original SMB?
And do you have any idea why the FDS port's minus world is different, even though the code in 1-4 is the same, as you showed?
12:10 the dreaded far-right pipeline in action
One of these days I'd really like to see a comparison between the Super Mario 64 engine and the Zelda:OOT engine. Since the source code to both has been reverse engineered (then leaked...) I'd like to see how much they share since - according to the lore - the Zelda 64 engine was based on SM64. Can Mario run around Hyrule Field? Can Link complete Bob-omb Battlefield?
I recall Kaze Emanuar saying that some of the optimizations he made for the Mario 64 could be integrated into OoT. So that would mean they are pretty linked together.
Ok, but how about the GameBoy Color version named Mario Bros Deluxe? Great video as usual
Perfect video! You said that pal version of smb has tweaked hitboxes for the 50hz code. Does pal mario all stars include this patch (compared to us smas), or just runs slower using us code? Second, in all stars, lost levers has bugfix compared to smas smb?
Yes, most of the same changes for the second PAL SMB1 are present in the same region's version of SMAS. The PAL SMB1 is also the first home version of the game to have the fix for the end of the water levels that corrects a glitch above the goal pipe that causes Mario/Luigi to get stuck and have to wait for time to run out.