Bridging Game Worlds With The ‘Impossible’ Pokémon Trade

Six GameBoy Pokemon games

Transferring hard-earned Pokémon out of the second generation GameBoy game worlds into the ‘Advance Era’ cartridges (and vice versa) has never been officially supported by Nintendo, however [Goppier] has made these illicit trades slightly easier for budding Pokémon trainers by way of a custom PCB and a healthy dose of reverse engineering.

Changes to the data structure between Generation II on the original GameBoy (Pokémon Gold, Silver and Crystal) and Generation III on the GameBoy Advance (Pokémon Ruby, Sapphire, FireRed, LeafGreen and Emerald) meant that trades between these cartridges was never a possibility – at least not through any legitimate means. In contrast, Pokémon trades are possible between the first and second generation games, as well as from Generation III and beyond, leaving the leap from Gen II to Gen III as an obvious missing link.

Modern players have already overcome this limitation by dumping the cartridge save files onto a PC, at which point any Pokémon could be added or subtracted from the save. Thus, this method relies on self-control as well as the right hardware. [Goppier]’s solution is arguably far more elegant, and requires very little extra hardware. A simple PCB with ports for older and newer GameBoy Game Link Cables is the physical bridge between the generations. An ARM Cortex microcontroller sits between these connections and translates the game data between the old and the new.

The microcontroller is required to translate the data structure between the generations, and seems fit for purpose. Not only does the Pokémon data require conversion, but a few other hacks are needed before the two generations will talk nicely to each other. Pokémon on the GameBoy Advance brought in new features such as representing player movement in the trading rooms (i.e. you can see the other player moving on your screen), which also had to be addressed.

The concern over the legitimacy of trades within the Pokémon community is a curious, yet understandable, byproduct of the multiplayer experience. As an example, modern players have to be wary of ‘hacked’ Pokémon, which can often introduce glitches into their game world following a trade. Apart from these issues, some Pokémon players simply desire genuine Pokémon as part of fostering a fair and enjoyable gaming experience.

This literal bridge between Gen II and Gen III game worlds brings the community tantalizingly close to a ‘legitimate’ means of transferring their Pokémon out of ancient cartridges and into modern games. Could Nintendo one day officially sanction Gen II to Gen III trades with a similar device? Crazier things have happened.

We love our GameBoy hacks here on Hackaday, so why not check out this project that replaces the battery-backed SRAM in your GameBoy games with FRAM?

13 thoughts on “Bridging Game Worlds With The ‘Impossible’ Pokémon Trade

  1. First things first, hacked Pokémon have no ability whatsoever to damage save data for anything Gen 3 and beyond! Gen 1 and 2 *can* suffer from issues presented, but at worst something like the Hall of Fame would corrupt. In Gen 3+ they added a concept of “Bad Eggs” and defaults for corrupted Pokémon. In Gen 6 for instance, a corrupted Pokémon is a shiny Bulbasaur you can’t trade. *Except* it can be moved up into Pokémon HOME, which leads to easy hacking in Gen 8 via that method.

    Additionally, there is already an official method to bridge Gen 2 into the later Gens, but it’s Gen 2 to 6+ with Pokémon Bank, and your Pokémon would not be considered legit to the wider community if you used your original Gen 1/2 saves on the Virtual Consoles. They would be considered legal however, so Nintendo won’t care.

  2. Honestly I’m just over here giggling at the author describing this as useful information for “budding” Pokemon trainers, as if anyone who hasn’t already been playing these games for at least 20 years would have any reason to care about this at all.

    1. 21 yr old male here.

      Perhaps I’m the minority, but I do enjoy tinkering with hardware and software. And if one day I could get my hands on everything needed to do the tinkering in this article, I definitely would.

      So, yes, anyone who hasn’t played the originals on actual hardware (or born when it came out) can and will be interested in doing this. One day I’d even like to start from Gen 1 and transfer all the way up.

      1. The only reason why someone started to play gen 1 is because for nostalgical reason. No one opt to play it for the sake of just for. The remake on GBA is a balance remake. As gen 1 and 2 use 16 iv instead of 32 iv, the pokemon is very week if they are transferred over to gen 3 console. It also have a problem with ev training. If i remember correctly, their ev training is almost similar like lets go series bar using candies and fighting pokes with certain evs. As the way the pokes was transferred from game to game, IV wont be a problem but some other things might make your file corrupt. The way they transferred pokes is that, they take the pokemon id, their iv id, their nature id, their ev id, their moveaet id, their held item id and their passive id. It just copy and paste the data from both the traders and registered it into the trades respective slot. In gen 1 and 2, somethings are not available and that in return will make the pokemon become a bad egg.

  3. Ive tranferred all mine over already. Just using the apps on the ds with gb slot and on. Dunno if they still work now though. Only hack i did, was use, i forget what, to get japan event only or similar pokemon years ago.

    1. You couldn’t transfer from the generation 1 and 2 games via the DS GBA slot as it only accepted GBA games, no GameBoy/GameBoy Color games. Other than that, all the methods to move stuff from GBA all the way up to the Switch still work to this day.

  4. The biggest problem is movements got radically changed for some mons between game 1, 2 and 3. Which could lead to severe problems such as Machamp knowing Fissure a OHKO move in gen 1 but losing it in gen 2 and 3 (though if you transfered it from gen 1 to gen 2 it would still know it.) when it was given its ability to always succeed whenever it attacks, which I shouldn’t need to tell you is broken. That is probably why we will never get a truly sponsored trade from gen 2 and gen 3.

    1. You can still use the Virtual Console copies to get a Fissure Machamp into Bank, then bring it into SwSh where you can give it No Guard as the ability.
      Realistically, the reason why no was no official way to transfer 2 3 was the hardware differences, most notably that GBAs run at 3.3V whereas GameBoy/GBC run at 5V. This would mean that they’d need to make a special device to do this transfer, like what was made here. It was likely then decided to access the Pokemon from gen 1/2 that otherwise wouldn’t be accessible in a different way (other ways to encounter them) would be easier and more accessible, not that that’s necessarily the case in how it turned out.

  5. Interesting to see a different approach to this same concept. I’m working on a similar project that is instead a one-direction transfer more similar to the official Poke Transporter (used to bring Pokemon from VC gen 1-2 to Bank and gen 5 to Bank). My first concept was to do trading like this, but struggled finding resources on the trading protocol, and lacking the knowledge myself to try to reverse engineer it, I went the approach of directly manipulating the save data on each cartridge via an Arduino.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.