how to change wild pokémon

By Philip Reuben

Here's some information how to change the wild Pokémon you fight in different places in the Pokémon games. Hopefully it will help to make even better Pokémon hacks, and also if anyone manages to add extra Pokémon to the games they will be able to add them into the wild. Anyway, I hope this makes sense! Please post on the Message Board if it doesn't. You need to know how to use a hex editor before you read this.


There are ten Pokémon to fight in every area. When you fight a wild battle, one of these ten is chosen at random for you to fight. This means you will be less likely to fight a Pokémon if there are less of it in those ten slots (which is how some Pokémon are rarer). The data is stored with the level first (in hex), then the Pokémon's hex value (which, in the Red/Blue/Green/Yellow versions, have nothing to do with the Pokémon's numbers). Between each area's data is 00 then another number (which I think is random).

In Pokémon Red/Blue (Eng), the data for the areas starts at D0E0h. Go there in a hex editor and you will find the following hex values: The 0019 at the end is just to show that it's the end of that area's Pokémon. It is not possible to make more Pokémon be in one area and less in another by moving this, there is more information about this later on. The hex value for Pidgey is 24h, and the hex value for Rattata is A5h. Because of this, the rest of the numbers mean... That's the Pokémon data for Route 1! When there are pieces of grass near each other, they will probably share the same data (like with all the grass patches on Route 1). This won't always be the case though.

Anyway, if you change those Pokémon values to... ...and play Route 1, the game suddenly seems to make so much more sense!

It might take a bit of searching to find the area you want, but if you know what Pokémon you can catch there and their levels you should be okay.

Like I said above, it isn't possible to make more Pokémon appear in one area than another. It turns out that the dividers between the areas are there for no reason, and that the game always acts as if there are ten Pokémon in each area, with two bytes between each area. Also, it treats the new divider you have put in as if it was a Pokémon. Oh look, a Level 0 Gastly! I assume this is the same in every version, although I've only tested it in Yellow (Eng).

In Pokémon Yellow (Eng) the data starts at CD8Ch. It works in exactly the same way apart from that though. It also works the same in Red/Green/Blue (Jap), but the data starts at D156h in these versions. I would have expected Blue (Jap) to be different than Red/Green (Jap), but it isn't.


In Pokémon Gold/Silver (Jap), the data starts at 2B434. It does not work in quite the same way as with the other games, it is a bit more complicated.

At any one time, there are 7 different Pokémon which could be in an area. However, there are 3 different time periods (Morning, Day and Night), and they each have a different set of 7 Pokémon. Other than that, it's about the same. One thing which could even make it easier is that in Gold/Silver (Jap) the hex values for the Pokémon are the same as their numbers, but in hex. Something similar to 1A01 1919 19 is between each area's data (it is slightly different each time).

The data I'll use as an example is at 2B463. It's the grassy areas on Route 30 (which leads up to the house where Professor Oak gives you the Pokédex). Here's what it looks like in a hex editor... The 1A02 1919 19 at the end just means that it's the end of that area's data. Here's what the rest means...

Morning Day Night So, why not change all that to... ...and make the game very boring! I think Lorelei would like it though.

Although I am almost completely sure that the information in the Red/Blue/Green/Yellow section is correct, I'm not completely sure about the Gold/Silver section. When I tested this again with Route 29, there were certain Pokémon I didn't find that I think I should have done (although it's random, so they probably just weren't chosen).