Experimentation

It's always fun to experiment with the Pokémon games to find out the answers to old mysteries or just test all the weird things you've heard. This section details my personal Pokémon game experimentation of whatever sort.

Red/Blue/Yellow

Ah, R/B/Y. The kings of glitches are always fun to mess around with to figure out just how many mushrooms Game Freak was eating when they coded those games.

The Mew Trick Experiment

It always seemed like a crying shame that the Mew Trick could not be performed forever. While the Gambler or corresponding trainer could be used again and again, the trick later requires you to battle another trainer whom you will never be able to battle again. Once your Gambler is the only trainer you have left to battle, the Mew Trick is forever inaccessible.

Or is it? One can't help wondering if you can't just battle the Elite Four, who will battle you again and again infinitely, in place of an ordinary trainer, and that is exactly what I decided to try.

On my first attempt, Lorelei merely refused to talk to me and I was stuck inside her room until I turned my game off, but then my friend pointed me to a FAQ at GameFAQs which explained that you would gain the ability to battle trainers you have to talk to to challenge if you changed boxes on the PC (in order to save the game without having control of the Start menu) and then shut the game off and turned it on again. That part of it worked, at the very least, and I could battle Lorelei, Bruno and Agatha. Unfortunately I lost to Lance (having rather low-leveled Pokémon), and upon my return to Route 8 after battling a random wild Pidgey, my Start menu did not pop up. I thought this just meant the trick had failed somehow and so I saved my game, but I happened then to decide to attempt it again, and then I realized that the Gambler had no plans to challenge me again until I actually talked to him. When I did, I went into battle as normal, but after beating him, a message popped up containing glitched characters and I was sent into another battle with the same Gambler. After beating him there, the whole route seemed to glitch up (everything kind of slowed down and the music started randomly changing), and I shut my game off, afraid of permanent damage to my game or something.

Concluding that this might have been because I lost to the Elite Four and figuring that since I had saved with my game in the middle of the trick I wouldn't be able to do much else anyway, I decided to try again and bring plenty of items to ensure that I would be able to defeat the Elite Four and my rival. I beat them with nothing out of the ordinary happening, and then I flew to Lavender and headed straight for Route 8. The Start menu popped up, but I was not attacked by a wild Pokémon when I pressed B. Figuring that this might have to do with the fact that I did not battle anything at all after beating the Elite Four but not wanting to restart the game immediately, I went to the Gambler again to make sure he was still normal and pressed Start before he would see me (since obviously, I did not want a battle to be triggered and destroy my last chance of ever using the Mew trick). When I flew away, he attempted to challenge me, so it appears that the start menu popping up and pressing B did put the game back to normal, even if it did not trigger a Pokémon battle.

Now, as I had no interest in defeating the whole Elite Four again, I shut my game off this time and decided to battle a wild Ditto and get it to transform into a Pokémon with a nice Special. I realized that my Pidgeot had a Special of 77, exactly the value for a Meowth, and since Meowth aren't found in Yellow, I was happy with that and switched Pidgeot to the front of my party. I Surfed to the Unknown Dungeon and battled a couple of wild Pokémon for experience while waiting for a wild Ditto to appear. I found one after a little while and allowed it to transform, then ran and used Dig to get out without encountering another Pokémon. I flew to Lavender Town, walked out into Route 8 and pressed B when the Start menu popped up, the wild Pokémon encounter music played and the screen went black...

Nothing. I waited for a few seconds and pressed some buttons while the music kind of faded away; I turned my Gameboy off and restarted yet again. Okay, no Meowth for me. Not this way, anyway.

