Can you fucking stop ruining this metagame we have played for over 10 years?!Okay, this bug is as hilarious as it sounds, but it's true, incredibly:
If a Pokemon that has just used Hyper Beam and has yet to recharge (that is, its Recharge status is active) is targeted with a sleep inducing move, any other status it may already have will be ignored (paralysis/burn/freeze/poison) and sleep will be induced regardless. In addition, the sleep inducing move can NEVER miss (not even from a "255").
Will make a video soon.
Yeah, haven't thought of that possibility. It requires a speed tie and first the Hyper Beam user going first, then going second in the next turn, right?Could you eat a Hyper Beam, freeze a mon, then subsequently overwrite the Freeze with Sleep?
Yep.Is Sleep the only status the Hyper Beam glitch works for?
I'm enjoying this so much! I won't stop until Golbat and Butterfree are somehow the best Pokemon in the metagame.Can you fucking stop ruining this metagame we have played for over 10 years?!
10 years? nigga plsCan you fucking stop ruining this metagame we have played for over 10 years?!
https://github.com/Zarel/Pokemon-Showdown/commit/b003b4290171dae54cc933512d1966dda443a07chttp://replay.pokemonshowdown.com/gen1ou-200543792
Turn 5. Sleep Powder's accuracy check should be skipped in that case, it should never miss.
Stadium depended on what rules you played by. All 4 of the main cups an gym Leader Castle were Bring 6 choose 32. Stadium was bring 3 use 3? I recall it being so and not bring 6 choose 3.
LBU T8, $004C (V1)
ANDI T9, T8, $FFF7 // P1 CH Rate multiplier & 0xFFF7
SB T9, $004C (V1)
LW A1, $0034 (SP)
LBU T0, $06D8 (A1)
ADDIU A1, A1, $068C
ANDI T1, T0, $FFF7 // P2 CH Rate multiplier & 0xFFF7
SB T1, $004C (A1)
LBU T2, $004C (V1)
ANDI T3, T2, $0012 // (0x80287B18) & 0x12
BNEZ T3, $002FA150
Critical Hit
0x30B97C -
LUI T6, $8439
LW T6, $0240 (T6)
ADDIU SP, SP, $FFE8
SW RA, $0014 (SP)
LHU V0, $002C (T6)
LUI V1, $8439
SLL T7, V0, $2
ADDU V1, V1, T7
LW V1, $0010 (V1)
LBU T8, $06D9 (V1) // Load Critical Hit Rate multiplier to T8
ADDIU V1, V1, $068C
ANDI T9, T8, $0080
BNEL T9, R0, $0030B9C8 // If Critical Hit Rate multiplier ≥ 128, jump to 0x30B9C4
LBU T2, $005A (V1) // Loads 0x80287B24 to T2
LBU T0, $0015 (V1) // Loads 0x80287AE0 to T0
ANDI T1, T0, $0018
BEQL T1, R0, $0030B9EC // If (0x80287AE0) < 24, jump to 0x30B9E8
OR V0, R0, R0
(0x30B9C4) LBU T2, $005A (V1)
ADDIU AT, R0, $00F0
ANDI T3, T2, $00F0
BNEL T3, AT, $0030B9EC
OR V0, R0, R0
JAL $04320658
ADDIU A0, R0, $0023
BEQ R0, R0, $0030B9F0
LW RA, $0014 (SP)
(0x30B9E8) OR V0, R0, R0
LW RA, $0014 (SP)
(0x30B9F0) ADDIU SP, SP, $0018
JR RA
0x35A614 - Compare Move Effect ID with the array at 0x3756AC and 0x37570C (High Critical Hit Rate Moves)
OR V0, A2, R0 // Copy number of iterations to check in V0
SW A0, $0000 (SP)
ANDI A0, A0, $00FF
BEQ A2, R0, $0035A650 // If all the array's values have been compared with Pokémon's Move ID, jump to 0x35A650
ADDIU A2, A2, $FFFF
OR V1, A0, R0 // Copy Pokémon's Move Effect in V1
LBU T6, $0000 (A1) // Load next array's value to compare with Pokémon's Move Effect in T6
OR V0, A2, R0 // Copy number of iterations to check in V0
ADDIU A1, A1, $0001 // Increase array's value pointer
BNE V1, T6, $0035A648 // If the array's value is not equal to Pokémon's Move Effect, jump to 0x35A648 (next function)
NOP
JR RA
0x35A9C0 - 0x35AB18 - Attack / Defense / Critical Hit manipulation for Damage Calculation
LBU T6, $0046 (V0) // Load Move Power to T6
LUI V1, $843C
ADDIU V1, V1, $4DC6 // V1 = 0x801E8126
ANDI T7, T6, $FFFF // Copy Move Power to T7
BEQ T7, R0, $0035AB18 // If Move Power = 0, get out of this function
SH T6, $0000 (V1) // Store Move Power at 0x801E8126
LBU T8, $0047 (V0) // Load Move Type to T8
LUI V1, $843C
LUI A0, $843C
SLTI AT, T8, $0014 // If Physical Move, set AT to 1
BEQ AT, R0, $0035AA58 // If Special Move, jump to 0x35AA58 (LUI V1, $843C)
NOP
LW V1, $523C (V1)
LUI A2, $843C
ADDIU A2, A2, $4DCA // A2 = 0x801E812A
LHU T9, $002C (V1) // Load Defense stat to T9
LUI A3, $843C
SH T9, $0000 (A2)
LBU T0, $004E (V1) // Load "Is Reflect up ?" to T0
SLL T3, T9, $1 // T3 = Defense stat × 2
ANDI T1, T0, $0004
BEQ T1, R0, $0035AA20 // If Reflect is not up, jump to 0x35AA20 (LBU A0, $4DA5 (A0))
NOP
SH T3, $0000 (A2) // Store Defense × 2 in 0x801E812A
(0x35AA20) LBU A0, $4DA5 (A0) // Load Critical Hit to A0
BEQL A0, R0, $0035AA4C // If not a Critical Hit, jump to 0x35AA4C
LHU T6, $002A (V0)
LHU T4, $003A (V1)
LUI A3, $843C
ADDIU A3, A3, $4DC8
SH T4, $0000 (A2)
LHU T5, $0038 (V0)
BEQ R0, R0, $0035AAC0 // Jump to 0x35AAC0 (LHU A1, $0000 (A3))
SH T5, $0000 (A3)
LHU T6, $002A (V0)
(0x35AA4C) ADDIU A3, A3, $4DC8
BEQ R0, R0, $0035AAC0 // Jump to 0x35AAC0 (LHU A1, $0000 (A3))
SH T6, $0000 (A3)
(0x35AA58) LUI V1, $843C
LW V1, $523C (V1)
LUI A2, $843C
ADDIU A2, A2, $4DCA
LHU T7, $0030 (V1) // Load Special stat to T7
LUI A0, $843C
SH T7, $0000 (A2)
LBU T8, $004E (V1) // Light Screen
ANDI T9, T8, $0002
BEQ T9, R0, $0035AA88
SLL T1, T7, $1 // T1 = Special stat × 2
SH T1, $0000 (A2) // Store Special × 2
LBU A0, $4DA5 (A0) // Load Critical Hit to A0
BEQL A0, R0, $0035AAB4 // If not a Critical Hit, jump to 0x35AAB4
LHU T4, $0030 (V0)
LHU T2, $003E (V1)
LUI A3, $843C
ADDIU A3, A3, $4DC8
SH T2, $0000 (A2)
LHU T3, $003E (V0)
BEQ R0, R0, $0035AAC0 // Jump to 0x35AAC0 (LHU A1, $0000 (A3))
SH T3, $0000 (A3)
LHU T4, $0030 (V0)
(0x35AAB4) LUI A3, $843C
ADDIU A3, A3, $4DC8
SH T4, $0000 (A3)
(0x35AAC0) LHU A1, $0000 (A3) // Load Attack stat to A1
ANDI T5, A1, $FF00
BEQL T5, R0, $0035AB00 // If Attack stat < 256, jump to 0x35AAFC (LBU T1, $0026 (V0))
LBU T1, $0026 (V0) // Load Level to T1
LHU V1, $0000 (A2) // Load Defense Stat to V1
SRL T7, A1, $2 // T7 = Attack stat >> 2
ANDI T9, T7, $FFFF
ANDI T6, V1, $FF00
BEQ T6, R0, $0035AAFC // If Defense stat < 256, jump to 0x35AAFC (LBU T1, $0026 (V0))
SRL T8, V1, $2 // T8 = Defense stat >> 2
SH T7, $0000 (A3) // Store T7 to 0x801E8128
BNEZ T9, $0035AAFC // If T9 > 0, jump to 0x35AAFC
SH T8, $0000 (A2) // Store T8 in 0x801E812A
ADDIU T0, R0, $0001
SH T0, $0000 (A3) // Set 0x801E8128 to 1
(0x35AAFC) LBU T1, $0026 (V0) // Load Level to T1
LUI V1, $843C
ADDIU V1, V1, $4DCC // V1 = 0x801E812C
BEQ A0, R0, $0035AB18 // If not a Critical Hit, get out of the function
SH T1, $0000 (V1)
SLL T3, T1, $1 // T3 = Level × 2
SH T3, $0000 (V1) // Store Level × 2 in 0x801E812C
JR RA
0x35C4D8 - Determines if the attack is a Critical Hit
LUI A0, $8439
LBU A0, $AC60 (A0)
ADDIU SP, SP, $FFE0
ADDIU A1, R0, $0001
LUI AT, $843C
SW RA, $0014 (SP)
BNE A1, A0, $0035C52C // If A0 ≠ 1, jump to 0x35C52C
SB R0, $4DA5 (AT)
LUI V0, $843C
LW V0, $5238 (V0)
LUI V1, $8007
LBU T6, $000B (V0)
SLL T7, T6, $2
SUBU T7, T7, T6
SLL T7, T7, $3
SUBU T7, T7, T6
ADDU V1, V1, T7
LBU V1, $0F8D (V1) // Loads CH Ratio
ADDIU V1, V1, $004C // CH Ratio + 76
BEQ R0, R0, $0035C558 // Jump to 0x35C558
SRA V1, V1, $2 // CH Ratio ÷ 4
(0x35C52C) LUI V0, $843C
LW V0, $5238 (V0)
LUI V1, $8007
LBU T8, $000B (V0)
SLL T9, T8, $2
SUBU T9, T9, T8
SLL T9, T9, $3
SUBU T9, T9, T8
ADDU V1, V1, T9
LBU V1, $0F8D (V1) // Load CH Ratio to V1
SRA V1, V1, $1
(0x35C558) LBU T0, $0046 (V0)
BNEZ T0, $0035C56C
NOP
BEQ R0, R0, $0035C67C
OR V0, R0, R0
(0x35C56C) BNE A1, A0, $0035C5C0
ADDIU A2, R0, $0004
LBU T1, $004D (V0)
LUI A1, $8439
ADDIU A1, A1, $AE4C
ANDI T2, T1, $0004
BEQ T2, R0, $0035C598 // If Focus Energy is not active, jump to 0x35C598
ADDIU A2, R0, $0004
SLL V1, V1, $2 // Adjusted CH Ratio × 4
BEQ R0, R0, $0035C59C // Jump to 0x35C59C
ADDIU V1, V1, $00A0
(0x35C598) SLL V1, V1, $1
(0x35C59C) LBU A0, $0044 (V0) // Load Move ID in A0
JAL $0436FD54 // Jump to 0x35A614 (Checks if the Move has a High Critical Hit Rate)
Critical Hit calculation
0x35C5A4 - Critical Hit Ratio calculation
SW V1, $0018 (SP)
BEQ V0, R0, $0035C5B8 // Jump to 0x35C5B8 if V0 = 0
LW V1, $0018 (SP) // Load Adjusted CH Ratio in V1
BEQ R0, R0, $0035C624 // Jump to 0x35C624
SLL V1, V1, $2 // Adjusted CH Ratio × 4
(0x35C5B8) BEQ R0, R0, $0035C624
SRA V1, V1, $1 // Adjusted CH Ratio ÷ 2
LBU T3, $004D (V0)
LUI A1, $8439
ADDIU A1, A1, $AE4C
ANDI T4, T3, $0004
BEQL T4, R0, $0035C5E4
SLL V1, V1, $1
BEQ R0, R0, $0035C5F4
SRA V1, V1, $1
SLL V1, V1, $1
SLTI AT, V1, $0100
BNEL AT, R0, $0035C5F8
LBU A0, $0044 (V0)
ADDIU V1, R0, $00FF
LBU A0, $0044 (V0)
JAL $0436FD54
(0x35C5FC) SW V1, $0018 (SP)
BEQ V0, R0, $0035C620
LW V1, $0018 (SP)
SLL V1, V1, $2
SLTI AT, V1, $0100
BNEL AT, R0, $0035C628
SLTI AT, V1, $0100
BEQ R0, R0, $0035C624
ADDIU V1, R0, $00FF
SRA V1, V1, $1
(0x35C624) SLTI AT, V1, $0100
BNEZ AT, $0035C634 // If Adjusted CH Ratio ÷ 2 < 256, jump to 0x35C634
NOP
ADDIU V1, R0, $00FF // If Adjusted CH Ratio ÷ 2 > 256, set it to 255
(0x35C634) BGTZ V1, $0035C640 // If Adjusted CH Ratio > 0, jump to 0x35C640
NOP
ADDIU V1, R0, $0001 // Adjusted CH Ratio is at least 1/256
(0x35C640) JAL $0436F6D8
0x35C648 - Compares Pseudo-Random Number and Adjusted Critical Hit Ratio, sets CH flag if it is a Critical Hit
LW V1, $0018 (SP) // Load Adjusted Critical Hit Ratio
LUI A0, $843C
ANDI T5, V0, $00FF // Load 1-byte PRN from previous PRNG call
ADDIU A0, A0, $4DA2
SLT AT, T5, V1
BNEZ AT, $0035C66C // If PRN < Adjusted CH Ratio, jump to 0x35C66C
SB V0, $0000 (A0) Store 1-byte PRN to (0x801E8101)
BEQ R0, R0, $0035C67C // Jump to 0x35C67C
OR V0, R0, R0 // Set V0 to 0
(0x35C66C) ADDIU T6, R0, $0001 // Set T6 to 1
LUI AT, $843C
SB T6, $4DA5 (AT) // Set CH flag at (0x801E8104) to 1
ADDIU V0, R0, $0001 // Set V0 to 1
(0x35C67C) LW RA, $0014 (SP)
ADDIU SP, SP, $0020
JR RA // Onto damage calculation...
Edit: the game does Base Speed + 76 >> 2, see next postsNow, going on what I find on the internet (which is prone to not to be 100% accurate), I get this:
CH% rate = (User's base Speed) * 100 / 128, which gives us 101/512, rounded down.
Unfortunately, it's really 182/256. I'm still looking into it atm.Following this formula, to achieve the 364/512 or 157/256 with focus energy on Stadium, focus energy should work such as: basespeed * 100 / 36, which gives us, floored, 361/512 or 180.5/256 (180). Which looks pretty arbitrary, to be honest. Dividing by 32, which is 128 / 4 (the four times from focus energy) gives us 406/512 or 203/256, which looks slightly high but makes sense, don't you think so? And that would make high crit rate moves to work by dividing by 64, double the changes as the original / 128.