# TASBot

TASBot es un robot que ejecuta Tool-assisted speedrun en desarrollo desde 2013 por un equipo dirigido por Allan Cecil (alias dwangoAC), usando una placa Arduino montada sobre un R.O.B. formado por piezas de LEGO. El robot toma una lista de entradas de mando, que luego son enviadas a una consola como una NES o una SNES directamente a través de señales a los puertos de mando.
TASBot es conocido por sus apariciones en eventos populares de speedrunning como Awesome Games Done Quick.

## Historia

La idea de TASBot comenzó alrededor de 2009 cuando un usuario del sitio web TASVideos creó un dispositivo que podía enviar una lista predeterminada de entradas a una NES directamente a través de sus puertos de control. En los años siguientes, diferentes personas desarrollaron dispositivos y técnicas similares para jugar automáticamente videojuegos directamente a través de su hardware. Allan Cecil, conocido por su nombre de usuario dwangoAC, desarrolló por primera vez TASBot basándose en los conceptos y guías para estos dispositivos anteriores junto con la ayuda de sus creadores. El robot ahora es desarrollado y mantenido por un equipo.
La primera versión de TASBot, que inicialmente se denominó ROBBerry Pi por el exterior del modelo ROB y las partes internas de Raspberry Pi, debutó en Awesome Games Done Quick (AGDQ) en 2014, jugando a Gradius, Mario Kart 64 y Super Mario World.
TASBot contiene una placa Arduino Duemilanove, que toma una lista predeterminada de entradas creadas en un emulador especializado que se ejecuta en Linux, las que son usadas para enviar señales directamente a los puertos del controlador de la consola. La lista de entradas se escribe y registra manualmente, y se prueba en un emulador. Las entradas del controlador deben cronometrarse con extrema precisión; algunas corridas en vivo fallaron como resultado de una ligera interferencia electromagnética de cables cruzados.

## Speedrun exhibidos

En su debut durante AGDQ en 2014, TASBot jugó a Super Mario World. Al poder inyectar código, el speedrun permitió a los espectadores jugar implementaciones de Pong y Snake dentro del juego. En AGDQ 2015, TASBot usó el mismo exploit para codificar una copia de Super Mario Bros. dentro de Super Mario World, escribiendo el juego en la memoria del SNES y luego jugarlo. También jugó Pokémon Rojo, durante el cual el chat de Twitch del evento se introdujo en el juego en tiempo real. Durante el evento AGDQ en 2016, escribió un editor de niveles tipo Super Mario Maker en un SNES en tiempo real mientras ejecutaba un juego, y luego reemplazar el juego como en eventos anteriores. En el evento de verano SGDQ del mismo año, TASBot "completó" Super Mario Bros. 3 en menos de un segundo al realizar casi 8.000 entradas por segundo.
En AGDQ 2017, después de demostrar speedrun similares de años anteriores, TASBot apareció jugando Super Mario 64 y Portal, y realizó una llamada de Skype en un SNES. Esto se logró transmitiendo video y audio a la consola después de tomar el control a través de The Legend of Zelda: A Link to the Past. El ancho de banda fue suficiente para mostrar un video de 128×112 a 10 cuadros por segundo. En SGDQ 2018, TASBot jugó Celeste.
En AGDQ 2019, el equipo de TASBot presentó MASHBot, un nuevo robot que presiona físicamente los botones del controlador, en lugar de enviar señales directamente a través del puerto del controlador. Inicialmente diseñado para funcionar con un Game Boy Advance SP, el robot debutó jugando el juego Super Scribblenauts de Nintendo DS a través de la pantalla táctil. En 2020, el equipo configuró TASBot para jugar en un Nintendo Switch. En este caso, sin embargo, el código fuente no estará disponible para evitar problemas legales con Nintendo.