En janvier 2017, à l'Awesome Games Done Quick de Herndon, en Virginie, TASBot — le robot de speedrun assisté par outil — a semblé jouer à Super Mario 64 et à Portal de Valve sur une Super NES d'origine, avant d'enchaîner sur un appel Skype en direct relayé par la console. Rien n'avait été modifié à l'intérieur de la machine : tout arrivait par les ports manettes sous forme d'appuis sur des boutons, des milliers par seconde, tandis qu'environ 200 000 personnes regardaient sur Twitch.

La méthode était le « contrôle total » : exploiter des glitches connus dans des jeux comme Super Mario Bros. 3 et Mega Man, utiliser des débordements de tampon pour accéder à la mémoire, puis amorcer un chargeur qui lit le flux d'entrées manettes comme des opcodes d'assembleur bruts. Quelques mois plus tôt, l'organisateur de l'équipe Allan Cecil (dwangoAC) avait montré une diffusion audio de haute qualité via la puce sonore de la NES à la conférence Geekpwn en Chine ; le périphérique d'entrée NES Classic avait été construit par Peter Greenwood (micro500).

La démonstration n'a jamais prétendu à une véritable émulation — « la réponse reste non » quant à jouer réellement à Portal sur une SNES, écrivait Ars Technica — mais elle faisait passer le message de façon viscérale : une console vieille de 25 ans pouvait servir de périphérique de sortie pour un logiciel moderne arbitraire, à condition de disposer d'assez d'appuis de boutons par seconde.

Traiter le port manette d'une console comme un bus de données : les appuis de boutons deviennent des opcodes bruts, et un débordement de tampon amorce un chargeur qui exécute le flux.

Les glitches de débordement de tampon ont permis au robot d'écrire du code arbitraire dans la mémoire de la console en utilisant uniquement les entrées manettes.

À raison de milliers d'entrées par seconde, le port manette est effectivement devenu un bus de données transportant des opcodes, de l'audio et de la vidéo.

Le présenter en direct à l'AGDQ a transformé un outil de speedrun en démonstration publique qu'une console peut être reprogrammée via son port de jeu.

Tout canal d'entrée est une interface de programmation si l'on peut l'atteindre assez vite — redéfinir ce qui compte comme entrée élargit une plateforme plus que ne le ferait du nouveau matériel.

La run est entrée dans la légende de l'AGDQ comme la démo « Super N64 ». Le bloc de contrôle total de TASBot, rendez-vous incontournable du marathon pendant des années, avait déjà produit des exploits comme « battre » Super Mario Bros. 3 en moins d'une seconde.

VÉRIFIEZ LES SOURCES

Les sources

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