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.1K

  • @11679MRT
    @11679MRT 7 ปีที่แล้ว +1436

    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...

  • @SummoningSalt
    @SummoningSalt 7 ปีที่แล้ว +1892

    I sent me.

    • @ColbyePresents
      @ColbyePresents 6 ปีที่แล้ว +23

      *_That’s pretty funny._*

    • @Owl90
      @Owl90 6 ปีที่แล้ว +10

      You also sent me. What a coincidence!

    • @johnbasedow8973
      @johnbasedow8973 5 ปีที่แล้ว +6

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

    • @novopotato
      @novopotato 5 ปีที่แล้ว +11

      Why aren't you verified???

    • @smitymcwarbinizer3855
      @smitymcwarbinizer3855 5 ปีที่แล้ว +1

      Same

  • @3lH4ck3rC0mf0r7
    @3lH4ck3rC0mf0r7 5 ปีที่แล้ว +748

    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 4 ปีที่แล้ว +89

      I bet the whole Mario galaxy aligned

    • @arfansthename
      @arfansthename 4 ปีที่แล้ว +6

      Yes.

    • @iRemainNameless
      @iRemainNameless 4 ปีที่แล้ว +21

      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 ปีที่แล้ว +34

      @@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 5 ปีที่แล้ว +240

    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 ปีที่แล้ว +555

    > 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?

  • @ZarkWiffle
    @ZarkWiffle 7 ปีที่แล้ว +532

    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 4 ปีที่แล้ว +47

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

  • @MargaretHutz
    @MargaretHutz 7 ปีที่แล้ว +781

    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.

  • @scribbles1313
    @scribbles1313 7 ปีที่แล้ว +221

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

  • @jongyon7192p
    @jongyon7192p 7 ปีที่แล้ว +173

    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.

  • @3dpprofessor
    @3dpprofessor 5 ปีที่แล้ว +388

    How did anyone figure that out?

    • @bezvezenetko
      @bezvezenetko 5 ปีที่แล้ว +19

      3D Printing Professor exactly

    • @misterturkturkle
      @misterturkturkle 5 ปีที่แล้ว +133

      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 ปีที่แล้ว +41

      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 th-cam.com/video/dJp1XLmw9Jg/w-d-xo.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

  • @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 4 ปีที่แล้ว +2

      @@Symmetry_Obsessed_Freak wow, really?

  • @dadsanddragons7459
    @dadsanddragons7459 6 ปีที่แล้ว +69

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

  • @sendylie1774
    @sendylie1774 6 ปีที่แล้ว +80

    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.

  • @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.

  • @VideoRepoDF
    @VideoRepoDF 7 ปีที่แล้ว +403

    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

  • @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

  • @oneofone210
    @oneofone210 5 ปีที่แล้ว +394

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

    • @fbiagent0124
      @fbiagent0124 4 ปีที่แล้ว +32

      2024: Set off grenades with an SNES controller

    • @dmas7749
      @dmas7749 4 ปีที่แล้ว +8

      i would probably crash lol

    • @kirby9759
      @kirby9759 4 ปีที่แล้ว +7

      2016 launch a rocket with an n64 controller

    • @AYouTubeChannelwithNoName
      @AYouTubeChannelwithNoName 4 ปีที่แล้ว +4

      I hope that never happens.

    • @dmas7749
      @dmas7749 4 ปีที่แล้ว +2

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

  • @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.

    • @AGrayPhantom
      @AGrayPhantom 7 ปีที่แล้ว +22

      Whoa.

    • @hakanstorsater5090
      @hakanstorsater5090 7 ปีที่แล้ว +33

      Ceci n'est pas une pipe!

    • @auneakeffect
      @auneakeffect 7 ปีที่แล้ว

      dude, yes

    • @bowzert
      @bowzert 7 ปีที่แล้ว +2

      Matrix reference yay

    • @tbb033
      @tbb033 6 ปีที่แล้ว

      Don' t be naff. There's a pipe right there.

  • @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!

  • @64natan
    @64natan 4 ปีที่แล้ว +24

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

  • @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...

  • @StephenGillie
    @StephenGillie 6 ปีที่แล้ว +1

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

  • @WholesomeDemonKastis_a_shlump
    @WholesomeDemonKastis_a_shlump 4 ปีที่แล้ว +9

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

  • @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 4 ปีที่แล้ว +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

  • @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.

  • @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.

  • @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.

  • @azealot7112
    @azealot7112 3 ปีที่แล้ว +3

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

  • @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. th-cam.com/video/701sO-YxhGM/w-d-xo.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.

  • @SilverFocus
    @SilverFocus ปีที่แล้ว +1

    9:35 amazing! what a precisely control!

  • @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

  • @43ann
    @43ann 7 ปีที่แล้ว +11

    Great production value mate. Keep it up.

  • @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 4 ปีที่แล้ว +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

  • @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. :)

  • @Estupigaia
    @Estupigaia 7 ปีที่แล้ว +1

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

  • @RudySolis3rd
    @RudySolis3rd 7 ปีที่แล้ว +6

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

  • @iwir3d
    @iwir3d 7 ปีที่แล้ว +5

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

  • @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!

  • @SSJfraz
    @SSJfraz 4 ปีที่แล้ว +2

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

  • @ToolShopGuy
    @ToolShopGuy 7 ปีที่แล้ว +7

    brilliant! just subbed. cant wait for more videos

  • @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

  • @MegaMJoker
    @MegaMJoker 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!

  • @UltraJordanGaming
    @UltraJordanGaming 7 ปีที่แล้ว +8

    I like your editing style

  • @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.

  • @nin10doadict
    @nin10doadict 7 ปีที่แล้ว +2

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

  • @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.

  • @pleasuretokill
    @pleasuretokill 4 ปีที่แล้ว +7

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

  • @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 4 ปีที่แล้ว

      lol, fits your avatar hahahah

  • @TheDanielradio
    @TheDanielradio 4 ปีที่แล้ว +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! :)

  • @preamstrikbiz0
    @preamstrikbiz0 6 ปีที่แล้ว

    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

  • @Ganjulation
    @Ganjulation 7 ปีที่แล้ว +4

    Nice video! Never heard of this channel before, subscribed

  • @SwapPartLLC
    @SwapPartLLC 2 ปีที่แล้ว +3

    How the hell did someone figure this out?

  • @alexlefevre8226
    @alexlefevre8226 4 ปีที่แล้ว +1

    It's wild what ACE can do when game designers and their programmer counterparts had to compact an entire game down to capacities such as 256kB for SMB3 or even smaller as you look back in time. It's a lot easier to jackhammer the stack or violate some mechanic to attempt a bad read or write to somewhere illegal when the programmers were worried more about simply making the game work correctly within the hardware's confines than fretting about drawing 35 gigabytes worth of textures. Programmers were a lot more resourceful back then and had a nearly intimate relationship with their target hardware. Knowing how to bend the rules could help you implement your current mechanic in 450 bytes rather than 600 bytes; add up all that memory or program space saved over time while utilizing these methods, and your game has the space to add more levels, features, mechanics, secrets, or anything else that might have your design be the smash hit of the day.
    If I had a list of things I'd do with a time machine, taking a modern IDE and hardware development tools back to these days would be on my list. Not like... in the top 100 or anything... but it would be on there. :)

  • @EmeraldChickn
    @EmeraldChickn 6 ปีที่แล้ว

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

  • @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

  • @TompaA
    @TompaA 7 ปีที่แล้ว +21

    Beautiful video! =)

  • @Spo8
    @Spo8 6 ปีที่แล้ว

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

  • @peachesnscream
    @peachesnscream 3 ปีที่แล้ว

    big props for the editing and structure of this video

  • @renakunisaki
    @renakunisaki 7 ปีที่แล้ว +12

    Question: what?

  • @333Rich33
    @333Rich33 7 ปีที่แล้ว +3

    Nice video mate!

  • @JuanMoranRamirez
    @JuanMoranRamirez 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!

  • @w00tix
    @w00tix 7 ปีที่แล้ว

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

  • @nameistunbekannt7896
    @nameistunbekannt7896 7 ปีที่แล้ว +5

    excellent quality video! than you!

  • @MatthewFoos
    @MatthewFoos 7 ปีที่แล้ว +7

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

  • @TheReimecker
    @TheReimecker 2 ปีที่แล้ว

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

  • @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.

  • @najatski
    @najatski 5 ปีที่แล้ว +3

    7:06 IGN

  • @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 🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿🍿

  • @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.

  • @Pianist203
    @Pianist203 6 ปีที่แล้ว +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.

  • @HappyGrower
    @HappyGrower 7 ปีที่แล้ว +2

    Can you please make more videos like this.

  • @KabAudio
    @KabAudio 3 ปีที่แล้ว +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

  • @futur3gentleman802
    @futur3gentleman802 7 ปีที่แล้ว

    Incredible explanation. Thank you for making this!

  • @AmnesiaGm1
    @AmnesiaGm1 7 ปีที่แล้ว +1

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

  • @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

  • @GlobalWarmingSkeptic
    @GlobalWarmingSkeptic 7 ปีที่แล้ว +3

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

  • @SageOfMystery
    @SageOfMystery 7 ปีที่แล้ว

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

  • @dasutanehineri
    @dasutanehineri 4 ปีที่แล้ว

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

  • @CrasyFingers
    @CrasyFingers 6 ปีที่แล้ว +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.

  • @TheRedCap
    @TheRedCap 6 ปีที่แล้ว +5

    My brain hurts...

  • @andricode
    @andricode 4 ปีที่แล้ว +1

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

  • @purple_dragon2536
    @purple_dragon2536 ปีที่แล้ว +2

    This video did a very good job at explaining this trick. I, however, did not do a very good job understanding it. 10/10

  • @AldiePezeh
    @AldiePezeh 7 ปีที่แล้ว +4

    great video mate

  • @LaserGryph
    @LaserGryph 6 ปีที่แล้ว +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.

  • @SmashJT
    @SmashJT 7 ปีที่แล้ว

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

  • @kbhasi
    @kbhasi 7 ปีที่แล้ว

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

  • @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

  • @americanIDOLfan11111
    @americanIDOLfan11111 6 ปีที่แล้ว +5

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

  • @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?

  • @gildedbear5355
    @gildedbear5355 11 หลายเดือนก่อน

    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.

  • @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.

  • @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.

  • @dragonmanover9000
    @dragonmanover9000 4 ปีที่แล้ว

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

  • @gelhouseart5219
    @gelhouseart5219 7 ปีที่แล้ว +2

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

  • @PeopleAgainstRetards
    @PeopleAgainstRetards 7 ปีที่แล้ว

    Fantastic! Don't stop making these videos.

  • @kidkique
    @kidkique ปีที่แล้ว

    Wow. Your channel is amazing. SUBSCRIBED!

  • @edwardcosio
    @edwardcosio 5 ปีที่แล้ว

    This is really cool! Loved your video!

  • @BrainSlugs83
    @BrainSlugs83 5 ปีที่แล้ว +1

    Nice explanation of what's going on in the stack and rom mapper. 👍👍

  • @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!