Super Mario Bros. 3 - Wrong Warp

Поділитися
Вставка
  • Опубліковано 24 лис 2016
  • How does the wrong warp actually work in Super Mario Bros. 3? It's all explained right here.
    LINKS
    Twitter (updates): / retrogamemechex
    Patreon (support): / rgmechex
    Discord (discussion): discord.rgmechex.com
    INLINE LINKS
    Special Thanks to Southbird for his SMB3 Disassembly! sonicepoch.com/sm3mix/disassem...
    Mitch's SMB3 Any% Speedrun: www.speedrun.com/run/dy4139dy
    Lord Tom & Tompa's TAS: tasvideos.org/4288S.html
    PATRONS
    Thank you everyone for your help! It means so much to me.
    Ange Albertini, Rich, Stephen1704, & nathanisbored.
  • Ігри

КОМЕНТАРІ • 1,1 тис.

  • @SummoningSalt
    @SummoningSalt 7 років тому +1907

    I sent me.

    • @ColbyePresents
      @ColbyePresents 6 років тому +23

      *_That’s pretty funny._*

    • @Owl90
      @Owl90 6 років тому +10

      You also sent me. What a coincidence!

    • @johnbasedow8973
      @johnbasedow8973 6 років тому +6

      Summoning Salt whyd u stop making vidz man. You’re videos on speed running are intoxicating. PLEASE make more

    • @novopotato
      @novopotato 6 років тому +11

      Why aren't you verified???

    • @smitymcwarbinizer3855
      @smitymcwarbinizer3855 5 років тому +1

      Same

  • @11679MRT
    @11679MRT 7 років тому +1455

    You explained it..I don't understand any of it..but you explained it.

    • @DasAntiNaziBroetchen
      @DasAntiNaziBroetchen 3 роки тому +27

      The explanation (or just about any warp glitch) requires some understanding of how the hardware works. There's a bunch of videos and articles regarding that. I recommend looking at those first.
      Those concepts also apply to game boy games for example. Therefore you can also gain some understanding from game boy resources.

    • @thebeanmaster4358
      @thebeanmaster4358 3 роки тому +17

      You’re in a level, you mess with how the enemies work, you grab a turtle and go inside a pipe backwards, the game crashes, you throw the turtle away as you hit the block, you hit the block, the game ends

    • @crocodiledowny2191
      @crocodiledowny2191 3 роки тому +3

      Yeah wasn’t much of an explanation

    • @kennethlatorre5269
      @kennethlatorre5269 3 роки тому +4

      @@thebeanmaster4358
      That’s not an explanation.

    • @CurryNoddles0814
      @CurryNoddles0814 2 роки тому +8

      Then try the bismuth explanation. Bismuth did a really good job...

  • @3lH4ck3rC0mf0r7
    @3lH4ck3rC0mf0r7 6 років тому +757

    So: A bad note block outside 7-1's level bounds can be reached. It causes the block bounce code to swap itself out accidentally with an unintended routine that returns to yet another unintended routine, that returns again, even though there's nothing to return to. The hardware freaks the everloving fuck out, wrapping around the counter that tracks how many levels deep of code execution we're on and reacting as though we're 255 levels deep in subroutines, and accidentally reading out the level scrolling mode as the location to return execution to, because that number happens to sit where the 255th place in the area where subroutines are tracked would be if there was a 255th place, causing the console to stop reading code from the cartridge, and instead treating the system RAM as code, and running that instead. And within the area of RAM that is mistakenly reinterpreted as game code because of this, loaded enemy data is normally tracked, and here, people manipulate the positions of the koopa shells that normally spawn in the level to write machine language instructions creating a trigger for the Princess's chamber that will activate with the glitch.
    So many planets aligned...

    • @FMHikari
      @FMHikari 5 років тому +90

      I bet the whole Mario galaxy aligned

    • @arfansthename
      @arfansthename 4 роки тому +6

      Yes.

    • @iRemainNameless
      @iRemainNameless 4 роки тому +22

      Yes. I could read long form explanations from you. Well done

    • @haydenz0
      @haydenz0 3 роки тому +19

      Well, all they're doing is reading volatile, numeric data as instructions, to execute code in an unintended way. It was probably figured out that the pipe to under-map OOB and hitting the noteblock did some fucky shit, and I guess someone traced it through an emulator to see that the thing that reads instructions landed in graphical data. From there it was simply manipulating the graphic data.

    • @3lH4ck3rC0mf0r7
      @3lH4ck3rC0mf0r7 3 роки тому +35

      @@haydenz0 In essence, this glitch begins with an array indexed out of bounds error, when trying to write to the loaded map data to remove the note block and temporarily replace it with the animated version of it. Except that, computers being that much slower, the performance penalty to ensuring that arrays were always indexed in bounds mattered, so most games, having to be efficient over running safe, didn't do the check to save on crucial processing power.
      Probably they discovered the glitch pipe entry first (might've been on some other map too) and then later discovered that OOB note blocks would pretty consistently make the console spit fireworks when hit. If it didn't crash, obvious memory corruption was present. When every time you reproduce a game-breaking glitch, the effects that occur right after are completely all over the place and random-looking, you know something fucked is happening with the machine. And the moment somebody fired that up in an emulator debugger, and caught the execution jumping to RAM, they were like "Oh yeah, we might be able to ACE with this"

  • @reppy0757
    @reppy0757 6 років тому +248

    This was like learning physics. I'm fucking lost and yet intrigued and focused and can't stop learning. Great video.

    • @DeAngeloYouKnow
      @DeAngeloYouKnow 3 роки тому +8

      The wave function is a description of an electron. and when you view that function you are forcing the collapse of the wave function.

  • @real_kdbanman
    @real_kdbanman 7 років тому +564

    > There are many different kinds of NES ROM mappers. All of them act a little bit differently. I won't talk too much about them, because that topic could be its own video.
    Please, please make that video.

    • @Coaster42
      @Coaster42 7 років тому +16

      I second the motion.

    • @pep3001
      @pep3001 7 років тому +4

      isnt it notion

    • @Coaster42
      @Coaster42 7 років тому +4

      Mr.Sheepington possibly.

    • @John3710
      @John3710 7 років тому +8

      Both are correct!!

    • @dosmastrify
      @dosmastrify 7 років тому +4

      Kirby Banman WHERE IS THIS VIDEO?

  • @MargaretHutz
    @MargaretHutz 7 років тому +783

    I hardly understood a thing but watched it all the way through. Fascinating stuff.

    • @SUPERNOOB20
      @SUPERNOOB20 7 років тому +4

      Margaret Mansell: Neither me, until I watched other videos from this channel lol

    • @jekblom123
      @jekblom123 7 років тому +22

      Ethan youre not a technician.

    • @TheMASTERFURIOUS
      @TheMASTERFURIOUS 7 років тому +6

      I don't understand it either lol, but I enjoy watching videos like this.

    • @EverSinceMyExorcism
      @EverSinceMyExorcism 6 років тому +6

      I wish I understood whatever computer language this guy was speaking. Still liked it.

    • @user-wp1nt9xr9f
      @user-wp1nt9xr9f 4 роки тому +1

      @@EverSinceMyExorcism he's talking about assembly in this case. Which is basically just binary converted to an easier to read format for us humans.

  • @ZarkWiffle
    @ZarkWiffle 7 років тому +541

    I tried doing this glitch. So far I made the console draw what I can only describe as a croissant, rotated the screen 90°, and moved the hud to the top of the screen. I don't know what I'm doing

    • @TrebleWing
      @TrebleWing 7 років тому +46

      You rotated the screen 324˚?

    • @Redspl
      @Redspl 5 років тому +61

      he did a barrel roll

    • @chrisquint3656
      @chrisquint3656 5 років тому +12

      Reds an aileron roll?(game theory)

    • @otesunki
      @otesunki 5 років тому +7

      WOAH.

    • @neoqwerty
      @neoqwerty 5 років тому +47

      You need to find a way to record your failures, dood, these sound amazing for being fails.

  • @jongyon7192p
    @jongyon7192p 7 років тому +174

    Oh my god I appreciate the TAS way more now. Seriously?! Pirahna plant, thrown shell, and bouncing shell ALL syncing up at the right x-position at the SAME TIME???!?!!?!!! OKAY, TAS. SURE.
    Fucking godly.

    • @TompaA
      @TompaA 7 років тому +40

      Thank you :).

    • @jongyon7192p
      @jongyon7192p 7 років тому +9

      Voxel Fox That's what makes it so impressive! TAS is literally god in the game world. TAS can even do all it does *blind* and *deaf!* Imagine a human do that.

    • @jongyon7192p
      @jongyon7192p 7 років тому +4

      Voxel Fox Wow you're very smart. Look at my channel for more smart things like Tool Assisted Speedruns videos of La-Mulana!

    • @jongyon7192p
      @jongyon7192p 7 років тому +5

      Neither, I'm just shilling. Here, I'll add another comment, so my shill comment disappears up the comment thread.

    • @djyoshiman9448
      @djyoshiman9448 7 років тому +18

      Doesn't make it any less respectable. 8+ hours just to get a 2 minute segment perfect (only to be obsoleted when something new shows up) is crazy for any one to do, yet they do. The amount of effort and time put towards finding insane glitches, programming, math calculations and viewing the same small part of a game over and over is just amazing to behold.

  • @scribbles1313
    @scribbles1313 7 років тому +221

    incredible explanation and graphics to support it...this is how computer science should be taught...kudos!

  • @3dpprofessor
    @3dpprofessor 5 років тому +388

    How did anyone figure that out?

    • @bezvezenetko
      @bezvezenetko 5 років тому +19

      3D Printing Professor exactly

    • @misterturkturkle
      @misterturkturkle 5 років тому +132

      ROM hackers trying to make their own levels probably found it. Thats how a lot of games secrets get found. Pokemon is a great example.

    • @rqyhae3340
      @rqyhae3340 5 років тому +42

      They asked the NES what it was doing xD

    • @SuperNickid
      @SuperNickid 5 років тому +22

      It his not me who found out how to do it, I only found out how he found out how to do this after I did the Wrong warp to the credit in Super Mario world for the WiiU the one that works on the Wiiu. In Super Mario world, you have 10 sprite slot for enemies to work with from slot 0 to 9, and they spond at 9 first, In Super Mario World you wright the entired algorithum in slot 0, to slot 6 the code you right by spiting shell with yoshi the shell become fire, the algorythim in the X cordinated of the shell, from sprite slot 0 to 6 his A9,1C, 92, 3D, 68, 68, 60. That stand for LDA, 1C, that stand for load game mode credit that start yoshi arrive home to accumulator, the 92, 3D, Stand for Store accumulator to 3D, the two 68 stand for a pulling out data PLS, and the 60 stand for RTS meaning Return to game mode that his store in the accumulator 3D which =1C so then the game knows to runs 1C as the credit. the 1 on the left means there his 1X16, and the C on the right stand for +12, since it his in hexadisimal so that means the unit are 16 unit long instead of the digit system which are 10 digit long. so that his why if you see 68, it does not equal 68 as the real number it acctually equal (6x16) +8= this his a visiual of what it look like in Super Mario world, it only begin after the power incrementation glitch his done because of the weird diffrence that the Virtual console have compare to the console version ua-cam.com/video/dJp1XLmw9Jg/v-deo.html How does have anything to do with the Super Mario bros.3 wrong warp to princess, since there his only slot 5 to slot 1, there his no way to wright the entire algorythm, so with the shell he wright $20, E3, 8F, in slot 3 to slot 5 X cordinated of the koopa shell, and that stand for JSR: $8F, E3 that means jump to subrutine princess room, while checking in the emulator in debug mode I decided to take a look at memmory $8FE3 and the entire algorythm for the princess room was there because it started with LDA: $19

    • @gorbinosquest6456
      @gorbinosquest6456 5 років тому +35

      @@SuperNickid i'm sorry what

  • @dadsanddragons7459
    @dadsanddragons7459 6 років тому +69

    7:35 - Yes that's right. I know exactly what is going on now.

  • @kajika135bis
    @kajika135bis 7 років тому +22

    This is probably the best way to present programming stuff (hex values, memory map...) I have ever seen in video. It's clear, pleasing to hears and eyes. The topic is also very interesting. I would love to see more of such well made video for anything.
    I hope this channel will attract as much people as possible, it deserves it.

  • @Daniel15au
    @Daniel15au 7 років тому +59

    As a developer, this was extremely interesting. By far the best video I've ever seen on an arbitrary code execution exploit. Thanks for the awesome video! :D

  • @EZScape
    @EZScape 7 років тому +321

    Great video man!

    • @jessicadlabura1079
      @jessicadlabura1079 6 років тому +4

      EZScape hello!

    • @Symmetry_Obsessed_Freak
      @Symmetry_Obsessed_Freak 5 років тому +1

      EZScape hi, fun fact, jsr stands for jump straight to ram and 8f e3 is the address it must jump to in order to load the right crash value, I read the dev commentary on tasvideos.org

    • @nekochristmas
      @nekochristmas 5 років тому +2

      @@Symmetry_Obsessed_Freak wow, really?

  • @sendylie1774
    @sendylie1774 6 років тому +82

    I did this as instructed, but it warped me to a parallel universe in Super Mario 64.

    • @derekmartin5340
      @derekmartin5340 5 років тому +4

      instructions unclear: Dick stuck in Mario 64

    • @th1v5
      @th1v5 2 роки тому +3

      @Kadir Garip he cramshed: 💀

    • @akkoshorts
      @akkoshorts Рік тому +3

      uh i'm pretty sure you did something wrong
      have you hit the music block which replaces a $4G69 ROM mapping function 18 screens under the main stuff or the question block which replaces the $4G79 Control function 17.5 screens under the main stuff?

    • @floppa_gamer1111
      @floppa_gamer1111 Рік тому +2

      i think i know why you hit 1010010101010101010101001100101010101 in bi or a5 55 54 ca 15 in hex at the time that you did that there was data that was from super mario 64 in parallel universe so the game swaped the banks with 64sh banks bk the one koppa was one bit off so the game ran 10101010010101010100101010111111111 in bi or the thing telling nes what game your playing bye looking at the ram and seeing the data and runing the game that go with the data in 1st biyt and 64s data was in there so it rad 64 that good

    • @bennel3588
      @bennel3588 Рік тому

      This game was made years before Super Mario 64.

  • @avatardelta
    @avatardelta 7 років тому +78

    This is an awesome example of assembly level 'hacking' and understanding.

  • @VideoRepoDF
    @VideoRepoDF 7 років тому +404

    You deserve more subscribers

    • @filecabinetcoffee436
      @filecabinetcoffee436 7 років тому +6

      No he doesn't because he is a cheater

    • @Zb5141
      @Zb5141 7 років тому +39

      -_- He's not competing in anything. He's explaining how the glitch works.

    • @TheSOB88
      @TheSOB88 7 років тому +1

      ken m's pregony is all growen up

    • @Coaster42
      @Coaster42 7 років тому +18

      +filecabinet coffee
      You are an idiot.

    • @xeokym223
      @xeokym223 7 років тому +1

      Progeny? Or pregnant? 9__9

  • @lightsier
    @lightsier 7 років тому +3

    The fact that you go so in depth graphically instead of just randomly spouting your values is fantastic! Keep it up! I imagine the production work takes tons of time, but I love it!

  • @LordTom77
    @LordTom77 7 років тому +4

    Well done! It really tracked with a lot of the thought processes that went into figuring out the exploit for the TAS, and is accurate while still being more accessible than a text-only explanation.

  • @oneofone210
    @oneofone210 5 років тому +395

    2020: Hack your bank account by playing Mario 3
    2022: Control your car with Mario 64

    • @fbiagent0124
      @fbiagent0124 5 років тому +32

      2024: Set off grenades with an SNES controller

    • @dmas7749
      @dmas7749 5 років тому +8

      i would probably crash lol

    • @kirby9759
      @kirby9759 5 років тому +7

      2016 launch a rocket with an n64 controller

    • @AYouTubeChannelwithNoName
      @AYouTubeChannelwithNoName 5 років тому +4

      I hope that never happens.

    • @dmas7749
      @dmas7749 5 років тому +2

      @@AUA-camChannelwithNoName: if you're talking about FBIAgent's comment i totally agree

  • @ebutuoyebutuoy
    @ebutuoyebutuoy 4 роки тому +4

    Mario: Princess, I'm finally here.
    Peach: Did you beat Bowser?
    Mario: Well...uh...
    Peach: Don't tell me you used the pipe glitch.
    Mario: I mean, it's a little "easier" to do/accomplish.
    Peach: *sighs* Ugh...

  • @WholesomeDemonKastis_a_shlump
    @WholesomeDemonKastis_a_shlump 5 років тому +9

    3:05 *Well, it's actually souprisingly simple..."*

  • @StephenGillie
    @StephenGillie 6 років тому +1

    That's a great analysis of locations on the screen. An x-position exposition.

  • @Estupigaia
    @Estupigaia 7 років тому +1

    Ok, this is now my favourite channel. Your explanations are amazing and the editing is superb.

  • @43ann
    @43ann 7 років тому +11

    Great production value mate. Keep it up.

  • @RudySolis3rd
    @RudySolis3rd 7 років тому +6

    This is one of the coolest videos I've ever seen on UA-cam. Keep up the great work!!!'

  • @AdrianCastravete
    @AdrianCastravete 7 років тому

    Loved the explanations! You're very well documented and the diagrams and drawings you make are so sensible and just right that anyone can understand what's been up; as well as your more advanced users not get too bored.
    Good luck with future movies. Got yourself a subscriber. :)

  • @iwir3d
    @iwir3d 7 років тому +5

    This video is so amazing that you sir have gained another subscriber. I want to see more videos like this.

  • @valoch3187
    @valoch3187 5 років тому +5

    I feel so good about days when there was no memory segmentation and running instructions from heap didn't caused segfault.

  • @SuperNickid
    @SuperNickid 7 років тому +6

    +Retro Game Mechanics Explained: I used a different method call the easy method, and when you said sometimes it does not work even if you got the shell in the right spot, because it sometimes lock-up on something, but I found a way to always line-up does value, and this his how. When the paratroopa his moving up boob it with the tail when his tip of his feat are line up with the first lip of the pipe, using the easy method, and the closer you are to the correct frame the better the credit will look, that same shell placement his for the positioning of the credit screen, once I boop the paratroopa at the right spot, but I put it one pixel to far to the left, that cause the credit to play 100% perfect, but it played to far to the left of my TV. The koopa in slot 3 never reboop it with the tail. When you mention the address 20 for the jump code, the 10th digit in this case 2, this his when the values are aligne, but not just that one the 10th digit can also be 1 through 10, and that his cause by booping the koopa at slot 3 at the correct position, and when he moves the correct direction, and if you reboob it with the tail by accident the 10th digit will return to 0. The placement of the shell in slot 3 determine the unit, and the unit determine the screen position, so 0 his always perfect screen placement. When the paratroopa start moving-up the 10th digit goes from 0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10: The higher up the koopatroopa goes the quicker does value switch, and when he start to move down the 10th digit his always 0 which his bad. And if the bit codes his like this 100 8F E3 the credit are 100% perfect the credit that shows the world will run with the checked floor. Once I boob the koopa a fraction off of the 10, 10th digit, when I hit the note block on the 19 screen it flicker 4X before playing the credit 100% perfect. Take a look at my video for the easy set-up, it his not me who found the easy set-up, but it his me who found out about the correct alignment of the previously uncontrollable value. When I film this I did not know about this at the time, and after placing the shell in slot 3 at the correct spot, if you take the pipe to the far right, make sure to walk-of to the right to quickly dispond the shell in slot 3. The koopa in slot 4, and slot 5, does one you can reboob it with the tail as mush as you like since E3 counts as one unit, and as well as 8F. ua-cam.com/video/701sO-YxhGM/v-deo.html When you place slot 5 at the correct position you don't have to walk of to dispond it, since it will be flooting above the pipe, it will dispond right away when you return to the start of the level.

  • @manonthedollar
    @manonthedollar 3 роки тому +1

    I just love your channel. You are not only intelligent; but patient, thorough, and excellent at explaining things. I wish you great success!

  • @dotwarner17
    @dotwarner17 6 років тому +1

    What's even better is the end credits warp in Super Mario Land 2, Six Golden Coins: Mario glitches through the floor, ending up in the game's code (which is rendered onscreen as graphic tiles), and literally hits a block to set the "roll end credits" flag to TRUE.

  • @Ghi102
    @Ghi102 7 років тому +20

    What I'd really like to know is how TASBot manages to program Mario Maker inside Super Mario 3 (or World, I don't remember). My guess is jumping in memory where there is the ram that deals with input from the controller and programming it that way? I'm not sure what you can do with only about 10 memory locations. Unless there are more detailed ways to execute that.

    • @nathanisbored
      @nathanisbored 7 років тому +11

      yeah controller registers. from there you can write a bootloader

  • @ToolShopGuy
    @ToolShopGuy 7 років тому +7

    brilliant! just subbed. cant wait for more videos

  • @TheDanielradio
    @TheDanielradio 5 років тому +2

    This was incredible! For years I've wanted to do the wrong warp in SMB3. I've trying to decode what I need to do from people's PBs but haven't understood it.
    This video explained it so well that not only I did it, but that my friend that doesn't speedrun also got hooked on it and we did it together. It was such a great experience trying and then being happy when we finally succeeded with the wrong warps! :D
    We ended up doing it on emulator though because trying it on console with no practice was haaaaaaaaaaard! :)

  • @superpancakebros.8962
    @superpancakebros.8962 7 років тому +141

    Coming to your screen in 2017: But first let's talk about NES Parallel Universes!

    • @terminusest9179
      @terminusest9179 7 років тому +18

      A warp is a warp, you can't call it a half.

    • @forgado7396
      @forgado7396 7 років тому +10

      What im doing is called Koopa Troopa Raising

    • @JeffythekillerTK
      @JeffythekillerTK 7 років тому +6

      building up warps for 12 hours

    • @invalid_user_handle
      @invalid_user_handle 7 років тому +10

      But First Lets Talk About How To Jump Without Pressing A.

    • @kirby9759
      @kirby9759 5 років тому +1

      Luigi: So mario, how did you come back after defeating darkion?
      Mario: to answer that, we need to talk about *parallel universes* *hazy maze from mario 64 starts playing*
      Tell me if I spelled darkion right?
      This joke was from something about super mario world, right at the start of the video, made by terminal montage

  • @DrMcFly28
    @DrMcFly28 7 років тому +232

    Do not try and enter the pipe, that's impossible. Instead, only try to realize the truth...there is no pipe.

  • @EmeraldChickn
    @EmeraldChickn 6 років тому

    The explanation, visuals and sounds are more than professional. Keep this up! :D

  • @Spo8
    @Spo8 6 років тому

    This channel is so, so good. Thanks for all the work you do on it.

  • @Ganjulation
    @Ganjulation 7 років тому +4

    Nice video! Never heard of this channel before, subscribed

  • @64natan
    @64natan 4 роки тому +24

    I tried to do this glitch but everytime I try I always end up summoning the devil

  • @ElfinaAshfield
    @ElfinaAshfield 7 років тому

    This kind of glitch always fascinates me because it's the best example to describe the idea of "code is data".
    Love your work!

  • @preamstrikbiz0
    @preamstrikbiz0 7 років тому

    This is one of the best gaming videos I have ever seen! We need more game spec videos like this out there. I was watching a video on how the Sega Saturn processes 2d and 3d games a while ago on someone's channel. If it wasn't for the fact the guy was heavily japenese and hard to hear his English through his japenese accent, I would have a 110% clear explanation of the hardware that entails the Saturn. I love learning stuff like that! Keep it up man. I'm subscribing right now

  • @timshel11
    @timshel11 5 років тому +23

    How was this discovered? I always see videos explaining how to do it, but was this found accidentally? Seems unlikely. Was this reverse engineered?

    • @castonyoung7514
      @castonyoung7514 5 років тому +13

      Definitely, reverse engineered. A hacker studied the code, attempted to find a way to do code injection on an SNES, made a tool that showed those values in real time. This isn't the first time code injections been done, and they probably could have stolen your identity with just as much effort... assuming they are only going to use a SNES control to do so. Stealing your identity with a laptop and Wi-Fi decrypter would be trivial.

    • @neoqwerty
      @neoqwerty 5 років тому +15

      tasvideos.org/4288S.html This is the first known instance of the glitch being used in that way. The aforementioned RAT926 (a japanese player) was apparently already investigating weird behavior with block changes causing odd behavior (he turned both a used-up brick and a muncher into inactive invisible music blocks back around 2013). The bad pipe behavior (where phantom pipes happen) was well-known by speedrunners by then already. Some assembly guy then took a look and figured out how to write code that would lead to the ending.
      So in short, it was found because one guy was glitch hunting, and the TAS community took notice and fell on the game like code-munching piranhas because they're always after the fastest technically possible times.

    • @aholde
      @aholde 3 роки тому

      Rom hackers probably. Just like pokemon how Id #0 in pokemon was discovered

  • @UltraJordanGaming
    @UltraJordanGaming 7 років тому +8

    I like your editing style

  • @JuanStufff
    @JuanStufff 7 років тому

    God like editing, the colored lines and graph on the left helped greatly. The best video I've seen that explains memory manipulation, good job!

  • @aspvip
    @aspvip 7 років тому

    It's not often someone does this deep an amount of research, basically never do they then pack it into something this easy to digest and understand. My humblest thanks, will be sharing with my friends tomorrow.

  • @azealot7112
    @azealot7112 3 роки тому +3

    I saw Terminal Montage’s animation and just had to understand what was going on.

  • @Renville80
    @Renville80 5 років тому +8

    Well, huh! I never realized that the NES CPU used the same instruction set as the Commodore 64, but then again, both were from the 8-bit era...

    • @mariostar13
      @mariostar13 5 років тому +5

      They both use the 6502, so that's why.

    • @EvilSandwich
      @EvilSandwich 4 роки тому +7

      Yep! The NES CPU was the Ricoh 2A03. It was just basically just a 6502 without a decimal mode and with an audio processing unit and IO controller for the controllers welded onto it.

    • @Renville80
      @Renville80 2 роки тому

      @@mariostar13 to be precise, the 64 used a derivative of the 6502, the 6510.

    • @mariostar13
      @mariostar13 2 роки тому

      @@Renville80 Yeah, but I didn't know that at the time. Also, from a programming perspective, they're exactly the same.

  • @shadowpod13
    @shadowpod13 5 років тому

    I've seen the glitch done for Super Mario World, and the glitchers would explain it a bit. However this vid makes a lot more sense then someone explaining while doing it. I especially liked the graphic at the side that showed the unit values, and the checks as you went through it. Nice work.

  • @Pianist203
    @Pianist203 7 років тому +1

    Great video! I have tried this shell down technique many many times and haven't yet got to princess. Mostly game crashes and sometimes to world 7 castle's king with wand.

  • @pleasuretokill
    @pleasuretokill 5 років тому +7

    Instructions unclear. Currently trapped in a bathtub full of butter.

  • @TompaA
    @TompaA 7 років тому +21

    Beautiful video! =)

  • @kbhasi
    @kbhasi 7 років тому

    Nice! I found out about your channel through UA-cam recommendations​, and before this video, I didn't know NES/Famicom games were written in what looks like Assembly.

  • @peachesnscream
    @peachesnscream 3 роки тому

    big props for the editing and structure of this video

  • @333Rich33
    @333Rich33 7 років тому +3

    Nice video mate!

  • @BlueBoy0
    @BlueBoy0 7 років тому +20

    I am in awe.

    • @UR86
      @UR86 7 років тому +13

      lol your avatar picture is in awe

    • @sinnison23
      @sinnison23 6 років тому

      Blue Boy! Stay off the pills, man! Friday and Gannon can't save you, I've seen that episode! XD

    • @nekochristmas
      @nekochristmas 5 років тому

      lol, fits your avatar hahahah

  • @TheReimecker
    @TheReimecker 2 роки тому

    I've watched almost all of your videos. But now I'm really speechless. You are a genius

  • @Kaitri
    @Kaitri 4 роки тому

    Finding out glitches is one thing but stuff that messes with how the game runs is something totally different.
    And using this knowledge ingame is again on another new level. This is so amazing.

  • @MatthewFoos
    @MatthewFoos 7 років тому +7

    That was very, very cool.... Awesome work on this guys. #WeAreNotWorthy

  • @genericgeometrydashyoutube4360
    @genericgeometrydashyoutube4360 7 років тому +7

    quick question:
    WHO THE FUCK HAS ENOUGH SPARE TIME TO FIND A GLITCH THAT INSTANTLY BEATS SUPER MARIO 3

    • @jazzmaster909
      @jazzmaster909 6 років тому +4

      the TAS Speedrunning community.
      those guys are god like in reverse programming

  • @nin10doadict
    @nin10doadict 7 років тому +2

    So much fun to be had as soon as code starts reading out of the proper index...

  • @Zeithri
    @Zeithri 7 років тому +1

    Excellent video! Even though, I don't understand it, I still sorta understand it because you explained it really really well.
    Like a great teacher would.
    Of course this leads me to ponder if requests is something you'd be interested in doing because, there's a very interesting glitch in *Ys: The Vanished Omens* for the Sega Master System ( _I perform it on my playthrough in part 1_ ) where if you attempt to buy the Mirror from Pim in Minea a couple of times, really strange effects can occur. Such as you can be teleported to a glitch area that plays the Tower of Dahm's theme, the game can crash, you'll get a random amount of gold usually in the thousands, you can get gold and items, you can be leveled to max level instantly and many more stuff, I am convinced that there might just be a way to glitch it to the ending from there.
    Another thing I am interested in, but this is admittedly something I've tried to understand on my own more, is that in many old school games ( _in this case Shadowrun on Sega Genesis_ ) they have palette swap enemies / allies. I've been trying to use a hex editor to swap the palette of the character but to no real success.. One day I'll succeed I believe. But just what that change is.. Is interesting.

  • @nameistunbekannt7896
    @nameistunbekannt7896 7 років тому +5

    excellent quality video! than you!

  • @SwapPartLLC
    @SwapPartLLC 2 роки тому +4

    How the hell did someone figure this out?

  • @SSJfraz
    @SSJfraz 4 роки тому +2

    Toad: What is Mario doing?
    Luigi: He's beginning to believe...

  • @w00tix
    @w00tix 7 років тому

    Love your videos, very in depth and the visuals are excellent

  • @helmet098
    @helmet098 7 років тому +39

    I HAVE NO FUCKING IDEA WHAT THE FUCK JUST FUCKING HAPPENED!

    • @noside.foxhound
      @noside.foxhound 7 років тому +3

      helmet098 Simple, this guy is a genius!

    • @CupoChinoMusic
      @CupoChinoMusic 7 років тому

      he just explained about fucking the in game ram in smb3

    • @jekblom123
      @jekblom123 7 років тому +4

      explaining something doesn't mean that someone will understand it.

    • @hydrochloricacid2146
      @hydrochloricacid2146 7 років тому

      No shame to be had.
      I only understood that because I've studied processor design and architecture.
      I likely wouldn't have either if i hadn't tbh

  • @HappyGrower
    @HappyGrower 7 років тому +2

    Can you please make more videos like this.

  • @SmashJT
    @SmashJT 7 років тому

    I don't know why I found this so fascinating, but man you did an amazing job on this video!

  • @andricode
    @andricode 4 роки тому +1

    It's astonishing to see how this can be done and even more astonishing knowing how it works

  • @KabAudio
    @KabAudio 4 роки тому +3

    Dots: Love this video, amazing! However, I wanted to point out a small error.
    At time marker 5:52 , you show where the RTS instruction returned us to. However, this is not PRG1E (Bank 30) as you have labeled, but PRG1D (Bank 29). PRG1E (Bank 30) is meant to be at $8000, however, when the value #$80 is written to $9C70, the MMC3 immediately does a bank switch - changing $8000 to PRG1D (Bank 29), $A000 to PRG07 (Bank 7), $C000 to PRG1E (Bank 30) (Meant to be at $8000!!!) and $E000 stays at PRG1F (Bank 31).
    Furthermore, the stack IS meant to be empty when returning to $8F4D, because in normal execution, we would be within the main game level loop within PRG1E (Bank 30). However, due to PRG07 (Bank 7) now being loaded in at $8000, we land in the middle of a routine for drawing the player - hence the eventual RTS instruction, and subsequent jump to RAM at $0081. So I guess it's not an unintended empty stack, it's a return to an address that now holds the wrong bank.
    This bank mix up is only fixed up when a BRK is executed, since the IRQ routine calls a bank swap. Because bank swaps in SMB3 are set for $A000 and $C000, this returns our static banks PRG1E (Bank 30) and PRG1F (Bank 31) to $8000 and $E000 respectively. Indeed the wrong warp wouldn't be possible without at least one IRQ before the JSR to $8FE3!!!
    -KabAudio

    • @sonetagu1337
      @sonetagu1337 Рік тому

      How the fuck did you have time to fix the "bank" problem??? Holy shit geniune 31/49

  • @FiveHundredHungryGhosts
    @FiveHundredHungryGhosts 7 років тому +7

    this video is great mate, i rate it 8 out of 8

    • @Coaster42
      @Coaster42 7 років тому +3

      r8 mi gr8 b8 m8.

    • @flameshana9
      @flameshana9 5 років тому

      With 8 thumbs up as well
      👍👍👍👍👍👍👍👍

    • @GabrielAlcala956
      @GabrielAlcala956 4 роки тому

      I give it 8 bags of popcorn 🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿

  • @gelhouseart5219
    @gelhouseart5219 7 років тому +2

    Great content! You're gonna grow fast when people find you! You earned a sub :)

  • @AmnesiaGm1
    @AmnesiaGm1 7 років тому +1

    Thank you ! I had never seen a video which explains these thing so well !

  • @renakunisaki
    @renakunisaki 7 років тому +12

    Question: what?

  • @najatski
    @najatski 5 років тому +3

    7:06 IGN

  • @dasutanehineri
    @dasutanehineri 4 роки тому

    i've been falling asleep to videos like these for about a week. so relaxing and soft,,

  • @FarNoGaming
    @FarNoGaming 7 років тому +2

    This is incredible! You have earned a sub.
    I love that Code overlay. How did you get it work in real time?

  • @GlobalWarmingSkeptic
    @GlobalWarmingSkeptic 7 років тому +3

    I love the fact that I'm not the only person into old NES 6502 assembly code.

  • @CrasyFingers
    @CrasyFingers 7 років тому +4

    so if i understand, the game crashes while trying to create that invisible note block to repel mario while the actual note block is going up because everything is so out of index because you went so out of bounds? but why does the game execute the code you injected? is it like a failsafe kind of thing where they knew the game was gonna crash and they just execute any command they have as a last resort? i got the part where the code says jump to subroutine 8F E3 and the game crashes when you hit the note block but then everything was just too complicated for me

    • @juancarlosacunacanto8458
      @juancarlosacunacanto8458 6 років тому +5

      It's not a failsafe or a last resort, the game is so out of index at that moment that it just start executing code from locations it shouldn't and ends up executing the injected code.

    • @hydrochloricacid2146
      @hydrochloricacid2146 6 років тому +1

      The whole exploit is possible because of the 6502's Von Neumann architecture. The cpu is interpreting the sprite location _data_ as instructions.
      The rest of the procedures performed after placing the sprites down are to move the instruction pointer/PC to the address where the sprite location data is kept

    • @SuperNickid
      @SuperNickid 6 років тому +1

      @Crasy Fingers: This his just a summary of what he said above, and something that he miss to be more clear on what happen, Warning the summary his kind of long. The reason it works, when you go out of bounce, the note bock that crash the game acctually exist in the real part of the level, but when you hit it in the real part of the level, it works properly, this his just an example it may not be exactly correct, that note block his normaly on 6261 and when you hit it it goes 6261+0F to make 6270, nothing goes wrong here, and DD1A works fine to update the sprite animation and then the game return to the note block bouncing animation, and save the X cordinated of that bouncing animation in $0097, and its Y cordinated save in $009F, the X and Y value are only overwriten if another block bounce. So when you go out of bounce the block that was in 6261, gets incorrectly place everytime on 9C61, but since it his the same block it still have +0F to fine the sprite animation, so it will go 9C61+0F=9C70, and that tells the game to write to Read only memory, and since that his not possible the game look in open bus, to fine out what to do with 9C70, and found valid garbage code to update in DD1A, the garbage code are too long by one bite, that it overflow the stack buffer, so you will see in Debbug menu Address $0100: JSR:$0080, that means it already overflow, that it jump to that Addres that addres got that instruction $0080:RTS-1 so it will go to Addres $0081, then it need to go through allot of address before reaching The X cordinated of sprites, that Start on $0090, Enemies X position start on $0091, and end with $0095. Enemies spond on the highest slot first that his still available, so we right at $0093:$20, and at $0094: E3, or E1, and $0095: 8F, in Debug menu this will show as $0093: JSR: $8FE3, or JSR: 8FE1, you will see in debug menu that $0094, and $0095 does not show anymore, and Address $0096 still shows because that his the X cordinated for power-up. Mario X position his in $0090 mario X position need to be correct when hitting the note block that crash the game, to make it work because he can go to an Upcode with enemies in $0091, and $0092, with the easy method nothing spond on $0091, since nothing spond its X value his $00. Most of mario X cordinated are ok, just a few that would guarantee a fail, and that what cause the diffrent sounds before it transition to the rescue the princess. And it does work on WiiU virtual console, and all other Virtual console, Except for NES mini, and also it does not work on the Japanese version and the PAL version, Does not work in all version of All-stars. If you need more information on why it works, and why the Virtual console his banned for speedruning that category just contact me in here.

  • @SageOfMystery
    @SageOfMystery 7 років тому

    this is awesome. I never looked at a games assembly. you are a wonderful wizard.

  • @VochoTalacha
    @VochoTalacha 6 років тому

    I did this and depending if I'm whether holding B and/or a certain direction on the D pad, the game crashed, skipped to the scene where you return the wand to world 7's king or the game was reset with a little glitchy colors. All but the princess' room.

  • @AldiePezeh
    @AldiePezeh 7 років тому +4

    great video mate

  • @TheRedCap
    @TheRedCap 6 років тому +5

    My brain hurts...

  • @PluckyD
    @PluckyD 7 років тому

    Fantastic video, dude. Kinda reminds me of when they have an Engineer or Scientist come to your school, then kids ask them a question and they answer it in wtf-level detail and just blow everyone's mind. That's about where I am right now watching this lol

  • @TS_Mind_Swept
    @TS_Mind_Swept 5 років тому

    When you said wrong warp I thought you were talking about a different one, I didn’t know other mario games had these. Fascinating

  • @christophersaad3125
    @christophersaad3125 7 років тому +7

    *obligatory "here from summoning salts channel"*
    Amazing videos man, well done.

    • @mathprodigy
      @mathprodigy 7 років тому

      Chris Thorn summoning salts is the reason I found dotsarecool also, and thus this channel as well

    • @blulere
      @blulere 6 років тому

      'fg' kuk

  • @Duracelbunny
    @Duracelbunny 7 років тому +110

    No point in trying this anymore, Nintendo patched it.

    • @SUPERNOOB20
      @SUPERNOOB20 7 років тому +34

      Duracelpupu: For the NES classic mini? Anyways, we still have the unpatched original version!

    • @hakanstorsater5090
      @hakanstorsater5090 7 років тому +5

      ..and roms, I'd guess...

    • @fireriffs
      @fireriffs 7 років тому +19

      Just play on an NES. That doesn't get patched.

    • @kukumatz4502
      @kukumatz4502 7 років тому +100

      G U Y S H E W A S J O K I N G

    • @potc420
      @potc420 7 років тому +20

      Apparently only one person can detect a joke

  • @inktothedarkness5469
    @inktothedarkness5469 2 роки тому

    Thank you for this great explanation! I was led here by tetrabitgamings video but I was disappoint there by a lack of real reasoning. Now this topic is way more clear to me. Thank you!

  • @ssj2matt
    @ssj2matt 7 років тому

    Very interesting channel. Look forward to seeing more!

  • @americanIDOLfan11111
    @americanIDOLfan11111 6 років тому +5

    This is the first video I’ve ever watched on ANY subject that made me feel dumb.

  • @LaserGryph
    @LaserGryph 7 років тому +36

    You lost me after "In Super Mario Brothers 3 ..."

    • @derekmartin5340
      @derekmartin5340 5 років тому +7

      I was confused when he called it Brothers.

    • @Liminally_ill
      @Liminally_ill 4 роки тому +1

      lmao

    • @dtm1351
      @dtm1351 3 роки тому

      Made it farther than me... I got confused reading the title.

  • @dragonmanover9000
    @dragonmanover9000 4 роки тому

    Thanks for explaining this! I saw it done on a speedrun, and I had no idea what he did!

  • @redapplefour6223
    @redapplefour6223 6 років тому

    love how the first thing you see in the glitchy mess is coins resembling the ^^ face. always found it oddly fitting, like, yep youve glitched down here good job

  • @ThatOneSpud
    @ThatOneSpud 7 років тому +20

    Why do you sound like dotsarecool

    • @RGMechEx
      @RGMechEx  7 років тому +24

      We're twins.

    • @ThatOneSpud
      @ThatOneSpud 7 років тому +3

      Retro Game Mechanics Explained Really?

    • @IsoFrieze
      @IsoFrieze 7 років тому +12

      Well I guess I'm not really my own twin, so not exactly.

    • @ThatOneSpud
      @ThatOneSpud 7 років тому +3

      ***** Lol ok

    • @IsoFrieze
      @IsoFrieze 7 років тому +17

      Seriously though, this is the channel where I post my quality videos (RGME series), and pretty much everything else I want to upload goes on my dotsarecool channel.

  • @kidkique
    @kidkique Рік тому

    Wow. Your channel is amazing. SUBSCRIBED!

  • @gildedbear5355
    @gildedbear5355 Рік тому

    I think that I finally understand how controlling memory mappers works. You send a write command to what would normally be a ROM location. However, because there's a memory mapper and not just the bare ROM the mapper can catch that write command and then perform some other command.
    Clever that.

  • @prairiebrewer6630
    @prairiebrewer6630 6 років тому

    Your videos are brilliant dude. Hope you get more subscribers...keep the vids coming.

  • @gummel82
    @gummel82 6 років тому

    I just found this channel and i have to ask, why doesn‘t this channel have more subs? It‘s fucking amazig