I wandered into Rock Tunnel for some random wild Pokémon, found a Zubat, beat it and walked back to Lavender, heading to Route 8 yet again. And whoa, lucky me: I got an Arcanine. Level seven, of course. I threw balls at it while watching it just to make sure it was a perfectly ordinary Arcanine. (Hey, I don't want to save with anything glitched on my game.) It stubbornly broke out of all of my Great Balls, and then it used Roar. Blastoise ran away, and I didn't catch it. My game seemed fine, though, so I saved and just to test, I let the Gambler see me. He attacked as normal, and I turned my game off so I'd be able to do the trick again. I wasn't sure why the Ditto-transforms-into-my-Pidgeot didn't work, though, which was a bit disappointing.

Then I did my second test, on another Yellow version with more powerful Pokémon that would have an easier time at the Elite Four. I did everything the same, figured out that my Venusaur had the right Special to produce a Bulbasaur, and although obviously I didn't exactly need one, I figured I might as well try that anyway. Back to Unknown Dungeon to find a Ditto...

My Venusaur gained a level soon enough, before I ever found a Ditto, and thus its Special rose to a value that would yield Missingno. It was only then that I suddenly realized what had almost definitely been the matter with my Pidgeot on the other game: it had gained a level while I was looking for a Ditto, and I had forgotten to factor in the stat raise. This made a whole lot of sense; assuming Pidgeot's Special rose by two, three or four points (to 79, 80 or 81), those values would yield Missingno, hence why the game froze. Of course, I could not check to confirm my suspicions, since after all I had turned my game off, but I was almost certain that this had to be the explanation. Now, after a bit of training with the rest of my team while still searching for a Ditto, all my other Pokémon either had glitchy Specials or ones that gave completely lousy Pokémon, so I ended up just getting a Zubat from my Pikachu. (Naturally, I did not consider it worth catching, so I just fried it with a Thunderbolt and considered my curiosity satisfied for now.)

So clearly, the Mew Trick can be used infinitely by changing boxes on the PC, turning off and on again, battling the Elite Four and then battling a wild Pokémon. Fwee. :D

The Type Message Experiment

In Red, Blue and Yellow, you may have noticed battle messages going something like this:

Enemy WHATEVER sent out DUGTRIO!
Go! VENUSAUR!
DUGTRIO used EARTHQUAKE!
It's super effective!

But, you say, wait a minute... super effective? Venusaur is a Grass-type! Grass is resistant to Ground! The combination of Grass and Poison should make Ground deal normal damage since they cancel each other out, not super effective!

And indeed, that is what actually happens - the damage modifier, in spite of the game message of super-effectiveness, is 1 just like it would be if that Earthquake were hitting a Raticate. However, that message has always bugged me. My original conclusion was that the game just always used type 2. This is very logical from a programmer's point of view; it would be very natural if the game code were for example something like this:

string typemessage;
int damagemodifier = 1;
for (int i = 0; i < 2; i++) {
   if (isSuperEffective(attackType, defendType[i])) {
      typemessage = "It's super effective!";
	   damagemodifier *= 2;
   }
   else if (isNotVeryEffective(attackType, defendType[i])) {
      typemessage = "It's not very effective...";
	   damagemodifier *= 0.5;
   }
   else if (isIneffective(attackType, defendType[i])) {
      typemessage = "It doesn't affect " + defendName + "!";
	   damagemodifier *= 0;
   }
}

Basically, the game would first test the attacking type against the defender's type 1, change the battle message and multiply the damage modifier accordingly, and then do the same for type 2. The message for type 1, if any, would be overwritten with the message for type 2, if any. It made perfect sense, and I never really gave it more thought than that.

One day I was in the unofficial IRC chat when surskitty, who was playing Blue, asked why Leech Life was showing up as super effective on Zubat. I jumped up to explain that the message showed either super effective or not very effective but the damage was normal.

Then it hit me that Zubat is a Poison/Flying type. Bug is super effective on Poison (in R/B/Y) and not very effective on Flying. It was showing the message for type 1.

I hurried to Azure Heights, the most comprehensive website about R/B/Y mechanics, to see if they had it. All the information they had was that for example, if you use Vine Whip on a Tentacool, it will be shown as super effective but actually deal normal damage.

Thus, I set out on a quest to find the real way the game decides which message to display. I took out my Yellow and used my type tool to find out all possible type combinations where one type was weak and the other resistant, took out the ones that actually occurred in the game, and started testing. This was what I got after trying all the possibilities (the numbers beside the type names are the type numbers in the game code):

Attack typeType 1Type 2ResultType used
Fighting (1)Ice (25)Flying (2)Super effectiveType 1
Fighting (1)Ice (25)Psychic (24)Super effectiveType 1
Fighting (1)Rock (5)Flying (2)Super effectiveType 1
Fighting (1)Normal (0)Flying (2)Not very effectiveType 2
Poison (3)Grass (22)Poison (3)Not very effectiveType 2
Poison (3)Bug (7)Poison (3)Super effectiveType 1
Ground (4)Grass (22)Poison (3)Super effectiveType 2
Ground (4)Bug (7)Poison (3)Super effectiveType 2
Bug (7)Poison (3)Flying (2)Super effectiveType 1
Bug (7)Ghost (8)Poison (3)Super effectiveType 2
Fire (20)Water (21)Ice (25)Not very effectiveType 1
Grass (22)Water (21)Poison (3)Super effectiveType 1
Grass (22)Water (21)Flying (2)Not very effectiveType 2
Grass (22)Rock (5)Flying (2)Not very effectiveType 2
Electric (23)Dragon (26)Flying (2)Not very effectiveType 1
Electric (23)Electric (23)Flying (2)Super effectiveType 2
Ice (25)Ice (25)Flying (2)Super effectiveType 2
Ice (25)Water (21)Flying (2)Super effectiveType 2

Unfortunately, I couldn't make heads or tails of this. I had been speculating that it could even have something to do with whether the type numbers were odd or even or which was the highest, but one theory after another was proven incorrect, and when we had all the data there seemed to be no sense to it whatsoever. Some of it was very decidedly bizarre:

Attack typeType 1Type 2ResultType used
Poison (3)Grass (22)Poison (3)Not very effectiveType 2
Poison (3)Bug (7)Poison (3)Super effectiveType 1
Ground (4)Grass (22)Poison (3)Super effectiveType 2
Ground (4)Bug (7)Poison (3)Super effectiveType 2

The exact same two types being attacked, first by Poison and then by Ground, but in one case both are shown as super effective according to type 2 but in the other one is shown as not very effective according to type 2 and the other super effective according to type 1. It just didn't make sense.

I resorted to Sharking. I don't actually have a GameShark, but I started my VisualBoy Advance emulator and Yellow ROM using a save file from a video of a guy beating the game in a bizarrely short time using a Mew Glitched Nidoking that had been elevated to level 100 through another glitch. After some searching on the Internet I finally found a code for modifying a Pokémon's type.

I started by reversing some of the type combinations I had already tried, since I had figured it would give a lot of information to know whether it mattered which type was which. I made Nidoking a Flying/Poison type and got it attacked with a Leech Life, and got super effective, the same result as when a Poison/Flying Pokémon is attacked with a Bug attack. I tried some more and those were all the same as when the types were the other way around so I concluded that only the combination mattered, not which was type 1 and which was type 2.

But that was not the only reason I had resorted to Sharking that Nidoking. Using the type tool again, I found out which attacking type offered the most possible weakness/resistance-conflict type combinations (as more constants are always a good thing), and it turned out to be Grass, with 18 different such combinations to test: Fire, Grass, Poison, Flying, Bug and Dragon paired with Water, Ground and Rock.

One of those combinations, as you might notice, is Poison/Water, and when I came to that I realized something odd: the game was showing it as not very effective even though I had previously written that Grass on Water/Poison was super effective. I tried it again to make sure; then I remembered that I had actually never tried a Grass attack on Tentacool but instead trusted what Azure Heights said. I started up my real Yellow to make sure nothing was being mucked up in any way and tested a Grass attack on Tentacool, and it was not very effective after all. Phew. That could have messed things up.

Finally I got the results:

Attack typeType 1Type 2ResultType used
Fighting (1)Ice (25)Flying (2)Super effectiveType 1
Fighting (1)Ice (25)Psychic (24)Super effectiveType 1
Fighting (1)Rock (5)Flying (2)Super effectiveType 1
Fighting (1)Normal (0)Flying (2)Not very effectiveType 2
Poison (3)Grass (22)Poison (3)Not very effectiveType 2
Poison (3)Bug (7)Poison (3)Super effectiveType 1
Ground (4)Grass (22)Poison (3)Super effectiveType 2
Ground (4)Bug (7)Poison (3)Super effectiveType 2
Bug (7)Poison (3)Flying (2)Super effectiveType 1
Bug (7)Ghost (8)Poison (3)Super effectiveType 2
Fire (20)Water (21)Ice (25)Not very effectiveType 1
Grass (22)Water (21)Poison (3)Not very effectiveType 2
Grass (22)Water (21)Flying (2)Not very effectiveType 2
Grass (22)Rock (5)Flying (2)Not very effectiveType 2
Grass (22)Fire (20)Water (21)Super effectiveType 2
Grass (22)Fire (20)Ground (4)Super effectiveType 2
Grass (22)Fire (20)Rock (5)Super effectiveType 2
Grass (22)Grass (22)Water (21)Not very effectiveType 1
Grass (22)Grass (22)Ground (4)Super effectiveType 2
Grass (22)Grass (22)Rock (5)Super effectiveType 2
Grass (22)Poison (3)Ground (4)Not very effectiveType 1
Grass (22)Poison (3)Rock (5)Super effectiveType 2
Grass (22)Flying (2)Ground (4)Not very effectiveType 1
Grass (22)Bug (7)Water (21)Not very effectiveType 1
Grass (22)Bug (7)Ground (4)Not very effectiveType 1
Grass (22)Bug (7)Rock (5)Super effectiveType 2
Grass (22)Dragon (26)Water (21)Not very effectiveType 1
Grass (22)Dragon (26)Ground (4)Not very effectiveType 1
Grass (22)Dragon (26)Rock (5)Not very effectiveType 1
Electric (23)Dragon (26)Flying (2)Not very effectiveType 1
Electric (23)Electric (23)Flying (2)Super effectiveType 2
Ice (25)Ice (25)Flying (2)Super effectiveType 2
Ice (25)Water (21)Flying (2)Super effectiveType 2

Again, constants are good, so I put together a table of some data with as many constants as possible, organized accordingly:

Attack typeType 1Type 2ResultType used
Grass (22)Fire (20)Water (21)Super effectiveType 2
Grass (22)Grass (22)Water (21)Not very effectiveType 1
Grass (22)Poison (3)Water (21)Not very effectiveType 1
Grass (22)Flying (2)Water (21)Not very effectiveType 1
Grass (22)Bug (7)Water (21)Not very effectiveType 1
Grass (22)Dragon (26)Water (21)Not very effectiveType 1
Attack typeType 1Type 2ResultType used
Grass (22)Fire (20)Ground (4)Super effectiveType 2
Grass (22)Grass (22)Ground (4)Super effectiveType 2
Grass (22)Poison (3)Ground (4)Not very effectiveType 1
Grass (22)Flying (2)Ground (4)Not very effectiveType 1
Grass (22)Bug (7)Ground (4)Not very effectiveType 1
Grass (22)Dragon (26)Ground (4)Not very effectiveType 1
Attack typeType 1Type 2ResultType used
Grass (22)Fire (20)Rock (5)Super effectiveType 2
Grass (22)Grass (22)Rock (5)Super effectiveType 2
Grass (22)Poison (3)Rock (5)Super effectiveType 2
Grass (22)Flying (2)Rock (5)Not very effectiveType 1
Grass (22)Bug (7)Rock (5)Super effectiveType 2
Grass (22)Dragon (26)Rock (5)Not very effectiveType 1

Unfortunately, however, I couldn't see any discernible rule in this either, and therefore could only come to the conclusion that either the game makers were on crack and made an extremely complicated formula just to pointlessly determine this or they somehow just programmed it with random if statements which don't bring up any pattern.

However, Captain Mofocious of the forums later posted about having found the actual type advantage table from the game, the order of which explains everything. Instead of being a table, essentially, it is a list of each type combination that does not deal normal damage with the special damage it does:

  • Water 2x vs. Fire
  • Fire 2x vs. Grass
  • Fire 2x vs. Ice
  • Grass 2x vs. Water
  • Electric 2x vs. Water
  • Water 2x vs. Rock
  • Ground 0x vs. Flying
  • Water 1/2x vs. Water
  • Fire 1/2x vs. Fire
  • Electric 1/2x vs. Electric
  • Ice 1/2x vs. Ice
  • Grass 1/2x vs. Grass
  • Psychic 1/2x vs. Psychic
  • Fire 1/2x vs. Water
  • Grass 1/2x vs. Fire
  • Water 1/2x vs. Grass
  • Electric 1/2x vs. Grass
  • Normal 1/2x vs. Rock
  • Normal 0x vs. Ghost
  • Ghost 2x vs. Ghost
  • Fire 2x vs. Bug
  • Fire 1/2x vs. Rock
  • Water 2x vs. Ground
  • Electric 0x vs. Ground
  • Electric 2x vs. Flying
  • Grass 2x vs. Ground
  • Grass 1/2x vs. Bug
  • Grass 1/2x vs. Poison
  • Grass 2x vs. Rock
  • Grass 1/2x vs. Flying
  • Ice 1/2x vs. Water
  • Ice 2x vs. Grass
  • Ice 2x vs. Ground
  • Ice 2x vs. Flying
  • Fighting 2x vs. Normal
  • Fighting 1/2x vs. Poison
  • Fighting 1/2x vs. Flying
  • Fighting 1/2x vs. Psychic
  • Fighting 1/2x vs. Bug
  • Fighting 2x vs. Rock
  • Fighting 2x vs. Ice
  • Fighting 0x vs. Ghost
  • Poison 2x vs. Grass
  • Poison 1/2x vs. Poison
  • Poison 1/2x vs. Ground
  • Poison 2x vs. Bug
  • Poison 1/2x vs. Rock
  • Poison 1/2x vs. Ghost
  • Ground 2x vs. Fire
  • Ground 2x vs. Electric
  • Ground 1/2x vs. Grass
  • Ground 1/2x vs. Bug
  • Ground 2x vs. Rock
  • Ground 2x vs. Poison
  • Flying 1/2x vs. Electric
  • Flying 2x vs. Fighting
  • Flying 2x vs. Bug
  • Flying 2x vs. Grass
  • Flying 1/2x vs. Rock
  • Psychic 2x vs. Fighting
  • Psychic 2x vs. Poison
  • Bug 1/2x vs. Fire
  • Bug 2x vs. Grass
  • Bug 1/2x vs. Fighting
  • Bug 1/2x vs. Flying
  • Bug 2x vs. Psychic
  • Bug 1/2x vs. Ghost
  • Bug 2x vs. Poison
  • Rock 2x vs. Fire
  • Rock 1/2x vs. Fighting
  • Rock 1/2x vs. Ground
  • Rock 2x vs. Flying
  • Rock 2x vs. Bug
  • Rock 2x vs. Ice
  • Ghost 0x vs. Normal
  • Ghost 0x vs. Psychic
  • Fire 1/2x vs. Dragon
  • Water 1/2x vs. Dragon
  • Electric 1/2x vs. Dragon
  • Grass 1/2x vs. Dragon
  • Ice 2x vs. Dragon
  • Dragon 2x vs. Dragon

This is very enlightening. Firstly and most importantly for this experiment, it shows which weaknesses and resistances override the others. When a Pokémon is hit by an attack, the game goes down through the chart, finds any weaknesses and resistances that should be applying (one or two), and for each of them changes the message, so that it shows the message for whichever weakness comes later in the list. (It turned out I had made a mistake and written down that Grass showed up as super effective against Fire/Water - in fact it says not very effective as I reverified, so that is still consistent. If you spot anything else in the result table above that doesn't fit with this, do let me know so I can retest it.)

Additionally, it is a wonderful insight into the programmers' minds. It starts off with the basic elemental weaknesses and Ground vs. Flying, the stuff that's likely to be the first they thought of, as well as taking all the types that resist themselves except Poison and adding that in. Then they decide, "Okay, this is way too disorganized. Let's do this in some sensible order." And then they proceed, starting with Normal attacking anything, throw in Ghost vs. Ghost just so they won't forget, go on with Fire (or rather, everything they hadn't done before in the elemental jumble that started the chart), and then proceed in the official ordering of the types that we see in the type chart in the instruction booklet - Normal, Fire, Water, Electric, Grass, Ice, Fighting, Poison, Ground, Flying, Psychic, Bug, Rock, Ghost, Dragon - rather than their numerical order in the game code (which is completely different, as shown in the table above). Perhaps they created the instruction booklet type chart somewhere in between and were even copying down from that? And then when they've dealt with Ghost, suddenly we get both the offensive and defensive specifics for the Dragon type (explaining why, as many people had noted, Dragon always took precedence when it was involved), as if that type were a last-minute addition (I wouldn't be surprised, considering how there are only three Dragon-types in the game and one Dragon attack, with Gyarados being the puzzling Water/Flying combination). One mystery solved and a lot more only vaguely related found out!

