Kaphotics Posted July 24, 2010 Posted July 24, 2010 (edited) How do you know this? I'm not saying you're wrong. I've RNG'd on an emulator. When you enter the game, there is a specific location in the memory where the exact seed appears (8 digits). To the left of it is the current seed, which at the start is a "Frame 0", which is the exact same seed. http://www.smogon.com/forums/showpost.php?p=2530958&postcount=15629 A notable RNG Emulator user (Kazo) wrote a program that tells you the location of the seeds in the ARM9, in which you can then use to calculate frame. Once I know my Initial seed, I can calculate the frame I am on at any time. The 8 digit initial seed can "transfigure" into an unrecognizeable seed, but it does not influence the current seed (frame) (except sometimes advancing the "frame" by 1~). When I calculate my frame, I use the first initial seed I hit, and then type in the current seed. Even if the initial 8 digit seed changes, the current frame can still be calculated off of the initial seed (that was later transfigured etc) Kinda hard to explain.. not many people do RNG on emulators out of the RNG population. KazoWAR knows this much better than me, I hope I didn't say anything wrong P: TL omg SUMMARY Everything is predictable from the initial seed, I've never had it reseed out of all of the RNGing i've done... (too much lol) Edited July 24, 2010 by Kaphotics transfiguring +1, and kazowar ref, lastly summary lol
Bond697 Posted July 24, 2010 Posted July 24, 2010 The seed is considered the first number that's fed to the RNG function. (At least from a programming point of view... I wouldn't be surprised if the Smogon community has their own unique (and inaccurate) definition.) I can't speak for Jonathan, but I've personally assumed that the RNG function gets that first seed and uses the result of every RNG call for each successive call for the rest of the game. It's certainly possible that the game actually starts the process over with a new seed at any point, I just don't know. Reading yours and kaphotics posts, I see where the confusion was. I've seen "initial seed" refer to the seed you get as soon as the game loads the save and starts many times on Smogon. Good to know the difference. And thanks for that link, kaphotic. I've fooled around with RNG-ing on DesmuME a bit and this should make it more bearable.
Codr Posted July 24, 2010 Author Posted July 24, 2010 When you enter the game, there is a specific location in the memory where the exact seed appears (8 digits). To the left of it is the current seed, which at the start is a "Frame 0", which is the exact same seed. Taking out the Smogon-born RNG program's terminology, you're saying there's a location in memory where the seed is stored and that value never changes throughout the duration of the game? The 8 digit initial seed can "transfigure" into an unrecognizeable seed, but it does not influence the current seed (frame) (except sometimes advancing the "frame" by 1~). So... this supposed seed location in memory does in fact change, but doesn't actually change the RNG calls? Even if the initial 8 digit seed changes, the current frame can still be calculated off of the initial seed (that was later transfigured etc) But not the new value that's in the seed's supposed memory location, correct? Everything is predictable from the initial seed, I've never had it reseed out of all of the RNGing i've done... (too much lol) Haha, this showed up in the quoted text, but not in your post yet. So I guess this essentially answers question #2, that this supposed seed memory location changing doesn't actually affect RNG calls at all. The end result of all of this being: If the RNG is in fact only seed a single time based on the date/time + some other value at the beginning of the game... and it's not possible for the RNG to be called 4294967295 times within 24 hours... it should be possible to link a PID to the date the Pokemon was met. As I originally said though, this is RIDICULOUSLY extreme. Edit: After giving it a little more thought, the only way to even verify this PID/date relationship would be to step through potentially billions of iterations of the RNG. I guess this wouldn't be too big of a deal if it's an option and not forced. Surprisingly, it only took about 8 seconds with my Phenom 955 processor to go through 4294967295 calls.
Kaphotics Posted July 24, 2010 Posted July 24, 2010 (edited) Initial and Current 1. Yep there's a location for both the initial and Current, and KazoWAR's little program has the locations for all the US ones. 2. 4 3. I tried calculating it from the transfigured seed, but it didn't work. The initial seed did calculate the right frame I was on. 4. yup. It transfigures on various events such as time or weather effects, as I have noticed so far. ~~But everything still relies on that initial seed. Even NPC movement.... The end result of all of this being:If the RNG is in fact only seed a single time based on the date/time + some other value at the beginning of the game... and it's not possible for the RNG to be called 4294967295 times within 24 hours... it should be possible to link a PID to the date the Pokemon was met. As I originally said though, this is RIDICULOUSLY extreme. 298572357325 times is too much . People try to link the PID to the initial seed/date, but of course you can close your DS after you encounter the pokemon and wait however long you want to catch it on a later date. On an emu you can change your computer time to catch it even before you hit your seed P: It's relative to the RNGer and checker, and it is very extreme. For some the PID is very important... there's different methods in which a pokemon gains its PID (roamer, DPPt, HGSS), so you just need to see if you can get that PID to appear on a seed that will appear in that game for the particular method of the pokemon. Edited July 24, 2010 by Kaphotics edited in response
Codr Posted July 24, 2010 Author Posted July 24, 2010 298572357325 times is too much . 4294967295 isn't an arbitrary value. People try to link the PID to the initial seed/date, but of course you can close your DS after you encounter the pokemon and wait however long you want to catch it on a later date. You're right... I didn't consider that. With this in mind, there almost definitely isn't any way to link the PID and date caught.
codemonkey85 Posted July 24, 2010 Posted July 24, 2010 Isn't the original met date of the Pokémon sort of moot? Technically, you can start playing and leave the game on for days (while plugged in). Therefore, the date met doesn't have to be the date you started the game. So I seriously doubt anyone could ever verify what initial seeds are possible to any degree of certainty. As far as I know, there is no algorithm used for eggs. I don't personally think this is entirely correct, I just think nobody has done any conclusive research on it yet. Someone else might be able to give more information though. I believe Sabresite told me a long time ago that he thinks egg PIDs (or IVs?) are generated using a variation of the Mersenne twister. I don't know that anything's ever been proven though... probably not.
Necrodox Posted July 24, 2010 Posted July 24, 2010 (edited) Sorry to break up the (quite intriguing) conversation but I just have a question in regards to the "Methods" in PokeGen when searching for PID's which "Methods" (1-11) are used for what Pokemon? Lets say for instance, I wanted to generate a Pokemon in these games; Fire Red/Leaf Green (which method?) Ruby/Sapphire/Emerald (which method?) Diamond/Pearl/Platinum (I was told for games like these it would be Method 1?) SoulSilver/Heart Gold (which method?) I appreciate the help; thank you! Edited July 24, 2010 by Necrodox
Necrodox Posted July 24, 2010 Posted July 24, 2010 Sorry for the double post, don't know how that happened.
Codr Posted July 24, 2010 Author Posted July 24, 2010 Fire Red/Leaf Green (which method?)Ruby/Sapphire/Emerald (which method?) 1, 2, 4, 7 Although Sabresite thinks that it could be 1-9 for generation 3. Some are just extremely unlikely to occur normally. Diamond/Pearl/Platinum (I was told for games like these it would be Method 1?)SoulSilver/Heart Gold (which method?) 1 Based off of http://www.smogon.com/ingame/rng/pid_iv_creation#rng_pokemon_generation.
Necrodox Posted July 24, 2010 Posted July 24, 2010 So a Lugia, Dialga, Palkia or whatever I obtained within Soul Silver will also be granted a Method 1? I thought I'd need to use a different version considering Lugia is a generation 2 Pokemon but as long as the game is Diamond/Pearl and later Method 1 will be used correct? I am also curious about ID and SID when it comes to event Pokemon such as Arceus and Deoxys, can I use my SoulSilver ID and SID or will I need to alter these numbers to something along the lines of 00000 (read it off somewhere, wasn't sure). Thanks in advance!
Codr Posted July 24, 2010 Author Posted July 24, 2010 So a Lugia, Dialga, Palkia or whatever I obtained within Soul Silver will also be granted a Method 1? I thought I'd need to use a different version considering Lugia is a generation 2 Pokemon but as long as the game is Diamond/Pearl and later Method 1 will be used correct? Based on the URL I gave you, this is correct.
Necrodox Posted July 24, 2010 Posted July 24, 2010 Sounds good, thanks for the response; much appreciated!
Bond697 Posted July 24, 2010 Posted July 24, 2010 I am also curious about ID and SID when it comes to event Pokemon such as Arceus and Deoxys, can I use my SoulSilver ID and SID or will I need to alter these numbers to something along the lines of 00000 (read it off somewhere, wasn't sure). Thanks in advance! \You would need to look up the proper location, s/id, etc if you want it to look legit. if you're going to do that though, why not just grab the wondercard from here and inject it into your save with the tool available here?
Jonathan Posted July 24, 2010 Posted July 24, 2010 Oh wow this conversation moved really fast! Response to my second post. Alright, thanks for confirming my questions. I can't imagine how much work you'd have to do programing this stuff in, and especially considering kaphotics' point about you being able to close your DS once you encounter the Pokemon, it certainly doesn't seem worth the effort. Thanks for elaborating on the order in which your program does the series of events we were discussing, it actually explains why RNG Reporter takes ridiculously long to search for results. Response to my second post. You are right of course, about the initial seed only generating the first Pokemon caught on the startup. Your post certainly sheds light on how complicated it would be for Codr to implement all the data in RNG Reporter. Regarding some spreads not being available on certain days, I feel this must be the case: I don't think you could advance the frame enough to go through all the RNG iterations in a single day. A lot of the conversation that followed went way over my head; like I said I only have limited experience with RNG abuse. But two things that came out of the conversation made me realize how hard proving the legitimacy of a Pokemon actually is (besides all the obvious indicators of course): 1. My initial post didn't take into account that not all Pokemon are caught on the first frame; thousands can advance before the Pokemon is caught. 2. Even if you encounter a Pokemon on the first frame of your initial seed, you could shut your DS off for a month and then capture it. These two points make proving a Pokemon's legitimacy extremely difficult, to the point where it really wouldn't be worth programing into PokeGen in my opinion. Moreover, I suppose you could technically argue the legality of any PokeGen-created Pokemon as such: suppose the PID & IV combination was legitimately available on 4/5/2010 at 9:52AM after 1046 frames had advanced. The Pokemon you have was met on 4/10/2010. Who's to say you didn't open your DS on 4/5 at that time, encounter the Pokemon after 1046 frames had advanced, left your DS closed for 5 days, and then caught your Pokemon?
Codr Posted July 24, 2010 Author Posted July 24, 2010 I can't imagine how much work you'd have to do programing this stuff in, and especially considering kaphotics' point about you being able to close your DS once you encounter the Pokemon, it certainly doesn't seem worth the effort. It's not just not worth the effort, it's completely pointless, given the DS sleep scenario. Nintendo, nor anyone else, could say that a PID has to be related to the date the Pokemon is caught because of this. These two points make proving a Pokemon's legitimacy extremely difficult Not difficult, impossible, based on date. Moreover, I suppose you could technically argue the legality of any PokeGen-created Pokemon as such: suppose the PID & IV combination was legitimately available on 4/5/2010 at 9:52AM after 1046 frames had advanced. The Pokemon you have was met on 4/10/2010. Who's to say you didn't open your DS on 4/5 at that time, encounter the Pokemon after 1046 frames had advanced, left your DS closed for 5 days, and then caught your Pokemon? You got it, although you made that a little more complex than it needed to be.
Kaphotics Posted July 24, 2010 Posted July 24, 2010 (edited) It's not just not worth the effort, it's completely pointless, given the DS sleep scenario. Nintendo, nor anyone else, could say that a PID has to be related to the date the Pokemon is caught because of this. There are many initial seeds that cause the PID to appear. This happened last night (post 38 onwards) when a person claimed that a Shiny Uxie was hacked because the PID did not appear on a seed in a range in which the pokemon was caught. I used http://shaym.in/apps/iv_checker to find a seed on which the PID appeared, and shifted the delay, thus getting me a new seed in which it does appear. I later posted a seed (in which the PID did appear) on the date it was caught. (without a synchronizer too) The seed is made of Date+Time, and Delay. With one combination of Date+Time (and delay), the seed will have the PID appear eventually. Change the Delay, and a different date and time combo can be calculated to create a similar seed with the same PID appearing, on a different frame. tl;dr, dates really don't matter for caught pokemon edit: found this was actually discussed elsewhere here, and here's another answer http://projectpokemon.org/forums/showthread.php?1509-Abusing-DPPt-PRNG&p=48921&viewfull=1#post48921 Dates shouldn't matter, Syberia did state that her Manaphy could not be obtained from 5/7 to 6/1, but f40903b9 as a seed has the same spread but with 5/26 possible (if it was timid). Modest (b30415f3) etc... Edited July 25, 2010 by Kaphotics
angelcat621 Posted July 25, 2010 Posted July 25, 2010 Hello. I have a suggestion for PokeGen. It would be nice if whole boxes of Pokemon could be loaded directly into a .duc file, similiar to the "Load Box" section of PokeSav. Loading one poke at a time gets kind of cumbersome, especially since I have over 500 of them.
Codr Posted July 25, 2010 Author Posted July 25, 2010 Hello. I have a suggestion for PokeGen. It would be nice if whole boxes of Pokemon could be loaded directlyinto a .duc file, similiar to the "Load Box" section of PokeSav. Loading one poke at a time gets kind of cumbersome, Is this done with a single 4080 byte file?
angelcat621 Posted July 25, 2010 Posted July 25, 2010 PokeSav generates each 136 byte pkm file as part of a group of pkm files. For example, I saved all of the pkm in Box 1 together, and the 1st mon in Box 001-030 is 001-030_01.pkm, the second is 001-030_02.pkm, and so on. When I want to load a whole box into PokeSav, I just highlight all 30 .pkm files and load them into the box at once. Each pkm file generated can also be loaded separately from the others.
Codr Posted July 25, 2010 Author Posted July 25, 2010 PokeSav generates each 136 byte pkm file as part of a group of pkm files. For example, I saved all of the pkm in Box 1 together, and the 1st mon in Box 001-030 is 001-030_01.pkm, the second is 001-030_02.pkm, and so on. When I want to load a whole box into PokeSav, I just highlight all 30 .pkm files and load them into the box at once. Each pkm file generated can also be loaded separately from the others. That's sloppy (what a surprise...), it'd be better off having a second format that's just a group of .pkm files coalesced. I can't say when anything will be added like this, but it's going on my list of things to do.
angelcat621 Posted July 25, 2010 Posted July 25, 2010 That's sloppy (what a surprise...), it'd be better off having a second format that's just a group of .pkm files coalesced. I can't say when anything will be added like this, but it's going on my list of things to do. I'm sure that whatever you come up with will be miles better than anything PokeSav can do. Thanks for considering this feature. It will be worth the wait.
Wylfred Posted July 26, 2010 Posted July 26, 2010 I'll send you a forum PM with an attachment that contains all of the necessary English text to translate.Edit: Maybe I won't. You aren't accepting PMs, so: these are the strings. There's more than this (tooltips), but these are the more important ones. Sorry for taking so much to answer, I turned notifications from PP Forums off a time ago, so now they are all on and I've sent you a friend request to keep in touch in order to finish this. I will start working on the strings and get them back to you ASAP. PokeGen runs beautifully now, my laptop sometimes goes nuts. Cheers!
Codr Posted July 26, 2010 Author Posted July 26, 2010 I will start working on the strings and get them back to you ASAP. Thanks!
Wylfred Posted July 27, 2010 Posted July 27, 2010 OK Codr, I have the translated Strings here, they are on an excel worksheet, inside a rar file. If you have any question about any term, don't hesitate to ask. Cheers!
pokefan92 Posted July 27, 2010 Posted July 27, 2010 I just want to make a question.... There are too much methods for finding a PID... ¿But which should I use in every situation? There is no explanation and be sure I was looking for some information and I've found nothing, so... I also would translate PokeGen to Spanish if you tell me how. Thanks in advance.
Recommended Posts