Jump to content

Catch rate glitches (Generation II): Difference between revisions

Added other catch rate glitches.
>Sherkel
m (That sure is simpler!)
>Bbbbbbbbba
(Added other catch rate glitches.)
 
(2 intermediate revisions by the same user not shown)
Line 1:
In {{GSC}}, many "special" kinds of Poké Balls are introduced that affects the catch rate in various ways. Due to the probabilistic nature of the catch rate, glitches that affect its value are very difficult to catch. <!-- Pun intended. --> Listed below are the known catch rate glitches in {{GSC}}.
 
==Status condition==
In {{GSC}}, a wild Pokémon's catch rate is not affected if it is burned, poisoned, or paralyzed, despite those conditions increasing catch rate in other generations and the code seeming to attempt to factor them in. Sleep and freeze still affect the catch rate as intended.
 
===Explanation===
The code for factoring status conditions into catch rate reads as follows:
 
Line 19 ⟶ 22:
 
Inserting the commented line would fix this glitch.
 
==Moon Ball==
In {{GSC}}, the Moon Ball is supposed to boost the catch rate of a Pokémon that evolves with Moon Stone, but it checks a Pokémon that evolves with Burn Heal instead. Since such a Pokémon does not exist, Moon Ball never boosts the catch rate in Generation II.
 
The cause of this glitch is simply a erroneous constant: The hex value 0x0A, while corresponding to Moon Stone in Generation I, corresponds to Burn Heal in Generation II instead.
 
==Love Ball==
In {{GSC}}, the Love Ball boosts the catch rate if the target Pokémon is of the same species, and the ''same'' gender (except genderless) as the player's Pokémon, despite the in-game description ("For catching the opposite gender"). In all other generations, it boosts the catch rate if the target Pokémon is of the same species, but the opposite gender.
 
The cause of this glitch is likely to be a simple typo.
 
==Fast Ball==
In {{GSC}}, the Fast Ball is supposed to boost the catch rate of a Pokémon that can flee. However, it only does this for three of those Pokémon: Magnemite, Grimer, and Tangela.
 
===Explanation===
[https://github.com/pret/pokecrystal/blob/91f914718a263839daef24d44eda857bfc7cca95/data/wild/flee_mons.asm The table of Pokémon that can flee] is actually three lists, <code>SometimesFleeMons</code>, <code>OftenFleeMons</code>, and <code>AlwaysFleeMons</code>. The three lists are contiguous in ROM, each terminated with a 0xFF terminator.
 
[https://github.com/pret/pokecrystal/blob/abee217ce0e29331f1ac691fd1d4edeacf2295f9/engine/items/item_effects.asm#L998 The code to calculate the catch rate multiplier of the Fast Ball] tries to iterate through this table by keeping a temporary variable <code>d</code> that is initialized to 3, and decreased by 1 each time an 0xFF terminator is found. However, due to an erroneous jump target, the value of <code>d</code> is also decreased whenever a valid entry in the table does not match the species of the target Pokémon. Therefore, instead of iterating over three lists, it only iterates over the first three entries, which are Magnemite, Grimer, and Tangela.
 
==See also==
* [https://bulbapedia.bulbagarden.net/wiki/Catch_rate#Capture_method_.28Generation_II.29 Bulbapedia's article on catch rate]
* [https://github.com/pret/pokecrystal/blob/master/docs/bugs_and_glitches.md#brnpsnpar-do-not-affect-catch-rate Relevant sections of the glitch documentation on pokecrystal]
 
==AttriutionAttribution==
* IIMarckus for discovery and Bbbbbbbbba‎PikalaxALT for the corrected code, in addition to everyone who helped with [https://github.com/pret/pokegold pokegold] and [https://github.com/pret/pokecrystal pokecrystal].
 
[[Category:Generation II glitches]]
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.