« Dragon Quest III/Bugs » : différence entre les versions

De Wiki Dragon Quest
Aucun résumé des modifications
Balises : apiedit visualeditor
Aucun résumé des modifications
Balises : apiedit visualeditor
Ligne 41 : Ligne 41 :
* [[Antimagie]]
* [[Antimagie]]
* [[Torpeur]]
* [[Torpeur]]
Le point négatif est que certains sorts, Premiers secours et Téléportation, ne seront pas utilisables hors combat, et que certains objets disparaîtront de l'inventaire. Les premiers sorts appris par les mages disparaîtront aussi de la liste.
La raison est due à une indexation incorrecte des valeurs des inventaires des personnages : un marqueur FF (désignant un emplacement vide) est placé par le jeu quand un personnage est créé. Un registre Y désigne le nombre de fois qu'un bit a été déplacé, et au départ, Y est fixé à 1 et quand il arrive à 8, le sous-programme de gestion d'inventaire se ferme.
 
Or, les personnages portent une armure composée de deux pièces à leur apparition, cela signifie qu'il faut sept déplacements pour que le jeu arrête la création de l'inventaire. Jusqu'à l'avant-dernier personnage, il n'y a aucun problème car le FF est déplacé sur l'adresse de l'inventaire du prochain personnage créable.
 
Mais une fois le dernier personnage créé, le marqueur FF débordera sur la zone liée aux huit premiers sorts du héros. Dans cette zone, l'apprentissage ou non des sorts est déterminé par un bit (1 pour appris, 0 pour non appris). Flamme correspond au bit 0, Premiers secours au bit 1, etc.
 
Or, FF correspond en binaire à l'octet 1111 1111, ce qui liste donc tous ces sorts comme appris.
 
Le point négatif est que certains sorts, Premiers secours et Téléportation, ne seront plus utilisables hors combat (à moins d'avoir été appris naturellement avant) : les sorts de terrain sont contrôlés à une autre adresse. Le bug écrasant également d'autres adresses, de l'or pourra être effacé, certains objets pourront disparaître de l'inventaire. Les premiers sorts appris par les mages disparaîtront aussi de la liste.


== Version GBC ==
== Version GBC ==