• Follow our Instagram!
  • Curious about what we're currently doing about bots? Check out the latest updates from staff in this thread.

All Gens Past Gens Research Thread

A researcher named Vitalya shared a blog post earlier today involving a newly discovered glitch in Gen 4 that's very similar to the infamous Dig/Fly glitch in Gen 1 (though significantly less likely to occur naturally in a battle and also does not let the semi-invulnerable Pokemon attack).


If a Pokemon affected by Magnet Rise uses the move Fly, then is affected by Gravity, the following turn the Pokemon will still be semi-invulnerable but unable to complete the move Fly due to Gravity, thus keeping the mon stuck in the semi-invulnerable state. According to Vitalya the Pokemon is stuck in this state for the rest of the battle, even if Gravity ends. (Edit: tested this myself and this is not true, the effect ends when Gravity ends.)
 
Last edited:
Regarding Deoxys' forme being hidden in Gen 3, what happens if a Pokémon transforms into the opposite Deoxys or vice versa? What does each trainer see?
 
This was suggested by Spreek, and I verified the mechanics on cartridge:
  • The current Gen 3 implementation, where a Pokémon cannot obtain a new item after being affected by Knock Off, only applies to so-called "ordinary battles". In Link Battles and the Battle Frontier, a Pokémon can obtain a new item even after being marked as affected by Knock Off.
  • Also in Gen 3, once a Pokémon has been marked as affected by Knock Off, it loses its held item every time it switches in. This cycle—obtaining an item through Thief/Trick, switching out, switching back in, losing the item—can happen multiple times in a single battle.
  • In Gen 4, a Pokémon also loses its held item upon switching in after being affected by Knock Off. The difference is that it can only regain an item through Recycle. Thief and Trick still fail if a Pokémon previously affected by Knock Off is involved.
 
~Fusion Bolt / Fusion Flare boosted damage~

Smogon: "Power doubles [for Fusion Flare] if the last move used by any Pokemon this turn was Fusion Bolt."

Bulbapedia: "The base power of Fusion Flare will double if any Pokémon has successfully used Fusion Bolt previously in the same turn, with no intervening moves in between, except perhaps for failed moves."

I tested this pretty extensively (87 tests in White, 58 in Scarlet). In essence, if Fusion Bolt and Fusion Flare are used in the same turn, the second one used will be boosted if there are no successful intervening moves. I don't know quite how it works in PS, but from observation PS seems to keep track of used moves by when they are clicked or maybe when they are listed in the log, whether or not they are successful. For Fusion Bolt/Fusion Flare, the important thing should be if the intervening move(s) actually took effect. For attacking moves, if they successfully deal damage (regardless of other effects). For status moves, if they successfully modify a stat, change the weather, steal a move, swap abilities, etc.

Here's a video of examples from Pokémon White. All are accurate for gen 9 as well.

PS gets these correct:
Paralysis
Asleep
Confusion self-damage
Truant skipped turn
Giga Impact recharge

