Pokemon - 20 Years Later & Catching Them All
Primer
Pokemon is a popular worldwide media franchise, featuring a variety of creatures with different abilities and powers that live alongside humans. The franchise includes video games, animated series, and a trading card game as its main forms of media. Pokemon Emerald on the Gameboy Advance handheld console is one of the most popular and well-known games made in 2005. Since its popular release as one of the third generation Pokemon video games in the series, it has grown to have a dedicated fanbase of streamers revisiting the games to play/speed run it as well as a dedicated community of ROM hackers who try to find exploits and glitches in the game’s machine code as well create modded versions of their own game based on the original game.
Completing the Pokedex and Caveats
One of my earliest goals as a kid growing up playing Pokemon Emerald on the gameboy was to catch every Pokemon in the Pokedex. Researching this now and feeling a bit of nostalgia towards childhood memories, I decided to continue my Pokemon journey to catch them all only using the games at my disposal (no hacking, but glitching allowed). There was only one problem: I would need to acquire all the games. Here’s why.
In generation 3 and Pokemon Emerald, this meant catching all 386 Pokemon in the game. Some are locked behind special events where you had to go in-person to retrieve a gift and some were version exclusive. Pokemon Emerald was part of a trio of games in the same generation as well as two remakes of the first generation of games: Pokemon Ruby and Sapphire; Pokemon FireRed and Leaf Green. Emerald was considered to be a combination of Ruby and Sapphire, touting to have most of both of the versions and the best of both worlds.
However, Ruby and Sapphire have some exclusives that are not in Emerald and the remakes of the first generation games: Fire Red and Leaf Green also had older pokemon needed to complete the Pokedex. This meant in order to obtain all 386 Pokemon, you would need to go to multiple events that had already passed or get lucky and know someone with some of them as well as own all 5 games in generation 3. In addition to this, some event pokemon were only available in Japan on Japanese Pokemon Emerald cartridges. This meant I also had to obtain a Japanese version of Emerald to get a legit Jirachi event.
I was lucky enough to haggle around to find authentic game cartridges for all 5 games (6, if you count Japanese Emerald). A YouTuber named TechnoTrainer also had the same bit of nostalgia and was completing the Pokedex for a video he made. He discusses how much it costs to obtain these games now as they are considered retro and rare to find in decent condition and how he was offering event pokemon that you could legitimately obtain still if you mailed cartridges to him. I mailed my cartridges in and got some of the exclusive legendary Pokemon that only appeared in events.

The remaining events that are lost to time would need a more technical, yet known glitching approach which I can explain below.
Arbitrary Code Execution
The Pomeg Glitch uses as in-game item in Emerald called the Pomeg Berry. The Pomeg Berry is an item that when used on a Pokemon lowers its HP stats. If used on a 1 HP pokemon, the Pokemon will glitch out and put the current HP to 0 without causing it to faint or a negative number which is non intended. This can depend on cartridges and your language of the game, but long story short, this allows the Pokemon to become a glitching egg that can execute assembly or machine code (very low/system-level code) using the titles of Pokemon PC boxes where Pokemon outside of your party are stored inside a data structure. The titles of these boxes are then used to execute the code given by characters and ASCII values, thus generating whichever Pokemon event item or action you wish to do in your game. All the caveats of the glitch guide can be found here.
When I have free time, I plan to follow the guide to finish all 5 games and their story modes as well as trade them over into one singular game and complete the Pokedex. More technical aspects such as bootstrap unlocking your game and generating Pokemon per byte can be found here. Just thought it would be neat to write this all down as this was a game released to the US 20 years ago and new things are still being found in this game. Its amazing how huge the open source community can be for such a niche.
Below is a longer picture of the note Techno sent me for the events!

Enjoy Reading This Article?
Here are some more articles you might like to read next: