All Gens Past Gens Research Thread

Crystal_ I assume normal accuracy checks will apply tho? So Bonemerang's 90% accuracy, and the ever-present 1/256 risk could ruin it? If you miss, do you get a second chance at it, or did that clear the number as well?
 
Setting the numhits address to 2 is part of the double hit effect. If the move misses, the effect doesn't happen, and thus the value is not changed.
 
APRIL FOOLS!

Not like you'd be surprised anymore since it seems that hardly anybody hadn't already figured out that it was a hoax. Obviously we were susceptible to someone looking at the disassembly or testing the game with a debugger; we were just hoping that it wouldn't be the case and at least it looks like we got everyone for nearly a day!

Credit for the original idea of making an april fools old gen glitch joke goes to Spy and I also worked with/were also involved The Dutch Plumberjack, anto, Jellicent, Marty, and Quite Quiet. In case anyone happens to be wondering where I took the idea for the glitch from, it's from an actual obscure desync glitch that is documented on The Cave of Dragonfies.

So that's all. No Beedrill's ruling the world just yet. Sorry about it!
 
Last edited:

froggy25

Bye RNGmon
is a Researcher Alumnus
It was a nice April Fool's day prank, the description was plausible if you didn't search into it extensively.

Not enough Bide weirdness ? Let's add some more to this thread !

Bide and Multi-Hit Moves (for real this time)
Bide only stores the last hit from multi-hits attacks. That is, if Double-Kick deals 28×2 to your Tauros, only 28 damage will be added into Bide stored damage in the next turn.
Bide adds the damage of the previous multi-hit move if the opponent charges a move like Solarbeam.
If your Pokémon gets damaged by a damaging move on the first turn of Bide, and your opponent uses Swords Dance / Amnesia / etc. on the next turns, your stored damage will be 0, and Bide will fail.

The two-byte value at wD074 stores the damage received while using Bide.

Case A: Opponent uses Bide, you use a multi-hit move (Double Kick, for instance), deals 50 damage per hit, wD074 = 0. You charge Solarbeam, wD074 = 50. Next turn, Solarbeam deals 224 damage, wD075 = 100. Next turn, Bide is unleashed, wD074 = 324. It deals 648 damage, and wD074 = 0.

Case B: Opponent uses Bide, you use a damaging move (Body Slam, for instance), deals 130 damage, wD074 = 0. You use Swords Dance, wD074 = 0. You use Swords Dance, wD074 = 0. Next turn, Bide fails.

Case C: Opponent uses Bide, you use a multi-hit move (Double Kick, for instance), deals 50 damage per hit, wD074 = 0. You use Thunderbolt, deals 170 damage, wD074 = 50. Next turn wD074 = 220. The damage is added normally from here on, except that only the last hit from Double Kick is taken into account in Bide stored damage.
 
Last edited:
Bide damage isn't accumulated when the Bide user is dealt damage, but in the Bide user's turn (when you'd expect the game to show "Pokemon is storing energy"). Only the damage of the last hit was stored, so that's the one that the game reads and accumulates.

There doesn't seem to be aything special about cases A and C, it just appears to be the timing. If you check the Bide accumulated damage address right after the damage is dealt but before it gets added to said address, then it'll look like everything is being stored a turn late. But in the end you can see how the total dealt damage unleashed by Bide is the one that you'd expect.

Not sure about B if it's true. It's as if the damage DEALT got zeroed before it was accumulated but can't tell right away
 

froggy25

Bye RNGmon
is a Researcher Alumnus
Yeah, noticed the damage was updated on the next turn. The damage from the previous turn being reapplied is the glitch you explained in your Bide post, I originally added it because there wasn't charging turn of charging moves in your list of moves that do not clear the damage.

And yup, case B is true. Here's with Body Slam (beginning of the video, sorry the same BGB window got displayed twice, obs has a hard time with windows that have the same name it seems :P )
 
Last edited:

froggy25

Bye RNGmon
is a Researcher Alumnus
Up.

Case B only happens in case of a Speed Tie, with the Bide user winning the Speed Tie. In other cases, the stored damage counter gets updated, tested with two Tauros with different Speed (the Bide user being the faster).
 
Case B only happens in case of a Speed Tie, with the Bide user winning the Speed Tie. In other cases, the stored damage counter gets updated, tested with two Tauros with different Speed (the Bide user being the faster).
Hah, I was going to suggest exactly that but thought It'd be too unlikely (didn't expect you to be testing this with the same Pokemon). If it's a tie and the Bide user goes first when using Bide and second in the next turn, that gives the opponent time to use two damaging moves with the second move's damage overwriting the first before it's accumulated by Bide.

I'll leave this here again. It should really help clarifying a lot of these small details regarding the damage engine despite looking just like a lousy pastebin. http://pastebin.com/UUN59LJ3