Advance

The Advance games don't have all those glitches, but they do have unsolved mysteries...

The Ability Experiment

surskitty, Mudkip and Trinket of the IRC channel were claiming that all NPC-controlled Pokémon (as in ones owned by trainers, not wild ones) of the same species have the same ability. I was skeptical and thus decided to try it out using a Gardevoir with Trace and making her battle a bunch of trained Pokémon with multiple abilities. I traded her from Emerald over to FireRed, since FireRed has the convenient VS Seeker which allows me to rebattle most trainers in the game, and started battling trainers.

I battled some Swimmers, figuring they'd have Tentacool and such; all the Tentacool and Tentacruel I battled had Clear Body and all the Goldeen and Seaking had Swift Swim. According to them, who were playing Diamond and Pearl, all the Stunky owned by Team Galactic also had Stench rather than Aftermath. It turned out all of those were the first ability listed for their respective Pokémon, and thus, yes, it is likely that all NPC-controlled Pokémon in the third and fourth generations (barring Gym leaders or other important trainers whose Pokémon would be specially programmed) have the first ability for their species. If you find evidence to contradict this, let me know.

Submit Ideas

Always wondered about something in the Pokémon games, how something works or something, but have difficulty finding reliable, consistent information on it? Contact me and suggest an experiment to make so that I can do the dirty work and write an experimentation report while you relax in your chair at home.

Page last modified May 19 2019 at 15:00 UTC