Gen I catch Mechanics

Special thanks to a_magical_me, who started examining the algorithm, permit me usage his notes and also then provided me v an assembly dump to pick up wherein he left off. The hacking genius is mainly his.

You are watching: Pokemon yellow why do pokeballs miss

If you to be an avid player that Red, Blue and also Yellow, girlfriend may have read the other record mechanics sections and fleetingly wondered, "But what around the times in R/B/Y when it would say, "The sphere missed the POKéMON!"? What was going on *then*? exactly how much of this stuff was the same earlier then, anyway?"

How much, indeed? together it turns out, proper any. The R/B/Y catch algorithm is drastically various from the of the later games; in particular, it yes, really is an *algorithm* quite than mainly a straightforward formula. And also it is also, together it happens, quite amazing - particularly if you, choose me, have constantly sort the wondered precisely how the worked. So sit back, relax, and let"s take it a look in ~ the insides the the game. Or, well, if friend don"t care around the insides of the game, you can always skip down to the an easy summary of how catching is different in R/B/Y.

Meanwhile, if all you desire to perform is find out how likely you space to capture a Pokémon in R/B/Y, you"ll desire the record rate calculator.

Table of ContentsWhat It way## The Algorithm

The catch algorithm proper, as listed below, uses to *regular wild Pokémon battles*. A couple of sanity checks room handled prior to we gain to the part:

Otherwise, to determine the result of a thrown ball, the game executes the complying with procedure (cleaned up and also tweaked for person presentation, the course). Note that any kind of time it speaks of division, it way *integer division*: the result is an integer and the remainder is just discarded. Thus, for example, if it says "Divide 5 by 2", the an outcome is just 2, not 2.5.

See more: Can I Give My Dog Refried Beans ? Can My Dog Eat Pinto Beans

**caught**. Skip the remainder of the procedure. (

**Yes**, the grasp Ball is an automatic guaranteed success, as long as you pass the sanity check above. Over there is really persistent rumour that it actually has a 1/256 or 1/65536 opportunity of missing; every little thing you may have heard, wherever you heard it, that is

**not true**. That is true the

*moves*the were expected to be 100% exact would have actually a 1/256 possibility of lacking in R/B/Y, however this has no relationship to just how the understand Ball functions in any type of game; it constantly simply skips the calculate entirely.)Generate a random number R1, with a variety depending ~ above the round used: If it"s a Poké Ball, R1 arrays from 0 to 255 (inclusive). If it"s a an excellent Ball, R1 ranges from 0 come 200 (inclusive). If it"s one Ultra or Safari Ball, R1 ranges from 0 come 150 (inclusive). Create a standing variable S: If the target Pokémon is asleep or frozen, S is 25. If the targeted Pokémon is poisoned, burned or paralyzed, S is 12. Otherwise, S is 0. Subtract S native R1 (to avoid confusion v the original R1, i will refer to the result as R*).If R* is much less than zero (i.e. If the produced R1 was less than S), the Pokémon is effectively

**caught**. Skip the remainder of the procedure.Calculate the HP variable F: main point the Pokémon"s max HP by 255 and also store the an outcome in F. Divide F through 8 if the ball supplied was a great Ball. 12 otherwise. division the Pokémon"s current HP by 4 (if the result is zero, bang it as much as 1). Division F by this number and make that the brand-new F. If F is now better than 255, make it 255 instead. If the base catch rate that the Pokémon is less than R*, the Pokémon immediately

**breaks free**. Skip to action 10.Generate a 2nd random number R2 varying from 0 come 255 (inclusive).If R2 is much less than or equal to the HP element F, the Pokémon is

**caught**. Skip the rest of the procedure.If we get here, the capture fails. Recognize the appropriate animation to show: main point the Pokémon"s base record rate by 100 and also store the result in a wobble approximation variable W. Divide W by a number depending upon the ball used, round off the an outcome down: If it was a Poké Ball, divide by 255. If it was a great Ball, division by 200. If it was an Ultra or Safari Ball, division by 150. main point W through F (the HP factor calculated above). Division W through 255. Add a number if the Pokémon has actually a condition affliction: If the Pokémon is asleep or frozen, include 10 to W. If the Pokémon is poisoned, shed or paralyzed, add 5 to W. display the animation and message corresponding to W: If W is less than 10, the sphere misses ("The ball missed the POKéMON!"). If W is in between 10 and also 29 (inclusive), the sphere wobbles as soon as ("Darn! The POKéMON broke free!"). If W is in between 30 and also 69 (inclusive), the sphere wobbles twice ("Aww! It showed up to be caught!"). Otherwise (if W is higher than or same to 70), the sphere wobbles 3 times ("Shoot! It was so close too!").

## What the Means

(Psst, if you don"t speak math, you can skip under to the plain English summary, i m sorry has nearly no mathematics at all. It"s simple, i promise!)

So what walk this algorithm actually *mean* for capturing in R/B/Y? how is it various from the later games? (In the rest of this discussion, I will certainly assume you are not making use of a grasp Ball; that instance is trivial and it would be a bother to keep stating it.)

Well, first, let"s look at what the framework of the algorithm actually theoretically means for our chances of catching the Pokémon. (This gets a bit mathematical, yet bear through me.) Let"s call the Pokémon"s base catch rate C and create a sphere modifier variable B to stand for the range of the first random number R1: 256 if the sphere is a Poké Ball, 201 if the round is a great Ball and also 151 if the ball is one Ultra Ball. (Note that this is one greater than the maximum numbers disputed in the algorithm above; this is due to the fact that a arbitrarily integer in between 0 and X inclusive have the right to take ~ above X+1 possible values, the means that 0–2 inclusive means *three* values, 0, 1 and 2.) depending on where R1 drops in this range, three different things can happen:

**R1 is less than the condition variable S**, the Pokémon is automatically

**caught**.If

**R1 is higher than or same to S, but less than or equal to S + C**, the video game calculates a 2nd random number R2 in between 0 and 255 inclusive and an HP factor F. These numbers are then compared: If

**R2 is much less than or equal to F**, the Pokémon is

**caught**. If

**R2 is higher than F**, the Pokémon division free. If

**R1 is better than S + C**, the Pokémon division free.

Of the full of B feasible R1 values, S the them result in the an initial path (auto-capture), C + 1 of castle (up come a preferably of B - S, due to the fact that there are just B - S values left) result in the 2nd path whereby R2 and the HP element F room calculated, and also the rest (if any) result in the third path (auto-failure). We can visualize it prefer this: