All Gens Past Gens Research Thread

phoopes

I did it again
is a Site Content Manageris a Member of Senior Staffis a Community Contributoris a Contributor to Smogonis a Battle Simulator Moderator Alumnus
RoA Leader
Addressing the recent Beat Up discussion:

I caught wind of the Beat Up desync thing awhile ago and have been meaning to make a post about it, so sorry for not doing that earlier. While I recognize that "no one uses it" or whatever, I still think it's important for it to be addressed. Rezzo brought up the tiering policy that states we should try to adhere to cart mechanics as much as we can and I agree. While just straight up banning Beat Up is probably the easiest solution since it wouldn't really affect competitive play, I personally would be afraid of the precedent that would set in case some kind of desync was found in the future with a more often-used move like (god forbid) Curse. Sure, that's a worst-case scenario, but I think it's best to not leave it as is. Thus, in my opinion, I think it's probably good to futureproof this kind of scenario with a Desync Clause Mod, since this has a precedent with RBY.

RBY uses the following Desync Clause Mod: "If a move would cause a situation that leads to battles desynchronizing during a Link Battle on cartridge, the move will fail." This was based off a community vote, and while not everyone agrees with this mod to the game, it's what was decided on and has since been changed to work this way on Showdown. So yes, there's precedent for this kind of thing to be implemented, but I would understand if the GSC community feels differently about desyncs and wouldn't want an RBY community vote from 2020 to determine a decision on their metagames.

Ultimately though, this isn't my call, so I'm going to tag the GSC Council (FriendOfMrGolem120, Fear, Tony) as well as my co-leaders (Siatam and Rage) to see if they'd like to give their thoughts in this thread as well.
 

phoopes

I did it again
is a Site Content Manageris a Member of Senior Staffis a Community Contributoris a Contributor to Smogonis a Battle Simulator Moderator Alumnus
RoA Leader
Bumping this thread with something completely unrelated to the above lol (mostly copy-pasted from Discord):

---

Was wondering if anyone could help me with this doubles-based damage query:

I was watching a speedrun of HGSS and the streamer said that when a move like Discharge is used, the damage is applied separately to every Pokemon instead of at the same time in order of speed. So like say you’re attacking Pokemon A and Pokemon B with a spread move. Pokemon A is faster, and takes damage with spread reduction and it faints. Then, damage is calculated for Pokemon B, but since there isn’t another Pokemon on the field anymore, Pokemon B’s damage is calculated as if it’s the only one on the field and doesn’t get the spread damage reduction.

My questions are:
1. Is this uniquely a Gen 4 thing or is it also in Gen 3? (streamer says that in later gens damage is calculated at the same time)
2. Is this in-game only or does it also affect Vs. Battles?
3. Is this implemented on PS?

Just wondering because I had never heard about this before.

Here’s the link to the video:

(2:52:43-2:55:10 is where the discussion takes place)

Summary of the few minutes of the video:

Streamer says Bellossom being paralyzed is important because it makes Parasect faster than Bellossom. So Parasect takes damage first, and thus takes it with spread reduction, and is not KO’d. If Bellossom weren’t paralyzed it would’ve taken damage first and been KO’d, and THEN the game would do damage calculation on the Parasect, see that it’s on the field alone, and calculate without spread damage, thus KOing the Parasect too.

---

Let me know if anything about the above isn't clear and I can try and explain it better. But yeah, I had just never heard of this mechanic before so I was wondering if it was known. I can do some testing on PS I guess to see if it's implemented but yeah.
 

phoopes

I did it again
is a Site Content Manageris a Member of Senior Staffis a Community Contributoris a Contributor to Smogonis a Battle Simulator Moderator Alumnus
RoA Leader
Alright so here's what I'm testing in a DPP battle.

Raikou:
31 SpA IV
252 SpA EV
neutral nature

Move: Discharge

vs.
Aerodactyl:
0 HP IV
0 SpD IV
0 HP EV
0 SpD EV
neutral nature

AND

Vaporeon:
31 HP IV
31 SpD IV
248 HP
36 SpD IV
neutral nature

