Hacker News new | past | comments | ask | show | jobs | submit login
Algorithm for Capturing Pokémon (dragonflycave.com)
117 points by jonshariat on May 12, 2014 | hide | past | favorite | 29 comments



Please note that the data provided there only applies to the first generation of Pokémon (Red/Blue/Yellow and Japanese Green).

Second generation (Gold, Silver, Crystal): http://www.dragonflycave.com/gen2capture.aspx

Third generation (Ruby, Sapphire, FireRed, LeafGreen, Emerald) and forth generation (Diamond, Pearl, HeartGold, SoulSilver, Platinum): http://www.dragonflycave.com/capture.aspx

For a general overview and comparison of changes, the Bulbapedia page is worth a look: http://bulbapedia.bulbagarden.net/wiki/Catch_rate


Wait, so you're saying jamming "ABABABAB..." doesn't make it more likely? How could all my 5th grade friends be wrong!


Maybe it messes with the random number generator.. somehow.

Awesome article, but I suspect that something is wrong. If we see Mewtwo, lvl 70, full hp, frozen solid it says that -on average- we need 6 ultra balls. That is FAR from true. I always freezed all the legendaries to capture them easier, and it took always more than 10 balls to capture them.


We can get a more useful translation than "you need approximately 6 balls on average", here's how:

The process of capturing is a Bernoulli process [0]: each time you throw the ball, there is a P chance of catching it, and it is independent of subsequent throws.

Chance of catching, given 1 ball = P Chance of not-catching, give 1 ball = (1 - P) Chance of not-catching, given 6 balls = (1 - P)^6

For P = 17.5%, the chance that you don't catch your Mewtwo with 6 balls is 31% (which agrees with your observation that it often took more than 6 balls).

Let's try for 10 balls: (1-0.175)^10 = 0.15 (still a 15% chance of not catching it).

It's never certain! Even with 100 balls, there's a very slim chance you won't catch it.

[0] https://en.wikipedia.org/wiki/Bernoulli_process


I always held the down arrow. It worked about 30-70% of the time.


In 60% of the time, it worked every time.

- From http://www.imdb.com/title/tt0357413/quotes


I held the arrow down, the moment the poké ball went open and stopped pushing it before the pokéball was closed again (so yeah, just a tiny window)


it worked about 10 or 90% of the time for me


I can't believe ~=< 30% health gives the same catch rate as 1hp, so many wasted save/loads trying to get the other guy down to a slither of health.


I used to catch most things by spamming Ultra Balls without focusing much on damage/status unless it was a high level. Legendaries were the main thing that might need repeated reloads - for those not familiar with the games, most legendaries are a one-shot deal; if you fail to catch them and either lose or defeat it, you can't try again without starting a new game, so everyone always saved before attempting to battle them so they could reload on failure. There are a few legendaries that are exceptions, which moved around and could be re-encountered if not caught, but they were in generation 2 and upwards.


In Gen I you could just save before attempting to catch one, so if you did kill it you could just restart from your save point. You couldn't really do this in Gen II for the Legendary Dogs because they showed up randomly, and sometimes you had the horrible decision of; never catch Entei or redo those last 3 hours of cave...


The legendary dogs only moved between areas when you did, so you could wait until you were in the same area as one, save, then have multiple tries at catching it; the main difficulty was in quickly incapacitating it so it wouldn't run away or else capturing it on your first turn without any weakening.


And so a generation learned to save early and save often.


I remember when people used to have all sorts of "tricks". The most common ones I remember were holding down or B+down, or going ABABABABABAB as fast as you could. Nobody had any evidence they worked, but so many people tried. I suppose they could theoretically manipulate the RNG if it used weak sources such as unsanitised user input, but that seems unlikely.


Just like Skinner's superstitious pigeons, if you ever caught a pokemon and happened to be holding B+down at the time, there was a small part of your brain that wanted to believe that helped some how. So you do it every time in hopes of increasing your odds.


