I’m really into TAS, or “Tool Assisted Speedruns”, whose basic idea is to use an emulator to run a video game frame by frame, giving you unlimited time to think in between each frame, and to form a strategy for determining the optimal path to reach the victory condition in a game.
The TAS community has evolved such advanced techniques that it’s difficult to show a newcomer any “modern” TAS videos without the experience being completely incomprehensible. A TAS playthrough of a game often looks nothing at all like a normal playthrough of the same game.
I wrote a quick guide for to introduce one of my friends to the wonderful world of TAS, and I’ve decided to polish it into a full article, which is what you’re reading now. I’m more or less presenting the videos chronologically, to show you a “history” of how TAS has evolved, because the earlier videos, using much simpler tricks, are much easier to understand than the new videos.
Here’s a pretty straightforward TAS of Super Mario Bros: NES Super Mario Bros. in 04:58:53 TAS
The first non-obvious trick is that he always hits the flag at the lowest possible point, to avoid the animation of sliding down the flag pole. Also, you might not notice it, but great care is taken not to touch the flag pole when the timer shows a multiple of 3, to avoid triggering the fireworks animation which adds a significant delay.
Then you’ll note that he somehow glitches the game and manages to walk through walls, e.g. at 0:59.
Here’s a more advanced TAS of Super Mario 64: N64 Super Mario 64 in 5:03.80
The player abuses the physics engine to be able to obtain amazing velocities, and in some cases, to break the collision detection code, and thus fly through the walls, and thus skip large sections of the game. Some of the tricks involve rapidly pausing and unpausing the game, which you can hear from the “pausing” sound effects that occasionally play right before he bursts through the air.
Around 3:30, you’ll note that he enters a level, and then immediately quits it. The trick here is that whenever you quit a level, you’re returned to the lobby of the castle, and he was in a distant section of the castle such that it’s faster to enter a level and quit to be warped to the lobby, than to actually travel to the lobby normally.
Here is a super advanced TAS: [HD] TAS: Super Mario World “glitched” in 2:36.40 by Masterjun
The game uses a finite state machine, of which the states include “title screen”, “overworld map”, “main level”, “credits”, etc. The variable which tracks the current state is at the RAM address $7E:0100. The value 1C represents the “credits” state, so the TAS basically consists of writing the value 1C into the address $7E:0100. How is this accomplished?
The game stores a pointer to the object that’s in Yoshi’s mouth, and when Yoshi spits out the object, we deference that pointer, and update its value (e.g. its position on the screen, it’s x and y velocity, etc.). So the trick is to get Yoshi’s mouth-pointer to point to just a little bit before $7E:0100, and then get the x-coordinate to be the value 1C, such that the value 1C gets written to $7E:0100.
The details beyond that are unclear to me, but you can see but the “real work” of the TAS starts around 1:26. You see Yoshi doing weird things involving eating objects. Also, it was explained to me that the reason why you see so many fishes is because they’re trying to set up the RNG (Random Number Generator) to emit a specific value, and every time a fish bounces, it consumes some bits from the RNG (e.g. to calculate in which next direction the fish should bounce). So the player generates lots of fishes so as to deterministically move the RNG to a specific point in the sequence…
AND THEN he exits via the pipe once the RNG has been properly set up, because the RNG is somehow involved in determine the pointer that gets set in Yoshi’s mouth.
Finally, at 2:40, the “spit” happens, setting the state on the state machine, and the game victory screen is shown.
This TAS is so meta-advanced, it was submitted as an april fool’s joke: (TAS) The Legend of Zelda: Twilight Princess in 00:22.65
This game is “The Legend of Zelda: Twilight Princess” for the Wii. In it, you can name your horse (by default named “Epona”) anything you like. There’s a buffer overflow bug here which allows for arbitrary code execution.
So the player names the horse in such a manner so as to encode a SNES emulator. He then enters a region where an NPC is scripted to to say the horse’s name, which triggers the arbitrary code exploit, launching the SNES emulator, which he uses to launch a different game (“Kirby’s Avalanche” in this case), which he then beats.
Thus, he beats game A by tricking it to run an emulator running game B, and then beats game B, thus declaring himself to have reached a “victory condition” in the minimal amount of time.
If you’re interested in seeing more TAS, you can just search YouTube for “[some game name] TAS”, or go to http://tasvideos.org/ or http://www.reddit.com/r/TAS/