Thank you Mario! But our princess is in another… SYSTEM FAILURE
January 13, 2014 4:25 PM   Subscribe

In Super Mario World, if you make the right series of moves with the right game objects, you can cause the game to execute arbitrary code. A particularly delightful use of this feature was recently shown by Masterjun, a tool-assisted speedrun enthusiast. He unveiled the speedrun to the world using an unmodified game cartridge and a Super Nintendo Entertainment System with eight controllers connected through a multitap system at the Awesome Games Done Quick 2014 event. Hack A Day explains the technique. Masterjun explains it in more detail.
posted by grouse (46 comments total) 70 users marked this as a favorite
Mind. Blown.
posted by murphy slaw at 4:37 PM on January 13, 2014

That's... pretty good.
posted by JHarris at 4:41 PM on January 13, 2014

Forget his mind, my nine year old's head is going to explode.
posted by mollweide at 4:43 PM on January 13, 2014 [1 favorite]

Wow. Someone's done the same thing with Pokemon, too.
posted by suckerpunch at 4:45 PM on January 13, 2014 [1 favorite]

It seems really bizarre that it would take input from the controller.
posted by empath at 4:46 PM on January 13, 2014

Whaat!? What what!? WHAT WHAT WHAT!? *head detonates*
posted by loquacious at 4:49 PM on January 13, 2014

If you start the video from the beginning, there's a really slick Gradius run too.
posted by JHarris at 4:57 PM on January 13, 2014

That's incredible. I can sort of believe the existence of the Pokemon hack but this one... nope, do not understand.

I love that their first goal was to program all of Mario in, but had to settle for Snake.
posted by BungaDunga at 4:59 PM on January 13, 2014

empath, I read the description of the hack. It doesn't use the other controller inputs until the exploit is trigger, where a short loader that has been created by manipulating the object table in RAM is executed by using a glitch which spawns an object that's not actually supported by SMW's code, causing a jump to a table location that sends execution to that prepared RAM, then jumping (I think) to the controller registers in memory themselves. From there, you can do pretty much anything you want; the code for Pong and Snake is loaded into memory at that point.
posted by JHarris at 5:00 PM on January 13, 2014 [3 favorites]

The description is in the explains in more detail link in the FPP.
posted by JHarris at 5:02 PM on January 13, 2014

The upshot is, SMW doesn't take input from those other controller ports, but their loader does.
posted by JHarris at 5:03 PM on January 13, 2014

It seems really bizarre that it would take input from the controller.

The controller input is stored in memory at $4218. If one "stuns a flying ? block," a bug causes code to jump to $0322, which happens to be a data location that can be manipulated by moving a particular object onto the screen in a particular location in a particular way. The video is setting up that very particular set of conditions such that the code at $0322 is simply an instruction to jump to $4218. From then on, whatever input comes from the controllers is what's executed.
posted by grouse at 5:03 PM on January 13, 2014 [5 favorites]

Yay, an AGDQ thread. I was thinking about making a more general AGDQ post than this one, but this'll do (the TAS block was a definite highlight). The SMW bit was the best of the TAS block, but the whole thing should be watched.

The event overall was the best it's ever been (I've been watching AGDQ/SGDQ since AGDQ2012), and raised more money than all past AGDQ events combined. They hit the $1,000,000 mark during the final scheduled run of the marathon (Chrono Trigger), making it the most successful video game charity marathon to date.

Personal choices of highlights:

The TAS Bot block
Yoshi's Island (a fire alarm went off during this run, forcing them to pause briefly. They broadcast an empty room to approx. 80k people... the run itself is also great).
Halo 2 (I wasn't initially excited about this run, but the runner's commentary is really entertaining)
F-Zero GX (this game is notoriously super difficult and the runner, the current world record holder, put on a hell of a display of skill)
Surgeon Simulator 2013 (played coop with one player on mouse and one on keyboard)
Borderlands 2 (played 4-player coop with some of the game developers on a skype call)
Mike Tyson's Punch-Out (played blindfolded)
Super Punch-Out (also blindfolded)

All the races they did were great (see who can beat the game the fastest), but the Super Metroid one was probably the most intense.

There were more highlights. Too many to list, really. So, a full list of runs, including bonus stream ones is available here
posted by sparkletone at 5:05 PM on January 13, 2014 [19 favorites]

Oh, and first thing they did on the bonus stream was some more TAS Bot stuff, showing Zelda 1, Zelda 2 and Tetris. The video's here, I think. The really mind-blowing thing to me is that this stuff works on real consoles, not just in emulators, though I guess that shouldn't be that huge a surprise.
posted by sparkletone at 5:06 PM on January 13, 2014 [1 favorite]

That explains that they managed to put a P-block in such a location on the screen so that its entry in the object table is 4C 18 42.

4C: X position. 18: Y position, 42: Object identity (P-block).

4C is the opcode for the jump instruction. 18 is the low byte of the controller input register, and 42 is the high byte. Result: pwnage.
posted by JHarris at 5:13 PM on January 13, 2014 [2 favorites]

