View Single Post
Old February 7th, 2013 (10:49 AM).
SaniOKh's Avatar
SaniOKh SaniOKh is online now
The Cynical Completionist
    Join Date: Jun 2006
    Location: France
    Age: 29
    Gender: Male
    Nature: Lonely
    Posts: 554
    Originally Posted by Cerberus87 View Post
    The problem is that the GBA could play GB games, but couldn't do anything else with them
    I know . The part you quoted was more a "what-if" scenario I used to illustrate my point: if they could make Gen 2 -> Gen 3 transfers, they would have.

    Originally Posted by Cerberus87 View Post
    The main problem is the calculation of EVs. Up to GSC, Pokémon gained stat exp on all stats, so they could max out all stats. From RS onwards, they could only max out two stats. If you converted data using a very strict guideline, you'd end up with a 2nd gen Pokémon in 3rd gen with illegal stats. If you erased all stat exp data during the conversion, level 100 Pokémon would become useless since they weren't able to gain EVs back then.
    I don't know everything 100% about EVs, but how about this algorithm (I put it in a spoiler tag, it's just... way too nerdy for this topic ) .
    1. For every stat from Gen 2, read not so much the EVs themselves, but what percentage of the total EVs the Pokémon has gained are associated with this stat. Let's call the resulting array of float values "gen2EVSpread" (and, obviously, the sum of the values must be 1, as in "100%") .
    2. Take the sum of all EVs and divide it by the maximum EVs across all stats the Pokémon can have. Let's call this value "evPercentageTotal".
    3. Multiply the max EVs a Pokémon can gain in Gen 3 by "evPercentageTotal", and you'll get the number of EVs our newly transferred Pokémon will have in Gen 3 across all stats. Let's call this new value "gen3totalEVs".
    4. Take "gen2EVSpread", duplicate the entry for Special EV (because we have two of them now) , add an entry for HP EV (make it something like the average of all other entries) . Recount the entries so that their sum becomes 1 again. Let's call the new array "gen3EVSpread".
    5. Spread the EVs across different stats by using the percentages calculated in "gen3EVSpread", so that the total EV number is equal to "gen3totalEVs".
    6. After the EVs are set, create the Pokémon itself at level 1, apply the newly calculated EVs and keep leveling it up until it reaches the same level it was in Gen 2 (basically: recalculate the stats).
    7. There you have it. A totally legit EV conversion. It has a drawback though: if your Gen 2 Pokémon had max EVs across all stats, it will become very, very average here, as none of it stats will be maxed out (though when Gen 3 came around, it wasn't an issue: people didn't know or care about EVs back then) ; and the stats will be very different from how they were in Gen 2.

    Originally Posted by Cerberus87 View Post
    Finally, the introduction of natures meant that all Pokémon from earlier generations would have to have a neutral nature and wouldn't be very useful competitively.
    You can always randomize the IVs, just like they do for wild Pokémon. The possibilities are endless.

    But in all seriousness, in my opinion, with how much Pokémon developers value connectivity, if GBC/GBA trades were possible, they wouldn't have overhauled the data structure so drastically in the first place. Just look at Gen 2, with the amount of features they introduced (genders, held items, shininess, Pokérus, Special stat split, different forms for Unown) they already needed an overhaul! I hid the explanation to why they didn't do it in another spoiler tag, because, again, I find it way too nerdy (not to mention, off topic) .
    The one thing that kept them from doing so was the desire to be backwards-compatible with the previous games, to the point where they made a feature that, from the developer's point of view, was a huge mistake (even though for us gamers, it was amazing) : two-way trades between Gen 1 and Gen 2. For these trades to be usable, they had to make sure the round-trip worked. For those who don't know what a round-trip is, in our case it is this: you have a Pokémon on a game A, another Pokémon on a game B, and both games are from different generations; if you trade Pokémon between games A and B, and then trade back, both Pokémon must be completely identical to how they were before the first trade (no data loss) . For Gen 2 it meant they couldn't expand the data structure so that no data would be lost when the Pokémon was sent to Gen 1, and had to find either unused variables ("catch rate" in Gen 1 became "held item" in Gen 2) or variables they could use for more than one purpose (attack IV also determines the gender in Gen 2) . Two-way trades created more problems than they solved, and judging by how you can't transfer Pokémon to previous games anymore, the developers realized that.

    I'm not saying they wouldn't have changed the structure at all if Gen 2 -> Gen 3 was a possibility, I'm just saying the EV/IV thing wouldn't have been so drastically different, the changes would have been implemented more progressively. But not needing to ensure compatibility with the previous game because the hardware itself couldn't do it allowed them to rebuild (at least) the EV/IV thing from scratch without ever thinking of how the conversion would work
    So... the entire GBA/GBC incompatibility was a blessing in disguise for them. Now that they had the chance to create an EV/IV mechanic and data structure that work really well and get us used to one-way trades, they don't need to block transfers anymore.
    Reply With Quote