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.

Most Generation PRNG Help / Information

Discussion in 'Wi-Fi' started by mingot, Mar 16, 2009.

  1. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    Let's hope that time whatever you get has very good IV spreads since it seems pretty consistent.

    If we could find out the frames spent on the continue screen and the time when you press continue using the rapid A pressing method, me could find out the seed and spreads of each day to see which ones have the best.
  2. Wiil

    Wiil

    Joined:
    Dec 28, 2006
    Messages:
    446
    I was hoping to test this for real, so I have some questions. First, where is a list of good spreads yet? If not I guess I can test with one of the others. Second, here's what it looks like to me: You set the time and then when you hit the icon to start the game, the time part is set. Then you spend a certain amount of time on the "continue" menu, and once you hit that right, then that's set. Then, you take a step and wait a certain amount of time, and once you do that, the IVs are set for the Pokémon you're about to battle. Is this right?
  3. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    The time is set when you hit A on the continue screen, not when you click the icon to start the game. I don't think you need to take a step for the IVs.
  4. Wiil

    Wiil

    Joined:
    Dec 28, 2006
    Messages:
    446
    So in order to get the right time, you have to have another clock running to show you what time you have so you know when it hit A?
  5. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    yes I guess so.

    If you do the rapid A method crap, you can find out what time you get and put that seed in and see what spreads you get. You can do this starting with different times and see which ones have the best.
  6. Lightsabre

    Lightsabre

    Joined:
    Aug 1, 2008
    Messages:
    1,958
    this is confusing me a bit. it says that the seed is fixed when you press continue, if so then why aren't all of the pokemon caught during that run of the game the same? sorry if I'm not understanding it well
  7. Pink

    Pink

    Joined:
    Sep 11, 2007
    Messages:
    1,679
    I believe that they are inaccurately explaining it. From what I understand, the spreads depend on:

    1) The current DS Time
    2) Time Spent on the Continue Screen.
    3) Steps take (?)

    So, the reason all IVs aren't the same is becaues the seed isn't fixed automatically. It's when the battle starts (like in Emerald). It just now also depends on the time in game, the time on the continue screen, and the current DS time.
  8. Wiil

    Wiil

    Joined:
    Dec 28, 2006
    Messages:
    446
    So after you hit continue, it's just like Emerald? So we need to set the time and stay on the continue screen for a certain amount of time, and then just do Emerald's thing?
  9. Aversion

    Aversion

    Joined:
    Apr 7, 2006
    Messages:
    58
    From this video I think it's pretty clear that the number of steps taken is important:

    http://www.youtube.com/watch?v=Zi458dNcYis&feature=channel_page

    I can't understand all of what's going on there, but it looks like he's catching a pokémon, then using its PID to work backward to the seed. After that I think he's advancing the seed to where he wants by forcing calls to the RNG (my only guess as to what that messing with the Pokétch is about), then counting steps to make sure that he ends up with a shiny.
  10. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    Mingot might be better at explaining this but I'll try.

    Lightsabre: The seed is pretty much the starting PID. Every frame, the game calculates the next one based on the previous one. In emerald, it always started at the same one, so it was easy to calculate the times of each spread. In this, the starting one is based on the time of the ds and length of time on the continue screen.

    Pink: pretty much the same as above. We aren't sure how the steps taken affect the RNG I think.

    Artemis Fowl: Yes it's like emerald but the original starting seed is based on the time spent on continue screen and the time when you hit continue. It won't produce the same spreads as emerald but you can change the time and check for good spreads coming earlier.

    Aversion: The steps is important, but if you stand in front of something and SR the PID still changes so walking isn't neccessary, but we aren't sure how it affects it. I have to watch the video again.

    This is a nice find Aversion. Watching the video, you are write, he finds the seed. The poketech is probably messing with the RNG somehow. The counting is the steps needed for the egg to be hatched. He never really counted the steps until it was to hatch the egg which is after the PID is made.
  11. Syberia

    Syberia [custom user title]
    is a Pre-Contributor

    Joined:
    Jun 22, 2005
    Messages:
    5,014
    Potentially not true; every time you SR the game, the time and how long you spend on the continue screen fluctuates. You will always begin with a different seed unless you time it, which no one has done up to this point. It is a possibility that this is what causes each SR to be different, and not necessarily how long you spend in the game once you load your save file.
  12. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    If you read through this and the last page, 2 or 3 of us have got the same spread of a pokemon, thus meaning we have gotten the timing correctly.


    I think they have a program mingot is making that allows you to check the spreads of a certain seed allowing them to know their shiny.
  13. mingot

    mingot free agent
    is a Site Staff Alumnusis a Battle Server Admin Alumnusis a Researcher Alumnusis a Smogon Media Contributor Alumnusis a Contributor Alumnusis an Administrator Alumnus

    Joined:
    Jun 15, 2008
    Messages:
    3,050
    Well right now it's really just going to help you at least find your seed. At least the version I am doing later tonight. THIS IS OUT NOW.

    http://www.eggmove.com/rngreporter

    In the future I plan to be able to get a seed (not THE seed, but A seed, if that makes any sense) so you can at least check what comes next if you catch something and input the IVs and nature.

    BTW, good work everyone. :)
  14. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    I'm trying to see how the video changes the PID. I think he found out with his ID and secret ID and what frame number made a shiny, 1026, for his starting seed. I think he divides 1026 by 12, remainder of 6, and gets 85. He hits the 6th app 85 times, goes to the 16th app, flips it the remainder - 1 (5 times) and then goes to the next app. Somehow this adjusts it to the correct PID.

    This is just a guess/hypothesis.
  15. Pink

    Pink

    Joined:
    Sep 11, 2007
    Messages:
    1,679
    What evidence do we have for taking steps affecting the seed? Could actually be the Poketech? Maybe when he flipped the coin it had to use the RNG, therefore call a new seed?
  16. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    Pink, I think you are right. I don't think steps affect it. It is indeed the poketech I think.
  17. Pink

    Pink

    Joined:
    Sep 11, 2007
    Messages:
    1,679
    The RNG isn't used for walking right? I know it is for turning around (right?) but I can't see how that would affect the seed.

    Someone do this. (please) Go to a legendary Pokemon and set the DS time to 12:00 or w/e you want. Wait until exactly 12:00:30 to start the game. Then, Wait until exactly 12:01:00 to hit continue. Here's where is splits.

    • Do 10 trials as the control. (at least) Wait a minute, face said legendary, and catch it. check Nature and IVs.
    • Then do the exact same timing, but when waiting the extra minute, flip the coin on the Poketech once.
    • Then do one test with taking a step, wait a minute, catch.
    Compare hte IVs and Natures.
  18. mingot

    mingot free agent
    is a Site Staff Alumnusis a Battle Server Admin Alumnusis a Researcher Alumnusis a Smogon Media Contributor Alumnusis a Contributor Alumnusis an Administrator Alumnus

    Joined:
    Jun 15, 2008
    Messages:
    3,050
    Assuming the coin flip is rng mod 2 chances are someone with too much time on their hands could figure out where they were by flipping a 32 times and noting the results :) (in most cases.) (most likely).

    Hrm, hell, thats perhaps not a horrible way to figure it out hahah.
  19. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    If I ever figure out my original seed, I will try the app crap. I will try different things.

    Where does the 1026 come from? It's for the RNG at a specific time but I don't see how they get it.


    edit

    I found a way to do this that I got from the video (may not be the same as the video but just as effective hopefully).

    What you do is you catch a pokemon and use the IV to PID app. Convert the PID to the one right before it.

    In the video:
    Starting seed: 5b15025b
    at 00:00:58 is the spread he gets, and the PID is 30A43A5F.
    The PID on the sheet he shows is 3A5F4A52.

    When you put in 3A5F4A52 as the seed it continues on from the PID 30A43A5F.

    If we catch a poke, find its PID, and get the PID right before it, we can see all the possible spreads after we caught the pokemon.
    This we allow us not to matter about the continue time because we can solve without it.

    I'm not sure if you can get the previous number thing though.

    Edit 2: After doing all this I realized you probably can't find the previous PID which is dissappointing, because we have to find the PID the guess and check way.
  20. VileTung

    VileTung

    Joined:
    Jul 25, 2008
    Messages:
    1,384
    I did some searches, and I'm not sure if someone said this before; but I think, that after every 128 steps the Seed is changes.

  21. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    Has anyone been able to find out their starting seed using the RNG thing mingot made? I havent :(
  22. mingot

    mingot free agent
    is a Site Staff Alumnusis a Battle Server Admin Alumnusis a Researcher Alumnusis a Smogon Media Contributor Alumnusis a Contributor Alumnusis an Administrator Alumnus

    Joined:
    Jun 15, 2008
    Messages:
    3,050
    If possible could you post this here:

    http://www.smogon.com/forums/showthread.php?t=52392

    and delete the post in this thread so we can keep it platinum related. I'll have a good answer for you there, I promise :)

    Ok ... The thing about what I did is that I just followed the formula given and plugged it in. The bad thing is that there is just a lot of variation in the seed and you might have to really check 50 or more different seeds, assuming it's correct. Additionally if the RNG is not moving forward based on time, but steps (and a high number) your number could be clipped where it skips that first three. But the honest answer is that I just don't know.

    Now about your previous post --

    You are on the right track, but the problem is you can't just look at or squish together pids and dv numbers to get a seed. The seed (and rng results) are 32 bit numbers with 16 bits discarded. So a PID is two rng calls. Half of the seed is missing. Xacts program actually does generate that whole seed behind the scenes, but he does not show it to us.

    Anyhow, here is what I think I need to provide:

    When user catches a pokemon he inputs the following (to make it suck less I can save things like year, etc between runs as I do now on the seeding screen):

    IVs
    Nature
    Year of start
    Month of start
    Day of start
    Hour of start
    Minute of start

    And then with this information I do the following:

    From the IVs and nature get a list of seeds that create this particular pokemon. This will be very much like what xact does today.

    Once I have this seed I start running it through a reverse RNG. Basically an RNG that goes backwards. SVG has given a good description of how to do this so it should not be a huge problem.

    As I go backwards inspect each 32 bit seed doing the following:

    See if it matches up to the platinum seed generation algorithm. Since the user will have entered a lot of information that HAS to match (year, month, etc) I can discard many of these values. For ones that do match I will output a list that shows what the seconds and delay values were. Comparing this to what you thing you hit should let you get the honest to god seed right away instead of having to fuck around with entering 60+ different seeds and seeing if it hit.

    Anyhow thats the plan. No idea when I will be able to complete it, so please don't just stop and wait for me. Lots to investigate still. Does walking or time effect rng? Etc. I know it will be a lot easier once we can get a seed, though.

    Also anyone out there feel like writing a simple IVs to seed application in the meantime ;)
  23. LightningFusion

    LightningFusion
    is a Forum Moderator Alumnus

    Joined:
    Mar 3, 2009
    Messages:
    1,781
    I can't wait if you get the done. I've been walking catching wild pokemon, so I'm going to try going to Dialga/Palkia and try not moving.
  24. VileTung

    VileTung

    Joined:
    Jul 25, 2008
    Messages:
    1,384
    Do you think it will be possible to write it in PHP, if so, I'm willing to make it, but I need to know how it works. (And some small examples?)
  25. mingot

    mingot free agent
    is a Site Staff Alumnusis a Battle Server Admin Alumnusis a Researcher Alumnusis a Smogon Media Contributor Alumnusis a Contributor Alumnusis an Administrator Alumnus

    Joined:
    Jun 15, 2008
    Messages:
    3,050
    I'm sure it can be done in PHP, but it could be a little slow (and it will spike the CPU as it's going to have to plow through some possibilities to check).

    I have the links to the instructions at home, though, so I will try to get those to you this evening. The general idea, though is to take the DV number (create it from the IVs, see xacts article) and then to basically use this as 1/2 of the seed and then plow through all 65536 combinations of the first part, using each one to seed a reverse RNG to get the PID part until you find one (or more) with the same nature. At least this is what gathered I was going to have to do from a quick skim of the articles that I read.

    Next for each match you start going backwards through the sequence looking for possible matches based on the formula for platinum seeding and present the probable canidates to the user.

    Fun stuff and I think the result will be pretty fucking awesome.

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