[Former WR] OOT Any% Speedrun en 7:34.806 !



Regardez en direct sur WR lorsqu’il est réglé le 4/7/2020. Le WR précédent était de 7:35.123 également par moi. Cette exécution utilise l’exécution de code arbitraire pour créer une mauvaise déformation des crédits dans la forêt de Kokiri. Il a été complété sur une cartouche japonaise 1.0 sur N64 avec un contrôleur N64. Je suis heureux de quitter cette catégorie pour l’instant avec ce temps. Ce n’est pas la course de dieu, mais je suis satisfait d’avoir moins de 7h35. Sous 7:30 peut certainement arriver à l’avenir sur cette route même si d’autres améliorations ne sont pas trouvées. Mais je ne suis pas prêt pour le coup pour le moment. La roupie RNG nécessaire est brutale lol. Voici une explication du fonctionnement de cette course : Tout d’abord, dans kokiri, nous collectons un sous-ensemble de rubis permanents pour effacer certaines sections de la mémoire. Nous quittons la boutique et le manque de ces roupies fait des trous de mémoire libre entre des blocs de mémoire occupés là où d’autres entités (acteurs) de la forêt existent. Ensuite, nous nous dirigeons vers les babas et faisons des allers-retours à travers le plan de chargement qui divise le village et les chambres des babas. Nous utilisons la manipulation de la caméra pour garder certaines choses chargées ou non à chaque transition de pièce, et tenons également l’épée dans un tour chargé parfois puisque cela engendre un acteur. Tout ce chargement et déchargement des salles et de ses acteurs, combiné à la disposition des trous de collection de roupies, fait qu’un rocher particulier se charge dans une adresse mémoire exacte dont nous aurons besoin. Ensuite, nous faisons Return A (problème de caméra Baba) et Walking While Talking (problème de caméra dans le vide sanitaire) tout en ramassant ce rocher spécial pour que la caméra s’envole, ce qui décharge le rocher pendant que nous le tenons. Maintenant, Link contient une référence à la mémoire libre : un pointeur vers l’endroit où se trouvait le rocher. Lorsque Link détient des éléments, il utilise ce pointeur pour copier ses propres données de position et de rotation sur l’élément qu’il détient sur chaque image. Cela fait qu’il semble le suivre. Il continue d’écrire ces données là où il pense que la roche est, mais elles sont écrites pour libérer de la mémoire maintenant puisque la roche est partie. Nous marchons jusqu’à la salle baba et retournons à la salle du village. Toutes les manipulations de mémoire que nous avons faites plus tôt étaient également prévues pour faire charger un acteur appelé wonderitem à ce moment près de la même adresse où la pierre que nous avons ramassée a été chargée précédemment. L’objet miracle est un acteur invisible qui contrôle le rubis bleu invisible sur les tremplins de l’étang près de la boutique. Link est toujours en train d’écrire ses données de position et de rotation dans la mémoire où se trouvait le rocher. Puisque l’élément de merveille est là maintenant, il écrit ces données dans certains attributs de celui-ci à la place. Les données que nous avons prévues sont l’angle de Link. Nous nous assurons d’abord de faire face à une direction exacte, puis de laisser tomber la « roche » pour verrouiller l’angle que nous voulons et mettre fin à l’état de transport. Cette valeur écrase une partie du wonderitem qui corrompt une instruction de branche pour la faire chercher ailleurs pour exécuter le code dans cette branche. La valeur que nous choisissons fait que le wonderitem exécute le code à une adresse dans l’instance d’acteur de Link, à un endroit où 4 octets de données continues sont entièrement contrôlables par le joueur. Deux des octets sont le dernier angle auquel le joueur a verrouillé la caméra, et les deux autres sont l’angle actuel du joueur. Ce n’est pas du code, mais puisque nous contrôlons cette valeur exacte de 4 octets, nous pouvons lui faire imiter le code. Nous faisons plus de configurations d’angle, puis une attaque de rotation pour définir les octets d’angle de caméra verrouillés sur une valeur particulière (nous ne pouvons pas simplement utiliser la cible Z car nous sommes toujours en mode marche tout en parlant pendant tout ce temps). Ensuite, nous faisons une autre configuration pour que le lien lui-même soit face à un angle particulier (c’est la partie juste avant de faire le dernier c-up). Il est maintenant temps d’afficher l’élément merveille à l’écran et de lui faire exécuter sa branche corrompue. Nous laissons la caméra se tourner vers l’élément merveille et au moment où il est actif, l’angle de la chute de « roche » lui fait regarder l’instance du lien. L’attaque de rotation + les valeurs d’angle actuelles font sauter l’exécution au nom du fichier. Le nom de fichier est un autre bit de données contrôlable sur 4 octets que nous avons créé pour imiter le code. Ce code s’exécute et charge un pointeur vers la valeur de la « prochaine cinématique » dans un registre. Le nom de fichier saute ensuite l’exécution vers une partie d’une fonction à l’intérieur de la pierre à potins dans kokiri. Cette fonction a été spécifiquement choisie car elle incrémente déjà la valeur stockée au pointeur dans le même registre que nous venons d’utiliser. Ainsi, la pierre à potins ajoute 1 à la valeur de la cinématique suivante. Tout ce chemin de code exécute chaque image, de sorte que la valeur de la cinématique suivante augmente de 1 sur chaque image où l’élément merveille est actif à l’écran. Étant donné que l’angle du lien fait partie du chemin du code, tout cela doit être fait en restant parfaitement immobile, sinon le jeu planterait. Nous laissons l’élément de merveille rester actif pendant exactement 9 images, en utilisant c-up pour le retirer de la caméra sur l’image appropriée (nous ne pouvons pas mettre en pause le tampon car la pause ne fonctionne pas lorsque la prochaine valeur de la cinématique existe). Ensuite, nous entrons simplement dans la maison et la prochaine valeur de la cinématique de 9 est appliquée à l’entrée de la maison des jumeaux. Cela provoque une mauvaise déformation normale et vous vous retrouvez dans la carte de la cinématique avec la cinématique 9 appliquée, qui est la scène de générique affichée. .

Source de la vidéo

Published
Categories Speedruns Zelda

Commentaires

Aucun commentaire.

Laisser un commentaire