j2k15 Posted July 18, 2016 Author Posted July 18, 2016 So what we can assume as a starting point for the Gotta Catch'Em All replica machine : Eggs : - Will receive OT and ID of the player - Will generate genes randomly with shiny locking 7/8 of the time - Will fix shiny genes 1/8 of the time and attack gene will be picked-up randomly amongst 2, 3, 6, 7, A, B, E, F Legendary and evoluted forms : - OT name will be PCNY plus suffix - ID will be sequential - If not shiny locked, will generate genes randomly amongst shiny locked combinaisons 7/8 of the time - If not shiny locked, will generate shiny genes with attack genes generated randomly amongst possible shiny attack genes 1/8 of the time - If shiny locked, will generate random genes amongst shiny locked ones Mew : - With Gen 1 fixed genes Note: according to bulbapedia Celebi would be in the 1/8 to be Shiny. Mew is not. http://bulbapedia.bulbagarden.net/wiki/List_of_Gotta_Catch_%27Em_All_event_Pok%C3%A9mon#Celebi
suloku Posted July 19, 2016 Posted July 19, 2016 From what I've seen in the Crystal dissassembly, maybe the machine determined, with a 12/100 probblity (if we trust bulbapedia), if the pokemon would be shiny or not. Then it would use the normal algorythm (which may also output a shiny with the standard 1/8192 probability) or the shiny locked algorythm. If you want to replicate the distribution programatically, I would advise: - Use a different OT, for example PCNYz. I don't think anyone wants to have a fake running around. - Use only IDs starting at least at 60000. The machines never seem to have reached this number, actually maybe they didn't even reach the 2000 (well, probably the first celebi distribution did). If the machine used a PRNG tied to clock cycles like the gameboy versions did, every single pokemon distributed is unique. Using an ID on the 60000 means that the generated pokemon could actually have been legit. The only trully legit ones though, are the ones that got distributed, at least imho. It's a pitty we don't have more of the shiny versions, specially a shiny celebi. At lest the eggs (the vast majority of the distributions) can be replicated. In your program you could add a "legit mode" were you randomly distribute one of the legit shinies that are in the savegame. There are some repeats for celebi, the 3 shiny beasts ant the shiny johto starters, with different attack DVs. ps: I tested if the DVs were generated with the gen 3 or stadium algorythm, seems we aren't that lucky.
j2k15 Posted July 19, 2016 Author Posted July 19, 2016 At startup, I'll give the possibility to choose OT and hardcode some forbidden ones (e.g. PCNYa, ...). ID startiing at 60k is also fine. I'll take those requests into consideration. Do you have the disassembly ? So that I can have a look at generation algo's ?
suloku Posted July 19, 2016 Posted July 19, 2016 Do you have the disassembly ? So that I can have a look at generation algo's ? https://github.com/pret/pokecrystal/blob/d2a3e4a6a42b58e7b0005558a7dcb3907a76b7fd/home/random.asm Note: rDIV increases by 1 every 256 gba clock cycles. Don't really know how the carrier gets set/unset though.
j2k15 Posted July 27, 2016 Author Posted July 27, 2016 Thanks a lot, will check this. Biggest challenge in my project will be to find a Retrode GBx Plugin (Adapter).
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now