(So, my earlier description was somewhat incorrect, from misunderstanding the description.)
posted by JHarris at 5:14 PM on January 13, 2014

Ye gads.
posted by kafziel at 5:20 PM on January 13, 2014

... And then it puts the centrifuges into the destructive resonance zone?
posted by Devonian at 5:37 PM on January 13, 2014 [2 favorites]

I hadn't even thought about the speed-run community since the days of Quake Done Quick, so it was a surprise to tune into the marathon and discover a vibrant community running games of all genres and ages with usually entertaining commentary (especially the guy who did the Half-Life 2 run, kudos to that guy). Can't wait for the summer marathon!
posted by chrominance at 5:56 PM on January 13, 2014

Mike Tyson's Punch-Out (played blindfolded)

A long time ago, I got to be quite good at defeating Mike Tyson in that game. (I am no longer near that good.) The thing is, the first 30 seconds of the first round, Tyson throws punches that instantly knock you down if they connect, and they have an extremely short time period between the tell and the punch. Basically, the only way to do it is to play it a whole lot and get a kind of feel for when the punches will be coming, from the timing of the game's AI loop. Eventually I developed a feel for it, so that for short periods I didn't have to watch the screen, I just had a sense of when a punch would come. I expect the blindfold guy just took that as far as it would go.
posted by JHarris at 5:59 PM on January 13, 2014 [1 favorite]

JHarris: He gave up at Mike Tyson.
posted by Yowser at 6:11 PM on January 13, 2014

Besides sparkletone's fantastic recommendations, also consider checking out the following from AGDQ 2014:
  • GoldenEye, with two players controlling a single character (one strafing, one looking)
  • Mirror's Edge, with two players on a single controller
  • Minecraft, played with incredible speed and luck
  • Viewtiful Joe, with great commentary, played at Mach Speed
  • Prayerwarriors and Zoo Race, two hilariously terrible, family-friendly games run in the Awful Games Done Quick block
Devs also called in for VVVVVV and Metroid Prime, as well as composer Grant Kirkhope an hour into Banjo Kazooie. You might or might not like the costumes and/or singalongs that went along with Sonic R, the Glover race, and the immortal classic Barkley, Shut up and Jam: Gaiden.

Also, Yoshi's Island had another great moment after the fire alarm. To get as fast a 100% run as possible, Trihex had to avoid playing any bonus challenges, which pop up at the end of a level if a roulette-like spin ends on a flower (and at 100%, flowers occupy half of the spaces the spin can end). For two and a half straight hours, through perfect timing and the occasional bit of luck, he missed every single one. But the ADGQ attendees were prepared for if something were to go wrong.
posted by knuckle tattoos at 6:13 PM on January 13, 2014 [5 favorites]

I expect the blindfold guy just took that as far as it would go.

I watch that particular streamer practice a fair amount because I like his personality and the handful of games he runs. I'm nowhere near his level of crazy MTPO knowledge, but my understanding is that Tyson is basically impossible to beat blindfolded (I think he says as much before fighting him). He doesn't have any kind of pattern, but rather random delays between punches, and getting hit by Tyson once will knock you down. So he has to hit you three times, while you require many more punches landed to win.

Run spoilerz but: He does manage to hit Tyson a couple times, but dies quickly. That he even got there is insane. He then went back and beat Tyson with his eyes open. Last year he got to... The fight after Bald Bull 1, I think? So this year was a surprising (and impressive) improvement.
posted by sparkletone at 6:22 PM on January 13, 2014 [1 favorite]

Besides sparkletone's fantastic recommendations

Thanks for rounding up the dev call in runs also, as that's something I meant to circle back around to and post later.

And those are excellent additions to my list. I remembered the Mirror's Edge 2players-1controller run a little after posting and wished I'd included it. That one, much like the blindfold runs, is funny in that it basically grew out of a Cool Party Trick™ but turns out to actually be a thing you can do that is a neat stunt for marathons and stuff.

Also, DK64 glitches are never not funny to me (the race before that was quite close as well).
posted by sparkletone at 6:27 PM on January 13, 2014

But the ADGQ attendees were prepared for if something were to go wrong.

Oh, man. I'd completely forgotten that part. I about died laughing. Perhaps only topped by someone giving the Halo 2 runner a box to open during a boring part of his run and it being a first aid for choking poster.
posted by sparkletone at 6:30 PM on January 13, 2014

JHarris: He gave up at Mike Tyson.

What? Gyp!

Just kidding. I seem to remember it breaking down for me the further I got into the fight, so maybe the small amount of sense I got was pretty much the limit to it.

Tyson is insane. The last few opponents are pretty tough, but Tyson's just on a whole other plane.
posted by JHarris at 6:30 PM on January 13, 2014

Holy...I don't even...

posted by jquinby at 6:31 PM on January 13, 2014

That is just ...

I don't know whether to jump up in the air and celebrate, or collapse into a fetal position on to the cold, hard kitchen linoleum.

I'll split the difference and open a bottle of space wine.

And then I'll fantasize about going back in time and showing this video to the original Super Mario Bros engineers. This age in which we live, such crazy.
posted by i_have_a_computer at 6:34 PM on January 13, 2014