None of these scenarios have an intervening "Pokémon used move!", and so the boost is present. (It's convenient that Reshiram and Zekrom do the same damage to each other with these moves. In these examples, an unboosted Fusion Bolt or Fusion Flare hit does about 23% damage, and a boosted hit does about 46%.)

PS also gets calling moves correct:
Sleep Talk
Assist
Mirror Move
If these moves call Fusion Flare after Fusion Bolt it will be boosted. They also cannot block the boost on their own if used as an intervening move, but rather it's if the called move succeeds or fails.

Fly 1st turn - Fusion Flare should be boosted but is not
Fly 2nd turn - Fusion Flare is correctly unboosted

Struggle fail - Fusion Flare should be boosted but is not
Struggle hit - Fusion Flare is correctly unboosted

In addition to the above if a move fails by type immunity, target's ability, skill swap ineligibility, healing at full HP, protect, missing on accuracy, trying to set two screens on one side of the field, trying to raise/lower stats beyond +/-6, or being unable to set the weather, then it will not block the Fusion boost. I'm sure I'm forgetting something... In a triple battle, you could fit four different fails between Fusion Flare and Fusion Bolt and the boost would still work which is a little silly haha

There are edge cases of course. Does the success of a move depend on one or all of it's effects happening? Short answer: no.
A damaging move that can alter stats is successful whether or not it alters any stats.
Chilly Reception is successful if it starts to snow whether or not the Pokémon can switch out.
On the other hand, crash damage moves like High Jump Kick have the effect of taking a sort of recoil only if they are not successful. Moves like Mind Blown are guaranteed to take recoil whether or not they are successful in dealing damage.

Just as an aside, these results line up with when a move animation plays or doesn't play in-game. If a move animation plays between Fusion Bolt and Fusion Flare, the boost will not happen. It's like recoil, crash damage, and Mind Blown-style recoil happen as a separate thing from the move and it's animation. Here's an example of Confuse Ray vs Magic Bounce where the blocked move doesn't animate, but the rebounded move does, and so Fusion Flare is unboosted. The only move animations I can think of that still play but don't inhibit the boost are the invulnerable turns of Fly, Dig, etc.

And lastly, I want to emphasize this only has to do with moves. If a used move activates a target's ability that blocks the move and then does it's own ability-specific effect (Water Absorb, Lightning Rod), the Fusion boost would still be available.
 
Last edited:
~Crash Damage vs Wonder Guard and Endure in Generation 3~

Jump Kick and Hi Jump Kick will cause the attacker to take damage if they fail in specific ways. I don't know how the sim handles it exactly, but these situations end up at the right result:

  • if Jump Kick misses based on accuracy
  • if Jump Kick misses when the target is in the invulnerable turn of Fly, Dig, or Dive
  • if Jump Kick is blocked by Protect or Detect

Crash damage is calculated as half the damage that would have been dealt up to a maximum of half the target's max HP, with a minimum of 1 HP damage. It's also impossible to take crash damage against a Ghost type in this generation.

But the code (basing this off of the pokeemerald decomp and testing in-game) leads to some probably unintentional interactions with Wonder Guard and Endure/Focus Band. When using Jump Kick, the game first checks if the move can be used at all. Assuming that JK can connect with the target, accuracy is the next thing checked and damage is not calculated for a hit or a crash until after this check. On the hit branch, the move failure message displays after damage calculation. On the crash branch, the message displays before damage calculation. This is important, I swear!

Wonder Guard

WG is checked during damage calculation, but if accuracy fails, WG actually has an earlier check to decide if its message ("avoided damage with Wonder Guard") should appear before the crash. There are three failure scenarios:
  • Ghost with WG
    • Never takes crash damage.
    • If accuracy passes, JK fails to type immunity at damage calculation, "it doesn't affect" is set, then WG message overrides and displays.
    • If accuracy fails, "it doesn't affect" is set, then WG message overrides and displays, but type immunity makes the crash script exit before damage calculation. The result looks the same to the player either way.
  • non-Ghost with WG
    • Takes crash damage only if the accuracy roll fails.
    • If accuracy passes, JK fails to WG at damage calculation then displays WG message.
    • If accuracy fails, JK fails to WG and its message is set and displayed, then WG fails at damage calculation again but the miss flag is cleared at this stage so that the crash damage can actually hit the attacker.
  • Ghost + weak to Fighting with WG (only Sableye, but impossible to give it WG in Gen 3)
    • Never takes crash damage.
    • If accuracy passes, JK fails to type immunity at damage calculation, "it doesn't affect" is set, then WG message overrides and displays.
    • If accuracy fails, "it doesn't affect" is set, then WG message fails to set due to the specifics of the type effectiveness comparison so "it doesn't affect" displays. Type immunity makes the crash script exit before damage calculation.
If Jump Kick is super effective against Wonder Guard, then the damage calculation passes just fine for a hit or a crash as expected.

Endure

Crash damage calculation uses the same damage formula + modifiers as a regular hit (except crashes cannot crit!), and that includes the effect of Endure/Focus Band. If using Jump Kick would successfully KO a target using Endure, Endure grabs the hit damage value and overwrites it with "target current HP - 1" so that they survive. This effect still happens if calculated crash damage would hypothetically KO the target.

If a Lv100 Hitmonlee uses Jump Kick at a Lv65 Hitmonchan that has 160 HP, and every damage roll would KO...
1793830347145.png


If JK misses, crash damage is calculated like...
Code:
damage = [164...193]
target HP = 160
divide by 2 and compare target max HP/2
floor([164...193]/2) ? floor(160/2)
[82...96] > 80
crash damage = min([82...96], 80) = 80
Example -- 241 - 161 = 80


If JK misses and target uses Endure...
Code:
damage = [164...193]
target HP = 160
Endure applies!
new damage = target current HP - 1 = 159
divide by 2 and compare target max HP/2
floor(159/2) ? floor(160/2)
79 ≤ 80
crash damage = min(79, 80) = 79
Example -- 241 - 162 = 79
This off by one happens if the target's current HP is an even number.


If the target using Endure is below 100%, crash damage will scale down which absolutely does not happen with other crash cases.
Code:
damage = [164...193]
target HP = 56
Endure applies!
new damage = target current HP - 1 = 55
divide by 2 and compare target max HP/2
floor(55/2) ? floor(160/2)
27 ≤ 80
crash damage = min(27, 80) = 27
Example -- Target has 56 HP remaining. 241 - 214 = 27

Focus Band's chance to save at 1 HP is also rolled and can affect crash damage in the same way, though the game never tells the player that the item took effect.
 
Back
Top