A few days ago, user: Myren Eario posted a thread and accompanying YouTube video in which they demonstrated how to use Metronome calls to reverse engineer the battle's seed and accurately predict the subsequent battle RNG for all gens bar 2 and 4. While obviously a competitive issue, the likelihood of someone bringing this to an SPL game and pulling it off is rather low. A few more days after that, however, a new video was posted showing how damage rolls can be used to achieve similar results, granted you know the exact stats of the opposing Pokemon. While both of these methods are likely impractical to execute in a tournament game, on a timer and against a high-level opponent, even assuming one has the technical knowledge on how it all works, PS' RNG being crackable at all is, of course, a huge issue in fairness and competitive integrity, especially for gens like RBY and GSC with limited Pokemon and spreads.
Per-gen cart accuracy is off the table for a few reasons:
1. The RNG formulas for most games are not well-known or well-documented, requiring extensive testing and reverse engineering that we simply do not currently have the time or bandwidth for, especially on such a short timeframe
2. For RNG formulas that are known, no matter to how few people, publicizing these findings is a risk to the security of the games themselves, which is not something we want to touch.
3. While most in-game RNG methods are pragmatically secure, they are not programmatically secure, with no guarantee that they will remain pragmatically secure into the future.
A Note On How RNG Works And What We Have Actually Changed:
I have updated the the RNG algorithm we use, AKA how all of the random numbers are actually generated based on the RNG seed of each battle, which are the numbers plugged into the algorithm to get the RNG we see in battles. Without knowledge of how RNG seeds are determined on cart, PS will still generate seeds as normal (completely randomly), but the algorithm has been changed from Gen 5's Linear Congruential Generator algorithm to a CSPRNG.
This thread is being made in PR due to it being a major change to PS' battle system, and we wanted to let you know the change has been made to assuage concerns as we head into a new year of the tournaments circuit.
Per-gen cart accuracy is off the table for a few reasons:
1. The RNG formulas for most games are not well-known or well-documented, requiring extensive testing and reverse engineering that we simply do not currently have the time or bandwidth for, especially on such a short timeframe
2. For RNG formulas that are known, no matter to how few people, publicizing these findings is a risk to the security of the games themselves, which is not something we want to touch.
3. While most in-game RNG methods are pragmatically secure, they are not programmatically secure, with no guarantee that they will remain pragmatically secure into the future.
A Note On How RNG Works And What We Have Actually Changed:
I have updated the the RNG algorithm we use, AKA how all of the random numbers are actually generated based on the RNG seed of each battle, which are the numbers plugged into the algorithm to get the RNG we see in battles. Without knowledge of how RNG seeds are determined on cart, PS will still generate seeds as normal (completely randomly), but the algorithm has been changed from Gen 5's Linear Congruential Generator algorithm to a CSPRNG.
This thread is being made in PR due to it being a major change to PS' battle system, and we wanted to let you know the change has been made to assuage concerns as we head into a new year of the tournaments circuit.