JHarris: He gave up at Mike Tyson.

He didn't give up, exactly. He tries. He even gets a few hits in. But there's no real way to beat Tyson blindfolded except by a completely incredible amount of luck.
posted by sparkletone at 6:35 PM on January 13, 2014

There was also developer commentary during the run of the Mask (SNES), which was pretty amusing for his reaction to the bug where Mr. K skips the entire sewer level.
posted by IAmUnaware at 6:42 PM on January 13, 2014

Watching that guy play Yoshi's Island reminds me all over again how wonderful that game is.
posted by JHarris at 6:48 PM on January 13, 2014

For two and a half straight hours, through perfect timing and the occasional bit of luck, he missed every single one.

Actually, they talk about that in the run, they use "bonus skips."

How I understand it -- when the flower wheel scrolls on screen, it's always in the same state, and starts its spinning from there. So, the number of frames from when the wheel is spawned to when you come into contact with it determines whether you hit a flower in the bonus game or not. If you can find a way to ensure it's just the right (or wrong, depending on how you look at it) number of frames, you can make ensure you always miss the bonus. They know a lot of these "bonus skips" for the levels, but not for every level. It's only the ones with no known skip where it really relies on timing and luck -- which of course runs out right there on 6-7 for him.

I haven't looked through much of the rest of his run yet, I imagine he uses the trick to beat Naval Pirhana without actually fighting him? The trick has to do with the fact that all the bosses in the game are weak enemies that are enlarged by Kamek's wand. Well, Naval Pirhana can be killed before Kamek can use his magic on him....
posted by JHarris at 6:59 PM on January 13, 2014

(The trick with the timing of the wheel is very similar to the knack for getting Star Cards in the end-level run on Super Mario 3.)
posted by JHarris at 7:00 PM on January 13, 2014

Just saw them do Extra 3 on Yoshi's Island. That was pretty great! Not only do use a trick to turn a normally autoscroll level into a normal one (by going way up and over jumping on bats and fluttering, so the invisible "autoscroll start" sprite never scrolls on-screen), but they reveal that the game is coded so that it's actually impossible to get a Bonus Challenge on that level! If the wheel comes up Flower, it'll actually cheat it off at the end of the roulette.
posted by JHarris at 7:06 PM on January 13, 2014

Meanwhile, heads roll at the TAO NSA division. "They found our SMBW backdoor, what's next, Street Fighter II?"
posted by lordaych at 8:08 PM on January 13, 2014 [1 favorite]

Wow, the surgeon simulator is ... I don't even know what to say. Not a simulator, exactly. Double kidney transplant in a moving ambulance? Removing skull dome with fire extinguisher? Throwing the donor brain into place during a brain transplant?

erm, nonstandard to say the least.
posted by etherist at 8:11 PM on January 13, 2014 [1 favorite]

erm, nonstandard to say the least.

Relevant Metafilter thread. It's um... Interesting. Like QWOP in terms of can't-tell-if-terrible-or-just-hard, but way more (intentionally) funny.
posted by sparkletone at 8:21 PM on January 13, 2014 [1 favorite]

The definition of "meta-gaming".
posted by Elementary Penguin at 3:47 AM on January 14, 2014

ADGQ made me very happy with its mix of charity and retro gaming. I second the recommendation of the Super Metroid run (which is my bugbear).
posted by ersatz at 5:08 AM on January 14, 2014

It's funny that doing MTPO blindfolded is a thing. It's totally doable to get past the first round of opponents, and the first few opponents of the second round (I hadn't heard of anyone else doing it, but it's just a natural thing to try given the existence of Don Flamenco). But I couldn't defeat any of the second-time-around opponents blindfolded.

Another fun thing to try is playing F-Zero lying on your back with your head towards the TV and your feet pointed away, so the screen is upside-down. The clash between your brain taking a couple extra milliseconds to reverse the controls and the need for quick reflexes makes things extra fun.
posted by a snickering nuthatch at 7:55 AM on January 14, 2014

I am still getting through AGDQ2013 videos! ahhhhhh can't wait to watch some of these this weekend.
posted by Theta States at 8:14 AM on January 14, 2014 [1 favorite]

So that's what Mario having a seizure looks like.
posted by RolandOfEld at 8:15 AM on January 14, 2014

Well if the guy would stop eating random mushrooms that he finds growing inside of masonry...
posted by cortex at 9:38 AM on January 14, 2014 [5 favorites]

Omg, I stopped watching before the whole Pong Snake thing got kicked off. Uh.. yea, I'm going to read in more I suppose but the seizure comment stands as valid I think.
posted by RolandOfEld at 9:57 AM on January 14, 2014

I can't believe I forgot to mention Super Mario 64 with one hand, another gimmicky but very cool ADGQ 2014 highlight.
posted by knuckle tattoos at 4:00 PM on January 14, 2014 [1 favorite]

« Older "a cyber-pessimism that could at times be just as...   |   .beat time: for telling time on the Information... Newer »

This thread has been archived and is closed to new comments