In 2003 a video of Super Mario Bros. 3 finished in 11 minutes 4 seconds went round the internet. Along the way Mario collected 99 lives and kept getting into situations that looked impossible to escape. Many people who saw it took it for a real performance. It was not. A player known as Morimoto had made it on an emulator, one frame at a time, and later said it took him two years. “Just from viewing the video, there was no way to know that the player was relying on the careful use of save states and glitches,” Retro Gamer wrote. Runs made this way are called tool-assisted speedruns, or TAS. They are published openly as what they are. Edge called them “the theoretical side of speedrunning: probing for limits beyond the human rather than accepting corporeal limitations.”
Fast facts
- What it is: a run built in an emulator with save states, frame advance and input recording, and published as a file of inputs or a video of it.
- Where the name began: Doom players, whose site “Tools-Assisted Speedruns” opened in June 1999.
- The run that made it famous: Morimoto’s Super Mario Bros. 3, 2003, 11 minutes 4 seconds.
- Its home: NESvideos, later TASVideos, founded by Joel “Bisqwit” Yliluoma.
- Kept apart: archives of real-time runs, such as the Speed Demos Archive, do not accept tool-assisted runs.
How a run is made
Started from the same state, an emulated game does the same thing every time it receives the same inputs on the same frames. So a run can be stored as nothing more than a list of inputs, and played back to reproduce it exactly. The author plays a few frames, saves the emulator’s whole state, tries a jump, and if it goes wrong loads the state and tries again. Doing this is called rerecording. Frame advance stops the game after every frame, a sixtieth of a second on an NTSC NES, so each button press can be placed exactly.
The tools were added to emulators by their users. The rerecording version of the NES emulator FCE Ultra, by a programmer called blip, added movie recording “for the purpose of creating Tool-Assisted Speedruns”. Its descendant FCEUX saves a run as an FM2 file. After a header naming the ROM and its MD5 checksum, each line holds one frame’s buttons for each controller, eight characters in the order “RLDUTSBA (Right,Left,Down,Up,sTart,Select,B,A)”, and the header can store a count of how many times the author rerecorded. Mega Drive authors used Gens Re-Recording, which added “slowdown, recording and playback of controller input logs, dumping of AVI files, and Lua scripting” to the Gens emulator. Game Boy Advance authors had a rerecording build of VisualBoyAdvance. Later the multi-system BizHawk was written specifically for the purpose. Memory watches and Lua scripts let an author follow values such as a character’s speed while working.
Because all of this depends on emulation, Edge noted in 2007 that a TAS was always made on an older system such as the NES or the Mega Drive. Real-time runners could use the newest consoles; tool-assisted ones could not.
From Doom demos to Mario
Doom could record a play session as a demo file, which made it, in Edge’s words, “a major forerunner” of speedrunning in general. After id Software released Doom’s source code in December 1997, Andy “Aurican” Kempling modified it to record demos in slow motion and in several sessions. In June 1999 three players, Esko Koskimaa, Peo Sjöblom and Yonatan Donner, opened a site to share the results and called it “Tools-Assisted Speedruns”. Donner was already known in Quake speedrunning: Edge records that a run of his led to Quake Done Quick.
Emulators took the idea to console games, and Morimoto’s Super Mario Bros. 3 took it to everyone else. Edge notes that his run was not the first of its kind and came with a disclaimer, yet “it was initially assumed to be genuine by non-speedrunners”, which caused “considerable friction” between the two communities. Retro Gamer, writing about speedruns in 2004, still filed it under faked runs: “It was produced as a demonstration, but ended up being widely circulated on the Internet.” Morimoto had also assembled it from several sessions, and the magazine worried that emulator footage “can be manipulated in any number of ways and still appear to be legitimate”.
NESvideos and TASVideos
Joel Yliluoma’s site, which began as NESvideos and became TASVideos, answered that worry by labelling everything. Retro Gamer described his early pages as “time attacks”, “videos made to show off the full capabilities of what someone using an emulator can do while playing a game”, meant to be watched in the emulator itself. By 2007 every published run came with an explanation and a list of what it did: “takes damage to save time”, “abuses programming errors”, “aims for fastest time”, “all levels and secrets”, “manipulates luck”. Edge counted TASVideos among the four main hubs of speedrunning, alongside the Speed Demos Archive, Metroid 2002 and Twin Galaxies. The Speed Demos Archive kept the two apart by refusing “tool-assisted runs, or use of homebrew emulators”. One of its administrators, Ali Campbell, put the distinction bluntly: “A speedrun is a speedrun. A TAS is a TAS.”
Campbell also saw the opposite problem. Once TAS videos were widely known, “any impressive video of an emulable game is now automatically assumed to be fake, even if it isn’t”. Edge gave the example of Andrew Gardikis’s five-minute Super Mario Bros., a real-time run that “half the internet” wrongly believed had been cheated.
What the runs found
Mega Man, Edge wrote, was the TAS equivalent of Metroid for real-time runners: an NES game “riddled with bugs and glitches that allow skipping through walls, up ladders and down holes faster than should be possible”, with a choice of stage order that rewards planning. Yliluoma’s runs of it were refined over several years. One trick had been rejected because it killed Mega Man, until late in 2006 the same authors saw that dying at one point would pay off later, and cut ten seconds from the record. Yliluoma also wrote a program, BisqBot, that tried every possible input to find the quickest route through short sections. TASVideos hosted a hack that played Mega Man 3 to 6 at once on a four-way split screen from a single set of inputs, which showed both a trick and how closely Capcom had reused the games’ structure. Other showpieces included a Super Mario 64 finished in about 15 minutes with only 16 stars.
Some runs reach into a game’s code. NES programs often read the controller twice and read it again if the two results differ, to guard against interference from the sound hardware. The NESdev wiki’s guide to controller reading notes that with tools “a malicious controller input could change the buttons on every read, holding it in this reread loop indefinitely”, and cites a Super Mario Bros. 3 TAS as the first to abuse that routine.
The tools kept changing the work. FCEUX’s TAS Editor, released in 2012, was described by its own documentation as taking “movie making from a ‘recording’ concept to a ‘creating an input file’ way of thinking”: instead of playing and rerecording, the author edits the list of inputs directly.
Sources
- “Speed Freaks”, Edge issue 179, September 2007, pp. 79–83: regular and tool-assisted speedrunning; Doom demos and Quake Done Quick; the four hubs; the Speed Demos Archive’s rules; Morimoto’s Super Mario Bros. 3 (11m 4s, 99 lives, the disclaimer, two years’ work); NESvideos’ labels; Joel Yliluoma, BisqBot and the Mega Man runs; Super Mario 64 with 16 stars; TAS limited to emulable systems; Ali Campbell and Andrew Gardikis; “the theoretical side of speedrunning”.
- “Superplay”, Retro Gamer issue 11, 2004, pp. 48–49: emulators and the authenticity of speed runs; the 11-minute Super Mario Bros. 3 video, save states and several sessions; Bisqwit’s site of “time attacks”.
- Wikipedia, “Tool-assisted speedrun”, History (accessed October 2026) (web, secondary): Andy Kempling’s modified Doom source and the “Tools-Assisted Speedruns” site of June 1999; NESvideos renamed TASVideos. https://en.wikipedia.org/wiki/Tool-assisted_speedrun
- Fabien Sanglard, Game Engine Black Book: DOOM (2018), section 5.1: the Doom source code released on 23 December 1997.
- FCEUX website, “Version History” (web): the FCE Ultra rerecording version by blip; FCEUX 2.2.0 on 27 November 2012. https://fceux.com/web/version.html
- FCEUX documentation, “TAS Editor” (web): from a “recording” concept to “creating an input file”. https://fceux.com/web/help/TASEditor.html
- FCEUX source code,
documentation/fm2.txt(web): the FM2 header,rerecordCountand the per-frame input lines. https://github.com/TASEmulators/fceux - Sega Retro, “Gens Re-Recording”, “VisualBoyAdvance” and “BizHawk” (web, secondary): the re-recording emulators and what they added. https://segaretro.org/Gens_Re-Recording
- NESdev Wiki, “Controller reading code” (web, secondary): the repeated-read routine and its abuse by a Super Mario Bros. 3 TAS. https://www.nesdev.org/wiki/Controller_reading_code