Glitch de fuite du combat contre Ganon

Revision as of 09:54, 25 June 2022 by Echocolat (talk | contribs) (Created page with "C'est aussi bancal que ça en a l'air, et sans surprise a mené le glitch de spawn de la 1.2.0, ce qui leur a donc demandé de faire un autre patch dans la 1.3.0.")
Other languages:

L'Escape Ganon glitch est un glitch qui permet à Link de garder l'Arc de lumière, mais qui laisse le jeu dans un état étrange avec de nombreux effets secondaires bizarres. Pour rendre les choses encore plus déroutantes, les effets exacts diffèrent suivant la version du jeu.

Cet article documente les effets du glitch et essaie d'expliquer quelques uns des effets secondaires.

Effets

Restrictions sur la sauvegarde, la téléportation, passer le temps et l'entrée des sanctuaires

C'est bien connu qu'il est impossible de sauvegarde ou se téléporter lorsque l'on combat Ganon le Fléau ou Ganon, Créature Maléfique. Cependant, cet état ne persiste pas à travers les chargements de sauvegarde normalement. Alors pourquoi sauvegarder ou se téléporter est impossible même après avoir chargé une autre sauvegarde ?

C'est parce que le flag LastBossGanonBeastGenerateFlag, qui est initialisé juste avant que Link soit téléporté dans la Plaine d'Hyrule pour affronter Ganon, Créature Maléfique. Il est utilisé pour faire apparaître Ganon, Créature Maléfique, comme le nom l'indique; cependant un effet secondaire est qu'à chaque fois qu'une sauvegarde avec ce flag d'activé est chargé, le jeu initialise automatiquement les flags SaveProhibition, WarpProhibition, KillTimeProhibition et EnterDungeonProhibition. Ces flags font exactement ce que dit leur nom: bloquer la sauvegarde, la téléportation, empêcher de passer le temps et d'entrer dans les sanctuaires.

Il est possible de se débarrasser de ces restrictions en commençant n'importe quel évènement qui finit par appeler l'évènement Common<EnableSaveAndWarp> (ou active ces flags manuellement). C'est parce que ces flags sont utilisés durant tout le jeu pour empêcher de se téléporter, sauvegarder, etc. Généralement, les joueurs utilisent le mini-jeu de pari dans le village d'Écaraille pour réactiver les sauvegardes, auto-sauvegardes, téléportations, feux de camp, terminaux de sanctuaire.

Animations étranges juste après un temps de chargement

Demo025_0 (qui est jouée chaque fois que Link est spawné dans Hyrule) vérifie le flag IsPlayed_Demo146_0. Si il est actif, l'action du joueur Demo_AccelerateHorse est appelée. Ce qui explique pourquoi Link fait une drôle d'animation au moment où le joueur charge une sauvegarde qui a été faite après avoir fui le combat contre Ganon.

Lunes de sang

Comme c'est expliqué dans les articles sur le système de Temps et WorldMgr, LastBossGanonBeastGenerateFlag empêche la cinématique de la Lune de sang d'être déclenchée à minuit. Cependant, le timer de la Lune de sang avance toujours et les Lunes de sang sont prévues comme d'habitude, ce qui explique pourquoi des particules de rancoeur apparaissent toujours avant de disparaître d'un seul coup.

Malheureusement, rien ne désactive le flag LastBossGanonBeastGenerateFlag donc il n'est pas possible d'obtenir des Lunes de sang de façon naturelle. La seule façon d'obtenir une Lune de sang est d'avancer le temps manuellement en dormant ou attendant auprès d'un feu de camp, comme aucun des flags empêchant la Lune de sang sont vérifiés quand le joueur exécute ces actions. Sûrement un oubli.

Ennemis, sanctuaires, PNJ, etc. manquants

C'est l'effet le plus flagrant. Après avoir fait le glitch, les sanctuaires, la plupart des PNJ et ennemis, et les tours, ne spawnent plus qu'en partie voire pas du tout.

Ceci est expliqué par une faille dans le code de Placement. La logique de spawn exacte est telle qu'elle suit:

Si:

  • [1.0.0-1.2.0] FirstInHyruleCastleBossRoom est activé
  • [1.3.0+] FirstInHyruleCastleBossRoom ou IsPlayed_Demo145_0 est activé.

et si un objet de la carte:

  • n'est pas Enemy_GanonBeast et son nom de profil[1] est Enemy, GelEnemy, SandWorm (sic), Prey, Dragon ou Guardian, ou contient NPC (NPC, DemoNPC...)
  • ou est exactement appelé Enemy_Guardian_A
  • ou a Entrance ou WarpPoint ou Terminal dans son nom de configuration d'unité

alors il n'apparaît pas.

De plus, si cet objet apparaît à un groupe de placement (autrement dit, si il est lié à d'autres objets de la carte dans la map unit), ce groupe entier n'apparaît pas.

Explication

Ceci explique pourquoi les PNJ, la plupart des ennemis et des sanctuaires n'apparaissent pas après s'être échappé du combat -- ils sont spécifiquement exclus.

C'est aussi pour ça que les tours ont l'air bizarres -- elles sont toujours liées à FldObj_DownloadTerminal_A_01 (Terminal de téléchargement de la carte Sheikah) et DgnObj_WarpPoint_A_01 (le cercle sur lequel Link apparaît quand il se téléporte), donc la majorité des objets de carte qui constituent une Tour Sheikah n'apparaissent donc pas non plus. C'est un effet secondaire de la supression des sanctuaires.

De façon similaire, l'intérieur des sanctuaires est invisible parce que le modèle du sanctuaire entier est un unique objet lié au moine Sheikah du sanctuaire, qui est un PNJ.

De plus, ceci évèle pourquoi le Pont Suspendu de Digdo est invisible après avoir déclenché la cinématique du boss final: les objets de carte sont appelés FldObj_RockBridgeGerudoEntrance_A_01, et à cause l'énorme liste noire de Nintendo concernant les noms d'objets, les ponts sont finissent pas ne pas pouvoir apparaître.

D'ailleurs, la seule et unique raison pour laquelle les Moldarquors apparaissent est parce qu'un développeur a fait une faute de frappe. Le profil des Moldarquors est censé être Sandworm, pas SandWorm!

Le patch cassé de Nintendo

FirstInHyruleCastleBossRoom est activé quand le joueur déclence la cinématique du boss final dans les Quartiers Principaux. D'un autre côté, Is_Played_Demo145_0 est activé après la mort de Ganon, le Fléau.

Alors pourquoi la version 1.3.0 vérifie IsPlayed_Demo145_0 en plus de FirstInHyruleCastleBossRoom?

C'est parce que Nintendo a changé la façon dont sont gérées les données de sauvegarde dans la 1.2.0, en essayant de corriger un glitch similaire: Depuis la 1.2.0, le flag FirstInHyruleCastleBoosRoom n'est plus chargé depuis ou écrit dans les fichiers de sauvegarde. Ainsi, pour s'assurer que FirstInHyruleCastleBossRoom a toujours la bonne valeur, Nintendo doit maintenant se reposer sur un flag de fin de jeu différent, et a choisi IsPlayed_Demo145_0.

Les fins lecteurs auront remarqué que la 1.2.0 est la version dans laquelle charger une sauvegarde fait réapparaître les PNJ, sanctuaires et autres acteurs exclus. C'est tout simplement parce qu'un chargement de sauvegarde en 1.2.0 et au dessus réinitialise FirstInHyruleCastleBossRoom à sa valeur par défaut (faux), donc en 1.2.0 la logique de spawn n'est pas utilisée.

La 1.3.0 est la première version dans laquelle cette astuce ne fonctionne plus parce que IsPlayed_Demo145_0 est toujours sauvegardé et chargé comme il faut. Mode expert, épreuves de l'épée, mourir, tuer Ganon, etc. n'ont aucun effet. La seule façon de se sortir de cet état est de réinitialiser le flag, et malheureusement il n'y a rien que le joueur peut faire pour réinitialiser les flags IsPlayed.

Modules (amiibo, Destrier de Légende 0.1)

Comme d'autres parties du jeu, les modules amiibo et Destrier de Légende 0.1 utilisent les flags IsPlayed_Demo pour décider si l'utilisation de ces modules devrait être restreinte. Commençons donc par une liste des cinématiques Demo impactantes et leur description (traduites + la description interne officielle en japonais de Nintendo):

  • Demo141_0: Citadelle du château d'Hyrule - L'ombre de vent de Ganon apparaît ハイラル城本丸・カースガノン(風)登場
  • Demo141_1: Citadelle du château d'Hyrule - L'ombre de feu de Ganon apparaît ハイラル城本丸・カースガノン(火)登場
  • Demo141_2: Citadelle du château d'Hyrule - L'ombre de foudre de Ganon apparaît ハイラル城本丸・カースガノン(雷)登場
  • Demo141_3: Citadelle du château d'Hyrule - L'ombre d'eau de Ganon apparaît ハイラル城本丸・カースガノン(水)登場
  • Demo142_0: Citadelle du château d'Hyrule - La forme incomplète de Ganon apparaît ハイラル城本丸・不完全体ガノン登場
  • Demo143_4: Citadelle du château d'Hyrule - Le tir de la Créature Divine ハイラル城本丸・神獣ビーム着弾
  • Demo145_0: Citadelle du château d'Hyrule - La forme incomplète de Ganon meurt ハイラル城本丸・不完全体ガノン死亡
  • Demo146_0: Plaine d'Hyrule - Ganon Créature maléfique apparaît ハイラル平原・魔獣ガノン登場

Pour le module amiibo, si Demo146_0, Demo141_{0,1,2,3} ou Demo142_0 ont été jouées, le joueur ne peut pas utiliser d'amiibo.

Les vérifications pour le Destrier de Légende 0.1 sont légèrement différentes (et c'est évident qu'ils ont copié-collé le code de l'amiibo...):

  • Si Demo146_0 a été jouée, le joueur est explicitement autorisé à utiliser la moto.
  • Si Demo141_{0,1,2,3} ou Demo142_0 ont été jouées, il ne peut pas utiliser la moto.
  • Sinon, Link peut utiliser la moto si il n'est pas dans la carte principale (MainField). Donc il peut la faire apparaître dans les épreuves de l'épée après avoir fui le combat contre Ganon.

Quêtes EX

Si Demo146_0 a été jouée, les quêtes EX épreuves de l'épée et l'ode aux Prodiges ne commenceront pas. Nintendo vérifie explicitement le flag dans les deux cas.

Arc de Lumière et épée de Légende

LastBossGanonBeastGenerateFlag contrôle aussi le spawn statique de l'arc de lumière. De plus, l'épée de Légende sera toujours dans sa forme améliorée ("forme véritable") tant que le flag est actif.

Lasers de Créature Divine et anciens piliers

IsPlayed_Demo145_0 d'activé active également "Mode boss final" dans le code. Le seul effet visible est que les lasers des créatures divines sont désactivés.

IsPlayed_Demo147_0 (cinématique de scellement de Ganon) fait disparaître la rancoeur et font que les anciens piliers autour du Château d'Hyrule brillent en bleu.

Téléportation instantanée au Fléau

De façon similaire à LastBossGanonBeastGenerateFlag, LastBossIncompleteGanonGenerateFlag est activé juste avant d'entrer dans le combat contre Ganon, le Fléau, pour le faire apparaître et disparaître dès qu'il est vaincu.

Ce flag a un étrange effet secondaire. Toutes les frames, si le flag est activé, et si la coordonnée Y (la hauteur) de Link est inférieure à 170.0, Link est téléporté à (-254.0, 191.0, -1026.0).

L'exploit du mini-jeu "Opération Homme-Oiseau"

Le mini-jeu "Opération Homme-Oiseau" peut aussi être utilisé pour s'échapper de Ganon. Cet exploit est la raison pour laquelle garder l'Arc de lumière et toujours être capable de jouer au jeu normalement était possible en 1.2.0.

La façon dont cela fonctionne est que l'on commence le mini jeu, puis on déclenche le combat contre Ganon, le fléau. Dès que la cinématique se finit, le mini-jeu s'arrête et Link s'est échappé de Ganon, avec tous les flags de fin de jeu mentionnés précédemment toujours activés.

Dans les versions inférieures à la 1.1.2, ceci créait de sérieux dégâts étant donné que la plupart des ces flags de fin de jeu étaient écrits dans le fichier de sauvegarde (en incluant FirstInHyruleCastleBossRoom)

Quelqu'un a fait une vidéo dessus et Nintendo ont apparemment pensé que le glitch soit suffisamment sérieux pour mériter un patch spécial.

La correction de Nintendo

Un simple et facile correctif aurait été de ne pas faire apparaître le déclencheur de Ganon, le fléau pendant que le mini-jeu est actif, mais ce n'est pas comme ça qu'ils ont décidé de le patcher.

Parce qu'ils savaient à propos des effets du flag FirstInHyruleCastleBossRoom, ils ont changé la configuration de GameData afin de ne pas sauvegarder ce flag, donc les PNJ, sanctuaires, ennemis et tours ne disparaissaient pas, même après avoir fait le glitch.

Ils ont également modifié l'event du mini-jeu Opération Homme-Oiseau (MiniGame_HillTower_BirdMan) afin de toujours réinitialiser manuellement certains effets de l'atterrissage dans les Quartiers Principaux:

  • Un event a été ajouté à l'event d'atterrissage pour ramener le joueur à la tour (-1746.71, 329.065, -772.847)... Sauf que le joueur était déjà téléporté à ces exactes mêmes coordonnées dans le code de base. Il se peut qu'ils voulaient s'assurer que la téléportation fonctionnerait.
  • À l'atterrissage, les flags IsPlayed_Demo141_{0,1,2,3} et LastBossIncompleteGanonGenerateFlag sont manuellement réinitialisés. Oui, ils ont oublié de réinitialiser les autres flags qui auraient pu être initialisés, comme IsPlayed_Demo145_0.
  • Tant que le mini-jeu est actif, le flag FirstInHyruleCastleBossRoom est réinitialisé toutes les frames.

C'est aussi bancal que ça en a l'air, et sans surprise a mené le glitch de spawn de la 1.2.0, ce qui leur a donc demandé de faire un autre patch dans la 1.3.0.

References

  1. Il y a différents types d'acteurs (entités) dans BotW. Les profils sont des sortes de catégories qui permettent à Nintendo de réutiliser le même code en interne, pour des acteurs différents mais très similaires.