Past Gen RNG Research

Is playing an english (UK) White 2 Version on a german DSi a special case you guys need data for? Or is it just the version language that matters for RNG purposes?
Also, is RNG'ing (including the calibration process, finding your parameters and such) significantly easier on a DS Lite than on a DSi? Or is there no difference?
 
Is playing an english (UK) White 2 Version on a german DSi a special case you guys need data for? Or is it just the version language that matters for RNG purposes?
Also, is RNG'ing (including the calibration process, finding your parameters and such) significantly easier on a DS Lite than on a DSi? Or is there no difference?
It's language specific so you're fine. I'm actually shocked that it works on the German DSi for you. The DS Lite is slightly easier because you can set the clock with the A button instead of being forced to use the touch screen and it has a second hand on the main menu. Really though it's a very minor difference and you should be fine with either.
 
My results:

Game: Spanish White 2
Console: Spanish 3DS
Mac Address: 2C10C1074ABA
Date Started: December 11th, 2011
Time Started: 10:15:25
First Pokemon: https://www.pokecheck.org/?p=detail&uid=2378831
Second Pokemon: https://www.pokecheck.org/?p=detail&uid=2378833

I couldn´t capture a Chatot, so I saved the game ONE time in order to advance ONE frame the PIDRNG. I assumed that save the game is the same in BW2 that in BW. If it´s wrong, tell me and I will make another test the weekend, including Black 2 results.
 
Saving still advances the PIDRNG so that works fine. Thanks, I'll try to get Reporter updated for Spanish games ASAP, probably waiting on the Black 2 results.

Initial seed: 5F9C5140EF3E439A
Nazo = 0x27a5fb0, Second = 33, timer0 = 1662, vcount = ac, vframe = 8
 
OK, thanks. BTW, B2 results:

My results:

Game: Spanish Black 2
Console: Spanish DSi
Mac Address: 0024F3FCE2C2
Date Started: December 11th, 2011
Time Started: 10:15:25
First Pokemon: http://www.pokecheck.org/?p=detail&uid=2426955
Second Pokemon: http://www.pokecheck.org/?p=detail&uid=2426965

Same process that my previous test. Made it in Castelia's City secret grass (no idea if PIDRNG has random advancements in this place, but is the only available place without NPCs atm...)
 
OK, thanks. BTW, B2 results:

My results:

Game: Spanish Black 2
Console: Spanish DSi
Mac Address: 0024F3FCE2C2
Date Started: December 11th, 2011
Time Started: 10:15:25
First Pokemon: http://www.pokecheck.org/?p=detail&uid=2426955
Second Pokemon: http://www.pokecheck.org/?p=detail&uid=2426965

Same process that my previous test. Made it in Castelia's City secret grass (no idea if PIDRNG has random advancements in this place, but is the only available place without NPCs atm...)
Initial: 8601231516C1EF36
Nazo = 0x27a6070, Second = 26, timer0 = 187e, vcount = bc, vframe = 8
 

Bond697

Dies, died, will die.
is a Researcher Alumnus
the egg seed bug in bw2 also applies to ivs, so the ivs will be set for the first egg. they make, no joke, 18 ivs for a given egg and only use the middle 6. this is very depressing. they really drive me crazy sometimes.
 

Kaphotics

Remodeling Kitchens
is a Researcher Alumnusis a Contributor Alumnus
Move Recommender in Humilau



rand(5) for the recommended move. Simple.

Code:
Hey, Trainer! The move I recommend for you is none other than Roost! Roost is a move that can restore HP! Also, if a Flying-type Pokémon uses it, it won't be Flying type during the turn, which means the type matchup will change. A supereffective move will be an ordinary move, or a move that would otherwise have no effect will land on it. It's a quite tricky move.
Hey, Trainer! The move I recommend for you is none other than Synthesis! Synthesis is a move that can restore HP! When the sunlight is harsh, the Pokémon can restore a lot of HP. But in rain, hail, or a sandstorm, the Pokémon cannot restore HP very much. So, watch out for the weather!
Hey, Trainer! The move I recommend for you is none other than Heal Bell! Heal Bell can heal status conditions of allies. It's a loving move to heal status conditions of all the party Pokémon!
Hey, Trainer! The move I recommend for you is none other than Tailwind! Tailwind doubles the Speed of all party Pokémon the turn the move is used and for the next three turns. If Pokémon can act before their opponents, they can have an upper hand!
Hey, Trainer! The move I recommend for you is none other than Pain Split! Pain Split adds the user's HP to the target's HP, divides it by two, and has the Pokémon share it. Use it when the target's HP is higher than your Pokémon's HP. You can reduce the opponent's HP while recovering your Pokémon's HP.
Was just a test so I could see how the game gets random stuff by just using scripts. The game uses script command 00CB to get a random number with a certain max value (in this case, 5) and then displays an entry of text corresponding to the resultant random number. Slash and I were discussing other ways to calibrate besides catching... the TV is much more 'random' so that'd probably be a better route. That's for later :)
 
