theSLAYER Posted August 26, 2021 Posted August 26, 2021 I will try to provide a brief explanation as best I can, using random snippets of info I found. At times, we'll refer Method (Value) or bunch of letters like ABCD or BACD. These are just examples of terminology used across the ages. (Though, I cannot imagine this post ending up being brief. It gets pretty darn technical)What is RNG? Before Methods and PIDIVs, we need to talk about how Random Number Generators (RNG) in Gen 3/4 works. They use RNG to achieve certain 'randomness' to the generated stats/values, however the mathematical formula for their RNG system is known. Thus, we know how what each subsequent "random number" would be. Explanation Kaphotics given ten years ago: Quote Method 1 Pokemon (J/K as well) uses this particular algorithm to advance the RNG seed (a "call") SEED*0x41c64e6d + 0x6073 = SEED+1 SEED+1==> an advanced seed They used this thing called a Linear Congruential Generator. So with an initial seed, we will know what the result seed+n would be, based on the simple calculation. By knowing how many frames go by in a second, and how each frame corresponds to an RNG call, people have tried to use a combination of timers and RNG tools to abuse this RNG to obtain stats they want on a Pokémon, hence explains the term RNG abuse. Short answer: We know the algorithm to their Random Number Generators (RNG), so we know the values that would come. Their RNG isn't truly random. Abusing this to get the stats you want on retail hardware is known as RNG abuse. Why do Gen 3 or Gen 4 Pokémon have "correlated stats" or "PIDIV correlations"? Now that we talked about RNG, we can talk about what these "Methods or ABCD" is. Even with minor interruptions between the sequential calls, we know it'll follow the pattern of: PID-High, PID-Low, IVs-High, IVs-Low. (beside certain exceptions. We'll get to it later) For this question, we'll first give the short answer. A slightly longer explanation is part of Method 1's explanation. Short answer: Because we know how their RNG functions, and we know what values would be produced when the RNG function is called in succession, we know what values the following stats are supposed to have. What is Method 1? Spoiler Quick side note: it appears calling them Methods may be an retro -> modern way of dealing with the RNG types, and calling them by letter designation (like ABCD) may be more retro altogether. I'm using both in this instance, in case you (the reader) comes across the more retro style of referring to it on some older posts or older tools. While you no longer see ABCD on PKHeX, but instead see it labelled as Method 1, It may still indicate Reverse Method 1 as BACD_R or BACD_U Once again, to quote Kaphotics (with minor alterations on my part, in the square brackets): Quote Let there be 6 numbers, A, B, C, D, E, and F, where each one is a subsequent call to the RNG algorithm. Meaning A -> B -> C -> D -> E -> F. Now the format is PID-High, PID-Low, IVs-High, IVs-Low, and for Method 1 (common for wild nds and gba pokes), its A-B-C-D, or ABCD. So a method 1 Pokemon is ABCD. For [reverse method 1], it's BACD. This means the PID upper and lower halves have been swapped, leaving the same IVs. Hence the strong similarity to method 1 PIDIVs In this case, ABCD is [A] PID-High, [B] PID-Low, [C] IVs-High, [D] IVs-Low.Reverse Method 1 swaps the PID generation around. Hence [B] PID-Low, [A] PID-High, [C] IVs-High, [D] IVs-Low. Thus that explains what the letters mean to Method 1 and Reverse Method 1.Summary: Successive RNG calls are understood, and how those successive calls translates to stats are also understood. There are a few variations to these "chain of calls that become stats", and they are called Methods. Method 1 is basically the most common generation method. A breakdown of the sequential calculations of ABCD (and what it enatails) are seen above.Reverse Method 1 swaps the PID generation around. In terms of letters, it is identified by the swapping of AB to BA. When talking about Highs and Lows, what do they mean? This is in reference to PID-High, PID-Low or IVs-High, IVs-Low. The RNG calls generate a 16bit number at a time. The PID itself is a 32bit number. So in order to get a 32bit number from the RNG calls, it calls two 16bit numbers then concatenates them together. The high and low in this example refers to the generation of the highest and lowest 16 bits of the 32-bit personality value respectively. The full set of IVs is also determined from a 32bit number. This number is generated in succession, first high then low. The IVs for each of the stat, from HP to Special Defense, take up the lowest 30 bits of this 32bit number, each IV taking 5 bits. What is Method 3 and 4? A quote from Sabresite: Quote Method 2 is ABDE Method 3 is ACDE Method 4 is ABCE The reason for Method 3 and 4 is because of vBlank. vBlank is an async function that executes every 60th visual frame to render new graphics and is responsible for animation. So fishing or caves, where there is screen movement has a higher vBlank rate. There is at least 1, sometimes 2 vBlanks depending on how many PIDs roll. And where the vBlanks start depends on the circumstance. Since nature confirmation uses modulus which is stupidly expensive in terms of cpu, there is almost always a vBlank during the nature confirmation. and another quote: On 1/28/2018 at 7:52 PM, Sabresite said: The different methods are a byproduct of something called vblank. Vblank is an interrupt function that happens as a result of screen rendering and it executes an RNG call. During wild encounters, the game picks a nature, then keeps rolling PIDs until it finds one that matches, then generates IVs. There is almost always a single vblank (dead RNG call) between battle start and the chosen PID. Sometimes two vblanks if enough PIDs are rerolled. Other times that second vblank happens during the PID roll. Theoretically could be between the PID halves, between the PID and IVs, or the IVs themselves. Method 1 is 0 or 1 vblank before PID is chosen.(often referred to as Method H1) Method 2 is 1st or 2nd vblank between PID halves. (often referred to as Theoretical Method H3). This method is so exceedingly rare (nobody has reproduced one or found one in the wild) it is skipped where Method 3 is often called Method 2. Method 3 is 1st or 2nd vblank between PID and IVs. (often referred to as Method H2) Method 4 is 1st or 2nd vblank between IV halves. (Often referred to as Method H4) So in this case, for example, Method 3 is [A] PID-High, [B] V-blank, [C] PID-Low, [D] IVs-High, [E] IVs-Low. Remove the V-blank letter, you get ACDE. Summary: An interruption called vblank is responsible for creating slight variation in the RNG calls used to determine Pokémon stats. We call these variations Methods. For Methods 2-4, they have a dead RNG call in between the sequential generation of stats. While not mentioned, dead RNG calls that is a consequence for rendering new visual frames occurs more commonly in situations related to fishing and/or cave encounters. What is this Method H listed above (and also in some tools) Quote from Sabresite Quote H indicates it is a wild encounter meaning it does the following: Battle? (Check repels and attractants) Encounter Table Entry Matching Choose Nature or Ability Nature Sync / Item Nature Confirm (Roll PID until matches Nature) IVs Static encounters do not use H since there is no battle check and encounter table. Method H(value) primarily uses the same calculations as the Methods 1 discussed above, except it does the extra things listed in the quote. In addition to Method H(value), there's also Method J and Method K, which DPPt and HGSS respectively perform their own wild battle extension checks for wild encounters, somewhat similar to what Method H is doing here. What scenarios do these Methods generally show up for? Just some scenarios listed: On 2/5/2018 at 1:15 PM, Kaphotics said: ABDF: None ABEF: None BACD-R: Most gen3 events BACD-U: Mystery Mew (and maybe others, off the top of my head). You can see which type of method an individual pkm has with PKHeX (hold control and view the legality). On 2/5/2018 at 2:04 PM, Sabresite said: BACD any seed, no antishiny - Pokemon Box ABDE any seed, no antishiny - Wondercards eggs BACD Force Antishiny - PCNY BACD Force Shiny (broken seeds) - Berry Glitch Specific Seeds - Jeremy / Mystery Mews BACD with Lookup - Negaiboshi, PCJP 5th anniv eggs BACD with broken checksum seeds - wishmkr BACD with restricted seeds and stupid antishiny - preOctober 2005 BACD fixed checksum seeds, proper antishiny - almost all post October 2005 Primary methods are also listed at the bottom of the page in the link: Why does BACD end with "U" or "R"? The "_U"/"-U" and "_R"/"-R" stands for unrestricted and restricted respectively. As we've discussed earlier, each Method's RNG starts calculation with a seed. Unrestricted and restricted refers to whether the seed is allowed to be any value (hence unrestricted), or has restrictions to what value it could be (hence restricted). Quote from Sabresite: Quote BACD-Restricted is seeds between 0 and 0xFFFF. BACD-Unrestricted means it can have any seed. [In addition,] Also BACD-R-S means BACD Restricted [Forced] Shiny which applies to Berry Glitch and PCJP 2003 Shiny Pichu eggs. BACD-R events are split into 3 categories: - Can be shiny - Cannot be shiny (seeds are skipped) - Cannot be shiny (pid is changed by looping and adding 1 until it is not shiny) So BACD_R mostly appears on event mons, tho without knowing all the stats it should be based on calculation from seed (including OT Gender), I say don't gen them. So far, the only BACD I remember seeing being generated in-game is Unown in FRLG. They are flagged as Method_1_Unown in PKHeX. What is Overworld8? unrelated, but also: Why am I being told my Max Den Pokémon is illegal even though it is flagged legal by PKHeX? While newer games are properly randomized for the most part, in order to for you to encounter the same overworld mon on every reset when you saved before it, as well as in order for you to share the same raid when you reload the save, the RNG "seed" is stored in the save. Even tho the RNG algorithm is different from previous gens, we also understand how that works [It uses xoroshiro]. We also understand how the stats are generated sequentially. Thus, correlated stats. You can read more about it here: So this has been one heck of a long post. Any corrections, post in the thread. If you don't get it.. well there's nothing I can do to elucidate further, probably. Worse come to worst, just use the proper generation methods as per recommended at the bottom of the PID Mismatch thread. 2
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now