(indents are broken, see pastebin preferably)

- The current damage in battle is stored in two 8-bit addresses (will be referred to as a single 16-bit address from now on for simplicity), so it can store values up to 65535. Anything that would make the damage overflow, makes sure to cap it at 65535 instead. This damage address is shared by both players.
- The damage address isn't cleared (set to 0) when a battle starts or finishes, nor on a switch by any player. Thus, the stored value will be carried over between battles and might lead to a desynchronization in a link battle (e.g. with a move like Counter).

- If the attacker hurts itself due to confusion, the value stored in the damage address will correspond to the calculated damage that the confused Pokemon deals to itself.

- If the turn holder is storing energy this turn due to Bide, the content of the damage address is added to the value already stored in a separate Bide damage address (two 8-bit addresses).
- Bide's store energy effect won't occur during a turn the Pokemon is asleep, frozen, trapped (from Wrap or a similar move), flinched, recharging from Hyper Beam, or attempting to use a disabled move.
- Hurting oneself due to confusion, or being fully paralyzed, both cause the Bide lock to come to an end.
- If energy is unleashed this turn, the content of the Bide damage address is copied to the damage address and cleared, then the damage address is doubled.
- If the player Pokemon faints, the whole Bide damage address is cleared. If the enemy Pokemon faints, only the high byte of the Bide damage address is cleared (becoming the original value ANDed by 255). This could lead to a desynchronization during a link battle.

