« Site Engineering | Main | Ace Audio »

Blog : -AIR-

January 8, 2006

AIR is a hack for the original Super Mario Brothers ROM. You probably cannot read this website, because it is in Japanese1, so here is a summary: Rather than simply turning Mario into Glen Danzig or Hitler and leaving the levels well enough alone (a popular enough thing to do), AIR takes the layout of the original game and reconfigures it such that all the levels are different. This isn’t so strange — the Japanese version of Super Mario Brothers 2 did basically the same thing (while giving Luigi a higher jump and adding wind and negative 1-UPs; the American version of SMB2 was originally a Japanese game called Doki Doki Panic, which starred a dude in a turban and was set in the Middle East. Which explains all those pyramids and magic carpets, but not really the whales). The trick with AIR is that the levels (1-1 through 4-3) are set up such that they are literally impossible to beat without exploiting bugs in the game.

This is a link to a timeattack of this game — a timeattack being a computer-aided runthrough of a video game with the intent of winning as efficiently as possible, sometimes going through a game frame-by-frame and plotting out the course which would take the least time to enact, even at the loss of life or score. Timeattacks are great in their own right (such as the simultaneous runthrough of Megaman X and Megaman X2 which use exactly the same controller input, which has to be seen to be believed), but normally, bugs are exploited in timeattacks in order to finish a game more quickly1. Some people consider this cheating, which is why, although it’s possible to beat Zelda III in less than four minutes, the more commonly accepted runthrough clocks in at just over eighty. Here is where AIR differs; AIR requires you to exploit them. Subverting the game’s original code is a prerequisite of winning, or even advancing for more than a few seconds. If you download the torrent of the timeattack (which, it should be noted, is a record of one of a handful known completions of this game, period) and are familiar with Super Mario Brothers in more than a passing manner, you’ll see what I mean. The tricks I used in elementary school to scoot under low-hanging rows of bricks are elementary in this game; knowing how to walk through solid walls of bricks (a trick which could get you to the legendary Minus World) is equally crucial, despite the fact that it’s much harder. In fact, there are several times during the playthrough which necessitate replay, just to figure out how the programmers require the gamer to trick the game’s logic in order to keep from dying. (That they included the ability to jump in midair is a cold comfort, as is proven sometime late in the game.)

One of the most fascinating things about AIR happens in stage 3-2, which extends the interstitial stages between, say, 1-1 and 1-2 in the original SMB, to a long course, in which the player has no control over gameplay. In SMB, this didn’t matter, since you were just walking a few feet into a pipe; in AIR, they set up a virtual Rube Goldberg machine in which Mario walks himself, somnambulantly, into situations in which he cannot help but to trigger bugs which, again, acting as exploits, propel him through the stage. It’s really sort of beautiful to watch; a machine programmed to flaunt the flaws in its own logic. (This is where, being a pretentious writer, I first started to think of all this as extended metaphor; if you think about the underlying mechanics of the game, and then watch what the game is visually depicting on the screen, maybe you’ll have your own personal shadow-play when you’re done, too.)

The video weighs in at about 15 megs and runs for less than ten minutes; if you see nothing else on the internet today, you could do worse than to watch this. Alternately, if you’d like to try your own infinitely-more-falliable hand at the game itself, an IPS patch for the Super Mario Brothers 1 ROM is downloadable here, in the popular LZH format; a guide to applying IPS patches can be found here. And if all that proves too simple, see if you can determine how, and in what capacity, this hack is based, as it is said to be, on the dating sim Air3.


1 A quick note on bugs and exploits— when coding a video game, one has to set up a set of action/reaction checks for all the stuff on the screen, such that the program can react to any potential happenstance during the course of gameplay. A simple example would be the action of pressing the A button, and the program responding by making Mario jump. It gets more complex when you have to check for situational behavior — making sure Mario is still standing on a ledge; determining whether an enemy has, or has not, hit you. (There’s a pretty good overview of what this sort of programming entails here, and, as a bonus, the game used as an example is M.C. Kids, which I am proud to own.) A bug occurs when a player manages to squeeze his character into some situation not predicted by the game’s code — in SMB, a simple example occurs when Mario eats a mushroom, thus growing, then squats while running to slide under a low row of bricks. While you squat, there’s no issue — you are short enough to fit under the blocks. When you stand, though, you are suddenly coexisting in the same space as the overhead row of blocks, and since Mario normally can’t walk through blocks, you might be stuck there forever. The programmers saw this as a problem, and wrote code which, when Mario and a block overlapped, moved Mario to the right, one pixel at a time, until he no longer overlapped a block. These situations were never supposed to occur in the game — this sort of code is a just-in-case safety guard against some unforeseen problem. To recap: The bug is that it is possible to get Mario to overlap a block. The exploit occurs when you are able to use the bug’s workaround (or lack thereof2) to force yourself into an area in the game which programmers had expected you to reach through more conventional methods.

2 By this I mean that, in certain games, programmers had no way to predict that certain logic paradoxes would ever occur, and so didn’t write in a way to deal with them. A good example occurs in Sonic 3 — the holder of the current timeattack record here explains (if all too briefly) how he used glitches to gain a faster completion time, and even how he had to take these glitches into consideration, to ensure that he would be able to complete the game instead of accidentally causing it to crash. Are you feeling nerdy enough yet.

3 About 90% of this paragraph brought to you by the internet detective work of Livejournal user paracelsvs, who ferreted out many of these links out of pure goodwill.

This entry was posted on Sunday, January 8th, 2006 at 11:03 pm and is filed under Blog. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

You must be logged in to post a comment.