What SHOULD happen, based off what we saw in the video above:
Turn 1: Setup turn to get Raikou by itself

Turn 2:
1. Aerodactyl is faster, so it takes damage first
2. Aerodactyl is KO'd by Discharge (252 SpA Raikou Discharge vs. 0 HP / 0 SpD Aerodactyl: 272-324 (100.7 - 120%) -- guaranteed OHKO, this is the doubles calc)
3. Vaporeon is slower, so it takes damage second
4. Vaporeon takes more than half damage (252 SpA Raikou Discharge vs. 248 HP / 36 SpD Vaporeon: 242-288 (52.2 - 62.2%) -- guaranteed 2HKO, this is the singles calc)

What ACTUALLY happened:
Turn 1: Setup turn to get Raikou by itself

Turn 2:
1. Aerodactyl is faster, so it takes damage first
2. Aerodactyl is KO'd by Discharge
3. Vaporeon is slower, so it takes damage second
4. Vaporeon takes LESS than half damage (252 SpA Raikou Discharge vs. 248 HP / 36 SpD Vaporeon: 182-216 (39.3 - 46.6%) -- guaranteed 3HKO, this is the doubles calc)

Replay: https://replay.pokemonshowdown.com/gen4doublesou-1743519910

tl;dr This shows that PS! is different from the in-game battle (at least according to the streamer).

I unfortunately don't have a way to reliably test the mechanic in-game or during a Vs. Battle with another person, however. If anyone could verify this that'd be great!

EDIT: For anyone interested, Marty confirmed that this has been known about, just not implemented on PS! yet.
 
Last edited:
I don't like Desync Clause Mod because it gives a false image of the metagame to players that use real games (Game Boy, Game Boy Color and Virtual Console). Imagine if you tried to host a tournament of Gen I or Gen II with real hardware, it would be a nightmare because the tournament organizers would have to deal constantly with situations where the matches were desynchronized due to Counter or Beat Up. I think that we should advise people that use real hardware to avoid those situations by simply banning the moves that cause desynchronizations.
 
By your logic, we'd also have to blame either all freezing moves or all thawing moves in Gen I on-cart play.

