Peu de temps après la mise en ligne de notre guide des jeux d’été Done Quick 2022, l’événement a accueilli une démonstration étonnante d’un jeu vidéo classique, qui a depuis envahi les réponses de cet article d’Ars. Si nous voulons couper les cheveux en quatre, cela passe par le classique N64 de 1998 Légende de Zelda : Ocarina of Time n’est pas un « speedrun », mais c’est un autre exemple du concept « TASBot » qui transforme les jeux d’une manière dont nous n’aurions jamais rêvé il y a 24 ans.
L’équipe de fans et de programmeurs responsables de la démonstration « Triforce-percent » de cette semaine a depuis révélé comment ils ont réussi l’exploit avec rien de plus qu’un stock N64 et un original Ocarina cartouche de vente au détail – bien que le secret implique des entrées de contrôleur si rapides et précises qu’elles ne peuvent être effectuées que par un ordinateur.
Rien de périmé dans cette course
La démonstration de 53 minutes (intégrée à la fin de cet article) s’ouvre sur un exploit précédemment découvert fin 2019, que la communauté a surnommé « Stale Reference Manipulation ». Cet exploit tire parti d’une vulnérabilité de la version 1.0 originale du jeu, qui permettait aux joueurs de manipuler des valeurs numériques attribuées à des objets spécifiques dans la mémoire du jeu. L’explication la plus simple de cette technique compliquée peut être trouvée dans une vidéo YouTube du début de 2020 (intégrée ci-dessus), car elle énonce les différentes valeurs numériques attribuées à chaque objet du jeu, telles que leur X-, Y- et Z- axes et leur rotation.
Les joueurs avertis peuvent faire en sorte que les valeurs se chevauchent ou submergent le code original du jeu afin qu’elles puissent être manipulées comme bon leur semble. La technique que nous voyons dans la course de cette semaine nécessite que Link ramasse un rocher en traversant une « zone de chargement », un couloir utilisé pour masquer les pauses de chargement sur le matériel N64, et de le faire d’une manière que le jeu n’a pas été conçu pour gérer .
Au départ, cet exploit était un outil de speedrun, car il pouvait inciter le jeu à charger la séquence de crédits finale et techniquement compter comme un « achèvement » en quelques minutes seulement. Mais la course Triforce-pourcent va beaucoup plus loin.
Ramming nouveau contenu dans un jeu classique
En ramassant et en déposant des objets spécifiques, puis en faisant bouger le héros du jeu Link et en effectuant des manœuvres dans un ordre spécifique, l’équipe TASBot ouvre une boîte de Pandore de ce qu’on appelle l’exécution de code arbitraire, le type de vulnérabilité utilisée par les pirates du monde entier pour faire en sorte qu’un système informatique fermé exécute le code qu’il souhaite. De plus, la chaîne de mouvements et de commandes TASBot commence à dire au N64 d’accepter l’entrée des boutons des quatre contrôleurs N64 comme s’il s’agissait d’un code.
À ce stade, un ordinateur prend en charge les quatre ports du contrôleur N64 et envoie une série rapide de pressions sur les boutons, comme s’il s’agissait d’un super-héros à plusieurs milliards de doigts équivalent à The Flash. Le glitch-out Ocarina cartouche a demandé au N64 d’accepter chaque appui sur un bouton d’une manière qui correspond à des chaînes de code spécifiques. Une fois qu’une quantité suffisante de cette charge utile a été envoyée, l’équipe peut redonner le contrôle normal au port « joueur un », afin qu’une personne réelle puisse jouer à travers une toute nouvelle séquence de contenu, le tout étant déversé dans la mémoire à accès aléatoire du N64 (RAM ) par l’entrée incroyablement rapide des trois autres contrôleurs.
Ces correctifs à la volée peuvent faire de nombreuses choses incroyables qui, combinées, ressemblent à un correctif entièrement soufflé de la mémoire morte (ROM) d’une cartouche, bien que l’équipe TASBot se limite aux changements qui s’appliquent spécifiquement à la RAM de la console : petits changements au code existant, aux remplacements totaux de fichiers ou aux commandes pour indiquer au jeu d’ignorer le contenu qu’il chargerait normalement à partir de la ROM. En conséquence, cet exploit peut se bloquer ou planter si les joueurs sortent du chemin attendu pour lequel cet exploit est optimisé.