Alright, met with a few friends over the weekend and one of them had an Italian White 2.

Game: Italian White 2
Console: Italian 3DS
Mac Address: 58BDA32F0D0F
Date Started: December 11th, 2011
Time Started: 10:15:25 (actual second might be something like 33, since I find there tends to be an 8 second delay on the 3DS)
First Pokemon: https://www.pokecheck.org/?p=detail&uid=2841732
Second Pokemon: https://www.pokecheck.org/?p=detail&uid=2840953

Since he was somewhat early in the game, I believe the only area with no WNPCs was the castelia park, so I went for that. The only NPC there is static and I believe it's not tied to the rest of castelia, so there should be no extra frame advancements.
 
Alright, met with a few friends over the weekend and one of them had an Italian White 2.

Game: Italian White 2
Console: Italian 3DS
Mac Address: 58BDA32F0D0F
Date Started: December 11th, 2011
Time Started: 10:15:25 (actual second might be something like 33, since I find there tends to be an 8 second delay on the 3DS)
First Pokemon: https://www.pokecheck.org/?p=detail&uid=2841732
Second Pokemon: https://www.pokecheck.org/?p=detail&uid=2840953

Since he was somewhat early in the game, I believe the only area with no WNPCs was the castelia park, so I went for that. The only NPC there is static and I believe it's not tied to the rest of castelia, so there should be no extra frame advancements.
Thanks for helping us out.

Initial Seed: 6C613FEFCA843731 He memory linked and there was one PIDRNG advancement probably caused by NPCS.

Nazo = 0x27a5ed0, Second = 33, vframeBase = 0x8, timer0 = 165e, vcount = ac, vframe = 8
 

Kaphotics

Remodeling Kitchens
is a Researcher Alumnusis a Contributor Alumnus
Castelia Massage +Happiness

Code:
rand(100)
	if     <=5  then increase Happiness by 30
	elseif <=25 then increase Happiness by 10
        else             increase Happiness by 5.

 6% to +30   (0-5)
20% to +10   (6-25)
74% to +5    (26-99)

Code:
Offset: 403 StoreRandom 0x400A 100 
Offset: 409 StoreVar 0x400A 
Offset: 413 CompareTo 5 
Offset: 417 Condition LOWER/EQUAL
Offset: 421 If FALSE Function 9 (458 )
Offset: 428 0xFD 0x8022 30 1 
Offset: 436 Message 0 4 10 5 0 0 = ' There. All done!\r\nThe massage has made your Pokémon\nmuch more friendly to you! '
Offset: 448 WaitButton 
Offset: 450 CloseMessageKeyPress 
Offset: 452 Jump  Function 10 (531 )

=== Function3=== 

Offset: 458 StoreVar 0x400A 
Offset: 462 CompareTo 25 
Offset: 466 Condition LOWER/EQUAL
Offset: 470 If FALSE Function 11 (507 )
Offset: 477 0xFD 0x8022 10 1 
Offset: 485 Message 0 4 11 5 0 0 = ' There. All done!\r\nThe massage has made your Pokémon\nmore friendly to you! '
Offset: 497 WaitButton 
Offset: 499 CloseMessageKeyPress 
Offset: 501 Jump  Function 10 (531 )

=== Function4=== 

Offset: 507 0xFD 0x8022 5 1 
Offset: 515 Message 0 4 12 5 0 0 = ' There. All done!\r\nThe massage has made your Pokémon\na little bit more friendly to you! '
Offset: 527 WaitButton 
Offset: 529 CloseMessageKeyPress 
Offset: 531 SetFlag 2761 
Offset: 535 Jump  Function 12 (557 )
And yes, it is "LOWER/EQUAL" not "LOWER"; there are multiple compare cases that the game can do.
 

chiizu

PPPPPPPPPPPPPPPPP RNG
is a Programmer Alumnusis a Researcher Alumnus
I bought 3DS XL few days before, so I cannot get Victory Road or Route 9 yet. That's why I captured pokemons in Castelia Park like other people.

