Im Januar 2017 bei Awesome Games Done Quick in Herndon, Virginia, schien TASBot – der Tool-Assisted-Speedrun-Roboter – Super Mario 64 und Valves Portal auf einem unveränderten Super NES zu spielen und ging dann in einen Live-Skype-Anruf über, der durch die Konsole weitergeleitet wurde. Im Inneren der Maschine wurde nichts verändert: Alles kam über die Controller-Ports als Tastendrücke an, Tausende pro Sekunde, während rund 200.000 Menschen auf Twitch zusahen.

Die Methode war „total control“: bekannte Glitches in Spielen wie Super Mario Bros. 3 und Mega Man ausnutzen, über Pufferüberläufe in den Speicher gelangen und dann einen Loader bootstrappen, der den Controller-Eingabestream als rohe Assembly-Opcodes liest. Monate zuvor hatte der Teamorganisator Allan Cecil (dwangoAC) auf Chinas Geekpwn-Konferenz hochwertiges Audio-Streaming über den NES-Soundchip gezeigt; das Eingabegerät für das NES Classic wurde von Peter Greenwood (micro500) gebaut.

Die Demonstration behauptete nie echte Emulation – „die Antwort ist weiterhin nein“ auf die Frage, ob Portal wirklich auf einem SNES gespielt werde, schrieb Ars Technica –, aber sie machte den Punkt unmittelbar deutlich: Eine 25 Jahre alte Konsole konnte als Ausgabegerät für beliebige moderne Software dienen, wenn nur genug Tastendrücke pro Sekunde zusammenkamen.

Behandle den Controller-Port einer Konsole als Datenbus: Tastendrücke werden zu rohen Opcodes, und ein Pufferüberlauf bootstrappt einen Loader, der den Stream ausführt.

Pufferüberlauf-Glitches ermöglichten es dem Roboter, beliebigen Code allein über Controller-Eingaben in den Konsolenspeicher zu schreiben.

Bei Tausenden Eingaben pro Sekunde wurde der Controller-Port effektiv zu einem Datenbus, der Opcodes, Audio und Video transportierte.

Die Live-Aufführung bei der AGDQ machte aus einem Speedrun-Werkzeug eine öffentliche Demonstration, dass eine Konsole über ihren Game-Port neu programmiert werden kann.

Jeder Eingabekanal ist eine Programmierschnittstelle, wenn man ihn schnell genug ansprechen kann – die Neudefinition dessen, was als Eingabe gilt, erweitert eine Plattform stärker, als neue Hardware es täte.

Der Lauf ging als „Super N64“-Demo in die AGDQ-Geschichte ein. Der Total-Control-Block von TASBot, jahrelang fester Bestandteil des Marathons, hatte bereits Leistungen wie das „Besiegen“ von Super Mario Bros. 3 in unter einer Sekunde hervorgebracht.

DEN BELEGEN FOLGEN

Die Quellen

  1. How a robot got Super Mario 64 and Portal 'running' on an SNES Ars Technica · arstechnica.com ·