1. New to the forums? Check out our Mentorship Program!
    Our mentors will answer your questions and help you become a part of the community!
  2. Welcome to Smogon Forums! Please take a minute to read the rules.
  3. Welcome to Wi-Fi! Please remember to read the rules and do NOT create a new thread for simple trades or Friend Safari codes.

RNG Manipulation in FireRed/LeafGreen: Wild Pokémon Supported in RNG Reporter 9.93

Discussion in 'Wi-Fi' started by Arseus, Oct 11, 2009.

Thread Status:
Not open for further replies.
  1. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    OH and i did a few s r's using em loop with the pre timer spacing the time between my first and second a taps and the second timer spacing my encounter. I haven't processed the results to get starting seeds yet but i can tell you the process 'felt' and looked decently consistent like it had merit. I'll do a bunch more tonight. Sorry for the double post i can't edit on my phone. : /
  2. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    Yeah I'm on a phone now and its ridiculous. Anyway, what I've been doing is setting a timer on this windows program at the moment I SR, then I switch to Firefox and start emloop's timer while pressing start on venu/zard when I hit my seed time. My frames have been close, but I still can't reach a duplicate seed AND the exact frame. I'm seriously dying for that mewtwo but for the sake of research I'm going to hold out since it's so easy to check ivs on a lv70 pokemon.
  3. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    I dunno zap dos wasn't bad i just had to dump three vitamins into each stat and record his stats before and after. I'm still having to dump two into each stat for me w two. I think anything L fifty or up would do just as well. Oh and have you managed to get any consistent starting seeds at all with this method? Duplicate spreads don't really matter as much to me as long as the starting seeds are relatively consistent.
  4. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    Here's the data I posted before, not going for duplicate frames, because I've already accomplished that.

    so, that's 3 duplicate son 9627 with a very close 9626, then two duplicates of 962d, which is only 4 away from 9627. Shit, I just realized I almost got duplicate spreads on the last two samples. There were also some close seeds, 5565 and 5567, but those were the only two in that range. I still don't understand the huge difference between 962x and 556x, but whatever, we'll get there eventually.... I can feel it.
  5. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    I've been out of school for almost a year and I'm jonesing for something to write! What exactly do you mean by XX:XX time? Do you mean the time from Venu/zard to actually pressing start? It's gonna be hard for me without some sort of formula or algorithm as I still don't get exactly how the seed is generated.

    [edit] I think I understand how it works!
    This explains why the seed is always 2 bytes, aka < 65536 (0x10000)! Wouldn't this just be a linear relation, as in Seed (y-axis) vs Time (x-axis)?

    So, Seed = (A [s^-1] * Time [clks]) ? by s^-1, I mean Hertz, but s^-1 is easier to visualize in an equation; A is a constant, which I will figure out when I have more time. Let me know if I'm on the right track, flovv, because this could turn out to be a pretty simple program.
  6. flovv

    flovv

    Joined:
    Feb 25, 2010
    Messages:
    7
    If iam correct the timer/seed increases every 59.59 nano seconds, this would be 44940h every frame.
    You could try and use a calculator, but in just one frame the counter overflows 4 times. (16 Bit counter ,0~FFFF)

    If we are lucky, the press of the confirm-button is cheked only once per frame, so that we can get a set of the same seeds to a delay.
    A specific one seems still impossible to me.

    Edit:
    No, its 2Byte because the data register of timer is always 16 bit large.
    It counts up to FFFF, then overflows and starts at 0000.

    Also I think the clks i wrote first were wrong as the debugger showed them up false.
    I think the timer runs @ 16.78 MHz, like i described in this post.
  7. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    Oh, what I mean is that I've been getting repeat starting seeds all over the place. Granted, I think the best so far was like 17% of the time, but hey, I'm okay with that. I'm able to hit c04 for example very comfortably with my Turbo Controller spamming A reeeeeally fast. However, if I knew that say 10 seconds between A presses = seed c04, and that 10.01 seconds = c05, etc, etc (just silly examples) I feel comfortable that I could probably use emloop to target a seed I want with 17%+ accuracy (which I'm fine with.) I'm not at all expecting the kind of accuracy I can have with Diamond / Pearl / Platinum / Heart Gold / Soul Silver, etc, but I'm just looking for X.xx Seconds = YYYY Starting Seed so I have something to shoot for.

    No pressure, just tossing the idea out there. :)

    [edit]
    Oh, Nix, I verified what you found earlier. The frames don't STOP till the moment AFTER you first press A and the poke "chirps" and that lil box pops up, WHEN YOU PRESS A AGAIN AFTER THAT.

    I used my GBA Player and Turbo Controller like normal with the setting on high, so I would know what seed I'd probably get (I've done 70 SRs on those settings now with fairly consistent results). However, instead of rushing straight into battle, I let off A as soon as I heard Mewtwo make his noise and just waited there for a while. I don't know how long. I got up, went and gott a soda, chugged it and came back :P Anyway, I got this:
    As I suspected it was a Starting Seed I'd gotten several times before, but on a muuuuuuuuuuch higher frame. THUS, I now know ( though you already did lolz) that the frames don't stop until you press A the second time and the battle begins to start (otherwise it would have been something in the 570ish range or whatever I had consistently before).

    This is important as one could think that they were stopping the frames just by pressing A the first time and end up totally confused hours later as to why they keep missing their target frame.

    Anyway, now it looks like we know:
    That's pretty much all the info I think we need to start really abusing. I "think" that if we had XX:XX time = YYYY seed we really could search through the possible seeds and target the best ones for our individual needs, but as is, we can "randomly" sift through seeds with the help of emloop or whatever, and just pick whatever target spread we want from whatever starting seed we're currently consistently hitting.

    Yay Science! P____p

    [edit 2]
    Whulp, hittin teh hey for now, but I managed to find time to do 8 SRs this new way. Didn't get any good results I suppose, but I'm still getting used to it. I "think" my problem may actually be hitting the second A tap in synch with the "pre-timer". I can follow it, but I seem to have a terrible time lining up with it. I do MUCH better hitting the final A tap with the end of the second timer because there's that nice countdown at then end that I can really audably synch to. I think once I get used to it, this may actually be a better way of doing it. I'll give it 42 more tries tomorrow and see...

    Emloop: "1500" Frames, "25" Seconds, Top R Box empty, Pretimer Box "15" Seconds, Bottom Box "0", Final Timer Countdown Beep Box (very bottom) "10" Seconds (it helps).
    1) Soft Reset
    2) Press A AND Spacebar sometime between Gamefreak and Nido/gar (begin seed generation)
    3) when pretimer (15 seconds) hits 0 press A again (end seed generation)
    4) mash A through to Mewtwo AND press A once to make him "chirp" (frame advancement)
    5) just set there till second timer (25 seconds) hit's 0 and press A again to begin the battle (end frame advancement).
    Code:
    1) (Naïve): 2 / 12 / 0 / 15 / 21 / 30, 6805, 1430
    2) (Hardy): 15 / 3 / 8 / 16 / 4 / 26, 103a, 1421
    3) (Modest): 10 / 26 / 23 / 29 / 22 / 2, 9f63, 1425
    4) (Naughty): 5 / 27 / 1 / 2 / 20 / 20, 98aa, 1424
    5) (Modest): 19 / 8 / 22 / 11 / 4 / 10, 331c, 1421
    6) (Docile): 3 / 20 / 2 / 31 / 22 / 7, 8d36, 1417
    7) (Modest): 5 / 22 / 5 / 6 / 25 / 21, 8fb3, 1424
    8) (Impish): 22 / 14 / 6 / 2 / 13 / 20, 9227, 1426
  8. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    I tried that method a few nights ago but I was way too beat to move on... only tried once actually, aiming for an actual spread that I wanted. I will seriously try to work on a program to give us seed vs. time, but I can't guarantee anything, understandably.

    [edit]Okay, so I believe flovv is right in that the clock runs at
    256 Hz * 65536clks = 16,777,216 Hz = 16.78 MHz. Now, if we divide 65536/(16.78 MHz) this gives us 0.0039 s, or
    3.9 ms until the clock overflows to 0x0000 (this quantity can also be derived by 256 Hz / 65536 frames = 1/256 = 3.9 ms, but the former method was more descriptive as to the behavior of the clock). Obviously this is pretty quick, but not completely hopeless, since we were able to get very close and duplicate seeds time and time again. Thus the seed
    would be a periodic "sawtooth" wave function, vs. time. Sawtooth basically just means a ramp (a straight line from 0x0000 to 0xFFFF), then a drop to 0 and a ramp back up, and continues indefinitely (until the Venu/zard screen expires, in which it returns to Nido/gar animation). Here's some more info on sawtooth and other periodic wave functions. Therefore I think, or at least hope, the equation for the first cycle of the sawtooth would be:

    S(t) = 65535 * ( 256*t ) = { 16776960*t , for 0<t<0.0039

    where S(t) is the desired Seed at time t. Solving for t yields:
    t = S/16776960 + 0.0039*n, where n=0,1,2,3... (this arises for the reason stated above: the equation above is periodic, so multiple times will satisfy it.)

    Let's try for mattj's beloved seed 0x0c04. Converting to decimal we get 3076, so the first possible value is
    t = 3076/16776960 = 0.00018335 s = 0.18335 ms.

    therefore all possible times that will reach that seed increment at 3.9 ms, so for the first couple times, we get 0.18335,
    4.08335, 7.98335 (all in ms). I'll try to whip up a program that will find all reasonable times for a given seed, ignoring the really early ones like these. Looking at this method, you have to really be on the ball to hit the right seed, but as
    mattj put it, "been there, done that."
  9. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    OH WAIT so what you guys are saying is that it literally cycles through all possible starting seeds in less than one second? ? ?
  10. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    waay less than one second, 3.9 milliseconds to be exact. I don't know exactly how on earth I hit a bunch of duplicate seeds but your rapid fire controller is doing you a lot of favors. So for now, If the formula is correct, all we need is some software that comes up with those times, and we're ready to go... though it's going to be very hard, as flovv said, to aim for exact seeds. We're going to just have to settle on a time for a particular seed, hope to hit it, and then hope we hit our frame. In essence, this process is exactly the same as emerald, but just requires a reliable pretimer... i wish emloop's pretimer had beeping for its countdown, as the regular timer has.
  11. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    My God, my holy God, I have no idea how I hit those repeats even WITH the turbo controller. That makes no sense?! Well. Toss the "emloop" idea out the window then. Not only would you have to be DEAD AND I MEAN DEAD on for the very first A press, but you'd have to be EXACTLY ON on the second press too.

    At first, I didn't realize what an incredibly small scale we were talking about. I figured it was like, Idunno, 1 seed per frame or maybe 10 or something, but not like, my God, I have no idea how many. I figured you could just time it for like, 3 seconds to hit seed ABCD and 3.3 seconds to hit ABCF, etc, etc, but that scale is just to crazily far beyond human capability IMO, at least for when it comes to "targeting" specific seeds.

    Man. In my honest opinion, it looks like tapping to a metronome (at least for the first two taps) might actually be the best way now. Dang. Double Dang.

    Gonna scrap the whole emloop idea and try using the Turbo Controller on the first from fastest setting...
    ...dang...
  12. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    i HATE to double post, but I got some CRAZY INSANE new Soft Resets, with this one spread showing up...6/20 times. Still waiting for Metalkid's IV Calc to reboot, and then I'll edit all the data in here. THIS IS NUTS!! :D

    So what I did was basically the same as before but with my Turbo set on the first from highest setting this time. I held down the Reset button, and hovered my finger over A, then let go of Reset and held down A straight through till mewtwo. I then dumped 2 vitamins in each stats and recorded the stats before and after, ran that through metalkid's for IVs, then ran the IVs through RNG Reporter's IVs to PID, took that seed and ran it through Steve's program to get my starting seed and frame:

    Code:
    1) (Lonely): 16 / 30 / 14 / 9 / 24 / 15, 3094, 572
    2) (Lonely): 16 / 30 / 14 / 9 / 24 / 15, 3094, 572
    3) (Naïve): 25 / 7 / 27 / 9 / 29 / 28, 3098, 572
    4) (Rash): 11 / 23 / 10 / 14 / 30 / 1, e762, 580
    5) (Serious): 30 / 5 / 31 / 3 / 9 / 13, 309c, 572
    6) (Modest): 17 / 28 / 4 / 15 / 0 / 19, 3113, 580
    7) (Relaxed): 4 / 22 / 9 / 27 / 19 / 18, 9e1e, 572
    8) (Timid): 11 / 22 / 25 / 11 / 12 / 17, e754, 543
    9) (Brave): 8 / 20 / 2 / 3 / 7 / 22, 11d4, 642 (what?!)
    10) (Lonely): 16 / 30 / 14 / 9 / 24 / 15, 3094, 572
    11) (Serious): 17 / 16 / 10 / 22 / 30 / 24, e75e, 572
    12) (Lonely): 16 / 30 / 14 / 9 / 24 / 15, 3094, 572
    13) (Naïve): 25 / 7 / 27 / 9 / 29 / 28, 3098, 572
    14) (Lonely): 16 / 30 / 14 / 9 / 24 / 15, 3094, 572
    15) (Adamant): 28 / 17 / 28 / 15 / 27 / 12, e754, 580
    16) (Brave): 8 / 20 / 2 / 3 / 7 / 22, 11d4, 642 (what?!)
    17) (Relaxed): 4 / 22 / 9 / 27 / 19 / 18, 9e1e, 572
    18) (Docile): 22 / 18 / 26 / 24 / 29 / 12, 8749, 580
    19) (Serious): 17 / 16 / 10 / 22 / 30 / 24, e75e, 572
    20) (Lonely): 16 / 30 / 14 / 9 / 24 / 15, 3094, 572
    Seeds Breakdown:

    Code:
    All Seeds “out of 20 Soft Resets”:
    
    3094  -  6
    3098  -  2
    9e1e  -  2
    e754  -  2
    11d4  -  2
    e75e  -  2
    8749  -  1
    e762  -  1
    309c  -  1
    3113  -  1
    9/20 (45%) in the “309?” range, not bad. 6/20 (30%) for 3094 alone! Prolly need to do 10 more to round this out a hair more. :/
  13. flovv

    flovv

    Joined:
    Feb 25, 2010
    Messages:
    7
    Well, keep in mind that not all values of the timer are possible because we do not know how ofter per frame the game can recognise that a button has been pressed.
    Perhaps from the 279.620 values per frame only 10 are possible...

    The results of mattj seem to confirm a behavior like this.
  14. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    Yeah, that makes since, because some of us have received duplicate spreads now, even without autofire. One thing that concerns me is that some of our seeds were 1 or a few seeds off. For example, mattj's 0xc04 and 0xc05, and my 0x9626, 0x9627 and 0x962d, etc. For now, what I'm concerned is knowing exactly which spreads are available. If we plan to be proactive, my idea is that we search for Method 1 seeds on RNG reporter, hope we find some good ones that aren't greater than 2 bytes, then pray that they're "valid," obtainable spreads... all that on top of hitting our desired frame, which is sort of easy going by experience with emerald. And what if these valid seeds vary from cartridge to cartridge, as in, I cannot obtain C05 or C04, and mattj can't obtain 9626 - 962D, etc? I think this is where our next research lies:

    1. What, and how many, seeds are valid during a certain time period?

    2. What determines the validity of a seed?

    3. Does the validity of a seed vary from cartridge to cartridge?

    I'm very proud of our findings so far, and I believe that if we keep going at our current rate, we can solve this soon. Does anyone else have any ideas?
  15. Zari

    Zari Xenobladeaholic
    is a Pre-Contributor

    Joined:
    Jan 22, 2009
    Messages:
    682
    I haven't been able to play FR for a bit (due to being sucked into the black hole known as Soul Silver), but looking over NitHex's work, I found an interesting discovery:

    256Hz*65536clks = 16,777,216Hz (DON'T simplify here)

    65536clks / 16,777,216Hz = .00390625--this difference is important for timing reasons

    with .00390625 instead of .0039, timing becomes simpler using a metronome, set at 240 BPM

    60 s / 240 BPM = .25

    why is the small diference important?

    1 s / .0039 ~= 256.41

    1 s / .00390625 = 256

    This is 256 Hz yes, but, while this might seem like a whole bunch of nothing, it led me to this conclusion:

    When using a metronome for timing purposes, 240 BPM is the setting for the GREATEST chance of hitting the same seed

    at 240 BPM every click of the metronome signifies the game cycling through the starting seeds 64 times flat if you count the cycle value to be 3.90625 milliseconds

    60 s / 240 BPM / .00390625 = 64

    This simplifies the human error problem people might have, as other tempos have the cycle start at different times each beat of the metronome.

    as a side note 120 BPM also works, though the cycles happen 128 times per click of the metronome

    Not really a blinding discovery, but it should help those of us stuck with a metronome and a game cart.

    Hope to get back to this soon
  16. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    Yeah I figured the .0039 was a bad approximation, but then I realized that if one us were to write some software to determine valid seeds, you can use the actual ratio of n*1/256. Interesting about the metronome though, I'll try that out.
  17. Arseus

    Arseus
    refuses to accept Contributor

    Joined:
    Oct 13, 2006
    Messages:
    869
    Wow, excellent work, everyone!

    I am sorry that I have not been able to take on a more active role in this research (I am very busy, thanks to having a seminar, essay, volunteer work, &c.), though I am immensely grateful to everyone in this thread who has helped push this research forward. It seems that there has been a deluge of new information within the past two weeks, and I now that I have a minute, I have updated the first post with a lot of information that jumped out at me, removed old information no longer relevant, and so on (old revisions can be found by clicking the "last edited" link, for those who are interested). I have tried to quote as many substantial posts as I could, so that they do not get buried within this thread, but please feel free to let me know if I missed anything you would like me to link to or include in the first post, and I will endeavour to take care of it as soon as I can. I have also updated the credits section at the bottom of the post, to recognize many users who have made frequent or groundbreaking contributions to the thread.

    While I doubt I will find the time to contribute to this thread at an acceptable level in the foreseeable future (i.e. until the school year comes to an end), as mentioned, I am extremely impressed by the quality and clarity of information that you all are coming up with. This blend of co-operation and autonomy is everything I could possibly have asked for when I first created this thread last October, so thank you to everyone who has posted. Keep up the good work.
  18. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    Lol "Frequent contributor MattJ" = "spammer MattJ" xD

    But seriously... New Soft Reset Data!

    Same as before, hold down Reset, let off AND hold A straight through to Mewtwo, BUT I had the Turbo on the 2nd from fastest setting this time:
    Code:
    1) (Docile): 29 / 8 / 31 / 21 / 22 / 14, 569, 579
    2) (Calm): 6 / 11 / 10 / 4 / 22 / 27, 9354, 579
    3) (Docile): 29 / 8 / 31 / 21 / 22 / 14, 569, 579
    4) (Mild): 3 / 13 / 5 / 1 / 14 / 19, 565, 579
    5) (Naughty): 17 / 0 / 19 / 29 / 7 / 5, 571, 579
    6) (Hardy): 15 / 21 / 17 / 25 / 28 / 29, 55d, 579
    7) (Mild): 3 / 13 / 5 / 1 / 14 / 19, 565, 579
    8) (Lonely): 16 / 6 / 3 / 20 / 2 / 30, 55c, 579
    9) (Timid): 23 / 21 / 23 / 12 / 19 / 28, dc93, 580
    10) (Docile): 4 / 30 / 22 / 28 / 19 / 21, 564, 579
    11) (Naughty): 17 / 0 / 19 / 29 / 7 / 5, 571, 579
    12) (Bold): 25 / 12 / 12 / 23 / 5 / 6, 556, 579
    13) (Bold): 25 / 12 / 12 / 23 / 5 / 6, 556, 579
    14) (Brave): 16 / 30 / 1 / 30 / 20 / 24, 4f21, 579
    15) (Hardy): 14 / 30 / 4 / 26 / 17 / 22, dc94, 579
    16) (Hardy): 14 / 30 / 4 / 26 / 17 / 22, dc94, 579
    17) (Bold): 25 / 12 / 12 / 23 / 5 / 6, 556, 579
    18) (Quiet): 0 / 12 / 12 / 18 / 6 / 25, 7706, 579
    19) (Serious): 19 / 1 / 14 / 20 / 30 / 4, 565, 580
    20) (Serious): 19 / 1 / 14 / 20 / 30 / 4, 565, 580
    21) (Lonely): 16 / 6 / 3 / 20 / 2 / 30, 55c, 579
    22) (Bold): 25 / 12 / 12 / 23 / 5 / 6, 556, 579
    23) (Timid): 15 / 15 / 1 / 2 / 2 / 3, 572, 579
    24)(Quiet): 0 / 12 / 12 / 18 / 6 / 25, 7706, 579
    25) (Bold): 25 / 12 / 12 / 23 / 5 / 6, 556, 579
    26) (Mild): 3 / 13 / 5 / 1 / 14 / 19, 565, 579
    27) (Quirky): 25 / 17 / 12 / 17 / 1 / 16, 935d, 579
    28) (Quiet): 7 / 22 / 12 / 25 / 23 / 29, 17ee, 579
    29) (Bold): 25 / 12 / 12 / 23 / 5 / 6, 556, 579
    30) (Quiet): 0 / 12 / 12 / 18 / 6 / 25, 7706, 579
    Gonna go through and break this one down, along with my last one I never broke down, and go through all the top starting seeds and look for a good target spread. The VGCs are coming and I'm getting..... aaaaaaaaaantsy....>_>

    Oh, and Arceus, although it's maybe a little too simple, I think you ought to put in the intro that
    It's more of a RNGing tip I guess, but it's really helping me at this point, and I think that when people get to the point where they're actually looking for target spreads, this lil piece of advice will give them more, different, consistent starting seeds with different target spreads in them. That way they look at more options and have a greater chance of getting a top notch poke. ;D

    [edit]
    Seeds Break Down:
    Code:
    All “out of 30 Soft Resets”
    556  -  6
    565  -  5
    7706  -  3
    55c  -  2
    569  -  2
    dc94  -  2
    564  -  1
    572  -  1
    571  -  1
    55d  -  1
    dc93  -  1
    4f21  -  1
    935d  -  1
    9354  -  1
    17ee  -  1
    Looks like 19/30 (63%) were in the 556-572 range that’s nice and centralized. 6/30 (20%) isn’t bad too for 556! Neither is 16.7% for 565!
  19. Arseus

    Arseus
    refuses to accept Contributor

    Joined:
    Oct 13, 2006
    Messages:
    869
    That is a good piece of information, and I have adapted the wording somewhat and integrated it into the first post. Obviously the end goal of this research is sophisticated RNG manipulation, so it makes sense to draw attention to any and all techniques that facilitate it at this point. Again, thank you for your contributions to the thread, and I wish you luck with both your continued research and the impending VGC.
  20. Zari

    Zari Xenobladeaholic
    is a Pre-Contributor

    Joined:
    Jan 22, 2009
    Messages:
    682
    Now that I think about it, a metronome can be used to adjust tempo In order to hit different seeds. I'm no math wiz at converting to hexadecimal, but I'll compile a listing of tempos, using the formula I found for cycles in my previous post.

    T = tempo

    60s / T / .00390625s = #of cycles

    If it is what I suspect, by setting a metronome to different tempos, provided the user can accurately hit based on tempo, you can hit different seeds--because of the variance in how far through the cycle the game is. Let's take a look at an example:

    T = 240BPM

    60s / 240BPM / .00390625s = 64 cycles

    using 240BPM you would hopefully hit the same seed multiple times, because it completes 64 cycles, IE starts back at the same place every click.

    But, what if we varied the tempo?

    T = 225BPM

    60s / 225BPM / .00390625s = 68.266666.... cycles

    now this is interesting, because we can discard the number before the decimal point, as those are complete cycles, and hence irrelevant to hitting a different seed.

    At 225 BPM we end up with a decimal of .26666...., which repeats after 16 beats (becoming 4.26666...., but we can discard the 4 because it is a set of complete cycles)

    Then there is 210 BPM; a decimal of .2857143 (approx.) which repeats after 15 beats, etc.

    Here is the entirety of my findings:

    Code:
    BPM, decimal,% of cycle complete, repeats after X beats
    
    240, 0 , 100%, always repeats
    225, .26667, 26.67%, 16
    210, .142857, 14.29%, 15
    200, .8, 80%, 16
    195, .76923, 76.92%, 14
    180, .3333, 33.33%, 4
    165, .0909..., 9.09%, 12
    150, .4 , 40%, 11
    ...
    60, 0, 100%, always repeats
    
    what this means:

    By varying the tempo it should be possible to obtain different starting seeds, just by counting the number of beats that occurred.

    Hopefully, by counting the beats and timing it correctly, you should be able to obtain different starting seeds.

    If this is true, and I'm not saying it is (yet), it means that hitting different seeds should not be too hard; all you would need to do would be to generate a tempo that has a beat that lands on your target seed.

    Granted, we still need to convert some of the decimal percentages I found into hexadecimal (% of 0x0000 through 0xFFFFF) and verify if this is true.

    IF it is true however, it becomes infinitely easier to hit a desired seed--because you don't have to hit something within 3.90625 milliseconds.

    EDIT: this totally outshadows my previous post, and I think this post needs to be linked in place of it, possibly after verification. Arceus, if you think it is appropriate to put in the OP, it should go in place my other post, because, if correct, this should help out cartridge players a whole bunch.

    NOW I need to go eat dinner.

  21. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    You really should try that some time. Like do 20-30 SRs using one tempo, then switch to the next, etc, for like idunno, 5 or so tempos. That'd be great! :D Maybe try it on Zapdos or Articuno or something L50, and please get accurate IVs, not just stats or "close IVs", cuz then you'll be able to actually find your starting seeds!! That way you'd know if it works or not. :)

    [edit]
    Okay, at first this may look like it only applies to me, but actually, when other people get to the point I am and are actually looking for target spreads and whatnot, the following might possibly be of some help.

    So, I've basically come to the conclusion that for my personal needs, Using the GBA Player, and GC Turbo Controler, Resetting and holding A with the turbo on at various speed settings is the way to go for me. I've done numerous (hundreds of) soft resets at different speed settings, and have found several very good, consistent starting seeds. I then broke down those long list of resets and listed them by most common starting seed for each speed setting. Then I put the top few seeds for each setting into RNG Reporter, set the IVs to 25+ and 31Spd and looked for "usable" target spreads. I decided that these natures were "usable" for my specific needs (Self Destruct Mewtwo for VGC Purposes):
    Here are the Target Spreads I found broken down by Turbo Speed Setting, then Seed Popularity:
    Code:
    [SIZE=3]Fastest[/SIZE]:
    [B]c04  [/B]-  13/70
    Rash, 25 / 26 / 27 / 28 / 28 / 31  F: 193044  (53:37:40)
    Hasty, 27 / 29 / 31 / 25 / 31 / 31  F: 634779 (176:19:??)
    
    [B]c05  [/B]-  10/70
    Lonely, 28 / 29 / 25 / 26 / 28 / 31  F: 79162 (21:59:36)
    
    [B]bfe  [/B]-  10/70
    Lonely, 27 / 28 / 30 / 30 / 26 / 31  F: 193674 (53:47:90)
    
    [B]c291  [/B]-  7/70
    Naughty, 30 / 31 / 27 / 25 / 29 / 31  F: 370536 (102:55:??)
    
    [SIZE=3] 1st from fastest:[/SIZE]
    All Seeds “out of 20 Soft Resets”:
    
    [B]3094  [/B]-  6
    Timid, 30 / 26 / 25 / 29 / 29 / 31  F: 21924 (06:05:40) eeeeeasy!!!
    Naughty, 28 / 27 / 31 / 28 / 30 / 31  F: 162317 (45:05:28)
    Rash, 29 /27 / 27 / 31 / 27 / 31  F: 275379 (76:29:65)
    
    [B]3098  [/B]-  2
    Timid, 28 / 25 / 31 / 26 / 31 / 31  F: 82195 (22:49:91)
    Lonely, 29 / 26 / 27 / 29 / 26 / 31  F: 146340 (40:39:00)
    Hasty, 28 / 28 / 26 / 27 / 26 / 31  F: 544069 (151:07:??)
    Hasty, 29 / 30 / 29 / 30 / 29 / 31  F: 804613 (223:30:??) Bleeeeeech!!
    
    
    [SIZE=3] 2nd from fastest:[/SIZE]
    All Seeds “out of 30 Soft Resets”
    
    [B]556  [/B]-  6
    Mild, 29 / 30 / 25 / 31 / 27 / 31  F: 285942 (79:25:70)
    Rash, 26 / 26 / 31 / 29 / 28 / 31  F: 390855 (108:34:??)
    Hasty, 27 / 26 / 31 / 31 / 29 / 31  F: 674876 (187:27:??)
    Hasty, 25 / 31 / 28 / 25 / 30 / 31  F: 793261 (220:21:??)
    
    [B]565  [/B]-  5
    Naughty, 27 / 31 / 29 / 27 / 30 / 31  F: 187919 (52:11:98)
    Rash, 25 / 31 / 30 / 25 / 26 / 31  F: 377679 (104:54:??)
    
    [COLOR=Red][U][B]7706  -  3
    Hasty, 25 / 31 / 30 / 26 / 29 / 31  F: 94714 (26:18:56)[/B][/U][/COLOR]
    
    
    Fastest Turbo Nido Gar Ending
    All Seeds out of 30 Soft Resets
    
    [B]596d  [/B]-  3
    Hasty, 30 / 27 / 28 / 29 / 26 / 31  F: 131381 (36:29:68)
    
    
    It looks to me like this last, highlighted target spread is probably the best. I ran some calcs and found it's not far off from flawless @L50:
    Plus it's of a reasonable time for a Soft Reset. Speaking to several people on IRC with experience RNGing in Emerald straight off the Cart, they suggested that anything over 30mins for a SR was pretty loopy. :/

    HOOOOOOOOWEVER!!!!


    I haven't had a chance to SR with my Turbo on the lowest setting, so I'm gonna hold out, and do 20 or so SRs with in the morning and HOPE I can find an even better spread. Who knows! Since I only have 1 shot at this, I don't want to waste any opportunity, but at the same time, the VGCs arent's getting any farther away. If it doesn't yield any worth while target spreads, I've always got this one. :)

    I'll edit in the data to this post tomorrow...

    [final edit]
    Went over ALL the data. And I'm sticking with that highlighted one. Compared it to several others, and this one's just better.
  22. mattj

    mattj blatant Nintendo fanboy

    Joined:
    Mar 30, 2009
    Messages:
    4,630
    So as to not screw up my last post, I'm posting this here. It's the results of extending 2 tests I did before, the slowest Turbo setting one (failure) and the fastest turbo on the Nido/gar ending one (decent results).

    Slowest Turbo Setting:
    Code:
    1)  (Lonely): 31 / 15 / 20 / 0 / 19 / 24, 40f9, 579
    2) (Quiet): 30 / 13 / 8 / 30 / 24 / 5, 9c0, 579
    3)  (Naughty): 8 / 23 / 16 / 30 / 30 / 26, 32ea, 579
    4) (Timid): 8 / 7 / 27 / 8 / 31 / 11, 44bf, 579
    5)  (Lax): 12 / 0 / 8 / 9 / 3 / 29, 59f0, 580
    6) (Lax): 26 / 26 / 5 / 2 / 19 / 9, 60d1, 579
    7) (Bold): 3 / 6 / 10 / 25 / 24 / 28, bf88, 579
    8) (Careful): 7 / 23 / 4 / 3 / 5 / 9, 35d7, 579
    9) (Hardy): 9 / 3 / 5 / 8 / 9 / 13, 35d7, 580
    10) (Relaxed): 15 / 9 / 9 / 7 / 25 / 18, 9b5, 579
    
    Code:
    11) (Bold): 6 / 24 / 31 / 4 / 30 / 16, 4f77, 578
    12) (Naughty): 26 / 23 / 22 / 6 / 15 / 28, 7d22, 578
    13) (Quirky): 24 / 12 / 28 / 26 / 20 / 9, a5a, 579
    14) (Bold): 31 / 21 / 9 / 1 / 12 / 2, 8d93, 578
    15) (Brave): 4 / 18 / 14 / 10 / 16 / 9, 9bc, 579
    16) (Serious): 22 / 22 / 18 / 10 / 24 / 26, 751e, 578
    17) (Lax): 26 / 26 / 5 / 2 / 19 / 9, 60d1, 579
    18) (Naughty): 30 / 16 / 23 / 8 / 22 / 9, 349c, 579
    19) (Impish): 11 / 15 / 26 / 9 / 20 / 5, 4509, 579
    20) (Mild): 7 / 16 / 1 / 7 / 22 / 2, 474d, 579
    21) (Timid): 1 / 31 / 17 / 7 / 7 / 20, 73d, 579
    22) (Quirky): 9 / 5 / 20 / 4 / 0 / 16, 32be, 579
    23) (Careful): 26 / 10 / 24 / 29 / 10 / 12, 751e, 579
    24) (Adamant): 11 / 10 / 25 / 20 / 22 / 13, 35d4, 579
    25) (Relaxed): 15 / 9 / 9 / 7 / 25 / 18, 9b5, 579
    
    Seed Breakdown
    Code:
    40f9  -  1
    9c0  -  1
    32ea  -  1
    44bf  -  1
    59f0  -  1
    60d1  -  2
    bf88  -  1
    35d7  -  2
    9b5  -  1
    4f77  -  1
    7d22  -  1
    a5a  -  1
    8d93  -  1
    9bc  -  1
    751e  -  2
    349c  -  1
    4509  -  1
    474d  -  1
    73d  -  1
    32be  -  1
    35d4  -  1
    9b5  -  1
    With not a single Starting Seed getting even 3 appearances, I’m not even going to bother with target spreads from here. There just weren’t enough consistent starting seeds. :/
    Hold Fastest Turbo A at beat of final held Nido/gar note:
    Code:
    1) (Naughty): 23 / 18 / 28 / 12 / 3 / 29, 34e9, 563
    2) (Rash): 19 / 1 / 26 / 17 / 4 / 21, ebb2, 564
    3) (Lax): 11 / 6 / 27 / 31 / 11 / 31, 3c49, 564
    4) (Lonely): 19 / 18 / 20 / 5 / 9 / 21, 5964, 567
    5) (Mild): 1 / 17 / 4 / 24 / 20 / 29, 596d, 567
    6) (Brave): 23 / 8 / 20 / 14 / 14 / 10, 3421, 564
    7) (Calm): 29 / 24 / 2 / 7 / 1 / 12, 596d, 564
    8) (Rash): 28 / 27 / 20 / 9 / 3 / 7, 38fc, 564
    9) (Calm): 4 / 29 / 30 / 17 / 11 / 5, 3c4f, 567
    10) (Lax): 11 / 6 / 27 / 31 / 11 / 31, 3c49, 564
    11) (Docile): 25 / 12 / 23 / 30 / 18 / 14, 58a5, 567
    12) (Docile): 25 / 12 / 23 / 30 / 18 / 14, 58a5, 567
    13) (Quiet): 18 / 7 / 25 / 31 / 11 / 4, fd13, 567
    14) (Lax): 11 / 6 / 27 / 31 / 11 / 31, 3c49, 564
    15) (Timid): 11 / 19 / 15 / 16 / 17 / 17, 60c9, 567
    16) (Calm): 29 / 24 / 2 / 7 / 1 / 12, 596d, 564
    17) (Quiet): 0 / 1 / 27 / 29 / 3 / 24, 387d, 564
    18) (Careful): 29 / 4 / 23 / 29 / 2 / 31, eae6, ???
    19) (Rash): 6 / 19 / 14 / 2 / 4 / 20, 60c7, 564
    20) (Bashful): 10 / 27 / 23 / 20 / 30 / 20, 3c45, 567
    
    Code:
    21) (Lax): 10 / 12 / 9 / 4 / 4 / 6, 5c7a, 564
    22) (Calm): 29 / 24 / 2 / 7 / 1 / 12, 596d, 564
    23) (Impish): 18 / 12 / 1 / 30 / 14 / 1, 60c7, 567
    24) (Quiet): 14 / 8 / 28 / 7 / 16 / 30, 60c9, 565
    25) (Timid): 11 / 19 / 15 / 16 / 17 / 17, 60c9, 567
    26) (Impish): 29 / 18 / 18 / 8 / 28 / 14, 60c9, 564
    27) (Rash): 6 / 19 / 14 / 2 / 4 / 20, 60c7, 564
    28) (Bold): 7 / 30 / 30 / 13 / 31 / 30, 5d6f, 567
    29) (Impish): 29 / 18 / 18 / 8 / 28 / 14, 60c9, 564
    30) (Lax): 29 / 12 / 3 / 19 / 0 / 10, 34e9, 564
    
    Seed Breakdown:
    Code:
    60c9  -  5
    596d  -  4
    60c7  -  3
    3c49  -  3
    34e9  -  2
    58a5  -  2
    5964  -  1
    3421  -  1
    38fc  -  1
    3c4f  -  1
    fd13  -  1
    387d  -  1
    ebb2  -  1
    eae6  -  1
    3c45  -  1
    5c7a  -  1
    5d6f  -  1
    Nice got some decent results here! 8/30 (26%) were either 60c9 or 60c7 with 60c9 taking the lead at 6/30 (20%) which isn’t the best, but it’s usable. :)

    Now I'm gonna look through these last top starting seeds and edit them into my last post for a pretty much final look at available target spreads...
  23. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
    Sorry, double post. Phone's great but sometimes its a hassle
  24. NixHex

    NixHex No excuses
    is a member of the Site Staffis a Forum Moderatoris a Pokemon Researcheris a Contributor to Smogonis a Battle Server Moderator Alumnus
    Moderator

    Joined:
    Oct 6, 2009
    Messages:
    2,599
  25. Zari

    Zari Xenobladeaholic
    is a Pre-Contributor

    Joined:
    Jan 22, 2009
    Messages:
    682
    I'm blazing through FR with charizard right now (lol) but I decided to take a break and crunch a few numbers:

    The formula: (n) * (15360 % T) * 65536 , where n is the # of beats, % is take the remainder of the (), and T is tempo in BPM. 65536 is the number of possible starting seeds (0000 through FFFF)

    What it does: determines the seed you landed on based on tempo/# of clicks

    Basically what I did was plug in numbers for Tempo (keeping n=1 always) and search for good starting seeds that you would have a high probability of landing on (within <.1 of a .0 or .5 decimal value), round the result, convert it into hexadecimal, then search for decent Method 1 spreads via RNG reporter.

    Here are the nitty gritty results:

    Code:
    
    Tempo, seed(decimal), seed(hex), (seed of spread), nature, ability, IVs, Hidden power, HP power
    
    235, 23704.51064, 5c98/5c99, (5c99), Bold, 1, 30 / 30 / 30 / 28 / 30 / 30, Fighting, 59
    231, 32342.44156, 7e56/7e57, (7e57), Rash, 0, 31 / 28 / 30 / 26 / 30 / 30, Fighting, 68
    227, 43594.43172, aa4a/aa4b, (aa4a), Naive, 1, 25 / 28 / 30 / 27 / 26 / 30 Rock, 68
    217, 51341.56682, c88d/c88e, (c88e), Calm, 1, 31 / 25 / 27 / 26 / 27 / 31, Electric, 68
    207, 13297.15942, 33f1, (33f1), Lonely, 0, 27 / 31 / 26 / 26 / 27 / 31, Grass, 70
    202, 2595.485149, a23/a24, (a23), Rash, 1, 31 / 26 / 29 / 26 / 31 / 30, Fire, 67
    [COLOR=Black]201, 27388.1791, 6afc, (6afc), Jolly, 0, 31 / 31 / 31 / 27 / 30 / 30, ---, ---[/COLOR]
    187, 9111.957219, 2398, (2398), Impish, 1, 26 / 28 / 27 / 30 / 31 / 31, ---, ---
    177, 51095.86441, c798, (c798), Lonely, 0, 31 / 30 / 28 / 27 / 30 / 31, ---, ---
    174, 18078.89655, 469f, (469f), Timid, 0, 25 / 25 / 31 / 26 / 26 / 31, Ground, 68
    169, 58168.04734, e338, (e338), Careful, 0, 30 / 29 / 31 / 30 / 26 / 31, ---, ---
    [COLOR=Black][B]159, 39568.90566, 9a91, (9a91), Timid, 0, 31 / 27 / 31 / 27 / 31 / 30, Ice, 70[/B][/COLOR][COLOR=Black]
    [COLOR=Black][B]150, 26214.4, 6666/6667, (6667), Jolly, 1, 29 / 31 / 28 / 31 / 31 / 31, ---,---
    142, 11076.50704, 2b44/2b45, (2b44), Adamant, 0, 31 / 27 / 31 / 30 / 31 / 31, ---, ---[/B]
    126, 59249.47619, e79e/e79f, (e79f), Calm, 0, 26 / 25 / 30 / 30 / 30 / 30, Fighting, 68
    [B]101, 5190.970297, 1447, (1447), Bold, 1, 29 / 25 / 31 / 30 / 27 / 31, Electric, 68[/B]
    [/COLOR][/COLOR]
    note: half counts are derived from 2 beats at the faster indicated tempo
    
    Tempo(Fast Tempo), seed(decimal), seed(hex), (seed of spread), Nature, Ability, IVs, Hidden Power, HP Power
    
    [COLOR=Black][B]118.5(237), 40648.91139, 9ec9, (9ec9), Hasty, 0, 31 / 31 / 25 / 26 / 31 / 31, Electric, 67[/B][/COLOR]
    112.5(225), 34952.5333..., 8888/8889, (8888), Careful, 0, 30 / 26 / 29 / 30 / 30 / 30, ---, ---
    110.5(221), 296.5429866, 128/129, (128), Timid, 0, 25 / 26 / 30 / 31 / 26 / 31, Bug, 69 
    [SIZE=2][COLOR=Black][B]107.5(215), 57915.53488, e23b/e23c, (e23b), Calm, 1, 26 / 31 / 26 / 26 / 31 / 31 Grass, 70[/B][/COLOR][/SIZE]
    92.5(185), 3542.486486, dd6/dd7, (dd6), Careful, 1, 31 / 28 / 29 / 28 / 30 / 31, ---, ---
    85.5(171), 42540.91268, a62d, (a62d), Jolly, 0, 30 / 31 / 30 / 29 / 28 / 31, ---, ---
    [COLOR=Black]84.5(169), 50800.09467, c670, (c670), Naughty, 1, 31 / 26 / 30 / 27 / 31 / 31, Ice, 70[/COLOR]
    [COLOR=Black]83.5(167), 62396.5509, f3bc/f3bd, (f3bd), Modest, 1, 28 / 26 / 30 / 31 / 30 / 31, Bug, 69
    73.5(147), 64198.53061, fac6/fac7, (fac7), Hasty, 0, 30 / 29 / 31 / 31 / 28 / 30, ---, ---
    69.5(139), 471.4820141, 1d7/1d8, (1d8), Lonely, 1, 29 / 29 / 26 / 31 / 30 / 30, Rock, 68
    [COLOR=Black][B]63(---), 53052.95238, cf3d, (cf3d), Naughty, 0, 30 / 30 / 31 / 30 / 31 / 30, Fire, 70[/B][/COLOR][COLOR=Red] 
    [COLOR=Red][COLOR=Black](cf3d), Jolly, 0, 30 / 31 / 30 / 31 / 29 / 30, ---, ---[/COLOR][COLOR=Black]
    [COLOR=Black]63.5(127), 58311.55906, e3c7/e3c8, (e3c8), Hasty, 0, 31 / 26 / 31 / 30 / 30 / 30, Flying, 70[/COLOR]
    [/COLOR][/COLOR][/COLOR][/COLOR][COLOR=Lime][COLOR=Black]
    [/COLOR][/COLOR] 
    Needless to say, I'm stoked to test my theory out when I get to Zapdos.

    The Spreads listed above were the best I could find of the "easy" to hit spreads. They aren't easy to hit at all, by any standard, but they should be easier to hit than most other tempos.

    EDIT: put in more spreads from that I found from tempos 240 - 98 BPM

    EDIT2: After discovering you can get rare candies from pickup (rarely!), I am going to test my theory on Snorlax first, with the final target being:

    105, 18724.57143, 4924/4925, 4924, Sassy, 1, 30 / 31 / 31 / 27 / 30 / 0
    will do through 60 BPM tomorrow
Thread Status:
Not open for further replies.

Users Viewing Thread (Users: 0, Guests: 0)