En enero de 2017, en Awesome Games Done Quick en Herndon, Virginia, TASBot —el robot de speedrun asistido por herramientas— pareció jugar Super Mario 64 y Portal, de Valve, en una Super NES de serie, y luego pasó a una llamada de Skype en vivo retransmitida a través de la consola. No se modificó nada dentro de la máquina: todo llegaba por los puertos de controlador como pulsaciones de botones, miles por segundo, mientras unas 200.000 personas lo veían en Twitch.
El método era el «control total»: explotar glitches conocidos en juegos como Super Mario Bros. 3 y Mega Man, usar desbordamientos de búfer para acceder a la memoria y luego arrancar un cargador que lee el flujo de entrada del controlador como opcodes de ensamblador en bruto. Meses antes, el organizador del equipo Allan Cecil (dwangoAC) había mostrado la transmisión de audio de alta calidad a través del chip de sonido de la NES en la conferencia Geekpwn de China; el dispositivo de entrada NES Classic fue construido por Peter Greenwood (micro500).
La demostración nunca afirmó una emulación real —«la respuesta sigue siendo no» a jugar Portal de verdad en una SNES, escribió Ars Technica—, pero dejó el punto visceralmente claro: una consola de 25 años podía servir como dispositivo de salida para software moderno arbitrario, siempre que hubiera suficientes pulsaciones de botones por segundo.
Tratar el puerto de controlador de una consola como un bus de datos: las pulsaciones de botones se convierten en opcodes en bruto, y un desbordamiento de búfer arranca un cargador que ejecuta el flujo.
Los glitches de desbordamiento de búfer permiten al robot escribir código arbitrario en la memoria de la consola usando solo las entradas del controlador.
A miles de entradas por segundo, el puerto de controlador se convirtió efectivamente en un bus de datos que transportaba opcodes, audio y vídeo.
Presentarlo en vivo en AGDQ convirtió una herramienta de speedrun en una demostración pública de que una consola puede reprogramarse a través de su puerto de juegos.
Cualquier canal de entrada es una interfaz de programación si se puede alcanzar la velocidad suficiente: redefinir qué cuenta como entrada amplía una plataforma más de lo que lo haría un hardware nuevo.
La partida pasó a la historia de AGDQ como la demostración «Super N64». El bloque de control total de TASBot, un habitual del maratón durante años, ya había producido hazañas como «pasarse» Super Mario Bros. 3 en menos de un segundo.
CONSULTA LAS PRUEBAS
Las fuentes
- How a robot got Super Mario 64 and Portal 'running' on an SNES Ars Technica · arstechnica.com ·