The Let's Play Archive

Pokemon Crystal

by Crosspeice

Part 82: Side Note #03: Catching 'Em All, All Over Again

Side Notes 03: Catching 'Em All, All Over Again

So it's fun times as we're catching lots and lots of Pokemon. Let's have a look at the catching formula, it's definitely been improved from Gen 1, but due to the limitations of the Game Boy Colour and them trying out new things, this time around the formula is, uh, pretty buggy. Let's have a look.



Okay, so we have X, which is the final capture rate and can be between 1 and 255. Any higher and it's just made to be 255 and the Pokemon is automatically caught, due to the formula of (X+1)/256. Then we have M, which is the maximum HP a Pokemon has. H is the current HP of the Pokemon. C is the catch rate of the Pokemon, which can be modified by the type of Poke Ball used and varies between 1 and 255. And then S, which is the modifier for status effects, 5 for Burn, Paralysis and Poison, or 10 for Sleep and Freeze. But as I mentioned in the update, only Sleep and Freeze are counted due to a bug.

So let's take a closer look. M and H are pretty simple, as when the Pokemon is at full health, the formula can be simplified to (C/3,1)+S, so as you whittle down its HP, the formula can theoretically max out as (C,1)+S, but that's only if the Pokemon's health is 0. We can get pretty close, but not exactly, so lowering the Pokemon's HP nearly triples your chances. So unlike last gen, it's very much worth it to lower it as much as possible.

In the unlikely event that 3M is more than 255, both 3M and 2H will be halved twice (and rounded down after each division), to conform with the limitations of the GBC. If it happens to be 0, then it's set to 1 instead. And in the very unlikely event that the Pokemon's HP is more than 341 (so 3M is still higher than 255 after the formula), then the game gets a little bit buggy. It's best to just link it, cause it's pretty crazy. Thankfully that can never happen, since the highest HP value we can encounter legit is 249.

Next up, we have the catch rate, C, which can be modified by a Poke Ball. There's quite a few Poke Balls in this game, so let's go over them. Unsurprisingly, a normal Poke Ball just uses the Pokemon's catch rate. Good luck using them. The Great Ball and the Park Ball multiply the catch rate by 1.5, while an Ultra Ball is C*2. The Master Ball just ignores the formula entirely, the Pokemon is just caught. Unlike Gen 1, there is no 1/256 chance of failure.

The Fast Ball is C*4 if the Pokemon can Flee from battle. However, as we'll see of the Apricorn balls, they are pretty buggy and poorly implemented. So out of the many Pokemon that can Flee (and there are quite a few), only the first three Pokemon in the list (Grimer, Tangela and Magnemite) are affected. Yes, they're useless on the legendary dogs. The Heavy Ball is a weird one as it's the only one that adds to the formula. So if a Pokemon weighs more than 307.2 kg (677.3 lbs), then it's C+30, it's C+20 if the Pokemon weighs less than that, but more than 204.8 kg (451.5 lbs), it's the same modifier as a Poke Ball if the Pokemon weighs less than that, but more than 102.4 kg (225.8 lbs). And then finally, if the Pokemon weighs less than that, it's simply C-20. Only 9 Pokemon are eligible (Onix, Dragonite, Lugia, Lapras, Mantine, Gyarados for the +20 and Golem, Steelix and Snorlax for the +30), but as you can guess, only six of them can actually be caught.

The Level Ball has the rate of C*8 if your level divided by four and rounded down is greater than the opponent's level, so it's great for Pokemon under level 25. C*4 if your level is more than double, or C*2 if your level is at least higher than the other Pokemon. The same or lower than the opponent is the same as a Poke Ball. Then we have the Love Ball... it's C*8 if the Pokemon is of the same species and GENDER as your Pokemon. Man, so forward thinking for 1999. And then the same as a Poke Ball if the Pokemon has no gender, is a different species, or is the opposite gender to yours. The Lure Ball is C*3 if the Pokemon was encountered via fishing, otherwise it's a fancy Poke Ball. And speaking of fancy Poke Balls, the Moon Ball is C*4 on any Pokemon that evolves via... Burn Heal. Yeahhhhhhh. It should be a Moon Stone, but it isn't, so it doesn't do anything. Finally, we have the Friend Ball, which has the same rate as a Poke Ball, but automatically sets the Pokemon's happiness to 200, which is pretty useful, since happiness evolutions occur at 220, so I might use a few.

Phew, so that's all the modifiers. Since the Heavy Ball adds to the catch rate instead of multiplies, it's similar to status in that it's great for Pokemon that have low catch rates, since it makes a really big impact, but the only Pokemon it makes a big difference on is Lugia, since it increases its catch rate from 3 to 23. That's really good. But it's only slightly better than an Ultra Ball for Snorlax and Steelix and then worse than an Ultra Ball for Mantine. Worse than a Great Ball for any other Pokemon that can get the +20 bonus and then worse than a Poke Ball for all other Pokemon. So yeah, not the best idea in most cases. The Ultra Ball is the best bet, especially since the formula for health is no longer capped at 33% or 50% depending on the ball, while the Level Ball only gets better as your Pokemon increase in level, so hopefully we'll be using a few here and there.

One thing to note about C is that it's capped at 255, so for Pokemon with an already high catch rate, like Pidgey or Sentret, using a ball other than a Poke Ball will do nothing at all, so just save them for Pokemon with really low catch rates. This kinda applies to status also, since it's added right at the end of the formula, so it's a lot more effective on Pokemon with lower catch rates. Putting a Pokemon to sleep, or freezing it (since the check for other statuses will always fail) adds a flat 10/256 (or 3.91%) chance to your capture, which admittedly is a lot worse than the last gen's flat rate with an Ultra Ball + Sleep/Freeze, being 16.56% chance. But when you're trying to catch the real tough ones, any increase helps.

So, now that you have your value of X, the game rolls a number between 0 and 255 and if it's less than or equal to X, the Pokemon is caught. Simple. But when that doesn't happen, instead of the amount of shakes displaying your vague chances of capture, the shake formula is now random, more or less. Let's have a look.



So, depending on the final catch rate, a, that will determine the value of b. The number generated may seem pretty random, but it matches up when b is 64 times the fourth root of the highest value of each a interval. This isn't calculated in game, it's already set, but that's most likely how it was determined. Now, with the value of b, the game generates up to 3 random numbers between 0 and 255 and if that number is greater than or equal to b, then the Pokemon breaks out. If this doesn't happen three times, then the Pokemon breaks out anyway, since you were never going to catch the Pokemon this time around. So the number of shakes only determine how lucky you got on these three random rolls, but does give you a slight indication of how likely you are to catch a Pokemon if it consistently shakes the same amount each time. Maybe.

But there we go, that's everything about the catch rate formula this time around. A bit more complicated than the previous generation and has a few bugs here and there, but is closer to the formula we're more familiar with in the generations to come.