Je le couperai au montage

- Mortal, qui ne le fera pas

Dojobar
L'émission de radio déjantée qui revient toutes les deux semaines !


Émission s20e05 − Sparks of Bayonetta 3
Le 11 novembre 2022, par Mortal



Émission s20e02 − NDirect + Splatoon 3 !
Le 4 octobre 2022, par Mortal


Dojodirect
Des jeux de merde joués par des connards en direct !




Darksiders (WiiU) − One last ride…
Le 30 octobre 2017, par Mortal

Mario Kart 8 Deluxe − Piste, piste, rage !
Le 26 octobre 2017, par Mortal


L’histoirique du speed-run de The Legend of Zelda: Ocarina of Time (partie 4)

Où l’on va jouer avec des bits

La grande question devait être posée : est-il possible de faire moins d’une heure et si oui comment ?

Descendre à un peu plus d’une heure est déjà est bel exploit, mais on abandonne pas le retournement complet d’un jeu comme ça… Et pour ça, il a fallu exploiter deux bogues amusants et dont personne ne voyait l’utilité jusqu’à présent.

Voilà ce qui se passe quand on joue avec des bits

Le Reverse Bottle Adventure est une technique de manipulation de mémoire, liée à un bogue, dont le nom provient d’un autre bogue (Bottle Adventure qui permet de récupérer une bouteille à partir de n’importe quel objet). Et pour comprendre ces bogues, il va faloir comprendre comment fonctionne la gestion de la mémoire sur un ordinateur ou une console.

Une console ou un ordinateur ne « comprend » pas ce qui est manipulé. Elle ne manipule que des chiffres qui sont stockés en mémoire sous forme binaire (des 0 ou des 1), des bits, regroupés par paquets de 8, des octets.

Chaque octet de la mémoire de la console a une adresse que l’on exprime en général en hexadécimal (donc avec des chiffres allant de 0 à 9, puis des lettres allant de A à F). On peut donc donner par exemple la valeur 0x00 (donc 0 en décimal) à l’adresse 8011A644 ou encore la valeur 0x1B (27 en décimal) à l’adresse 80117652.

Maintenant, il faut bien comprendre que du point de vue de la console, tout dans le menu Item (équipable sur les boutons C) n’est rien d’autre que des valeurs qui se trouvent à certaines adresses dans la mémoire. Ces valeurs vont de 0x00, 0 en décimal, qui correspond au bâton mojo, à 0xff, 255 en décimal, qui est l’absence d’objet (oui, même ça, c’est une valeur !). À noter que TOUS les autres objets ont une valeur également, même ceux qui n’apparaissent pas dans l’inventaire ou qui peuvent « changer de forme » (!). Par exemple l’Ocarina des fées et l’Ocarina du temps (qui sont au même emplacement dans l’inventaire) sont deux objets différents avec une valeur différente (respectivement 0x07 et 0x08). L’objet le plus intéressant restant la bouteille : ce n’est pas un objet (fée) dans un autre (bouteille), mais bien une collection d’objets, et donc de valeurs. La bouteille vide est 0x14 (20), la potion rouge 0x15 (21), la bouteille de lait à moitié vide 0x1f (31), etc.

Un bon aventurier, c’est avant tout un bon équipement

L’inventaire en lui-même est une série d’adresses consécutives en mémoire, qui commence par 8011A644, l’adresse du premier élément équipable du jeu. Cette partie de l’inventaire contient 24 emplacements, il y a donc 24 adresses, une pour chaque emplacement, dans lequel on vient placer une valeur correspondant à un objet. Au tout début de l’aventure, cette partie de l’inventaire est vide, les 24 adresses sont donc remplies avec des 0xff (soit que des 1 binaire). Le schéma ci-dessous permet de ce rendre compte de l’emplacement et de la valeur des cases mémoire pour une partie assez avancée :

C

La quantité de munitions de chaque item de cet écran (oui chaque même l’Ocarina a des munitions, mais je te rassure, ça ne s’affiche pas à l’écran et ça ne change rien si l’on met une valeur) est géré dans les 16 adresses suivantes de la mémoire (c’est un vulgaire nombre en l’occurence) :

C

Et pour les autres équipements (tuniques, boucliers, épées, mélodies, médaillons, etc) ? Comme ils ne peuvent pas changer pendant l’aventure (contrairement aux bouteilles par exemple), ils sont groupés dans des octets, pour des questions d’optimisation, et sont simplement visibles et sélectionnables si la valeur binaire dans l’octet en question est à 1. Par exemple, l’octet 8011A66C contient une partie du menu : si la valeur est à 0x03 en hexadécimal, donc 0000 0011 en binaire, alors l’inventaire affiche la tunique Kokiri (le 1 tout à droite) et la tunique Goron (l’autre 1). L’image suivante vous montre la cartographie de chaque page du menu pause :

C

C

Dans le prochain numéro, nous verrons comment fonctionnent les boutons B et C sur l’écran principal, ce qui permettra d’expliquer en détails le Reverse Bottle Adventure.


Par Mortal
Le 17 septembre 2012 | Catégories : Editos

En tout cas, moi, si j'étais une fille, je serais facile.
Voir les articles de Mortal

A voir également
Les trucs qu'on a rédigés avec nos petits doigts potelés


Dojo Hebdo 504 : du 21 au 27 novembre 2022
Le 27 novembre 2022, par Gueseuch

Dojo Hebdo 503 : du 14 au 20 novembre 2022
Le 20 novembre 2022, par Gueseuch

Dojo Hebdo 502 : du 7 au 13 novembre 2022
Le 13 novembre 2022, par Gueseuch


Dojo Hebdo 500 : du 24 au 30 octobre 2022
Le 30 octobre 2022, par Gueseuch

Dojo Hebdo 499 : du 17 au 23 octobre 2022
Le 23 octobre 2022, par Gueseuch

Dojo Hebdo 498 : du 10 au 16 octobre
Le 16 octobre 2022, par Gueseuch

Dojo Hebdo 497 : du 3 au 9 octobre 2022
Le 9 octobre 2022, par Gueseuch

Vite vu : Severed Steel (NS)
Le 3 octobre 2022, par Mortal


Dojobar
L'émission de radio déjantée qui revient toutes les deux semaines !


Émission s20e05 − Sparks of Bayonetta 3
Le 11 novembre 2022, par Mortal



Émission s20e02 − NDirect + Splatoon 3 !
Le 4 octobre 2022, par Mortal


Dojodirect
Des jeux de merde joués par des connards en direct !




Darksiders (WiiU) − One last ride…
Le 30 octobre 2017, par Mortal

Mario Kart 8 Deluxe − Piste, piste, rage !
Le 26 octobre 2017, par Mortal