(Yes, I'm deliberately invoking a fallacy to make a point.)
 

DragonWhale

It's not a misplay, it's RNG manipulation
is a Top Social Media Contributor Alumnusis a Community Leader Alumnusis a Community Contributor Alumnusis a Battle Simulator Moderator Alumnus
Some potentially competitively relevant old gens mechanics I found from the Japanese community recently that isn't properly implemented on PS yet:

Prior to generation 8, Assurance doubles in power on the turn that the target switches into hazards, even if the Pokemon switched into it before move selection (i.e. a free switch after a Pokemon faints). This means in generation 6 and 7 Choice Band Weavile can potentially sweep with a 120BP Assurance if it's killing the target every turn and the next Pokemon keeps taking hazards.

In Generation 4, Metronome boosts will stay even if the move hits protect, misses, or the target is immune. Even though the boost this gen is only 10% per use, it still overcomes the downside in later gens that nerfed it to the ground when it was discovered that protect resets the counter.

In Generation 3, Destiny Bond will not kill the attacker upon death if the killing blow was done by a multihit move. While dbond and multihit moves aren't that common in adv ou (I think?), it's still a noteworthy interaction that may impact lower tiers
 

Amir

Banned deucer.
Prior to generation 8, Assurance doubles in power on the turn that the target switches into hazards, even if the Pokemon switched into it before move selection (i.e. a free switch after a Pokemon faints). This means in generation 6 and 7 Choice Band Weavile can potentially sweep with a 120BP Assurance if it's killing the target every turn and the next Pokemon keeps taking hazards.
So from this does it refer to hazards as in Stealth Rocks and Spikes, or ANY form of entry hazards such as Toxic Spikes and Sticky Webs?
And in connection to Toxic Spikes, if I were to use protect the turn they attack while poisoned, does that trigger Assurance to become a 120 BP move, or does it remain as a 60 BP move?

We could also extend this further, does the same apply to weather affects such as sand and hail? As that also chips the opponent, would that trigger assurance to become a base 120 move?

I'm assuming the Tspikes, Webs and weather chip damage won't affect, but its just a hypothesis and well its worth expanding on.
 
Hey, so there are a few interactions with items that I've come across recently with typeless moves in G/S/C that should be implemented in PS:

Basically:
- Struggle is boosted by the Pink Bow
- Beat Up is boosted by Blackglasses
- Future Sight is boosted by Twistedspoon
- Confusion damage is boosted by whatever type corresponds to the move you picked

When you use a move in battle, the game first considers what attack/defense stats to use in damage calculation. Usually, physical moves pick physical stats, and special moves pick special stats. There are some exceptions, such as Beat Up using base attack and base defense, and confusion damage always using your own physical attack and defense. However, this logic also applies to Future Sight and Struggle.

The game will then calculate the base damage of the move. This is when it takes the level, attack, defense, and held item into account.

After this, it will then run a function that calculates STAB, type-based badge boosts, type effectiveness (supereffective, etc.), and weather boosts/nerfs.

All typeless damage does is skip that last step. Its typing still applies for everything else, and that includes item boosts, thus it's not actually truly typeless. Maybe this an oversight, but it is present in the game nonetheless, and it doesn't seem to be documented anywhere.

Now, the odd part with confusion damage is the game still has in memory what move you selected, thus when it calculates base damage, it will still take into account the move you selected. This is why, for example, confusion does double damage if you picked Explosion, as the game is essentially recalculating Explosion as a 40 BP move against your attack and defense, and because the game checks if you've picked a self destructing move when calculating the base damage, it halves defense when doing damage calculation. The same logic also applies to item boosts.

Edit: I was asked to post a video for proof, so here you go:
 
Last edited:
PS's RNG FAQ says it uses the "exact same type of RNG as the actual Pokémon games on the Switch and 3DS use", and based on the source code, it uses the LCRNG from Gen 5 and newer, with some Gen 3-related code commented out, so I am guessing that it is intentional to not simulate older-gen RNG.

https://github.com/smogon/Pokemon-Showdown/blob/master/sim/prng.ts

Nevertheless, Gen 1/2 RNG doesn't seem to be documented much, so here's how it works.

Note: All of this ONLY applies to link battles. For RNG that does not pertain to link battles, the Game Boy games use a completely separate random number generator that uses the Game Boy's DIV register which is a value that increments at 16384 Hz, as is common for GB/GBC games.

In link battles, Gen 1 uses a 72-bit seed and Gen 2 uses an 80-bit seed (although it is effectively only using 72 bits of it - see below).

In Gen 1, the games exchange 9 bytes that they mutually agree upon as the seed, and the game will pull bytes starting from the first byte. Once the game tries to pull the 9th byte, it will regenerate these bytes. To regenerate bytes, the game multiplies each byte by 5 and adds 1 (modulo 256 of course).

In Gen 2, the games exchange 10 bytes. However, it seems to still recalculates PRNG once the 9th byte is pulled just like in Gen 1, thus skipping the 10th byte.

For example, let's say this is our starting seed (in hexadecimal):

66 6C 14 B5 CA E2 C7 3F 0A B6

When you pull numbers, it will first do 0x66, then 0x6C, then 0x14, then 0xB5, then 0xCA, then 0xE2, then 0xC7, and then 0x3F. When the RNG function is called a 9th time, what will happen is it will initially pull 0x0A, but then it will check to see if the next index will be the 9th index. If so, the game will recalculate the RNG seed as such:

FF 1D 65 8A F3 6B E4 3C 33 8F

It will then return 0x0A.

I don't have any video proof of this, as admittedly it is hard to make a video of something that's supposed to be completely invisible to the player, but there is a disassembly of both Gen 1 and Gen 2 floating around on GitHub that you can look at (look at the BattleRandom function in Red and _BattleRandom in Crystal).
 
Last edited:
So earlier this month I had the pleasure of punting a child like a football directly into the realm of unviability. This heartwarming experience of stealing candy from a baby made me curious how neglected this sort of niche move legality has been over the years. As it turns out, there are quite a few legality problems like this left undocumented, and more that are so complex I feel like I'm going to get a headache documenting them. I wanted to record some very basic stuff about this, and maybe, eventually, begrudgingly deal with more complex combos in the future.

Female Only Pokemon + Level Up Move Legalites for LC Play
A brief refresher on the basic mechanics of getting level up moves on your Pokemon for level 5 play:
  • Pokemon can be hatched with level up moves they'd normally learn later on if both the male and female parent know the move.
  • This works differently from egg moves, where the male parent (Gens 2-5) or either parent (Gens 6+) knowing the move will pass it down.
  • This makes getting your desired level up move with any Pokemon with an M/F split pretty trivial, since you can just make both parents the same Pokemon.
  • This is why Male only Pokemon and Genderless Pokemon traditionally have movepool troubles in LC

Though it's really obvious why Male and Genderless Pokemon can have problems accessing their level up moves, Female only Pokemon are a bit more subtle. They don't have the luxury of being able to just have two parents of the same species make a baby together. They need to have male Pokemon from other species in the same egg group. If there are no male Pokemon from that egg group that can learn the attack, then the female's offspring can't ever have the attack at that lower level.

There are a bunch of illegalities caused by this for a handful of Pokemon that, as far as I can tell, haven't been recorded anywhere. They can also get absurdly complex. I am not going to list out all of them here today because most of them are not competitively relevant and manually checking them is insanely time consuming. I tried doing Gen 2 Chansey's 2 move combo legality and it got ridiculous pretty quick. Keeping track of what level up moves can be known together while also keeping track of things like egg move combos and old gen tms that can *be* level up moves is a lot. 3 move and 4 move combos are nuts with all the factors to juggle. I might dive into it some other day, but for now, here's something that was much simpler to check: single moves that these Pokemon can't obtain for level 5 play.

These female only Pokemon cannot know these attacks at level 5, and thus can't use the attacks in LC play. As far as I'm aware, old LC gens play with the Pomeg Glitch allowed, so wherever that changes things, I've made a note. This actually did include a seemingly relevant move caught in all this; Vullaby's BW on site analysis has a moveset with Punishment, but it can't learn it at level 5.

Gen 2:
:Smoochum: Sweet Kiss, Powder Snow, Sing, Mean Look, Perish Song

Gen 3:
:Chansey: Egg Bomb (Pomeg Glitch Enabled: No Illegal Moves)
:Smoochum: Sweet Kiss, Powder Snow, Sing, Fake Tears, Perish Song (Pomeg Glitch Enabled: No Illegal Moves)

Gen 4:
:Smoochum: Powder Snow, Sing, Lucky Chant, Perish Song (Pomeg Glitch Enabled: Lucky Chant, all moves still illegal with Forewarn)

Gen 5:
:Smoochum: Powder Snow, Sing, Heart Stamp, Lucky Chant, Perish Song (Pomeg Glitch Enabled: Heart Stamp, Lucky Chant, all moves still illegal with Forewarn, Dry Skin)
:Petilil: Entrainment
:Vullaby: Punishment

Gen 6:
:Smoochum: Powder Snow, Sing, Heart Stamp, Lucky Chant, Perish Song (Pomeg Glitch Enabled: Heart Stamp, Lucky Chant, all moves still illegal with Dry Skin)
:Petilil: Entrainment
:Vullaby: Punishment

Gen 7:
(None! Gen 7 move relearner lets you learn moves ahead of your current level)

Gen 8:
(Still None, Milcery and Hatenna have valid parents for everything. Pokemon Home + Gen 7 stops any problems for BDSP Pokemon)

Gen 9:
:Tinkatink: Rock Smash, Brutal Swing, Skitter Smack, Knock Off
(Pokemon Home + Gen 7 stops any problems for Pokemon in that gen again)

Again, these are all single move illegalities. There are plenty of combos with legality issues; Gen 2 Chansey for example can't have both Softboiled and Heal Bell on the same moveset for Level 5 play. I'll try and get those ready for another day, but here's at least a quick overview of some easy stuff. I can't program out of a paper bag, so I manually checked everything, and will probably be manually checking everything if I descend into hell itself making a comprehensive illegality guide.

To end, here's a fun side discovery. This sort of moveset illegality is so obscure, some Pokemon devs have even neglected it! Take a look at this opposing Smoochum moveset from Pokemon Stadium 2's Little Cup:

1688295839510.png


Smoochum can't get Sing or Sweet Kiss at Level 5; there are no male parents who learn either attack in the humanshape egg group. This dude's been cheating for 22 years and I think we just now caught him.
 
Last edited:
Does marvel scale decrease confusion damage if the Pokemon has a status condition like paralysis or burn? Does this interaction work differently in different generations?

Edit: Can metal powder, muscle band, or eviolite affect confusion damage in any game?
 
Last edited:
Hello, recently I have been looking into the mechanics of moves that have multiple targets (like Earthquake, Rock Slide and Dark Void) in Generation 3&4 Doubles, which are currently not implemented correctly in Showdown.
The main difference between how these 'spread moves' work in Gen 4 compared to 5+ is that instead of affecting all targets simultaneously, in Gen 4, spread moves will first affect the fastest target (considering all speed modifiers), then the second fastest and so on until there are no valid targets remaining, this means that if anything changes after the first target is affected, then the changes may (but not always) be reflected in subsequent targets, this is highly relevant. This post will focus primarily on Gen 4. I will possibly make a follow-up post testing the same mechanics in Gen 3, but I have not done these tests on cartridge yet.
The most important consequence of this, which was well known in VGC (the official competitive format, which is doubles) during the Gen 4 era, is that if a spread move like Rock Slide KOs the faster target, the slower target then takes damage then is not affected by the spread damage modifier. In other words the second target takes 1.33..x damage. The same is true if a move like Earthquake clears the field, if applicable the final target on the field is not affected by the spread damage modifier.
Additionally for the move Explosion and Self Destruct, there is a further effect, the final two targets remaining on the field take the full 'single target' damage. This is because when calculating the damage for moves that affect the whole field like Explosion and Earthquake, the game counts the total number of targets remaining on the field, if that number is =<2 (ie the user and the target) then no spread damage modifier is applied, however if the user KOs them self by using Explosion, they are not counted as being on the field.
These two mechanics are not implemented into showdown currently, however I believe a fix to these should also address the other mechanics that come about as a result of the differences in spread moves in gen 4. I have done some tests comparing cartridge (HG) to simulator (Showdown) and noting the how the mechanics work in game in terms of damage calculations and bugs that exist in the simulator as a result.
Test 1: Testing the mechanics explained above.
https://replay.pokemonshowdown.com/gen4vgc2010-2003592079
Turn 1: Rock Slide deals spread reduced damage to Dialga, which is incorrect.
Turn 2: Explosion deals spread reduced damage to Dialga, which is incorrect.
Turn 3: Explosion deals spread reduced damage to Dialga, which is incorrect.
Which corresponds to the twitter link below:
Regirock Attack = 141
Bronzong Attack = 141
Dialga HP = 207, Defence = 140
Rock Slide dealt 23 damage on cartridge
(21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 26) (Single target)
Rock Slide dealt 19 damage on showdown
(16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 19) (Spread damage)
Explosion (Regirock) dealt 101 damage on cartridge
(94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111) (Single target)
Explosion (Regirock) dealt 72 damage on showdown
(70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 80, 81, 82, 83) (Spread damage)
Explosion (Bronzong) dealt 109 damage on cartridge
(94, 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111) (Single target)
Explosion (Bronzong) dealt 81 damage on showdown
(70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 80, 81, 82, 83) (Spread damage)
Test 2: Testing if the user of a move that targets all pokemon is KO'ed mid move, it works the same as explosion (ie the final two targets take single target damage), if Shell bell is rounded for each target or at the end of the move, Reflect/Light Screen and if KOing an Air Lock or Cloud Nine pokemon will cause the subsequent targets of a Water/Fire attack in the Rain/Sun to take damage with respect to the weather or not.
https://replay.pokemonshowdown.com/gen4doublescustomgame-2003597276
Turn 1: On Showdown, Donphan Earthquake damages all targets, then Jaboca berry activates, then Donphan faints and Houndoom faints. Suicune1&2 take spread reduced damage.
Instead on cartridge (what should happen) Donphan Earthquake first targets Houndoom (the fastest target), Houndoom takes 100% damage, then Jaboca berry activates, then Houndoom and Donphan are KOed, then Suicune2 (faster) takes single target damage, then Suicune1 (slower) takes single target damage. So, this is incorrect on Showdown.
Turn 3: Mamoswine recovers 55 HP from Shell Bell. This is correct and works the same on cartridge.
Turn 4: Mamoswine EQ damages all targets, Reflect reduces damage by 2/3 instead of 1/2, as happens on cartridge (because Abra is KOed first, so Suicune2 is considered the only opponent). So, this is incorrect on Showdown.
Turn 6/7: Kyogre Water Spout damages all targets and KOs Rayquaza, Suicune2 takes non Rain boosted, spread reduced Water Spout. What happens on cart is that Kyogre KOs Rayquaza and then Suicune takes Rain Boosted, single target damage. So, this is incorrect on Showdown.
Which corresponds to the twitter link below:
Donphan Attack = 189
Mamoswine Attack = 200
Kyogre Sp. Attack = 222
Suicune1&2 HP = 207 Def. & Sp. Def. = 135
Earthquake (Donphan) dealt 91 damage on cartridge
(79, 81, 81, 82, 84, 84, 85, 85, 87, 88, 88, 90, 91, 91, 93, 94)(Single target)
Additional note: In one of my cartridge tests Donphan was burned by Flamethrower, it then did 48&46 damage to Suicune1&2. So from that we can conclude that since burn reduces BP, the effects of burn linger even after Donphan has fainted, so the BP is determined at the start of the move, and not updated (this is also the same for Eruption and Water Spout).
(40, 40, 40, 42, 42, 42, 43, 43, 43, 45, 45, 45, 46, 46, 46, 48) (Burned, single target)
Earthquake (Donphan) dealt 60 damage on showdown
(58, 60, 60, 61, 61, 63, 63, 64, 64, 66, 66, 67, 67, 69, 69, 70) (Spread damage)
Earthquake (Mamoswine) dealt 37 damage on cartridge
(33, 33, 33, 33, 34, 34, 34, 34, 36, 36, 36, 36, 37, 37, 37, 39) (Singles reflect, spread damage)
Earthquake (Mamoswine) dealt 45 damage on showdown
(42, 43, 43, 43, 45, 45, 45, 46, 46, 46, 48, 48, 48, 49, 49, 51) (Doubles reflect, spread damage)
Water Spout dealt 108 damage on cartridge
(104, 105, 106, 108, 108, 110, 111, 112, 114, 115, 116, 117, 119, 120, 121, 123) (Rain Boosted, single target)
Water Spout dealt 56 damage on showdown
(52, 53, 54, 54, 54, 55, 56, 57, 57, 58, 58, 59, 60, 60, 61, 62) (No weather, spread damage)
Test 3: Testing if the BP of Eruption is updated mid move if the user takes damage from Aftermath or Rowap Berry, Flower Gift and Petaya Berry.
https://replay.pokemonshowdown.com/gen4doublescustomgame-2003663868
Turn 1: On Showdown, Groudon Eruption KOs Cherrim, deals Flower Gift reduced damage to Snorlax, then takes Rowap Berry Damage. Should instead eat Rowap Berry after KOing Cherrim, but then still deal full 150 BP, despite not being full HP. Additionally the effects of Flower Gift should also not considered on Snorlax and it should be single target. So, this is incorrect on Showdown.
Turn 2: Groudon uses Eruption, KOing Weedle, then damages Snorlax with 56 BP Eruption, then takes Rowap Berry damage and then eats Petaya Berry. Instead, (as on cartridge) Groudon should KO Weedle, then take Rowap Berry damage, then deal 56 BP Eruption then eat the Petaya berry, although for the purposes of the damage calculation these are mostly identical, Eruption should be single target on Snorlax. So, this is incorrect on Showdown.
Which corresponds to the twitter link below:
Groudon Sp. Attack = 167
Groudon HP = 200
Snorlax HP = 267 Sp. Def. = 115
Snorlax Ability: Immunity
Eruption 1 dealt 115 damage on cartridge
(108, 110, 111, 112, 113, 115, 116, 117, 119, 120, 121, 122, 124, 125, 126, 128) (150 BP No Flower Gift, single target)
Eruption 1 dealt 69 damage on showdown
(62, 63, 64, 65, 65, 66, 67, 68, 68, 69, 70, 71, 71, 72, 73, 74) (150 BP Flower Gift, spread damage)
Eruption 2 dealt 45 damage on cartridge
(45, 46, 46, 47, 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 54) (56 BP, single target)
Eruption 2 dealt 36 damage on showdown
(34, 35, 35, 36, 36, 36, 37, 37, 38, 38, 38, 39, 39, 40, 40, 41) (56 BP, spread damage)
In summary, Gen 4 doubles has a very different implementation of moves with multiple targets. Originally I was planning on including some tournament games from DP Doubles OU and VGC 2009/10 whose results were completely changed from what they would be on cartridge by the incorrect implementation of this mechanic, however due to the Replay Data loss I am unable to share any currently. Instead here are some ladder games from just one day that demonstrate the mechanic.
https://replay.pokemonshowdown.com/gen4doublesou-2003220577 - Turn 2, Tyranitar should take single target damage from Explosion.
https://replay.pokemonshowdown.com/gen4doublesou-2003306927 - Turn 2, Tyranitar should take single target damage from Blizzard.
https://replay.pokemonshowdown.com/gen4doublesou-2003319934 - Turn 1, Tyranitar should take single target damage from Explosion.
https://replay.pokemonshowdown.com/gen4doublesou-2003327679 - Turn 6, Heatran should take single target damage from Explosion.
https://replay.pokemonshowdown.com/gen4doublesou-2003380356 - Turn 3, Gyarados should take single target damage from Rock Slide (if Kangaskhan is faster).
https://replay.pokemonshowdown.com/gen4doublesou-2003425992 - Turn 7, Metagross should take single target damage from Explosion.
https://replay.pokemonshowdown.com/gen4doublesou-2003431216 - Turn 5, Kingdra should take single target damage from Rock Slide.
https://replay.pokemonshowdown.com/gen4doublesou-2003434898 - Turn 9, Gengar should take single target damage from Blizzard.
https://replay.pokemonshowdown.com/gen4doublesou-2003443835 - Turn 7, Tyranitar should take single target damage from Explosion.
https://replay.pokemonshowdown.com/gen4doublesou-2003451928 - Turn 4, Tangrowth should take single target damage from Earthquake (If Magnezone is faster when considering effects of Trick Room).
https://replay.pokemonshowdown.com/gen4doublesou-2003465153 - Turn 1, Tyranitar should take single target damage from Explosion.
 
Last edited:
As promised I have tested these mechanics in Generation 3, both Emerald and XD: Gale of Darkness. Before I explain the tests it is important to understand the mechanics of Gen 3 doubles, which differ greatly from Modern Gens. Most significantly for these tests, moves that target all Adjacent Pokemon (Like Earthquake, Explosion and Self-destruct) have no damage reduction in Double Battles and moves that target Adjacent foes (like Rock Slide, Surf and Eruption) have a damage reduction of 0.5x, not 0.75x as in Modern Gens. This means that I will only be testing the moves that target Adjacent foes for this post, although many Mechanics interactions (such as Shell Bell) will still be applicable to the moves that target all Adjacent Pokemon.
Additionally, many of you who are already familiar with ADV Mechanics will know that switching order is not determined by Speed, but by Port Priority (in Emerald, this was changed to remove Port Priority in XD). The targeting of Spread attacks works in a similar way, ignoring Speed and instead targeting in the following order: Opponent's first selected Pokemon (or whatever replaces it), Opponent's second selected Pokemon (or whatever replaces it), then your ally.
Test 1: Testing if KO'ing the first target makes the second take single target damage, if the effects of Air Lock are removed and if Light Screen updates.
https://replay.pokemonshowdown.com/gen3doublescustomgame-2024865955
Turn 1: Snorlax takes spread reduced, non Rain boosted damage on Showdown, which is the same in Emerald but not XD.
Turn 2: Kyogre heals 2HP on Showdown, which is incorrect and it should heal 2HP from each target for a total of 4. The issue appears to be that Shell Bell only triggers for the final target, but it should happen each time.
Turn 3: Snorlax takes 'Singles' Light Screen reduced damage on Showdown, which is incorrect because in Emerald and XD Snorlax takes 'Doubles' Light Screen reduced damage.
Which corresponds to the Twitter links below:
(Emerald)
(XD: Gale of Darkness)
Kyogre Sp Atk = 438
Snorlax HP = 524 & Sp Def = 350
Surf 1 dealt 67 damage on Emerald and 69 damage on Showdown
(64, 65, 66, 66, 67, 68, 69, 69, 70, 71, 72, 72, 73, 74, 75, 76) (Spread reduced, no Rain)
Surf 1 dealt 106 damage on XD
(95, 96, 97, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 112) (Spread reduced, Rain boosted)
Surf 3 dealt 72 damage on Emerald, 67 on XD
(64, 65, 66, 66, 67, 68, 69, 69, 70, 71, 72, 72, 73, 74, 75, 76) (Spread reduced, Doubles Light Screen)
Surf 3 dealt 54 damage on Showdown
(48, 49, 49, 50, 50, 51, 51, 52, 53, 53, 54, 54, 55, 55, 56, 57) (Spread reduced, Singles Light Screen)
Test 2: Testing Lightningrod's interaction with Hidden Power Electric
https://replay.pokemonshowdown.com/gen3doublescustomgame-2025598689
Turn 1: Marowak's Lightningrod does not redirect Hidden Power Electric in Emerald. On Showdown it does which is incorrect.
Which corresponds to the Twitter link below:
Thank you for reading this exploration of Gen 3&4 Doubles mechanics. I hope it has been at least a bit interesting and that these bugs can be fixed in the future.
 
I was asking for the certain GSC glitch involving Perish Song and Spikes to be implemented in PS!, but I realized that there is not enough research, so I also post it in this thread.
I am sorry, but I do not have the environment to quickly reserch this, so it would be helpful if someone could reserch it.
  • Glitch description
    In GSC's Cartridge, there is the glitch which causes that the mon will not faint when HP become 0 due to Spikes damage when the switch occurs due to another mon's faint caused by Perish Song.
    This glitch was reported on the following page of "the pokecrystal disassembly project", and there is also a link to the verification video on the page below.
    https://pret.github.io/pokecrystal/...es-can-leave-a-pokmon-with-0-hp-and-not-faint

  • Remaining matters for researching
    The verification video above is not from link battle, so we will need to check if this occurs with link battle first.

    Based on this, it is necessary to check the following six cases.
    3 and 4 were confirmed in the verification video above, but the remaining 4 are unconfirmed.

    1. If the mon with 0 HP switches out faster than the opponent's mon
    -> I think the mon with 0 HP should remain alive.

    2. If the mon with 0 HP switches out later than the opponent's mon
    -> I think the mon with 0 HP should faint when the opponent's switch is ended, but maybe it would not faint at this timing.

    3. If the mon with 0 HP uses a move faster than the opponent's mon, and as a result, the HP becomes 1 or more
    -> This mon is alive when the opponent's move starts processing.

    4. If the mon with 0 HP uses a move faster than the opponent's mon, and as a result, the HP still be 0
    -> This mon faint when it is end of this move's processing.
    (The evidence is same as 3.)

    5. If the mon with 0 HP uses a move later than the opponent's mon, and as a result, the HP becomes 1 or more (This can only occur with Pain Split or Present)
    -> I think this mon is alive when the ally's move starts processing.

    6. If the mon with 0 HP uses a move faster than the opponent's mon, and as a result, the HP still be 0 (Even if it is a move that does not cause damage)
    -> I think this mon faint when it is end of this move's processing.
 
Last edited:

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top