Jump to content

User:Sherkel/RNG Notes: Difference between revisions

m
no edit summary
>Sherkel
No edit summary
>Sherkel
mNo edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1:
Well well well, how the turntables...
== Generation III ==
 
{| class="wikitable"
|+ Sequential RNG calls
Line 13:
| Colo/XD || 4 || 5 || 1 || 2
|}
 
[https://sourceware.org/git/?p=glibc.git;a=blob;f=stdlib/random_r.c;hb=glibc-2.26#l362 Why does this multiplier look so...familiar?]
 
Reason for Method 4: [https://patater.com/gbaguy/gba/ch5.htm VBlank takes priority when it occurs]; Box probably doesn't emulate the CPU timing well enough for uninterrupted Method 1
 
XD LCG: increment 269EC3, multiplier 343FD
 
ID in FRLG is 0x04000104 (Timer1 -- https://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm#Memory-Mapped%20Hardware%20Registers ); SID is upper 16 of RNG state
Method H determines nature first (to account for Synchronize) based on what it would be otherwise, then conducts a "hunt" for a PID that matches it in the possible ones for the numbered method, then generates the two IV halfwords based on above
 
"FRLG initial seed is Timer1 as well
 
The timer starts counting when the screen changes to the "Press Start"-Screen.
 
This is initiated by the first button press or waiting till intro is finished.
 
Once it started counting, it will do so until the initial seed has been determinated.
 
A soft reset will have the same effect as if you switch off the GBA. "
 
~ flovv
 
http://www.coranac.com/tonc/text/timers.htm
 
Method H determines nature first (to account for Synchronize) based[https://github.com/Admiral-Fish/RNGReporter/blob/3afa1c6cdb14702b6de842b2766cf9e1b2e767eb/RNGReporter/Objects/FrameGenerator.cs#L3164 onand whatthe itroutine woulddescribed be otherwisehere]), then conducts a "hunt" for a PID that matches it in the possible ones for the numbered method, then generates the two IV halfwords based on above
 
How the hunt (also in Gen 4's Method J/K) works: [https://www.smogon.com/forums/threads/rng-manipulation-in-firered-leafgreen-wild-pok%C3%A9mon-supported-in-rng-reporter-9-93.62357/page-16#post-3807317 The game takes a seed and does (seed >> 16) % 0x19. Then it starts making PIDs and doing PID % 0x19 and it keeps making PIDs until it gets a match to that original (seed >> 16) % 0x19.]
 
Method H is rarely H-1 as it's slow enough to fill up VCount
 
[https://www.smogon.com/forums/threads/rng-manipulation-in-firered-leafgreen-wild-pok%C3%A9mon-supported-in-rng-reporter-9-93.62357/page-16#post-3809232 In some maps, the LCG advances exactly twice per frame]
 
blocks of three 31s (0b11111 11111 11111) are bold
Line 39 ⟶ 65:
| 5 || 1158F7DF || 1158 || 6536D3E1
|}
(*) E1695F0A is Timid and ais nearbythe framePID (48),of but not the first Timid"otherwise frame" after 1 (25)...48
 
== Generation V ==
 
Initial seeding:
 
"Time is in (decimal)
 
00SSMMHH
 
HH from 00-11 (12-11AM), 52-63 (12-11 PM).
 
0XDDMMYY date
 
X=weekday, [starting at 0]"
 
~ Kaphotics
 
Kazowar: OFFSETS BLACK (add 0x20 to offset for white)
 
02216084 = SEED
 
0221608C = 0x5D588B656C078965
 
02216094 = 0x0000000000269EC3
 
SEED = (0x5D588B656C078965 * SEED) + 0x0000000000269EC3;
 
== Generation VIII ==
Shiny generation: twitter.com/Kaphotics/status/1197027047224176640
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.