This is a pretty good example of why we use mathematical symbols to describe calculations and control flow instead of english phrases.


in this case some gif or icon would be even better! imho.


Steps 2 through 5 say that throwing an Ultra Ball at a Slept/Frozen Pokemon will have at least a 1/6 chance of catching anything. Was it that easy to catch a Legendary in Generation 1, and this is something they've changed?

Also, Generation 1 had Nest Balls and Net Balls, didn't it? Those are missing from this list.


Generation 2 introduced the more exotic pokeballs through that whole apricot side event stuff. Generation 3 introduced several new balls including the Nest and Net balls that you were mentioning http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9_Ball#Introd...


Finally! Something useful on this site! XD! busts out gameboy color and become more blind than I already am


I actually downloaded GB4iOS from emu4ios.net a few weeks back and have been playing Sapphire. It's a lot of fun when I want to take a short break from work.

So here's a cool question/poll:

What Gameboy hardware did you own?

I had an original Gameboy, a Gameboy camera (no printer), a silver Gameboy pocket, a Gameboy Color, and a red Gameboy Advance SP. The Advance SP was awesome but my roommate in college stole and sold it to buy cigarettes.

I also had a Virtual Boy and an original Nintendo DS.

*Edit: I also had one of those lighted magnifier/speaker rigs for the original Gameboy which meant I could play Metroid after dark and feel like a SPY!


I will never understand why the original software owners aren't monetizing Smartphones like mad.

These games could be ported to iOS and Android with minimal changes and still be succesful.

I tried a Final Fantasy for Android and it was decently playable, I was hoping for Final Fantasy Tactics (which according to Wikipedia was released in 2013 but only for Japan), and very especially for a followup. Square Enix seems to be among the very few that do that, I guess Nintendo doesn' want to cannibalize their mobile platform (they're facing a typical Innovator's Dilemma).


Absolutely. I would easily drop $10 on a proper emulator app and then even the same for a couple of games. Mario, Final Fantasy, Metroid. And my wife isn't really a gamer at all but she loves Animal Crossing. So I hooked her iPad up with an emulator and an Animal Crossing rom because she's just not going to carry around a dedicated gaming device.


Are these algorithms just reverse engineered from pokemon ROMs found online?

Pretty cool nonetheless.


Most of the roms are fairly well understood from a reverse engineering perspective; especially gen 1 (red/blue). That's how bugs that were known back in the day but people weren't sure /how/ (note how some like the item duplication bug or the Mew bug were sometimes called 'cheats') are now fully explainable (usually as memory management bugs).


...which eventually leads to figuring out how to write arbitrary values to RAM and jump the CPU to execute those values. Witness the Pokemon Yellow Total Control Hack:

http://tasvideos.org/3767S.html

These are becoming more popular. There's similar ones for later Pokemon games as well as more impressive titles like Super Mario World for the SNES:

http://tasvideos.org/4156S.html


They've also reverse-engineered the RNG. You can capture a high-level Pokemon, and then brute-force the RNG on a common desktop PC faster than the game can generate it, so you will have a high chance of getting some rare thing to happen, provided you can hit the button within the proper tenth-of-a-second. I looked at writing this but got busy with other things.

Generation 4/5 also had a number of other ways to manipulate another RNG, that basically made capturing high-IV and shiny Pokemons almost trivial. People wrote Windows desktop applications to tell you exactly how many times to flip a coin to get the RNG exactly where you wanted it.

There's a big debate in the Pokecommunity whether or not this is cheating. You can probably figure out both sides big arguments already.


>Generation 4/5 also had a number of other ways to manipulate another RNG, that basically made capturing high-IV and shiny Pokemons almost trivial. People wrote Windows desktop applications to tell you exactly how many times to flip a coin to get the RNG exactly where you wanted it.

Great, you probably just got me playing again. There goes my free time ;)


Much of the work was before that, but there's also https://github.com/iimarckus/pokered and https://github.com/kanzure/pokecrystal to consider now (working source code).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: