« Bug de la rive droite de Cramois'Île » : différence entre les versions
Annulation des modifications 842743 de 82.249.152.29 (discussion) |
→Origine du Bug : Corrigé plein plein de trucs faux sur ce bug. |
||
Ligne 574 : | Ligne 574 : | ||
Lors du codage du jeu, les développeurs ont enregistré les noms des Pokémon sur des adresses à deux hexadécimales. L'hexadécimal est une base numérique très utilisée en informatique, comme l'octal. Dans la vie de tous les jours, tout le monde compte en base 10 (les chiffres vont de 0 à 9). L'hexadécimal, base 16, va en revanche de 0 à F (de 10 à 15 les nombres sont remplacés par A, B, C, D E et F). | Lors du codage du jeu, les développeurs ont enregistré les noms des Pokémon sur des adresses à deux hexadécimales. L'hexadécimal est une base numérique très utilisée en informatique, comme l'octal. Dans la vie de tous les jours, tout le monde compte en base 10 (les chiffres vont de 0 à 9). L'hexadécimal, base 16, va en revanche de 0 à F (de 10 à 15 les nombres sont remplacés par A, B, C, D E et F). | ||
Logiquement, il était donc possible de créer des adresses telles que 4F, 05, 8D, E3, etc. | Logiquement, il était donc possible de créer des adresses telles que 4F, 05, 8D, E3, etc. | ||
Il y a 16 possibilités par chiffre hexadécimal, donc 16*16 = 256, et donc il était possible | Il y a 16 possibilités par chiffre hexadécimal, donc 16*16 = 256, et donc il était possible d'enregistrer sur 256 adresses différentes. | ||
Initialement, 190 Pokémon ont été prévus, mais seuls 151 Pokémons ont été finalement intégrés à la première génération. Il est possible que les 49 autres aient été intégrés à la seconde génération de la franchise, mais cela n'a pas été prouvé. | |||
Les 190 Pokémon ont été enregistrés sur ces adresses, il en restait donc 66 disponibles (de 192 à 255). | |||
Sur certaines (les adresses de 201 à 247), ont été placées les types de dresseurs (Gamin, Scout, Croupier...), toutes celles restantes sont devenues des Pokémon glitch. | |||
Sur certaines, ont été placées les types de dresseurs (Gamin, Scout, Croupier...), | |||
Ensuite, 49 Pokémons ont été retirés du code, ce qui a libéré 49 adresses mémoire. Les développeurs ont donc décidé d'appeler ces adresses disponibles "MissingNo", qui vient de l'anglais ''Missing Number'' (numéro manquant). | |||
D'où le fait que '''MissingNo n'est pas un Pokémon''', contrairement à ce qu'il est parfois possible de lire. | D'où le fait que '''MissingNo n'est pas un Pokémon''', contrairement à ce qu'il est parfois possible de lire. | ||
Dans [[Pokémon Version Bleue (Japon)]], la fiche de Pokédex de MissingNo indique une taille de 1.0m, un poids de 10.0kg, et sa description est "コメント さくせいちゅう", c'est-à-dire "Description à écrire". Ses stats n'ont par contre pas été programmées correctement en mémoire. La fiche n'a pas été traduite dans mes versions internationales, ce qui donne une description, une taille et un poids incorrects. | |||
Le jeu gère deux tables de rencontre : une table pour les rencontres dans les hautes herbes, et une autre pour les rencontres sur l'eau. Chaque table contient plusieurs paires (niveau ; ID du Pokémon) indiquant les possibilités de rencontre dans un souci d'optimisation, en effet il est plus facile pour un programme de retenir des identifieurs comme "A1" ou "84" que des noms comme "[[Piafabec]]" ou "[[Grotadmorv]]". A chaque table est associé une chance (taux) de rencontre. Si celui-ci est à zéro, cette table n'est pas utilisée. | |||
De plus, afin d'optimiser la vitesse du jeu, chaque table n'est modifiée que si elle est utilisée dans l'endroit où le joueur se trouve : dans une ville où il n'est pas possible de rencontrer des Pokémon (exemple : Cramois'Île), le jeu ne modifie aucune table mais met les deux taux de rencontre à zéro (c'est pour cela qu'aucun Pokémon ne peut être rencontré dans les quatre herbes au nord de Boug-Palette) ; dans une route où il y a des hautes herbes mais pas d'eau (exemple : Route 1), le jeu modifie la table des herbes mais pas celle d'eau, en mettant le taux de rencontre à zéro pour la seconde table ; dans une route où il y a de l'eau mais aucune haute herbe (exemple : Chenal 20), le jeu conserve la table d'herbes (en mettant son taux de rencontres à zéro) mais modifie la table d'eau. Enfin, dans une route où les deux sont présents (exemple : Chenal 21), les deux tables sont modifiées. | |||
Le bug de Cramois'Île est la combinaison de cette optimisation et de deux erreurs dans le code. | |||
La première est que les rives droites sont programmées pour faire apparaître des Pokémon sauvages, mais elles piochent les rencontres non pas dans la table d'eau comme elles devraient, mais dans la table d'herbes. | |||
Le | Le second bug est que le jeu ne vérifie pas correctement les chances de rencontre. On pourrait s'attendre à ce que si le taux de rencontres pour l'herbe est à zéro mais que le taux de rencontres est non nul pour l'eau, on ne puisse rencontrer que des Pokémon d'eau, mais ce n'est pas le cas. Simplement, à chaque pas, le jeu vérifie si au moins un des taux de rencontre est non nul. Si c'est le cas, le jeu déclenche aléatoirement une bataille en piochant la paire (niveau ; ID du Pokémon) dans la table d'herbes si le joueur marche sur des hautes herbes, dans la table d'eau si le joueur marche (en utilisant le [[Passe-Muraille]]) ou surfe sur de l'eau. Mais les rives droites ne sont pas considérées comme de l'eau, mais comme des herbes. Ce qui fait que l'on peut rencontrer des Pokémon d'herbe sur de l'eau et à des endroits où ils ne devraient pas être. | ||
Pourtant, le problème des niveaux supérieurs à 100 n'est toujours pas résolu. Mais c'est simple : lorsque le joueur parle au vieil homme de Jadielle, celui-ci lui enseigne comment capturer un Pokémon. Pendant ce "combat", le sprite du joueur ainsi que son nom | Pourtant, le problème des niveaux supérieurs à 100 n'est toujours pas résolu. Mais c'est simple : lorsque le joueur parle au vieil homme de Jadielle, celui-ci lui enseigne comment capturer un Pokémon. | ||
Pendant ce "combat", le sprite du joueur ainsi que son nom sont remplacés temporairement par ceux du PNJ. Et afin de ne pas les perdre, ils sont stockés ailleurs, le temps de cet exemple. La quantité de mémoire étant extrêmement faible pour une cartouche Game Boy, les développeurs ont réutilisé un emplacement utilisé en général pour autre chose, mais inutilisé le temps de l'action. Il est maintenant possible de comprendre que cet emplacement est celui de la table des rencontres de Pokémon dans les hautes herbes. Ainsi, le nom du joueur est stocké sous forme hexadécimale en mémoire. Si le joueur vole directement jusqu'à Cramois'Île, ce sont ces valeurs qui seront utilisées pour faire apparaitre les Pokémon sur la rive droite. | |||
{{bugs}} | {{bugs}} |
Version du 21 juillet 2015 à 12:51
Le Bug de la rive droite de Cramois'Île est un bug des versions Pokémon Rouge et Bleu.
Description
Ce bug permet d'avoir des Pokémon à un niveau supérieur à 100 et aussi de rencontrer les Pokémon bugs MissingNo et 'M plus rapidement qu'avec un Ditto Glitch et de rencontrer les Pokémon du Parc Safari sans qu'ils ne puissent fuir.
Ce bug ne fonctionne que dans BR ; dans Pokémon Jaune, il a été corrigé: la rive droite n'est plus une zone de capture.
Manœuvre
Rencontrer des Pokémon supérieur au niveau 100
Le principe est simple :
- Tout d'abord, aller à Jadielle et parler au vieil homme qui enseigne comment capturer un Pokémon ;
- Répondre "non" à sa question. Il montrera ensuite comment capturer un Pokémon ;
- Voler à Cramois'Île, surfer sur la rive droite de haut en bas.
Si cette démarche a été suivie, des Pokémon sauvages à des niveaux supérieurs à 100 apparaîtront. Mais si un de ces Pokémon a été entraîné et monte d'un niveau (ce qui ne nécessitera qu'un seul point d'expérience), son niveau redescendra directement à 100. Le seul moyen pour qu'il monte de niveau reste les Super Bonbon.
Les Pokémon rencontrés qui seront à un niveau supérieur à 100 dépendent du nom du joueur :
Exemple
Si le joueur s'appelle Arthur :
- A: La première lettre ne sert à rien.
- r: Un Pokémon au niveau 177
- t: Carabaffe
- h: Un Pokémon au niveau 167
- u: Dracaufeu
- r: Un Pokémon au niveau 177
Il y aura donc :
- Soit un Carabaffe au niveau 177
- soit un Carabaffe au niveau 167
- Soit un Dracaufeu au niveau 177
- Ou soit un Dracaufeu au niveau 167
Liste des lettres par rapport aux Pokémon/dresseurs et niveaux
Pokémon et dresseurs générés
Niveau des Pokémon générés
Voici la liste complète de lettres par rapport au niveau, à savoir que celui-ci est au minimum de 127, le maximum connu est de 185.
Caractère | Niveau |
---|---|
Espace | 127 |
A | 128 |
B | 129 |
C | 130 |
D | 131 |
E | 132 |
F | 133 |
G | 134 |
H | 135 |
I | 136 |
J | 137 |
K | 138 |
L | 139 |
M | 140 |
N | 141 |
O | 142 |
P | 143 |
Q | 144 |
R | 145 |
S | 146 |
T | 147 |
U | 148 |
V | 149 |
W | 150 |
X | 151 |
Y | 152 |
Z | 153 |
( | 154 |
) | 155 |
: | 156 |
; | 157 |
[ | 158 |
] | 159 |
a | 160 |
b | 161 |
c | 162 |
d | 163 |
e | 164 |
f | 165 |
g | 166 |
h | 167 |
i | 168 |
j | 169 |
k | 170 |
l | 171 |
m | 172 |
n | 173 |
o | 174 |
p | 175 |
q | 176 |
r | 177 |
s | 178 |
t | 179 |
u | 180 |
v | 181 |
w | 182 |
x | 183 |
y | 184 |
z | 185 |
' | 224 |
PK | 225 |
MN | 226 |
- | 227 |
? | 230 |
! | 231 |
♂ | 239 |
× | 240 |
. | 242 |
/ | 243 |
, | 244 |
♀ | 245 |
Rencontrer les Pokémon du Parc Safari
- S'envoler au Parc Safari ;
- Aller dans la zone du Parc Safari où il y a les Pokémon recherchés
- Faire Tunnel ou Téléport
- S'envoler à Cramois'Île
- Surfer sur la rive droite de Cramois'Île.
Si le joueur bien suivi cette démarche, les Pokémon disponibles dans la zone du Parc Safari apparaîtront. Comme ils sont dans un état sauvage « normal », le joueur peut utiliser d'autres Balls que la Safari Ball, il n'a pas de limite de pas et les Pokémon ne peuvent pas s'enfuir. En bref, toutes les contraintes du Parc Safari disparaissent grâce à ce bug.
Note
Cela ne marche pas que pour le Parc Safari, mais pour toutes les routes visitées avant d'aller surfer sur la rive droite de Cramois'Île, mais dans ce cas-là, l'intérêt est moindre.
Ce bug peut également engendrer le Bug des célébrités dans le cas où le joueur rencontrerait un Pokémon corrompu.
Origine du Bug
Lors du codage du jeu, les développeurs ont enregistré les noms des Pokémon sur des adresses à deux hexadécimales. L'hexadécimal est une base numérique très utilisée en informatique, comme l'octal. Dans la vie de tous les jours, tout le monde compte en base 10 (les chiffres vont de 0 à 9). L'hexadécimal, base 16, va en revanche de 0 à F (de 10 à 15 les nombres sont remplacés par A, B, C, D E et F).
Logiquement, il était donc possible de créer des adresses telles que 4F, 05, 8D, E3, etc.
Il y a 16 possibilités par chiffre hexadécimal, donc 16*16 = 256, et donc il était possible d'enregistrer sur 256 adresses différentes.
Initialement, 190 Pokémon ont été prévus, mais seuls 151 Pokémons ont été finalement intégrés à la première génération. Il est possible que les 49 autres aient été intégrés à la seconde génération de la franchise, mais cela n'a pas été prouvé.
Les 190 Pokémon ont été enregistrés sur ces adresses, il en restait donc 66 disponibles (de 192 à 255).
Sur certaines (les adresses de 201 à 247), ont été placées les types de dresseurs (Gamin, Scout, Croupier...), toutes celles restantes sont devenues des Pokémon glitch.
Ensuite, 49 Pokémons ont été retirés du code, ce qui a libéré 49 adresses mémoire. Les développeurs ont donc décidé d'appeler ces adresses disponibles "MissingNo", qui vient de l'anglais Missing Number (numéro manquant).
D'où le fait que MissingNo n'est pas un Pokémon, contrairement à ce qu'il est parfois possible de lire.
Dans Pokémon Version Bleue (Japon), la fiche de Pokédex de MissingNo indique une taille de 1.0m, un poids de 10.0kg, et sa description est "コメント さくせいちゅう", c'est-à-dire "Description à écrire". Ses stats n'ont par contre pas été programmées correctement en mémoire. La fiche n'a pas été traduite dans mes versions internationales, ce qui donne une description, une taille et un poids incorrects.
Le jeu gère deux tables de rencontre : une table pour les rencontres dans les hautes herbes, et une autre pour les rencontres sur l'eau. Chaque table contient plusieurs paires (niveau ; ID du Pokémon) indiquant les possibilités de rencontre dans un souci d'optimisation, en effet il est plus facile pour un programme de retenir des identifieurs comme "A1" ou "84" que des noms comme "Piafabec" ou "Grotadmorv". A chaque table est associé une chance (taux) de rencontre. Si celui-ci est à zéro, cette table n'est pas utilisée.
De plus, afin d'optimiser la vitesse du jeu, chaque table n'est modifiée que si elle est utilisée dans l'endroit où le joueur se trouve : dans une ville où il n'est pas possible de rencontrer des Pokémon (exemple : Cramois'Île), le jeu ne modifie aucune table mais met les deux taux de rencontre à zéro (c'est pour cela qu'aucun Pokémon ne peut être rencontré dans les quatre herbes au nord de Boug-Palette) ; dans une route où il y a des hautes herbes mais pas d'eau (exemple : Route 1), le jeu modifie la table des herbes mais pas celle d'eau, en mettant le taux de rencontre à zéro pour la seconde table ; dans une route où il y a de l'eau mais aucune haute herbe (exemple : Chenal 20), le jeu conserve la table d'herbes (en mettant son taux de rencontres à zéro) mais modifie la table d'eau. Enfin, dans une route où les deux sont présents (exemple : Chenal 21), les deux tables sont modifiées.
Le bug de Cramois'Île est la combinaison de cette optimisation et de deux erreurs dans le code.
La première est que les rives droites sont programmées pour faire apparaître des Pokémon sauvages, mais elles piochent les rencontres non pas dans la table d'eau comme elles devraient, mais dans la table d'herbes.
Le second bug est que le jeu ne vérifie pas correctement les chances de rencontre. On pourrait s'attendre à ce que si le taux de rencontres pour l'herbe est à zéro mais que le taux de rencontres est non nul pour l'eau, on ne puisse rencontrer que des Pokémon d'eau, mais ce n'est pas le cas. Simplement, à chaque pas, le jeu vérifie si au moins un des taux de rencontre est non nul. Si c'est le cas, le jeu déclenche aléatoirement une bataille en piochant la paire (niveau ; ID du Pokémon) dans la table d'herbes si le joueur marche sur des hautes herbes, dans la table d'eau si le joueur marche (en utilisant le Passe-Muraille) ou surfe sur de l'eau. Mais les rives droites ne sont pas considérées comme de l'eau, mais comme des herbes. Ce qui fait que l'on peut rencontrer des Pokémon d'herbe sur de l'eau et à des endroits où ils ne devraient pas être.
Pourtant, le problème des niveaux supérieurs à 100 n'est toujours pas résolu. Mais c'est simple : lorsque le joueur parle au vieil homme de Jadielle, celui-ci lui enseigne comment capturer un Pokémon.
Pendant ce "combat", le sprite du joueur ainsi que son nom sont remplacés temporairement par ceux du PNJ. Et afin de ne pas les perdre, ils sont stockés ailleurs, le temps de cet exemple. La quantité de mémoire étant extrêmement faible pour une cartouche Game Boy, les développeurs ont réutilisé un emplacement utilisé en général pour autre chose, mais inutilisé le temps de l'action. Il est maintenant possible de comprendre que cet emplacement est celui de la table des rencontres de Pokémon dans les hautes herbes. Ainsi, le nom du joueur est stocké sous forme hexadécimale en mémoire. Si le joueur vole directement jusqu'à Cramois'Île, ce sont ces valeurs qui seront utilisées pour faire apparaitre les Pokémon sur la rive droite.