Super Mario Bros. 3 in 3 Minutes

Image credit: 
YouTube / TASVideosChannel

Super Mario Bros. 3 was one of the best Nintendo games ever released. In this video, we see a bizarre play-through of the game that reaches the Princess in just three minutes...without ever seeing Bowser. It exploits glitches in the game and extremely careful timing to achieve this effect. First, take a look (if you're short on time, just zip to 2:14 and watch for the crazy glitches after Mario jumps up a bit):

And now some context. This is what's called a "tool-assisted speedrun." Let's unpack that. A speedrun is completing a game in the minimum time possible. The "tool-assisted" bit is where this gets interesting; rather than a player sitting there with a Nintendo controller and playing the game live, this game was "played" by carefully scripting all of Mario's moves, frame by frame, and then using digital tools to perform those scripted inputs on a real NES.

The creators of this speedrun, who go by "Lord Tom" and "Tompa," explain their techniques in a long post using a good deal of technical jargon. The most interesting bit is under the heading "Wrong-warping SMB3." Here's a brief sample; note that the dollar-sign values are memory addresses within the game. Yes, this is highly technical:

Touching the glitch tile, an invisible note block, makes the processor try to update memory outside of the normal tile data, at an address ($9c70) that reprograms how the processor interprets addresses. This causes execution to jump to an unintended area of the ROM and execute incorrect instructions. Eventually, the stack overflows and it starts executing RAM instructions starting at address $0081, which is just before the location of the player x value at $0090 and enemy x values $0091-5.

...

To jump to the Princess, we need 3 consecutive x values to read, in order: 32, 225 or 227, 143. This results in the assembly instruction "JSR $8FE1", which reads as "Jump to the subroutine at address $8FE1."

...

Mario can only carry one shell at time. So to grab the ?'s shell, we need to throw the $0095 shell such that it doesn't despawn and also ends up where we can grab it again. There's not much margin for this, but it's just possible to throw the shell so it ends up spinning between the middle pipes down below. This lets Mario grab it after throwing the $0094 shell without breaking stride.

As we fall from the ?'s area, we now have the left piranha plant in $0093, the ?'s shell in $0094, and the first shell from the level entry in $0095. All that remains is to throw the two shells such that they hit the right x values on the same (single) frame the plant's x value hits 32...and then execute the pipe glitch on that same frame.

As Neo said in The Matrix, "Whoa."

(Via Devour.)

More from mental_floss...

May 1, 2014 - 12:01pm
submit to reddit