- Whenever a move whose effect is NOT on the list below is used, the damage address is cleared.
+ Conversion effect
+ Haze effect
+ Switch and Teleport effect (e.g. Roar, Teleport)
+ Mist effect
+ Focus Energy effect
+ Confusion effect (e.g. Supersonic)
+ Heal effect (e.g. Recover, Rest)
+ Transform effect
+ Light Screen effect
+ Reflect effect
+ Poison effect (e.g. Poisonpowder, Toxic)
+ Paralyze effect (e.g. Thunder Wave)
+ Substitute effect
+ Mimic effect
+ Leech Seed effect
+ Splash effect
- Using a move means actually using it, and not just that its effect gets executed.
- Selecting a move and failing to use it due to being asleep, frozen, etc. is not using a move.
- Recharging from Hyper Beam is not using Hyper Beam.
- Charging up for a move like SolarBeam is not using the move
- Bide storing energy (after the turn it's selected) is not using Bide.
- Wrap, Bind, Clamp and Fire Spin are only used in the first turn of the sequence (not entirely true, but to this effect, yes).
- Multi-hit moves such as Double Kick and Fury Attack are only used once despite hitting twice or more.

- If the requirements for Counter dealing damage to the target meet, the content of the damage address is doubled. Else, the damage address is not touched.
- The three requirements are:
+ The other player's last selected move's Base Power must be non-zero.
+ The other player's last selected move must be either Normal- or Fighting-type, but can not be Counter.
+ The damage address must contain a non-zero value.
- Selecting a move means pointing to it with the cursor in the move selection menu. If the player A opens the move selection menu and then decides to switch Pokemon, the last move pointed to by the cursor has been selected even though player B hasn't been notified about it. This means player A's "PlayerSelectedMove" address and player B's "EnemySelectedMove" address may differ and a desynchronization may occur.


- Whenever a damaging move (including fixed damage moves like Seismic Toss or Super Fang, Counter, OHKO moves like Horn Drill, and Bide's damage dealing effect) deals damage to the target, the damage dealt corresponds to the value stored in the damage address. The value stored in the damage address corresponds to the damage calculated during the last damage calculation process.
- Multi-turn and multi-hit moves such as Wrap, Double Kick and Fury Attack only execute damage calculation for the first turn or hit.

- Whenever any move that goes through standard accuracy checks misses, the damage address is cleared.
- Moves included are:
+ Damaging moves
+ Non-damaging moves that inflict sleep, poison, paralysis, or confusion
+ Disable
+ Mimic
+ Non-damaging moves with a stat modifier down effect
+ Leech Seed
- Missing isn't the same as having no effect (e.g. Thunder Wave on a already statused and/or Ground-type Pokemon, Leer on a -6 Def Pokemon).
- Failing because of Mist, because the target is using Fly/Dig, or because the target is not asleep when the move used is Dream Eater, is considered missing.
- Counter being unsuccessful due to not meeting the requirements seen above is NOT considered missing.

- If Jump Kick or Hi-Jump Kick misses, the attacker takes 1 damage, and 1 is written to the damage address.
- In reality, it takes damage equal to the maximum of 1, and the value stored in the damage address divided by 8 and rounded down. But because the move missed, the damage address will contain 0 and thus, damage taken will be 1. Damage taken is then written to the damage address.

- If a OHKO move like Horn Drill is successful, 65535 is written to the damage address.

- If, as a result of a damage dealing move or self-confusion damage, the target is KOed, the damage stored is overwritten with the HP the Pokemon had before being KOed.
- If the target's Substitute faints, the damage stored is NOT overwritten with the HP the Substitute had.

- If Absorb, Mega Drain or Leech Life is successful, the content of the damage address is halved, then 1 is written to it if it contains 0, and finally the attacker gets its HP increased by the value stored in the damage address.
- HP recovery is capped to the attacker's maximum HP, but the damage address isn't updated with the actual HP healed in this case.

- If the attacker takes recoil damage due to the effect of a recoil move such as Take Down, it will take damage equal to the value stored in the damage address, divided by 4 and rounded down.
- The damage address isn't updated with the recoil damage taken.


Btw, this popped up during the april fools glitch, but it's true:
Being fast asleep or frozen doesn't advance the Bide turns counter (so you're still storing energy).
I'll probably have to add that the damage isn't accumulated if the Bide user is asleep/frozen, as noted in the pastebin
 
at this point i'd be tempted to move gen I metagame over to stadium mechanics just to have a less glitch riddled metagame.

gen 1 with cart mechanics to me looks very unappealing now to me.
 

xJoelituh

Banned deucer.
The problem is that people got used to the cart mechs and its tiering. Stadium is a complet different metagame and you cannot change the main metagame that everyone is used to
 
I would just like to say that I think RBY is far more enjoyable than stadium. Sub and Hyper Beam are the key differences here as RBY HBeam is just awesome, it's so fun to use and contributes positively to the depth of the game, while functional Sub can make things really stally. Also stadium's sleep is weird

also fwiw I have no idea how well stadium's mechs are known
 
When a Pokemon is asleep, frozen or affected by a partial trapping move, it's unable to select an attack and its selected move will be whatever it selected last. So if a Pokemon selects Quick Attack or Counter the turn it gets put to sleep, frozen or attacked by a partial trapping move, it will carry that move's priority until it's given the chance to select a new attack.
 

p2

Banned deucer.
Marty i accidentally discovered an interaction between Spikes and Pressure in ADV that PS doesn't have implemented.

If you set Spikes vs a mon with Pressure (I'm gonna use Absol as my example), it will drain 2 PP per Spike used, but if you set Spikes vs Absol with 3 layers already up, it will only drain 1 PP. PS doesn't have this implemented, so it's something I guess.

I can provide video proof if needed too
 
I am not sure if this is the right topic, but I noticed that there are differences in the "ROM" of Pokemon Stadium RBY compared to the original games. I can't pinpoint them exactly, but an easy one to find is the usage of Teleport:
If you teleport in the normal games you get scrambled to letters while exiting the screen.
The same doesn't apply to the Stadium Rom.

I am just curious if there are other changes made?
 
If a Pokemon with sand veil, snow cloak, or ice body is being subject to Generation 4's acid rain, then how much weather damage would it take per turn?
 

breh

強いだね
I am not sure if this is the right topic, but I noticed that there are differences in the "ROM" of Pokemon Stadium RBY compared to the original games. I can't pinpoint them exactly, but an easy one to find is the usage of Teleport:
If you teleport in the normal games you get scrambled to letters while exiting the screen.
The same doesn't apply to the Stadium Rom.

I am just curious if there are other changes made?
On teleport (and escape rope by extension): I forget the tl;dw of this video but here you go
 
In Black/White 2, does Magic Guard prevent an item from being lost due to Knock Off? Bulbapedia doesn't have anything that suggests that it does, but I was playing through White 2 and a Tangela Knocked Off my Magic Guard Reuniclus's Leftovers... Except that Reuniclus hung onto the Leftovers and still recovered HP at the end of the turn. I checked and my Reuni is MG, not like Sticky Hold (which it doesn't even get).
I fought another wild Tangela and got it failing to Knock Off my Leftovers on video if that's Not Supposed to happen.

Knock Off isn't great pre-XY, but it could still have some novelty use in tournaments, so it's a minor niche thing to look into, I know.
 

Marty

Always more to find
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Member of Senior Staffis a Community Contributoris a Top Researcheris a Top Tiering Contributor
Research Leader
In Black/White 2, does Magic Guard prevent an item from being lost due to Knock Off?
Wild battles have different mechanics in certain cases. In this case, wild Pokemon can't steal or remove the player's items.
 
In RB Zapdos is weak to electric in-game, and Pidgeot resists fighting. Maybe something is up with flying type?

Pretty huge imo afaik this doesn't apply to Stadium for Zapdos never tested anything else.
 
Last edited:

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

Top