I'm having issues with the new RNG Reporter. Apparently when I download and try to open it, my computer sees it as a security risk and deletes it. Is there a way to fix it?
1) Yes. They parameters are hardware based, so different hardware will give you different results.Hello all,
Two questions:
I was using my DS Lite to RNG, but now I can use my 3DS. Do I have to recalibrate?
What's the delay on the 3DS between pressing A, and the game starting?
Thanks!
I may as well start throwing this stuff up here:
Item or Encounter Decision for Bridges
So, what is happening here:Code:---------------------------------------------------------------------------------------------------------------------------- (bridge item/encounter) - driftveil 02005736 6863 ldr r3,[r4,#0x4] 02005738 F096EC98 blx #0x209C06C // switch to ARM, go forth and prosper to 0209C06C -----RNG advancement here branch with link and exchange(link back to link register, exchange- THUMB<->ARM) (rng.multiply()) 0209C06CE92D4030 stmfd r13!, (r4,r5,r14) //push to the stack- highest to lowest registers(link reg, 0x64, lower half rng-location, not value)p 0209C070 E0845290 umull r5, r4, r0, r2 //mult. r0 x r2, move result to r4/r5 0209C074 E0244390 mla r4, r0, r3, r4 // seems to always resolve to 0 0209C078 E0244192 mla r4, r2, r1, r4 // seems to always resolve to 0 0209C07C E1A01004 mov r1, r4 // (upper half of next rng seed is set) 0209C080 E1A00005 mov r0, r5 // (lower half of next rng seed is set) 0209C084 E8BD4030 ldmfd r13!,(r4, r5, r14)//unwind the stack! the math is done! 0209C088 E12FFF1E bx r14 //follow the link register home!(02005701) 0200573C 6922 ldr r2,[r4,#0x10] 0200573E 6963 ldr r3,[r4,#0x14] 02005740 1810 add r0,r2,r0 02005742 414B adc r3,r1 02005744 6020 str r0,[r4] 02005746 6063 str r3,[r4,#0x4] 02005748 1C18 mov r0,r3 0200574A 2100 mov r1,#0x0 0200574C 2300 mov r3,#0x0 0200574E 1C2A mov r2,r5 02005750 F096EC8C blx #0x209C06C //this is where does the u32 x1000 from the dust clouds. it turns out a bit different in the end, though 64bit_Mult(); 02005754 1C08 mov r0, r1 // final result 02005756 BD38 pop (r3-r5,r15) // restore stack, jump back to restored r15 021AA9D0 0400 lsl r0, r0, #0x10 // r0 = result of rng call for some range of values shifted left by 16 bits 021AA9D2 0C01 lsr r1, r0, #0x10 // r1 == result shifted back down 16 bits (upper 16 bits cleared) 021AA9D4 7B20 ldrb r0, [r4, #0xC] // r0 == value at 2257044 021AA9D6 2807 cmp r0, #0x7 // r0 == 7 021AA9D8 D10B bne #0x21aa9f2 // nope, branching down.. 021AA9DA 29C8 cmp r1,#0xC8 // 021AA9DC D200 bcs #0x21AA9E0 // branch if greater than or equal to 200dec - branch to a battle if less than 200(to 21AAA06) 021AA9DE E012 b #0x21AAA06 // to 21AAA06 021AA9E0 F000FB56 bl #0x21AB090 021AB090 B510 push {r4,r14} 021AB092 24FA mov r4,#0xFA 021AB094 00A4 lsl r4,r4,#0x2 // fa -> 3e8 021AB096 1C20 mov r0,r4 // save 1000dec as an argument to pass to the multiplication/adv function 021AB098 F65AFB46 bl #0x2005728 // to rng.advance to prep for item calc --to battle if less than 200dec 021AAA06 1C28 mov r0,r5 // r0 == 23647D8 021AAA08 2101 mov r1,#0x1 021AAA0A F7FFFAA9 bl #0x21A9F60
The item decision is just about done. It's sort of similar to dust cloud items. And just to note: yes, this means that you have an 80% chance of finding a feather when you run into a shadow on a bridge.Code:-Advance the RNG using the 64-bit multiplication function -Multiply the u32 of the RNG by 3E8(1000dec) then right-shift 32 bits -If that result is under 200, you will encounter a poke. If the result is 200 or greater, you will find a feather.
And here's the item decision
So, what's happening here:Code:bridge item decision ---------------------------- 02005736 6863 ldr r3,[r4,#0x4] 02005738 F096EC98 blx #0x209C06C // switch to ARM, go forth and prosper to 0209C06C -----RNG advancement here branch with link and exchange(link back to link register, exchange- THUMB<->ARM) (rng.multiply()) 0209C06CE92D4030 stmfd r13!, (r4,r5,r14) //push to the stack- highest to lowest registers(link reg, 0x64, lower half rng-location, not value)p 0209C070 E0845290 umull r5, r4, r0, r2 //mult. r0 x r2, move result to r4/r5 0209C074 E0244390 mla r4, r0, r3, r4 // seems to always resolve to 0 0209C078 E0244192 mla r4, r2, r1, r4 // seems to always resolve to 0 0209C07C E1A01004 mov r1, r4 // (upper half of next rng seed is set) 0209C080 E1A00005 mov r0, r5 // (lower half of next rng seed is set) 0209C084 E8BD4030 ldmfd r13!,(r4, r5, r14)//unwind the stack! the math is done! 0209C088 E12FFF1E bx r14 //follow the link register home!(02005701) 0200573C 6922 ldr r2,[r4,#0x10] // put the rng back, get ready to do the standard u32 * XXX(or skip it for pid calcs) 0200573E 6963 ldr r3,[r4,#0x14] 02005740 1810 add r0,r2,r0 02005742 414B adc r3,r1 02005744 6020 str r0,[r4] 02005746 6063 str r3,[r4,#0x4] 02005748 1C18 mov r0,r3 0200574A 2100 mov r1,#0x0 0200574C 2300 mov r3,#0x0 0200574E 1C2A mov r2,r5 02005750 F096EC8C blx #0x209C06C //this is where does the u32 x1000 same as the dust clouds. it turns out a bit different in the end, though 64bit_Mult(); 02005754 1C08 mov r0, r1 // final result 02005756 BD38 pop (r3-r5,r15) // restore stack, jump back to restored r15 021AB09C 0400 lsl r0,r0,#0x10 // clearing up the multiplied out result from u32 * X 021AB09E 0C00 lsr r0,r0,#0x10 // /\ 021AB0A0 3C64 sub r4,#0x64 // 1000 - 100 == 900dec 021AB0A2 42A0 cmp r0,r4 // compare the last u32 multiply with 900dec 021AB0A4 D20E bcs #0x21AB0C4 // branch here if greater than or equal to 900 021AB0A6 2496 mov r4,#0x96 // r4(900dec) is done, set it to 0x96 and get ready to set it up for the next multiplier 021AB0A8 00A4 lsl r4,r4,#0x2 // set r4 to 0x258(600dec) 021AB0AA 1C20 mov r0,r4 // move the 600dec to r0 as an argument for the next multiplication 021AB0AC F65AFB3C bl #0x2005728 --less than 900, so u32 * 600dec multiplier rng.advance(); 02005728 B538 push {r3-r5,r14} // this all just sets up the rng for multiplication 0200572A 1C05 mov r5,r0 0200572C 480A ldr r0,=#0x20AA1B4 0200572E 6904 ldr r4,[r0,#0x10] 02005730 68A0 ldr r0,[r4,#0x8] 02005732 68E1 ldr r1,[r4,#0xC] 02005734 6822 ldr r2,[r4] 02005736 6863 ldr r3,[r4,#0x4] 02005738 F096EC98 blx #0x209C06C (rng.multiply())(via 64-bit multiply function) 0200573C 6922 ldr r2,[r4,#0x10] // put the rng back, get ready to do the standard u32 * XXX(or skip it for pid calcs) 0200573E 6963 ldr r3,[r4,#0x14] 02005740 1810 add r0,r2,r0 02005742 414B adc r3,r1 02005744 6020 str r0,[r4] 02005746 6063 str r3,[r4,#0x4] 02005748 1C18 mov r0,r3 0200574A 2100 mov r1,#0x0 0200574C 2300 mov r3,#0x0 0200574E 1C2A mov r2,r5 02005750 F096EC8C blx #0x209C06C u32 * XXX multiplier rnd.calc(); 02005754 1C08 mov r0, r1 // final result 02005756 BD38 pop (r3-r5,r15) // restore stack, jump back to restored r15 021AB0B0 2164 mov r1,#0x64 // r1 to 100dec 021AB0B2 F6F1E90A blx #0x209C2C8 --switch statement?-- 0209C2C8 E3510000 cmp r1,#0x0 // r1 to 0 and then... 0209C2CC 012FFF1E bxeq r14 // not equal, no branch 0209C2D0 E1500001 cmp r0,r1 // r0 to r1 and then 0209C2D4 31A01000 movcc r1,r0 // false 0209C2D8 33A00000 movcc r0,#0x0 // false 0209C2DC 312FFF1E bxcc r14 // false 0209C2E0 E3A0201C mov r2,#0x1C 0209C2E4 E1A03220 mov r3,r0,lsr #0x4 // right-shift r0 by 4, place in r3 - knock off rightmost digit 0209C2E8 E1510623 cmp r1,r3,lsr #0xC (if r1 < 0) 0209C2EC D2422010 suble r2,r2,#0x10 // r1 isn;t so don't 0209C2F0 D1A03823 movle r3,r3,lsr #0x10 // same here 0209C2F4 E1510223 cmp r1,r3,lsr #0x4 (if r1 < 1) 0209C2F8 D2422008 suble r2,r2,#0x8 // don;t 0209C2FC D1A03423 movle r3,r3,lsr #0x8 // no 0209C300 E1510003 cmp r1,r3 (if r1 < r3) 0209C304 D2422004 suble r2,r2,#0x4 // false 0209C308 D1A03223 movle r3,r3,lsr #0x4 // false 0209C30C E1A00210 mov r0,r0,lsl r2 // left-shift r0 by 28 bits, leaving just the lowest digit 0209C310 E2611000 rsb r1,r1,#0x0 // this does the "opposite" subtract. instead of 64-0, it's 0-64, leaving it as FFFFFF9C, not 64 0209C314 E0900000 adds r0,r0,r0 // double r0- hasn't overflowed yet 0209C318 E0822082 add r2,r2,r2,lsl #0x1 0209C31C E08FF102 add r15,r15,r2,lsl #0x2 // i think this is sort of the "switch" part . 1c << 1 = 38 << 2 = E0 == 224dec; this tells it how much to skip. add E0 to r15(program counter) to make it skip to a specific spot in the list -> to C474 0209C320 E1A00000 nop 0209C474 E0B13083 adcs r3,r1,r3,lsl #0x1 0209C478 30433001 subcc r3,r3,r1 0209C47C E0B00000 adcs r0,r0,r0 0209C480 E0B13083 adcs r3,r1,r3,lsl #0x1 0209C484 30433001 subcc r3,r3,r1 0209C488 E0B00000 adcs r0,r0,r0 0209C48C E0B13083 adcs r3,r1,r3,lsl #0x1 0209C490 30433001 subcc r3,r3,r1 0209C494 E0B00000 adcs r0,r0,r0 0209C498 E0B13083 adcs r3,r1,r3,lsl #0x1 0209C49C 30433001 subcc r3,r3,r1 0209C4A0 E0B00000 adcs r0,r0,r0 // last add with carry - single digit 0209C4A4 E1A01003 mov r1,r3 0209C4A8 E12FFF1E bx r14 [b] 021AB0B6 0400 lsl r0,r0,#0x10 // prepping result of adcs operations 021AB0B8 0C00 lsr r0,r0,#0x10 // here too 021AB0BA 3C23 sub r4,#0x23 // this is the 258(600dec) from the last u32 multiply calc-> gives us 258-23 == 235(value of the first wing in hex) 021AB0BC 1900 add r0,r0,r4 // add result of the adcs calcs with the "base" wing value to give a wing hex number to give the player 021AB0BE 0400 lsl r0,r0,#0x10 // prep result of operation 021AB0C0 0C00 lsr r0,r0,#0x10 // still... 021AB0C2 BD10 pop {r4,r15} [/b] --------------------------------------------------------------------------------------------------------- 021AB0A4 D20E bcs #0x21AB0C4 // branch here if greater than or equal to 900 --if greater than or equal to 900 [b]021AB0C4 4800 ldr r0,=#0x23B // this is the item to give if >=900 and then jump back to the program[/b] 021AB0C6 BD10 pop {r4,r15} --------------------------------------------------------------------------------------
I'll provide some notes and an explanation in the morning. It's rather long and annoying. The only thing I will say quickly now is that once you hit that 80% chance of a feather, it's a 90% shot you'll get one of:Code:-If the item or encounter calc resulted in an item, continue to the RNG advancement function -After advancement, do u32 * 1000dec again -If the result of this calc is 900 or over, the player receives a Pretty Wing -If it is under 900, back to the RNG advancement function again -After advancing, multiply the u32 by 600dec and run the result through the switch statement(I guess?) -Once it's run through, add the result(number 0-6) to 235, giving you a number 235-23A. This number corresponds to the item you will receive
0235 Health Wing*
0236 Muscle Wing*
0237 Resist Wing*
0238 Genius Wing*
0239 Clever Wing*
023A Swift Wing*
and a 10% chance you'll get a Pretty Wing(023B).
Expand the Timer0 search range and make sure you're not soft-resetting.Exactly what DOES the timer0 mean/do?
Also, I'm trying to calibrate, I caught Kyurem, found it's IV range via the Pokedex-IV checker, punched in the time/date I reset the game, choose my DS system and game, hit search, and nothing comes up. What gives?
Nope.Can the Victini from the Wifi event be shiny?
It's a little too much.
0 Initial
1 Sync
[U]2 Item or Pokemon Calc[/U]
[U]3 ESV - Land[/U]
[U]4 PID[/U]
5 Nature
Oh, so what do you suggest I do?It's a little too much.
If you want you can change it to *5 and just look for zeroes.
From the Research Thread
4 - PIDCode:0 Initial 1 Sync [U]2 Item or Pokemon Calc[/U] [U]3 ESV - Land[/U] [U]4 PID[/U] 5 Nature
3 - ESV (you don't care about this)
2 - I/P Decision
In all you have to go backwards twice, not three times. Just delete one of the previous customs and shift all the calcs upwards. Change the *1000 to *5 for ease of viewing.
Maybe the structure isn't right (missing level calc frame), if this is true then your current setup is fine.
5 - PID
4 - Level
3 - ESV
2 - I/P Decision
1 - Sync
0 - Initial
Looks like no full mapping of that structure was posted since the Level Calc and I/P decision were figured out.
Try out each one and see which one is right lolOh, so what do you suggest I do?
I believe it is. Not 100% sure on it but I heard so when I was learning to RNG 5th Gen roamers.Do you know if the PIDRNG frame is advanced by the seasonal weather conditioons in Route1/Unova? I think those don't occur when you set your season to Summer, right? We would like to test it ourself but we haven't access to a DSlite in the moment.
I think there is...Is there a Method to Rngging Wondercard with C-gear seed?
No.Is there a Method to Rngging Wondercard with C-gear seed?
Are you inputting the correct date and time? You might also try increasing the time range from a 10 second window to a 60 second window.Okay so I have a problem with RNG reporter 9.9 (just updated today)
I try to calculate my parameters and it finds no result. I am inputting my mac address, selecting my game and DS type and everything else but it seems to just not want to work for me.
1. YesI was using my DS Lite to RNG, but now I can use my 3DS. Do I have to recalibrate?
What's the delay on the 3DS between pressing A, and the game starting?