Game: Korean White 2
Console: Korean 3DS XL
Mac Address: 34AF2CFAE853
Date Started: December 11th, 2011
Time Started: 10:15:25
First Pokemon: https://www.pokecheck.org/?p=detail&uid=3030147
Second Pokemon: https://www.pokecheck.org/?p=detail&uid=3030193
We won't be able to use this data until we have some data from the game running on an original DS or DS lite. If you have access to one of those, could you do the same procedure there as well?

Also, do you have access to Korean Black 2, Black 1, and/or White 1? We need DSi/3DS info for those games as well.
 

Kaphotics

Remodeling Kitchens
is a Researcher Alumnusis a Contributor Alumnus
Pickup Changes in B2W2

Different table, that's all. No more lucky eggs ;(

decompressed overlay9_0166.bin @ 0x7E2

Code:
11 00 Potion
12 00 Antidote
1A 00 Super Potion
03 00 Great Ball
4F 00 Repel
4E 00 Escape Rope
1B 00 Full Heal
19 00 Hyper Potion
02 00 Ultra Ball
1C 00 Revive
32 00 Rare Candy
50 00 Sun Stone
51 00 Moon Stone
5D 00 Heart Scale
17 00 Full Restore
1D 00 Max Revive
33 00 PP Up
29 00 Max Elixir
Code:
32 00 Rare Candy
19 00 Hyper Potion
5C 00 Nugget
DD 00 King's Rock
17 00 Full Restore
26 00 Ether
16 01 Iron Ball
19 02 Prism Scale
28 00 Elixir
19 02 Prism Scale
EA 00 Leftovers
19 02 Prism Scale
The rare item table is located before the regular table.


It's pretty obvious how it works.

For the rare table, it starts off with the first two. For every 10 levels, shift down one row. Similar deal for the common table.
 
Obedience in BW2:
If the Pokemon's level is above number of badges * 10 a random call is made to see if the Pokemon will listen to you. The check is
if (rand(badges * 10 + level + 1) < badges * 10)

If this fails the Pokemon won't attack, there's a few different possible results.
First if some flag on the Pokemon is set it will always loaf around.
rand(0x100) is called and compared to (level - badges * 10).
Depending on the result of this comparison it'll fall asleep, display "wont obey" or display "is loafing around". I'm a bit tired so I haven't managed to exactly grasp the C code behind the comparison for these 3 different states. I'm mostly mystified by sub_21A0B68. Here's the assembly:
Code:
ROM:021A0B22 loc_21A0B22
ROM:021A0B22 MOVS    R0, 0x100
ROM:021A0B26 BL      _brng__
ROM:021A0B2A LSLS    R0, R0, #0x10
ROM:021A0B2C LSRS    R0, R0, #0x10
ROM:021A0B2E STR     R0, [SP,#0x18+var_18]
ROM:021A0B30 LDR     R0, [SP,#0x18+var_18]
ROM:021A0B32 SUBS    R1, R4, R6
ROM:021A0B34 CMP     R0, R1
ROM:021A0B36 BGE     loc_21A0B48
ROM:021A0B38 MOVS    R0, R5
ROM:021A0B3A MOVS    R1, R7
ROM:021A0B3C BL      sub_21A0B68
ROM:021A0B40 CMP     R0, #0
ROM:021A0B42 BNE     loc_21A0B48
ROM:021A0B44 MOVS    R0, #2
ROM:021A0B46 POP     {R3-R7,PC}
ROM:021A0B48 ; ---------------------------------------------------------------------------
ROM:021A0B48
ROM:021A0B48 loc_21A0B48                             ; CODE XREF: sub_21A0A84+B2j
ROM:021A0B48                                         ; sub_21A0A84+BEj
ROM:021A0B48 SUBS    R2, R4, R6
ROM:021A0B4A LSLS    R0, R2, #0x10
ROM:021A0B4C LSRS    R1, R0, #0x10
ROM:021A0B4E LDR     R0, [SP,#0x18+var_18]
ROM:021A0B50 SUBS    R0, R0, R1
ROM:021A0B52 LSLS    R0, R0, #0x10
ROM:021A0B54 LSRS    R0, R0, #0x10
ROM:021A0B56 CMP     R0, R2
ROM:021A0B58 BGE     loc_21A0B5E
ROM:021A0B5A MOVS    R0, #3
ROM:021A0B5C POP     {R3-R7,PC}
ROM:021A0B5E ; ---------------------------------------------------------------------------
ROM:021A0B5E
ROM:021A0B5E loc_21A0B5E                             ; CODE XREF: sub_21A0A84+D4j
ROM:021A0B5E MOVS    R0, #4
ROM:021A0B60 POP     {R3-R7,PC}
This check is done by sub_21A0A84. This fn is called for every Pokemon. It returns a value based off what the result of the check is.
0 = attack
1 = ??? (impossible)
2 = Began to nap
3 = Won't Obey
4 = is loafing around

Inputs:
R0 (moved to R5) = pointer to trainer information
R1 (moved to R7) = pointer to Pokemon information
 

Bond697

Dies, died, will die.
is a Researcher Alumnus
wishmkr berries:

Code:
RAM:0201336E             loc_201336E                             ; CODE XREF: sub_20132F0+74j
RAM:0201336E 60 1C                       ADDS    R0, R4, #1
RAM:02013370 00 06                       LSLS    R0, R0, #0x18
RAM:02013372 04 0E                       LSRS    R4, R0, #0x18
RAM:02013374 03 2C                       CMP     R4, #3
RAM:02013376 F1 D9                       BLS     loc_201335C
RAM:02013378 FD F7 D8 F8                 BL      rand
RAM:0201337C 03 21                       MOVS    R1, #3
RAM:0201337E 01 F0 A5 F9                 BL      __divsi3
RAM:02013382 01 21                       MOVS    R1, #1
RAM:02013384 01 40                       ANDS    R1, R0
RAM:02013386 00 29                       CMP     R1, #0
RAM:02013388 0A D0                       BEQ     loc_20133A0
RAM:0201338A 04 49                       LDR     R1, =byte_2018A08
RAM:0201338C A9 20                       MOVS    R0, #0xA9
RAM:0201338E 09 E0                       B       loc_20133A4
RAM:0201338E             ; ---------------------------------------------------------------------------
RAM:02013390 28 8A 01 02 off_2013390     DCD dword_2018A28       ; DATA XREF: sub_20132F0+Cr
RAM:02013394 50 5C 00 03 dword_2013394   DCD 0x3005C50           ; DATA XREF: sub_20132F0+12r
RAM:02013398 99 01 00 00 dword_2013398   DCD 0x199               ; DATA XREF: sub_20132F0+20r
RAM:0201339C 08 8A 01 02 off_201339C     DCD byte_2018A08        ; DATA XREF: sub_20132F0+30r
RAM:0201339C                                                     ; sub_20132F0+9Ar
RAM:020133A0             ; ---------------------------------------------------------------------------
RAM:020133A0
RAM:020133A0             loc_20133A0                             ; CODE XREF: sub_20132F0+98j
RAM:020133A0 0B 49                       LDR     R1, =byte_2018A08
RAM:020133A2 AA 20                       MOVS    R0, #0xAA

(rand() / 3) & 1 (yes, division)

if 0, ganlon berry; if 1, salac berry (this might be backwards, i don't know the gen 3 item numbers very well)
 
I bought 3DS XL few days before, so I cannot get Victory Road or Route 9 yet. That's why I captured pokemons in Castelia Park like other people.

Game: Korean White 2
Console: Korean 3DS XL
Mac Address: 34AF2CFAE853
Date Started: December 11th, 2011
Time Started: 10:15:25
First Pokemon: https://www.pokecheck.org/?p=detail&uid=3030147
Second Pokemon: https://www.pokecheck.org/?p=detail&uid=3030193
Initial Seed: A9805B34E5B774CA
Nazo = 0x27a57b0, Second = 32, timer0 = 1666, vcount = ac, vframe = 8
 
Here is my little contribution to the RNG Research. I hope it will help you.

Game: French White 2
Console: French 3DS
Mac Address: D8-6B-F7-1D-BA-D9
Date Started: December 11th, 2011
Time Started: 10:15:25
First Pokemon: https://www.pokecheck.org/?pk=3271669
Second Pokemon: https://www.pokecheck.org/?pk=3271671
Initial seed: 3CC837C5A88EAD7B
Nazo = 0x27a5ef0: Second = 32, timer0 = 187a, vcount = bc, vframe = 8

Korean Black 2 DS Nazos:
209B60C
203A4D5
2200750
22007A4
22007A4

Credits to https://twitter.com/GayHerrington/status/292276612068700160