ShinysHunters

Forum des chasseurs de shinies (SH). Bienvenue !
 
AccueilAccueil  Site SH  Discord  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  

Partagez | 
 

 [Dossier] RS aux piles mortes et Emerald RNG broken

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Zigzabluze
Aspirant SH
Aspirant SH
avatar

Masculin Age : 21
Nombre de messages : 722
Date d'inscription : 10/07/2010
Localisation : Yerushaláyim
Nombre de Shinies : Ma bite

MessageSujet: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 7 Avr 2013 - 22:57

Introduction


Le bug de l'horloge des versions Rubis et Saphir (et Emeraude) est l'un des bugs les plus dérangeants des jeux pokémon. Le mot « bug » est en réalité un abus de langage puisqu'en réalité, c'est la pile bouton située à l'intérieur de votre cartouche de pokémon Rubis ou Saphir qui est épuisée. Bien que ce ne soit qu'une bête pile, celle-ci est très importante pour la « vie » du jeu ! En effet, elle gère l'horloge interne et tout ce qui s'y rapporte dans le jeu (Baies, île mirage et caetera) . Elle a notamment un très grand rôle dans les PRNG (Pseudo-Random Number Generator) et de ce fait, il y a un certain impact sur les pokémon et donc, les shinies.

Durant les années 2004, Nintendo a proposé à tous les possesseurs de RS aux piles mortes de renvoyer leur cartouche afin que ceux-ci réparent cette pile défectueuse et, par la même occasion, leur distribuer un zigzaton shiny ayant comme do :

« Rubis » s'il provenait d'une version rubis ;
« Saphir » s'il provenait d'une version saphire

Nintendo ne s'en est pas arrêté à là : un débogueur a été implanté dans les versions Rouge-Feu et Vert Feuille ainsi que sur la version Emaraude et sur le Jirachi CHANNEL. Celui-ci a pour but de relancer les évènements journaliers s'il arrive à ce qu'une version RSE soit en deuil de sa pile.

Certes, ces débogueurs ont arrangé ce problème de pile, les évènements journaliers ont pu facilement être réactivés CEPENDANT on a délaissé l'aspect Ô combien important du PRNG ce qui a gêné, et gène encore, les shinies hunters.

Problématique


Depuis assez longtemps (environ 2004-2005) , on a remarqué quelques cas assez étrange dans la shasse :

Tout d'abord, certains trouvaient des shinies sur ces versions en faisant peu mais très peu de resets tandis que certains n'en trouvaient aucun après les 20000 resets de passé.
Les shinies obtenus sur ces versions à PRNG cassés (même si on ne soupçonnait pas ça dans le temps) avaient très souvent la même nature, les mêmes IVs et, si on y va plus loin, le même PID !

De ce fait, les SH et certains spécialistes (Notamment smogon) se sont penchés sur cette problématique. Divers recherches ont été entamées par les SH pour essayer de découvrir le pourquoi du comment. Du coté de nos amis anglophones, ils se sont penchés sur le RNG d'Emeraude en essayant de trouver ce qui ne va pas.

Puis un jour on a découvert que la Seed d'émeraude était constante et ne change pas quoi qu'il arrive. Le problème, c'est que cette seed redondante a valu un bannissement de la shasse sur Emeraude et sur les versions Rubis et Saphir avant que ces versions soient ré-autorisées parmi la communauté SH le 2 Avril 2010.

Pourquoi ce bannissement ? Que se passe-t-il au niveau des shinies dans ces versions ? Pourquoi les avoir ré-autorisé ?

Notions de Seed, frames et PRNG


Les RPG pokémon se basent sur un Générateur de nombres congru-linéaire. Ce générateur se nome aussi, comme dit un peu plus en haut, le Pseudo Random Number Generator traduit littéralement par : « Générateur de nombre pseudo-aléatoires » . Ce générateur de nombre peut être considéré comme le cœur des jeux pokémon car il génère toutes les infos pour les pokés, les combats, les captures, les IDs, ... SANS LUI, LES JEUX POKEMON NE SERAIENT PAS CE QU'ILS SONT !

Comme le dit si bien le terme « générateur » , le PRNG génèrera une liste infinie de nombres dont le jeu s'en servira pour « générer » ses pokémons, actions, ect...
Pourquoi ce terme Pseudo-aléatoire ? Tout simplement la suite des nombres sera généré aléatoirement cependant, tout cela se fera au biais d'une équation de type : X^n+1 = (a * X^n + c) mod m. Et parce que la liste de nombres sera périodique tous les 4 294 967 295 nombres . De ce fait, on ne peut pas vraiment qualifier ces nombres comme aléatoires en conséquence, le terme « Pseudo-Aléatoire » est bien choisi pour qualifier cette liste gigantesque de nombres.

Et comment ça fonctionne tout ça ? Tout cela se fera par l'équation sur laquelle j'ai fait un petit briefing au dessus de ces lignes.

L'équation générale est : X^n+1 = (a * X^n + c) mod m

