• The leaders of this section are Hiro' and Rage. The leader of the Old Generation Councils is Star.
  • Welcome to Smogon! Take a moment to read the Introduction to Smogon for a run-down on everything Smogon, and make sure you take some time to read the global rules.

All Gens Past Gens Research Thread

On Discord a few weeks ago, Dhgss and I discussed a couple of third gen specific sim inaccuracies that occur when a Pokemon dies to spikes damage at the end of the turn.

The video below shows the expected behaviour:


and this replay shows the actual behaviour: https://replay.pokemonshowdown.com/gen3ou-2231692744-i8x3v47mszjal54za4p9gfz3vi037xrpw

The two mechanics that are inaccurate:
a.) Due to the previous turn's outcome, both sides must send in a new Pokemon. Banette enters the field and immediately faints to Spikes damage, the other side does not reveal any information about what they send in. However on PS this information is forced.
b.) Sand Stream activates in this interaction. On PS it does not.
 
I've been researching the game code of Ultra Sun/Ultra Moon for the past year or so, and I recently found the function that seems to be handling Solid Rock/Filter/Prism Armor, and it does not match what I had expected based on Bulbapedia - I found the equivalent functions in XY and ORAS, and aside from ORAS adding a function call to handle Delta Stream removing Flying's weaknesses...

XY - function at 0x000BC5B0, passes 0x04C9, based on context I think it's effectively multiplying by (0x1000 - 0x4C)/0x1000, or about 71% of the pre-Ability damage (XY is the most different from USUM, so there's bits that compiled rather differently, so I'm not quite so sure about this)
ORAS - function at 0x000C5CB8, passes 0x1AB8 with reference to defense, effectively divides by 6840/4096 ~ 1.67, which almost exactly 60% of the pre-Ability damage
USUM - funcion at 0x000D3920, function identical or ORAS except for the different offsets


Is this the expected/known behavior or is this something somehow missed (which I feel would be shocking, considering Mega Aggron in UU)? I'm mostly interested because if the damage reduction has been thoroughly tested on console, then I'm missing something significant here.
 
I've been researching the game code of Ultra Sun/Ultra Moon for the past year or so, and I recently found the function that seems to be handling Solid Rock/Filter/Prism Armor, and it does not match what I had expected based on Bulbapedia - I found the equivalent functions in XY and ORAS, and aside from ORAS adding a function call to handle Delta Stream removing Flying's weaknesses...

XY - function at 0x000BC5B0, passes 0x04C9, based on context I think it's effectively multiplying by (0x1000 - 0x4C)/0x1000, or about 71% of the pre-Ability damage (XY is the most different from USUM, so there's bits that compiled rather differently, so I'm not quite so sure about this)
ORAS - function at 0x000C5CB8, passes 0x1AB8 with reference to defense, effectively divides by 6840/4096 ~ 1.67, which almost exactly 60% of the pre-Ability damage
USUM - funcion at 0x000D3920, function identical or ORAS except for the different offsets


Is this the expected/known behavior or is this something somehow missed (which I feel would be shocking, considering Mega Aggron in UU)? I'm mostly interested because if the damage reduction has been thoroughly tested on console, then I'm missing something significant here.
Filter/Solid Rock/Prism Armor have always been final damage modifiers with a value of 3072 (0xC00). It was definitely that way in Gen 5 and in Gen 7, and I checked in Gen 6 and 9 and it's also 3072 there as well.

The only modifier I can think of that is 6840 is Gravity (accuracy).
 
Filter/Solid Rock/Prism Armor have always been final damage modifiers with a value of 3072 (0xC00). It was definitely that way in Gen 5 and in Gen 7, and I checked in Gen 6 and 9 and it's also 3072 there as well.

The only modifier I can think of that is 6840 is Gravity (accuracy).
The Gen 7 link isn't loading - I've been working in the compiled battle.cro, if that has any data on that it would be really helpful!
 
Not only does Lightning Rod not redirect Sky Drop when the latter is under the effect of Electrify, at least as of USUM, Storm Drain also checks to make sure the move is not Sky Drop before redirecting, although it is impossible for that situation to occur.
 
Sorry if this is the wrong place to ask, but what happens if a Ditto or Mew tries to use transform or impostor on a glitch Pokemon? The result depends on the generation or the specific glitch Pokemon, right?
 
ADV (aka Gen. III aka Gen. 3) Doubles GBA Port Priority

I'm posting this here for posterity. While it's mostly irrelevant due to most ADV Doubles battles taking place on Showdown (which implements Switch Priority Clause Mod), ADV DOU battles may rarely be played via GBA netplay, and in-person Orre Colosseum/PL2005 and JAA2006 battles are more often played via GBA instead of GCN for logistics reasons.

Slots
As known to at least some ROM hack modders, the GBA games assign priority to the different Pokémon positions (I will call these slots for now). Left/right is relative to that player's perspective. Please see the photo for clarity.
  • Slot 1: Player 1's Left-side Pokémon
  • Slot 2: Player 2's Left-side Pokémon
  • Slot 3: Player 1's Right-side Pokémon
  • Slot 4: Player 2's Right-side Pokémon
Helping_Hand_III Edited.jpg


For brevity, the rest of this post will refer to the slots as [1], [2], [3], [4].

Damage
  • Surf damages Pokémon in slot order: [1], [3] OR [2], [4]. I assume that this applies to other moves that hit both opponents (e.g. Icy Wind, Rock Slide)
  • Explosion damages Pokémon in slot order: [1], [2], [3], [4]. I assume that this applies to other moves that hit the rest of the field (e.g. Earthquake, Teeter Dance).

Manual Switching
  • Manual switches occur in slot order: [1], [2], [3], [4]
  • Intimidate activates immediately upon switch-in. I assume that this applies to other abilities that activate upon switch-in (e.g. Drought, Drizzle).

Post-KO Switching
  • After Explosion, both players simultaneously and blindly select all required switch ins
  • Switch-ins occur in slot order: [1], [2], [3], [4]
  • Intimidate occurs after all switch-ins in slot order of the Intimidator: [1], [2], [3], [4]
  • I assume that this applies to all scenarios where more than one Pokémon is KOed by a single move (e.g. Earthquake, Double-Edge via recoil).

End-of-Turn Effects
  • (e.g. Sand damage, Poison. I have not tested this yet)

Practical Conclusions
When playing in a GBA battle, Player 2 has a slight advantage when it comes to Intimidate and weather wars
  • For this reason, I recommend port priority in netplay or in-person GBA battles should be decided via "random" arbitration (e.g. coin flip, rock-paper-scissors).
However, left vs. right Pokémon position is just as important as Player 1 vs. Player 2. It's beneficial for players to do the following when possible:
  • Switch-in an Intimidator (e.g. Tauros) into the right slot
  • Switch-in physical attackers (e.g. Snorlax) into the right slot
  • Switch-in setters of desired weather (e.g. Groudon) into the right slot if weather is not up
  • Select lead order that encourages the above. For example, lead ([1] Latias, [3] Metagross) instead of ([1] Metagross, [3] Latias) since Metagross is threatened by Overheat, which Snorlax covers. This helps account for a possible same-turn Tauros switch-in.
In both the ADV DOU and Orre Colosseum/PL2005 metagames, there are no relevant situations for port priority and slots outside of Intimidate. In JAA2006, weather is an additional situation.

Battles on XD have a different set of mechanics for damage order, switching, and post-KO switching, which requires further research and codification.

Video Evidence
(courtesy of oopsgtg)
 
Last edited:
Back
Top