# TASBot

TASBot is a tool-assisted speedrun mascot created in 2013, developed by a team led by dwangoAC. A replay device takes a list of controller inputs which it then sends to a console such as a Nintendo Entertainment System or Super Nintendo Entertainment System (SNES) directly via signals to the controller ports.
TASBot is known for its appearances at popular speedrunning events such as Games Done Quick.

## History

The idea for TASBot began around 2009 when a user of the tool-assisted speedrun website TASVideos created a device which could send a predetermined list of inputs to a Nintendo Entertainment System directly via its controller ports. Over the next few years a number of different people developed similar devices and techniques to automatically play video game console games directly through their hardware. dwangoAC first developed TASBot by building on the concepts and guides for these earlier devices along with assistance from their creators. The robot is now developed and maintained by a team.
The first version of TASBot – which was initially named ROBBerry Pi for the R.O.B. model exterior and Raspberry Pi internals – debuted at Awesome Games Done Quick (AGDQ) in 2014, playing Gradius, Mario Kart 64, and Super Mario World.
TASBot contains a "replay board", which takes a predetermined list of inputs from a Linux machine and uses them to send signals directly to a console's controller ports. The list of inputs is written and recorded manually, tested on an emulator. Controller inputs need to be timed extremely accurately; some live runs failed as a result of slight electromagnetic interference from crossed wires.

## Speedruns

At its debut during AGDQ in 2014, TASBot played Super Mario World. By leveraging an arbitrary code execution glitch, the run allowed players to play Pong and Snake inside the game. At AGDQ 2015, TASBot used the same exploit to code a copy of Super Mario Bros. into Super Mario World, writing the game to the SNES and then playing it. It also played Pokémon Red, during which the event's Twitch chat was fed into the game in realtime. During the AGDQ event in 2016, it wrote a Super Mario Maker level editor onto an SNES in realtime while it was running a game, an improvement over stopping and then replacing the game as in previous events. At the summer SGDQ event of the same year, TASBot "completed" Super Mario Bros. 3 in less than one second by performing almost 8,000 inputs per second.
At AGDQ 2017, after demonstrating similar runs from previous years, TASBot appeared to play Super Mario 64 and Portal, and make a Skype call on a SNES. This was achieved by streaming video and audio to the console after taking control of it via The Legend of Zelda: A Link to the Past. The bandwidth was sufficient to display a 128×112 video at 10 frames per second. At SGDQ 2018, TASBot ran Celeste, and at AGDQ 2019 it ran Mari0, using glitches with the portal gun to fling itself across levels and skip others entirely.
At AGDQ 2019, the TASBot team showcased MASHBot, a new robot which physically presses controller buttons, rather than directly sending signals via the controller port. Initially designed to work with a Game Boy Advance SP, the robot debuted by playing Nintendo DS game Super Scribblenauts via the touchscreen. In 2020 the team set up TASBot to play on a Nintendo Switch. In this case, however, the source code will not be made available, to avoid legal issues with Nintendo.
TASBot made an appearance for the "OoT Triforce Percent" run demonstrated at the 2022 Games Done Quick. This was a run of the game The Legend of Zelda: Ocarina of Time on the Nintendo 64 heavily relying on an arbitrary code execution (ACE) exploit in the game set up by Ocarina of Time speed-runner Savestate. The run demonstrated an ACE that enabled data to be transferred via the Nintendo 64's controller ports to access beta content and add new content both based on pre-launch articles and urban legends and on The Legend of Zelda: Breath of the Wild, ending with messages displayed from the Twitch chat.