• Mod ou « modulo » se traduit littéralement par « le reste de la division de x par m » (Ex : 10 mod 3 = 1 car le reste de la division de 10 par 3 vaut 1 (3*3+1 = 10)
Les valeurs a, c et m resteront inchangées en fonction du jeu dans lequel on se trouve.
• X^n est un nombre pseudo-aléatoire issu de ce générateur
• X^n+1 est le nombre pseudo-aléatoire suivant qui sera obtenu via le précédent nombre pseudo-aléatoire qui sera pris en compte dans l'équation du dessus. On utilisera toujours le précédent nombre obtenu pour générer le nombre suivant ! Autrement dit X^n servira à générer X^n+1 qui servira à générer X^n+2 qui servira à générer X^n+3, ...) .

De ce fait, cette équation déterminera la liste de tous les nombres pseudo-aléatoires, avec chaque nombre ayant un rapport avec son prédécesseur.

Quand on commence un jeu pokémon, celui-ci génèrera un tout premier nombre à partir d'une autre équation. Ce tout premier nombre, ce nombre matrice est appelé Seed ou « graine » car c'est le tout premier nombre qui ira mettre en marche l'équation qui génèrera sa liste de nombres. Et une autre seed sera appelée à chaque vois que vous mettrez en route votre jeu.

Et là, nous entrons dans d'autres termes mais ceux-ci auront un rapport avec les pokémons.
Lorsqu'on allumera un jeu pokémon, celui-ci appellera un premier nombre (Seed) , ce nombre sera ensuite envoyé dans l'équation qui prendra le relais à son tour et formera sa liste de nombres. Ces nombres défileront ensuite en fonction du temps au rythme de 60 nombres à la seconde.

Mais comment le jeu utilise-t-il ses nombres pour déterminer les infos d'un pokémon ?

Lorsqu'un combat est engagé dans, le jeu prend, en quelques millièmes de secondes, 2 de ses nombres issus du PRNG, il les « croise » et ces 2 nombres de 16bytes forment donc un nombre de 32 Bytes appelé PID. Le PID, c'est comme l'ADN d'un pokémon car ce nombre contient : la nature, le sexe et le caractère shiny d'un pokémon.
Le PRNG prend ensuite les 2 autres nombres suivant et forment ainsi un second nombre de 32 Bytes : les IVs. Ces 2 données issus du PRNG sont donc regroupées et forment une frame (PID et IVs) et cette frame envoyée au pokémon : le pokémon a donc été créé et le combat commence.

Voilà comment un pokémon est créé, certes il y a aussi d'autres méthodes de créations mais je n'en parlerai pas pour le moment car cela n'a aucune impotence pour ce que je vais vous dire par la suite.

Au passage, pour ceux qui n'ont pas trop compris ou qui ont scrollé la page, voici un petit schéma de la situation :


RNG de Rubis et Saphir



A partir des précédents titres, je vais vous expliquer les RNG de Rubis/Saphir, du moins la création de la seed puisque c'est la création de cette donnée qui fait la différence entre un PRNG de R/S avec un PRNG d'Emeraude ou de RougeFeu/VertFeuille.

Comme, vous le saviez tous à présent, lorsqu'on allume un jeu poké, une seed est générée avant d'être transférée vers le timer avec l'équation qui déterminera la liste des Random Numbers. L'équation de défilement des versions 3G est : X^n+1 = (X^n*[0x41C64E6D] + [0x6073])&0xFFFFFFFF.

Comme pour la liste des nombres, la seed a aussi sa propre méthode de génération et c'est là que vous verrez que la pile a une énorme impotence pour les RNG car c'est elle qui servira à déterminer la seed. Voilà comment, la seed est créée sur Rubis ou Saphir (Source).


« Soit d[b]:

[b]•
le nombre de jours après Dec 31, 1900, si l'année est 1999 ou passée ;
le nombre de jours après Dec 31, 1999, si l'année est 2000 ;
le nombre de jours après Dec 31, 2000, si l'année 2001 ou plus tard.

Soit h, le nombre d'heures après minuit ce jour-là. Soit th le chiffre des dizaines et uh le chiffre des unités pour cette heure.
Soit m, le nombre de minutes après l'heure. Soit tm le chiffre des dizaines de cette minute et um le chiffre des unités de cette minute.

Calculez v = 1440d + 960th + 60uh + 16tm + um.
Soit x = floor(v / 65536)
Soit y = v mod 65536. Convertissez x et y en hexadécimal.

Donc la seed est:

0x0000XXXX
ou XXXX = x xor y.



Ex.
2011 Février 6 14:16:18

Nombre de jours après Dec 31, 2000: d=365*10+2+31+6=3689
h=14, th=1, uh=4
m=16, tm=1, um=6
Les secondes n'ont pas d'impotence

v = 1440*3689 + 960*1 + 60*4 + 16*1 + 1*6 = 5313382
x = floor(5313382/65536) = 81 = 0x51
y = 5313382 mod 65536 = 4966 = 0x1366

x xor y = 0x51^0x1366 = 0x1337

Par conséquent, la seed initiale est 0x00001337.

Remarque: Si l'horloge GBA (horloge temps réel) ne fonctionne pas, le jeu suppose qu'il est toujours le 1 janvier 2000, 00:00:00 sans changer, et la seed initiale est 0x000005A0. »

A partir de ça, nous remarquons que :

• La pile interne sert à générer la seed
• Que la seed change toutes les minutes. Eh oui ! Vous aurez la même seed le 13/12/2011 à 14h10'34 qu' à 14h10'49, le même jour.
• Que si la pile meurt, le jeu croira qu'on sera le 1er Janvier 2000 à 00h00 et fera donc une seed constante de 0x000005A0.


Par conséquent, le PRNG de Rubis/Saphir fonctionne ainsi :

La pile génère une seed de 16 bytes à partir de la méthode située au dessus
Dès que la seed est créée, elle est aussitôt envoyée vers un timmer qui créera la liste des nombres avec la forme : X^n+1 = (X^n*[0x41C64E6D] + [0x6073]) mod FFFFFFFF. Et le timmer fera défiler 60 Frames à la seconde.
Lorsqu'on engagera un combat avec un pokémon sauvage, le jeu utilisera ces nombres afin de créer le pokémon.

Voilà comment les versions RS fonctionnent. Vous voyez donc à présent l'importance de ces nombres ?

PRNG d'Emeraude


Emeraude fonctionne presque comme une version Rubis ou Saphir : le jeu génère une seed, elle est envoyée au timmer, il établit la liste et la fait défiler. Voilà !
La différence réside dans le fait que la génération de la seed d'émeraude est simple comme je-ne-sais-quoi. En effet, ce jeu aura toujours une seed constante quoi qu'il arrive, que sa pile interne soit morte ou non, la seed ne changera jamais et sera la même pour toutes les versions Emeraude existantes : 0x00000000 .

C'est un peu le même principe que la seed d'une Rubis ou Saphir à pile morte sauf que ça reste inchangeable.

Les raisons de cette seed sont encore indéterminées. D'après certains, ça a été programmé par Nintendo pour contrer la mort de l'horloge cependant on a découvert récemment que cette version aurait pu fonctionner comme une version Rf/Vf puisqu'on a remarqué qu'il y avait la même fonction de création de seed que pour celle des 2 remakes mais cette fonction est automatiquement désactivée et donc par défaut la seed vaudra 0x0.

C'est ce qu'on appelle le « Emerald RNG Broken » ou RNG cassés d'émeraude étant donné que la seed est identique et donc la liste de frames elle aussi.

Et les shinies dans tout ça ?


Comme cela a été dit auparavant, c'est le PID qui stocke l'info du caractère. Pour savoir si un pokémon est shiny ou non, le jeu utilise nos IDs et appliquent cette condition :

ID xor SID = E
u16PID xor l16PID = F
E xor F = G
Si G < 8 alors le pokémon est shiny

A partir de tout ça, on saura déterminer si une frame sera shiny ou non en fonction du PID, sachant que dans les versions Emeraude et dans les versions Rubis ou Saphir ayant « le bogue de l'horloge » , la seed sera toujours constante, ce sera soit 0x000005A0 (RS aux piles mortes) ou soit 0x00000000 (Emeraude).
Sachant que la seed impliquera la liste de pseudo-random numbers qui elle-même impliquera les frames et par conséquent le PID alors, on aura toujours la même liste de frames ! Et c'est là le problème puisque les caractères shiny sont stockés n'importe où et diffèrent selon les parties par conséquent, on ignore où la première frame shiny se situe. Elle peut très bien se situer vers les 10 secondes après le reset, les 30 secondes voire les 4 minutes après si vous avez une partie comme la mienne (La première frame shiny de ma version émeraude se situe à 4min 30 après le reset) .

Imaginez donc, qu'on ait une partie de pokémon Emeraude dans laquelle la première frame shiny se situe à 6 minutes après le reset et que vous shassiez Rayquaza. Un reset dans ces versions prend entre 10 à 30 secondes. Donc vous resetez, la liste de frames défile et vers les 15 secondes vous engagez le combat face à Rayquaza par conséquent le jeu prend une frame et l'incorpore à ce poké. La première frame se situant à 6 minutes après le reset, le pokémon ne sera pas shiny. Donc on reset et en resetant on reprend la liste à 0, on la relie, on engage le combat et comme il ne faut pas 6 minutes pour reseter un Rayquaza , celui-ci ne sera pas shiny. Donc on resete et on reprend la liste à 0.

Et comme on reprend la liste depuis le début vers les 30 secondes après l'avoir commencé et que la première frame shiny est située à 6 minutes après le reset alors il sera logiquement impossible de tomber sur cette fameuse frame si on reset, à moins qu'il se passe quelque chose vous obligeant à engager le combat après plus de 5 minutes mais cela est presque impossible. Par conséquent, on ne verra aucun rayquaza apparaître en noir sur cette version étant donné qu'il apparaitra vers 6 minutes après le début du jeu mais le joueur lambda ne se doutera pas de ça car il n'a soit pas le matériel adéquat pour aller vérifier les frames ou il ignore ce concept de PRNG, ...

Tout comme il se peut que la première frame shiny soit après 5 minutes de jeu, il arrive parfois à ce qu'elle se situe après les 10 ou 20 secondes de jeu. Reprenons le problème du Rayquaza tout en changeant de partie et donc d'ID et par conséquent on changera l'emplacement du caractère shiny qui se situera dans la fourchette des 10 à 20 secondes. Donc le joueur resete engage le combat à 15 secondes, le jeu prend une frame du PRNG et cette frame est située près de celle qui est shiny mais en raison du la vitesse du défilement et de l'imprécision de l'être humain, le Rayquaza ne sera pas shiny. Donc il reset, on réengage le combat et le jeu reprend une autre frame qui est elle aussi non loin de celle possédant le caractère chromatique donc la personne resete, réengage le combat, resete, combat, resete, ...
Et comme la frame shiny se situe vers le moment où il engage le combat, il tombera sur le Rayquaza shiny au bout d'un moment. Cool se version produira des shinies par reset me direz-vous. Mais à la différence du premier cas, le problème apparaitra à long terme.

Imagions encore, le joueur a eu son Rayquaza et décide alors de faire le trio de Hoenn et s'attaque donc à Kyogre. Comme la liste sera toujours identique et qu'un reset pour le dieu de la mer prend entre 20 et 30 secondes, la frame shiny sera encore située dans ces environs. Donc il va reseter, il ne tombera pas forcément sur la frame shiny dès le début mais au bout d'un moment le Kyogre sera violet. Le dresseur va donc le capturer, sauvegarder puis aller voir ses données et c'est là qu'il va y avoir un problème ! Comme la seed est identique, la liste de nombres le sera aussi et la liste de frame le sera aussi par conséquent il sera tombé sur la même frame que celle de Rayquaza. Une frame, c'est ce qui contient le PID et les IVs. De ce fait, le Kyogre aura la même nature, le même caractère shiny, le même PID et les mêmes IVs que Rayquaza ! Il sera presque comme un clone du dragon noir !

Nous pouvons donc en conclure que si nous resetons sur une version RS à pile morte ou sur une version émeraude, nous aurons 2 cas de figure :

La première frame shiny est située assez loin de la « fourchette du reset » (Temps qu'on met pour faire un reset) par conséquent on verra presque aucun shiny par reset.

La première frame shiny est située dans la fourchette du reset par conséquent on verra des shinies par reset mais il y a de très fortes chances qu'ils aient tous la même nature et les mêmes IVs.

Le Emerald RNG et les piles mortes de RS n'affectent pas seulement les shinies, mais le PRNG en lui-même ! Par exemple si vous tombez sur un Zigzaton après 14 secondes de jeu en jouant sur ces versions puis que vous resetiez et que vous réengagez un combat contre X pokémon après 14 secondes de jeu alors le nouveau pokémon aura la même frame que celle du précédent et de ce fait, la même nature, les mêmes IVs, ...


Tout cela a été la raison du bannissement de la shasse sur ces versions. Vous avez donc la réponse sur ce qu'il se passe au niveau des shinies et ce qui a conditionné cette prohibition.

La shasse par fuites (Emeraude (Resetables et Rencontres) et RS (Rencontres uniquement)


Lorsqu'on a qu'une version Emeraude pour seule version 3G et qu'on veut se faire un légendaire ou fixe, il faudra shasser par un système relativement spécial nommé : « Shasse par Fuites » .

Contrairement aux versions Rubis et Saphir, les légendaires de la version émeraude ont le merveilleux don d'être fuyables. Comment ça ?! Lorsqu'on engage un combat avec un pokémon fixe ou resetable puis qu'on fuit face à ce poké et qu'on sort de son lieu puis qu'on y retourne, le pokémon sera de retour dans son lieu et vous pourrez de nouveau le recombattre sachant que le poké sera différent du précédent puisque le RNG aura tourné et repris une autre frame. On peut aussi refuir devant le pokémon puis le recombattre, il reviendra et sera différent du précédent et cela fonctionnera toujours jusqu'à ce que vous attrapiez le pokémon ou que vous le mettiez K.O !

Ceci contourne donc le problème des resets, vous voulez un légendaire « émeraldien » ? Alors il ne faudra en aucun cas le reseter mais seulement le « fuir » et réengager le combat jusqu'à ce qu'il soit shiny.
On peut aussi faire des rencontres de pokés sauvages sur la version émeraude ainsi qu'aux versions Rubis et Saphir puisqu'on fuie chaque poké non shiny à chaque rencontre et par déduction on fait comme le système des fuites cité précédemment...

Par conséquent, si on veut shasser sur l'une de ces versions, il faudra en aucun cas reseter mais privilégier les fuites qui ont le même effet que des rencontres. Cependant, ces shasses exigent d'être faites sur longues périodes afin d'éviter de faire répéter la liste des PRNG au jeu et donc éviter de retomber dans le bon vieux cercle vicieux des frames identiques...

Il existe 2 moyens pour shasser sur longue période :

On laisse sa console allumée durant toute la recherche.
On ne laisse pas sa console allumée durant la recherche MAIS on est obligé de la laisser allumée entre 3 à X heures lorsqu'on shasse.

Le premier moyen est le plus efficace des deux pusique la console ne sera jamais resetée jusqu'à ce qu'on trouve le shiny, cela permettra aux frames de défiler librement sans qu'elles ne soient répétitives par le reset de la version cependant ce moyen n'est pas très économique ni écologique puisque ça exige à la console d'être constamment chargée durant une période indéterminée. De ce fait, ça consomme de l'énergie et de l'argent.

Le deuxième moyen est légèrement moins efficace que le premier mais beaucoup plus économique et écologique. La console ne sera pas perpétuellement allumée : on n'échappera pas à le redondance des frames cependant on shassera pendant un nombre d'heures déterminé en fonction du nombre approximatif de frames shinies qu'on aura pendant cette période, le rapport se calcule de cette façon :

Nombre de frames total = 216000x
Nombre de frames shinies = Nombre de frames total / 8192

x = Temps (en heures)



Le but de cette shasse est de tomber sur l'une de ces frames shinies. Les frames se répèteront à un certain moment puisqu'on devra redémarrer le jeu mais celles-ci défilent à 1 frame tous les 60ièmes de seconde et l'univers à voulu que nous, humains, soyons imprécis de ce fait on retombera parfois sur des frames déjà eues auparavant comme on pourrait en tomber sur d'autres...

Par exemple, on va dire que vous shassez Registeel sur la version émmeraude. Comme vous êtes un peu écolo, vous décidez de ne pas laisser votre GBA allumée durant toute la recherche de ce fait, vous opterez pour la seconde méthode.
Comme vous êtes en vacances et que le temps n'est pas fameux, vous décidez de faire 5 heures de shasse intensive sur cette version (Considérons la frame shiny comme la frame 21) .

Calculons alors le nombre approximatif de frames SH qui pourraient défiler durant ces 5 heures :

Nombre de frames total = 216000.5 = 1080000 Frames en tout

Nombre de frames shinies = 1080000 / 8192 ≃ 131 Frames shinies

Le nombre est pas mal, par conséquent, on a des chances de voir un shiny durant cette recherche.

Durant les 5 heures de recherche de la journée on tombe sur les frames : 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 6940, ..., ..., ..., 51562, y, n, ...

Après 5 heures, vous éteignez la console et allez : manger, se laver, sortir, ...

Le lendemain vous reprenez encore 5 heures et vous tombez sur les frames : 1, 3, 6, 9, 12, 15, 18 et 21 !

Comme ceci est prouvé ci-dessus, vous avez reseté le jeu, vous êtes tombé sur des frames identiques mais comme le rythme était légèrement différent (Comme dit précédement, on a 60 frames par seconde) vous êtes tombé à un certain moment sur la frame 21, la frame shiny. Ce qu'il faut retenir là-dedans, ce n'est pas la suite de nombres (Etant donné qu'en temps normal c'est aléatoire puisqu'on ne sait pas à quel moment x frames auront défilé dans la réalité) , mais la logique. En effet, il vaut mieux visualiser ce que j'ai dit d'un point de vue logique et non mathématique.

Nous pouvons alors conclure que :

• On pourra retomber sur des frames vues précédemment.
• On pourra cependant tomber sur d'autres frames étant donné que nous sommes pas précis à 100% et que c'est 60 frames par secondes (Ce qui est assez rapide) .
• Durant ces 5 heures de défilement, on aura peut-être la chance de tomber sur une frame shiny vu que 5 heures permet de faire défiler un nombre colossal de frames.


Nous pouvons donc en conclure en disant que chaque technique marche aussi bien que l'autre à la différence ou il y en a une qui sera moins écologique que l'autre et qu'une de ces deux techniques n'emploiera en aucun cas le reset.

Doit-on attendre un certain temps avant de commencer à shasser ?


Certains ont sans doute déjà dit d'attendre quelques minutes avant de commencer une shasse sur une version ayant un problème aux seeds afin de laisser défiler les frames mais est-ce forcément obligatoire ? Ce temps d'attente à pour but :

D'éviter tout soupçons de RNG abuse car à partir de 10 minutes de défilement il devient extrêmement difficile d'employer le RNG reporter afin de faire apparaître un shiny volontairement. Malgré ça, ce n'est pas vraiment conseillé puisqu'on shasse pour nous et que même en trichant avec le RNG reporter, on sait faire passer le pokémon sans aucun doute

D'éviter de retomber sur une frame shiny obtenue précédemment peu de temps après avoir démarré le jeu. Si, par exemple, vous avez obtenu untel shiny au bout de 6 minutes alors il vous sera fortement conseillé d'attendre un certain temps afin de laisser défiler les frames et donc laisser défiler la frame shiny afin de ne pas retomber sur celle-ci sous peine de se retrouver avec un pseudo-clone cependant, c'est à vous-même de déterminer le nombre de minutes d'attente en fonction du nombre de shinies que vous avez obtenu précédemment sur la même partie et en fonction du temps qu'il a mis pour apparaître. Par exemple, si vous n'avez trouvé aucun shiny avant le début de cette shasse alors on ne sera pas obligé d'attendre. Si vous avez eu un shiny à 4 minutes de jeu alors il vous sera recommandé d'attendre 5 à 10 minutes avant de commencer votre shasse afin d'éviter la frame shiny présente à 4 minutes de jeu. Si vous avez trouvé 3 shinies entre 1 minute et 30 minutes de jeu alors il vous sera conseillé d'attendre 45 minutes avant de shasser et d'opter pour la première méthode puisque le temps d'attente est relativement long... Si vous avez trouvé 1 shiny après 5 h de jeu, il n'est pas nécessaire d'attendre (A condition que vous n'ayez rien trouvé, auparavant, entre 1 et 30 minutes après le début du jeu... ) puisque c'est relativement long...


C'est à vous-mêmes de juger s'il est préférable d'attendre ou non en fonction de vos précédentes trouvailles sur cette partie !

La chance de trouver un shiny reste globalement du 1/8192 cependant celle-ci peut fluctuer à court terme puisque si on joue pendant 15 minutes de ce fait on ne voit qu'une partie des frames issues de la seed. De ce fait, il se peut que la concentration de frames shinies fasse fluctuer la proba entre 1/8000 et 1/8400. Mais cela n'a pas vraiment d'impotence puisque toutes les versions peuvent avoir ce taux qui varie à cause du court terme (Les probas se jouent souvent à long terme) . De ce fait, il n'est pas vraiment utile d'attendre 45 minutes juste pour être sur d'être dans le 1/8192 puisque globalement, la proba reste inchangée.


« Ouaip, ça ne sert pas à grand-chose d'attendre après avoir lancé le jeu, si ce n'est pour éviter des frames shiny qui seraient déjà tombées auparavant (pour ceux qui n'acceptent pas le concept de deux shinies différents avec mêmes natures et IV).
Par exemple j'ai attendu 3h après avoir lancé ma recherche de Mew pour me laisser ça de marge au cas où je voudrais shasser sur ma emeraude normalement, après mew, sur un intervalle de quelques heures (bon la trouvaille en un mois fait que du coup ce problème ne se pose plus ...).
Mais pour des gens qui ont déjà eu des shinies sur emeraude, il peut être bon d'attendre que le temps passe pour qu'ils ne retombent jamais sur les frames correspondant à leurs anciens shinies.
» - MaîtreArmand


Astuce pour shasser sur RS et Emeraude si on est sur émulateur


Pour ce qui est des astuces suivantes, tout cela se jouera sous l'émulateur Visual Boy Advance (VBA) qui est l'un des meilleurs émulateurs GBA, à ce jour.

L'émulateur possède une option relativement utile pour ce qui est de la shasse sur les versions Rubis et Saphir. Rappelez-vous, dans ces deux versions, la seed est générée avec le temps qui est lui-même généré avec la pile située dans la cartouche. Malheureusement, la pile est inexistante sur les ROM (Rien de plus logique, me direz-vous) . Cependant l'émulateur a le pouvoir d'utiliser l'horloge de notre ordinateur afin de créer la seed pour ces versions et donc de rendre la shasse par resets tout à fait possible.

Cette option s'appelle : « Horloge interne à temps réel » ou, en anglais, « Real Time clock ». Pour l'activer, rien de plus simple, il suffit de faire : Options >> Emulateur >> Horloge interne à temps réel.

Pour ce qui est de la version émeraude, il reste impossible de reseter dessus (Du moins, c'est hyper déconseillé) puisque, comme il a été démontré un peu plus au-dessus, la seed reste identique quoi qu'on fasse. De ce fait on sera toujours obligé de shasser par fuites. En revanche, l'émulateur possède aussi une autre option afin de « faciliter » la shasse sur émeraude. L'option consiste en la création d'une sauvegarde en temps réel (Save state) . Autrement dit, en plus de sauvegarder la partie, on sauvegarde tout ce qui se déroule au moment présent aussi bien la situation dans laquelle on s'y trouve tout comme le défilement des PRN. De ce fait, il est tout à fait possible de shasser sur cette version (par fuites) tout en évitant la redondance de la seed due a l'extinction de l'ordinateur (Puisque le défilement est sauvegardé avec la save state) . De ce fait, on peut très bien shasser pendant une journée, puis faire une save state avant d'éteindre son ordinateur afin de reprendre la partie, le lendemain sans pour autant se retaper tout le défilement depuis le début. Après il suffira de refaire une seconde save state avant de ré-éteindre son ordi pour la reprendre le lendemain, et cætera...

Pour faire une save state, rien de plus simple : Shift + F1/F2/F3/.../F12

L'émulateur créera aussitôt un fichier de la forme : [Nom du jeu + N° du F (1 si F1)].sgm

Pour charger une save state : F1/F2/F3/...F12 (N'oubliez pas qu'il faut charger la save correspondant au numéro enregistré).


Conclusion


Ce RNG cassé est bien embêtant ! Pour Rubis&Saphir, il suffit de remplacer la pile par une autre (Si possible une pile bouton de référence CR1616, 3V si pas la pile du pokéwalker ou la pile d'émeraude (On peut l'enlever car la seed est constante même avec la pile et pour ce qui est des évènements journaliers, on peut facilement les réactiver avec le programme baie) qui peuvent servir de « greffons » ) ou jouer sur émulateur en activant l'horloge à temps réel. Quant à émeraude, on a pas le choix : On déconseille toute shasse par resets sur cette version. Il faudra donc faire que des fuites et privilégier les versions RS pour ce qui est des resets. Cependant, les techniques présentées ci-dessus rendront la shasse par fuite nettement moins fastidieuse.

Malheureusement, hormis se soumettre à ces « règles », on ne saura rien changer. De ce fait, doit-on pour autant prohiber la version émeraude à cause de son RNG cassé ? Or que – pour votre mémoire – la version émeraude fut une version qui a révolutionné la shasse. En effet, ce fut la première version qui a instauré la shasse avec les capacités spéciales (Statik, Magnipiège, Synchro, ... ) ainsi que la première version à avoir offert le bonus de la pierre stase pour ce qui est de la reproduction. Après, cette version recèle de nombreux pokémons rares et magnifiques. Je ne citerai que le rarissime Mew qui n'est que disponible sur cette version, ou encore la seconde zone du parc safari qui comporte de nombreux pokémons de la 2G et tout aussi magnifiques en shinies : Teddiursa, Ecremeuh, Malosse, Tournegrin, Natu, ...

N'oublions tout de même pas les grands classiques de RS tels que : le trio des regis, le trio climatique, les starters ou encore les fameux Morphéo/Kecleon/Terhal. Ou bien les légendaires bonus d'émeraude comme le duo 2G ou Deoxys...
Et, qui parmi-vous serait tenté par le défi de barpau ?

Par conséquent, doit-on forcément éviter toute shasse sur ces versions sous prétextes qu'elles peuvent se retourner contre nous ?


Dernière édition par Zigzabluze le Sam 26 Sep 2015 - 10:58, édité 3 fois
Revenir en haut Aller en bas
Brasounette
Vendeuse de rêves
Vendeuse de rêves
avatar

Féminin Age : 24
Nombre de messages : 4770
Date d'inscription : 24/08/2006
Localisation : A la garderie de l'IA, en train de surveiller mes enfants
Nombre de Shinies : MY BUTT IZ SHINY TOO

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 7 Avr 2013 - 23:16

Wow, merci pour ce dossier bien complet, on en avait besoin! J'ai mis en post-it. Wink

_________________

"Venez me le dire en face, bande de crabes." - Brasounette en 2013, mais toujours valable aujourd'hui
Goomy Goomy Goomy Goomy:
 
Revenir en haut Aller en bas
http://dodohunter.skyrock.com
Metarkrai
Chercheur de Shinies
Chercheur de Shinies
avatar

Masculin Age : 23
Nombre de messages : 314
Date d'inscription : 01/06/2011
Nombre de Shinies : 125 + 23 Fails

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Lun 8 Avr 2013 - 12:41

Pour Emeraude, il y a cependant la méthode de la vidéo de combat qui permet de faire des resets, et aussi de Shasser assez souvent dessus sans trop se casser la tête, puisque la vidéo de combat enregistre aussi les frames pendant lesquelles le combat s'est déroulé, et les remet lorsqu'on la regarde, afin que la chance et les choix de l'IA soient les mêmes.

Sinon, niveau des fuites sur Emeraude, Simularbre et Kecleon échappent à cette règle, et pour les Shasser, il faut carrément perdre le combat en s'autodétruisant (ce qui reste assez rapide).


Sinon, merci pour l'explication, cela me permettra de vérifier si mes parties RS ont subi le bug de l'horloge ou si mes derniers Shinies par reset dessus l'ont subi, parce que depuis que je shasse dessus, je n'ai pas vraiment observé d'évènement dépendant de l'heure se dérouler.
Revenir en haut Aller en bas
mystic251
Premiers membres
Premiers membres
avatar

Masculin Age : 28
Nombre de messages : 1120
Date d'inscription : 04/10/2005
Localisation : Bourgogne
Nombre de Shinies : -

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Lun 8 Avr 2013 - 13:44

Y a quelques jours, ma Émeraude a eu le fameux message de la pile épuisée.
Ça change quelque chose au niveau des baies ou pas?
Sur Rubis/Saphir, je sais que oui, mais sur Émeraude, j'avoue que je suis larguer.
Revenir en haut Aller en bas
http://mystic251.skyblog.com/
Zigzabluze
Aspirant SH
Aspirant SH
avatar

Masculin Age : 21
Nombre de messages : 722
Date d'inscription : 10/07/2010
Localisation : Yerushaláyim
Nombre de Shinies : Ma bite

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Lun 8 Avr 2013 - 18:04

Ça a un impact sur les événements comme pour Rubis et Saphir. Donc il suiffit juste d'utiliser le programme baie ou d'envoyer un jirachi de gamecube jusqu'à la console, pas la peine de changer de pile si c'est emerald.
Revenir en haut Aller en bas
mystic251
Premiers membres
Premiers membres
avatar

Masculin Age : 28
Nombre de messages : 1120
Date d'inscription : 04/10/2005
Localisation : Bourgogne
Nombre de Shinies : -

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Lun 8 Avr 2013 - 23:40

Ok, çe me met "impossible de mettre a jour" ou un truc comme ça, donc je suppose que c'est déjà fais, ou que c'est mis de base sur Emeraude (vu qu'il est sortie après RfVf).
Merci de ta réponse.
Sinon j'ai remarquer un truc sympa, j'ai 4 Emeraude, et les piles sont morte toute en même temps... Si c'est pas de la chance ça Laughing
Revenir en haut Aller en bas
http://mystic251.skyblog.com/
Chozo
Nouveau Membre
Nouveau Membre
avatar

Masculin Age : 23
Nombre de messages : 143
Date d'inscription : 06/10/2007

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Sam 11 Mai 2013 - 18:54

Bonsoir,

J'ai une petite question pour les version Rubis et Saphir je pense avoir compris mais j'aimerais quand même une confirmation Smile

Si on change la pile manuellement, la génération de seed remarche correctement ou il faut faire une manipulation spéciale?

Merci ! Very Happy
Revenir en haut Aller en bas
http://shinyshunters.fr-bb.com/recensement-shineys-f2/horus-2-t1
Bigka'
Shiny's Hunter Officiel
Shiny's Hunter Officiel
avatar

Masculin Age : 33
Nombre de messages : 2511
Date d'inscription : 24/03/2006
Localisation : sur la route ta ta tadadada sur la rouuuute
Nombre de Shinies : 98 au dernier recensement

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Ven 20 Sep 2013 - 22:25

ça remarche directement
Revenir en haut Aller en bas
Mew le dieu
Shiny's Hunter Officiel
Shiny's Hunter Officiel
avatar

Féminin Age : 23
Nombre de messages : 2920
Date d'inscription : 02/02/2007
Localisation : Derrière-toi !
Nombre de Shinies : 24 à moi (1/8192) depuis qu'on m'a volé ma Diamant.

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Ven 20 Sep 2013 - 23:25

Bigka' a écrit:
ça remarche directement
Y'avait pas une histoire de devoir recommencer sa partie ?
Revenir en haut Aller en bas
Angeflo
Redac' Angeflo
Redac' Angeflo
avatar

Masculin Age : 26
Nombre de messages : 1141
Date d'inscription : 18/06/2010
Localisation : Dans mes lignes de code
Nombre de Shinies : 134 (1/8192)

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Ven 20 Sep 2013 - 23:47

Il me semble que ça pose problème pour la loterie de Nénucrique. Il faut savoir que les cartouches sont munies d'un composant permettant de gérer l'horloge. Mais il s'agit d'une horloge interne qui est invisible pour le joueur (je veux dire par là qu'elle ne correspond pas forcément à l'heure affichée dans la chambre. Mais surtout, le composant en question gère aussi la date, et qui sert très certainement dans le cas de la loterie. Quand la pile meurt, le composant d'horloge n'est plus alimenté, et les valeurs stockées dans celui-ci sont réinitialisées. Quand on installe la nouvelle pile, l'horloge repart depuis sa valeur initiale (l'heure à laquelle ça s'est arrêté est perdue), et il faut attendre le lendemain de la date de dernière participation à la loterie pour pouvoir rejouer, mais comme la date est retardée (de plusieurs années dans la majorité des cas), il faut attendre jusqu'à ce que l'horloge arrive à la date de dernière participation + 1 jour (et encore une fois, dans la majorité des cas, plusieurs années).
Concernant les RNG, je ne sais pas, car si le jeu stocke dans la sauvegarde l'état "Pile morte", permettant de dire au jeu "Ne va pas chercher la seed dans l'horloge, la pile est morte, ça sert à rien", bah le jeu pourrait ne pas aller chercher la seed dans l'horloge même avec la nouvelle pile. (Ptet que le programme Baie fait quelque chose la-dessus en fait, je ne sais pas)

_________________
Programme : Calculateur de pourcentages

SH Card:
 
Search Card:
 
Legendary Card:
 
Course aux types:
 



Revenir en haut Aller en bas
https://www.youtube.com/channel/UCCo7NmTbMF7bpcRHjKuSeRA
Mew le dieu
Shiny's Hunter Officiel
Shiny's Hunter Officiel
avatar

Féminin Age : 23
Nombre de messages : 2920
Date d'inscription : 02/02/2007
Localisation : Derrière-toi !
Nombre de Shinies : 24 à moi (1/8192) depuis qu'on m'a volé ma Diamant.

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Sam 21 Sep 2013 - 0:32

Donc conclusion : vaut mieux recommencer la partie ?
Revenir en haut Aller en bas
Angeflo
Redac' Angeflo
Redac' Angeflo
avatar

Masculin Age : 26
Nombre de messages : 1141
Date d'inscription : 18/06/2010
Localisation : Dans mes lignes de code
Nombre de Shinies : 134 (1/8192)

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 22 Sep 2013 - 15:24

Par précaution, c'est ce que je fais.

_________________
Programme : Calculateur de pourcentages

SH Card:
 
Search Card:
 
Legendary Card:
 
Course aux types:
 



Revenir en haut Aller en bas
https://www.youtube.com/channel/UCCo7NmTbMF7bpcRHjKuSeRA
Gekkouga
Aspirant SH
Aspirant SH
avatar

Féminin Age : 22
Nombre de messages : 1366
Date d'inscription : 25/07/2007

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Ven 27 Sep 2013 - 16:12

Tenez, si jamais quelqu'un voulait vérifier si son jeu était une contrefaçon ou non, y'a un petit encadré à dérouler sur ce site : http://www.pokemon-legendary.com/downloads/roms/index.html

C'est les identifiants, codes du jeu interne, ça peut être utile %)
Revenir en haut Aller en bas
Shikamaru
Nouveau Membre
Nouveau Membre
avatar

Masculin Age : 23
Nombre de messages : 167
Date d'inscription : 20/08/2007
Localisation : ROUTE 12 YEEEEEAH XD

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 29 Sep 2013 - 10:53

Bonjour tout le monde.
J'ai changé ma pile défectueuse de ma version Saphir, et j'ai recommencé une partie.
Cependant j'ai remarqué que les évènements liés au temps étaient toujours bugués. ( baies qui restent au même stade de floraison, timmy qui ne veut pas se rebattre ) Je précise que je n'ai plus le message d'erreur "Pile endommagée blabla"
On est bien d'accord sur le fait que c'est bien le temps de la pile ( = temps IRL ) qui est pris en compte et non le temps de jeu ? C'est à dire que Timmy devrait se rebattre toutes les 24h IRL et non 24h de temps de jeu ?
Si c'est bien le cas, pensez-vous que la génération des Pokémons est elle aussi affecteé ?
J'ai pas envie de faire des resets dans le vent comme quelques-uns ici il y a quelques années sur Emeraude ...
Merci d'avance à ceux qui sauront me répondre ! Smile
Revenir en haut Aller en bas
Zigzabluze
Aspirant SH
Aspirant SH
avatar

Masculin Age : 21
Nombre de messages : 722
Date d'inscription : 10/07/2010
Localisation : Yerushaláyim
Nombre de Shinies : Ma bite

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 4 Oct 2015 - 21:08

Edit, un patch pour les versions US a été publié récemment. Celui-ci permet de corriger le bug des RNG (Grosso modo, on a remarqué il y a 1-2 ans que la version émeraude aurait pu avoir un RNG semblable à celui de RfVf mais pour une raison obscure il y a une instruction qui annule celle-ci et donne le RNG broken que nous connaissons).

- Lien du patch : mediafire.com download/ceo1x55qwjolmr5/emerald_U_rng_fix.ips
- Source : http://www.pokecommunity.com/showthread.php?t=217115

Allez have fun. Je ne sais pas mais je sens que je vais me faire un Héricendre o/
Revenir en haut Aller en bas
Tux
Chercheur de Shinies
Chercheur de Shinies
avatar

Masculin Age : 20
Nombre de messages : 449
Date d'inscription : 20/10/2007
Localisation : En train de jouer à LoL la plupart du temps

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 4 Oct 2015 - 22:17

Attention, je me suis basé sur le dernier post, et je n'ai pas vraiment testé en détail. Ca me semble correct néanmoins.
EDIT : Et bien non ...

... Bon dieu, il n'y a vraiment plus personne (ou presque) sur le forum ... Shocked
Revenir en haut Aller en bas
https://twitter.com/#!/TuxSH
Brasounette
Vendeuse de rêves
Vendeuse de rêves
avatar

Féminin Age : 24
Nombre de messages : 4770
Date d'inscription : 24/08/2006
Localisation : A la garderie de l'IA, en train de surveiller mes enfants
Nombre de Shinies : MY BUTT IZ SHINY TOO

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Mer 7 Oct 2015 - 16:36

Détaille Tux? Le test, pas l'absence de gens Razz

_________________

"Venez me le dire en face, bande de crabes." - Brasounette en 2013, mais toujours valable aujourd'hui
Goomy Goomy Goomy Goomy:
 
Revenir en haut Aller en bas
http://dodohunter.skyrock.com
Tux
Chercheur de Shinies
Chercheur de Shinies
avatar

Masculin Age : 20
Nombre de messages : 449
Date d'inscription : 20/10/2007
Localisation : En train de jouer à LoL la plupart du temps

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Mer 7 Oct 2015 - 19:27

Pourquoi la méthode du dernier post (dont j'ai posté un pathc) ne marche pas (d'après mes tests) ?

Sur RF/VF, la "graine" est initialisée selon la valeur d'un timer; le temps est compté entre la scène avec Ectoplasma et l'apparition du menu "Continuer".

Le code de "seeding" de Rf/Vf est présent sur Emeraude mais n'est jamais utilisé. L'idée du patch était de forcer l'utilisation de cette fonction. Sauf que sur Emeraude, le seeding est réalisé dès le lancement de la cartouche, avant même les copyrights. Dans ces conditions, le timer vaudra toujours 0 de toute manière ...
Revenir en haut Aller en bas
https://twitter.com/#!/TuxSH
Metarkrai
Chercheur de Shinies
Chercheur de Shinies
avatar

Masculin Age : 23
Nombre de messages : 314
Date d'inscription : 01/06/2011
Nombre de Shinies : 125 + 23 Fails

MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   Dim 11 Oct 2015 - 13:45

Il y a une autre fois où la fonction de seeding est utilisée sur Emeraude, lorsque l'on lance une nouvelle partie.

A un certain moment lors de la création du joueur, un timer est lancé comme sur RfVf, et permet de déterminer une seed pour la nouvelle partie (jusqu'au reset).

Cependant, même si j'ai retrouvé dans le Memory Viewer la valeur qui semble être la seed lors de la nouvelle partie (dans une zone de données qui a l'exacte même tronche que sur RfVf), je n'arrive pas à retrouver la frame de génération du starter ou d'un Pokémon sauvage sur RNG Reporter.
Du coup, il y a bien une seed générée lorsque l'on fait une nouvelle partie sur Emeraude, mais ce n'est apparemment pas la valeur stockée en 0x04000140 qui sert de seed.

Cette instruction pourrait peut-être être parasitée pour permettre de générer à nouveau une seed sur Emeraude
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [Dossier] RS aux piles mortes et Emerald RNG broken   

Revenir en haut Aller en bas
 
[Dossier] RS aux piles mortes et Emerald RNG broken
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
ShinysHunters :: Pokémon :: Pokémon (jeux vidéos) :: Labo secret - hack rom et données cachées-
Sauter vers: