Hey everyone! I, embarrassingly, made an error in this video (thanks to ndm13 for leaving a comment informing me of my mistake). This glitch does NOT occur in XD, but DOES occur in Colosseum. The mistake I made was setting Twineedle's secondary effect chance to 100, which I did to test out the timing of secondary effects with multi hit moves, but then I never set the effect chance to 0 to test out if the glitch occurs for realsies. My apologies for this oversight on my part. Hopefully you still enjoy the video regardless.
I was just about to comment that lol Like, wasn't the fix in Emerald just making it so there's no more 1% chance for moves with no effects? Then the Twineedle with 100% chance doesn't work for testing. I'm guessing Colosseum doesn't have that 1% chance fix, but XD probably does since it's after Emerald.
@@mari_zz Yeah, lol. Very unfortunate mistake on my end that I didn't catch before uploading; I'll definitely have to be more careful with future videos. Since UA-cam removed annotations, which would've been the perfect solution for this error, hopefully enough people notice the pinned comment, as that's about the only good option for correcting myself at this point.
Wouldn't this mean that Twin needle has version of this glitch in in Emerald & XD (and all other versions) where it can paralyze/burn/sleep if attacking a pokemon with static/flamebody/effect spore ? Is that version of the glitch less obscure and only the Double Kick, Double Slap, etc. version was the one that needed research?
@@yukihoshikawait’s essentially the same, in the sense that some event gets an extra 1% chance of happening, regardless of the intended accuracy. (For instance, Poison Sting actually has 31% chance of poisoning as a result of this bug… Not just 0% moves) The only difference is that the extra chance gets added to success rather than failure
the only reason we know of that first person that found that glich is because he wasnt using an unsearcheable private community like discord. Anything put into discord if not saved dies with it. its very different from using a forum where even if the forum dies web scrapers and many different backup projects keep the information alive. thanks for this video and for saving a piece of information. and if you read thing comment, plz remember to not use discord as a wiki or forum, discord is where communities go to die
I thought about that and yeah, it does feel like it's the case It feels like the internet in general, and especially google got MUCH worse over the years at linking you to what you're searching It reeally looks like you can't find the answers you want to a LOT of things outside of going to specific sites like reddit, because nothing is accessible to google anymore, because it's hidden in subreddits, discords, privated sites etc...
In Pokemon Diamond and Pearl, Hypnosis had a 70% accuracy, and was changed back to 60% Platinum onwards. In link battles if a DP copy battled a Platinum one, it would "pull" the code from Platinum and make Hypnosis hit its regular 60%.
I assume Platinum, HG, and SS don't allow Diamond or Pearl to host netgames (NETwork, so both online and LAN) and then the host does all accuracy checks in Gen IV.
It's really interessting how this flipped in Gen 3. In Gen 1 and 2, the later game has the responsibility of preventing desyncs.(And because Gamefreak didn't want to do anything fancy, they simply blanket-coded these games to play by the unfixed rules in link battles, even if only fixed games are connected)
@yoshiwoollyworld My understanding is, that doesn't really matter. Regardless of who the "leader" is, the games together will choose a "host", and that "host" will be the one that runs all of the battle calculations. The results are then passed to the other parties. In instances where there is an initial game and an expansion game playing together(e.g. R/S and E, or D/P and Pt), the expansion game will have priority, and will always be chosen as the "host". Interestingly, this architecture was chosen specifically to avoid the problem of desyncs from Gen 1 and 2. Set up like this, only one set of calculations is run, and everyone else is told what that result is. There's no chance of desyncs to happen as they did before. In fact, if it weren't for the priority thing, that it's possible the glitch COULD happen in Emerald, but only if a non-fixed game was chosen as "host". And it wouldn't cause a de-sync, since everyone would be following the (incorrect) calculations.
The 1/256 miss keeps haunting Pokemon games, in different forms. First it was discovered that accuracy check is a "lesser or equal", so if it hits maximum, any move that doesn't completely ignore the check will miss (which Stadium "fixed" by making it do that check again if it rolls max). Then it was discovered that the secondary effect check suffers from the same problem in G2, where things like DynamicPunch inflict status 99.6% of the time (and Werster has seen Zap Cannon not paralyze in Stadium 2, so that's there too). And now, this fucking Ability related thing transferring the secondary effect, though this time it's a 1/100. It's like it does not want to leave.
@@bioico8458 Instant Vietnam flashbacks going into denial "Surely they can't be that stupid. No way it's going to be the same glitch as Gen1, right ? RIGHT ?!"
To be fair, it's not about being stupid. It's more comparable to writing a famous essay then getting mocked 20 years laterfor using a comma instead of a semicolon on paragraph 14, line 7.
At a guess, I'm assuming that XD uses Colosseum's code rather than Emerald's. Also, it really makes you wonder how much earlier this glitch would've been discovered if GameFAQs users weren't being GameFAQs users.
lol, I know, right? But even then, you have to use very specific moves that generally aren't that great against specific Pokemon. AND THEN, if the ability activates on the last hit, there's only a 1% chance to get that status condition off. Still, it does make you wonder, what if. Also, I suppose it makes sense that XD uses Colosseum's code as a base, just cuz Colosseum has glitches exclusive to it, so it prolly didn't use, like, Ruby's code or anything. Which, I guess that makes sense, too, now that I think about it - it might just be easier to code from scratch rather than convert the GBA game to play in 3D and have new stuff like Shadow Pokemon.
@@yukihoshikawaTo add to this, Colosseum and XD were made by another team, so it might be possible that whatever the process was to fix the glitch they might not have been informed since this is already an almost non issue which would be an even more non issue in a less open game like xD/Colosseum
What in the playground rumour spaghetti code hell? I don't even blame the devs for not catching that (pre-Emerald). Abilities were completely new by that point, so such a peculiar and niche interaction was bound to slip through the cracks lol
So, if I'm understanding the technical details here properly... the root cause of this glitch is the exact inverse of the root cause of the famous "Gen 1 miss". (The Gen 1 miss happens because a check that should have been "less than or equal" is instead a "less than", whereas in this case, a check that should have been "less than" is instead "less than or equal".) Pretty wild that they would make that same type of mistake twice. Of course, in this case, the conditions in which this glitch would occur are so specific and unlikely that it's even easier to believe that it wouldn't get caught in testing.
Bingo; you got it! Yeah, honestly, I'm not surprised this glitch was seldom reported on in the past 20+ years. You have to be fighting with/against a Pokemon with Effect Spore (where the odds of this happening are even lower than the other abilities), Static, Poison Point (which, most Pokemon with this ability are immune to the poison status), or Flame Body (which, ALL of the Pokemon with this ability can't get burned), and use moves that... generally aren't the greatest, IMO. Like, Double Kick's probably the only good move of the bunch; the rest have 15 power per hit, more often than not will only hit 2 or 3 times, and can miss. Ew.
As someone who has done programming Checking variables against eachother get confusing fast, Programmers often don't put in the numbers, That's what game designers are for.
Regarding the status condition messages: Each status condition effect has one of two messages it can display: One for when it is inflicted by a move, and one for when it is inflicted by an Ability. The move text is the generic "[SUBJECT POKEMON] is paralyzed! It may be unable to move!" that you see in most of the cases. The Ability text is "[ACTIVE POKEMON]'s [ACTIVE POKEMON ABILITY] paralyzed [SUBJECT POKEMON]! It may be unable to move!" When a Pokémon's Static/etc. ability activates, the flag MOVE_EFFECT_AFFECTS_USER in the MOVE_EFFECT_BYTE is set to TRUE, so that that effect will apply to the user of the current move (instead of the target). When this flag is read, it swaps which Pokémon are considered the active and subject for the next effect resolution, then immediately resets the flag (making it FALSE). Notably, this does not apply to other changes to the MOVE_EFFECT_BYTE, like adding MOVE_EFFECT_PARALYSIS to it. So when the multi-hit move hits a second time, the flag MOVE_EFFECT_PARALYSIS is still present but MOVE_EFFECT_AFFECTS_USER is now FALSE, so it's now a move that can paralyze its target (which is why the Pokémon with Static/etc. ends up paralyzed). And since the active Pokémon is now the move's user and the target Pokémon is the move's target, when filling it the text template for an Ability inflicting a status condition, it is assumed that it is the move's user and its Ability that inflicted the status condition, which is why you get that odd-looking text. The tricky part is how the game determines which message of the two types (move text or Ability text) to display. This seems to depend on a flag that the disassembly calls HITMARKER_IGNORE_SAFEGUARD (although IMO this is a bit of a misnomer - in general, it's used to check whether an effect is coming from a status-inflicting Ability, including for Shield Dust too). I tried looking into when this flag is reset, but I wasn't able to work out why there would be a difference in which message gets displayed. (Potentially it's related to whether the status condition is inflicted during the resolution of a single hit vs the resolution of the entire move, but I wouldn't expect the Ability text to display after the number of hits like it does on Chickasaurus's video in that case.) I've used Static and Paralysis in all my descriptions here for simplicity, but the same applies to Poison Point, Flame Body, and Effect Spore (although Effect Spore is locked into which status condition it chooses the first time).
Oh wow, thank you so much for looking into that and sharing! I admit, this is going a little over my head right now, but I also just woke up, so I'll probably understand this better once I'm more awake, LMAO.
If im understanding this right this happenening for changing from true to false to true etc for each hit, so the same bug could happen if you hit 4 fury swipes/double slap?
@@6ustavocosta No, it's not flipping the bit each time. There are certain occasions it gets set to TRUE, and certain occasions it gets set to FALSE. You can get both messages with just Double Kick (compare Chickasaurus's video with the Twitch clip).
@@chainsawz5618 Based on my look into the decomp, I don't believe the Ability message is exclusive to FRLG. It should be possible for it to occur in other games. (Note that the move text can also appear in FRLG under seemingly identical circumstances, so there is very likely a random element involved.)
This is really weird. Double Kick was my most used move in Sapphire as a kid and I can't remember a single instance of this happening. My Blaziken would always use this against almost everything.
Keep in mind that just because you use Double Kick a lot doesn't mean the glitch will activate. You're only gonna fight a handful of Pokemon that have Static or Effect Spore, and in addition, if that Pokemon belongs to a trainer, that Pokemon is always gonna have whatever ability is coded in... "slot one", we can call it. This means it'll never be able to activate against a trainer's Voltorb or Electrode, for example, as all of them will have Soundproof. Of course, wild Voltorb can have Static, but that's the only time you'll find one with that ability. In addition, the glitch obviously can't activate if you KO a Pokemon with Double Kick, etc. So if your Blaziken was powerful enough to KO everything with one Double Kick, even if both kicks connected, the glitch wouldn't be able to activate.
I always find it super fascinating whenever the older Pokémon games have new glitches, exploits, and programming quirks uncovered years later. Great video, I learned something new!
Imagine being vashperado, facing years of skepticism from practically everyone, even having some claim you were lying for attention...only to be vindicated a decade and a half later. I can’t think of an “I told you so” moment with more buildup.
Ty for explaining everything that happened. I was astonished by that glitch. I had more than 4k speedruns attempts and never saw a single shiny Mon, but that glitch happened... Well... Its what it's! Great video Yuki!
Oh hey, I'm glad you managed to find this! I had a feeling you might be curious as to what happened, haha. I'm glad you enjoyed the video! Best of luck in your future speedruns!
Loved this video, the glitch itself was really fun to learn about and the extensive testing with other moves and games was great to see too, I adore weird lil quirks like this in these games
Thank you! Although it's worth noting I messed up a little - the glitch occurs in Colosseum, but not XD. I messed up my testing with the GameCube games, cuz my brain had a moment, lol.
This same thing mustve happened to me as well, as gen 3 were the only games I had access to as a child. I distinctly remember thinking Double Kick could cause paralysis for several years, confused why it would never activate again. Really interesting stuff!
You don't actually need to check for desyncs using this glitch, if it is possible to cause desyncs then every status move in the game has a 1% chance to cause a desync since the bugged effect chance check means that every status inflicting move in Ruby & Sapphire has a 1% higher than expected chance to cause said status. That seems like it would be a very, very high chance over the course of a battle and would happen all the time, so I would pretty strongly suspect that it isn't actually a problem.
Not 100% sure but I don't think that's necessarily the case. Since they used integers, "less than or equal to 29" would be the same as "less than 30". Just put in the chance minus one. So as long as they would have kept that in mind, it should be the same. I would even wager they did do this correctly in the other cases. It's hard to believe that all the moves with secondary effects have a 1% higher chance of activating than they are supposed to in these games, without it being widely known by now. The person might have even wanted to insert the correct number, which would be -1 in this case, but maybe a negative number for this variable messed up some other calculations. They certainly would have thought it wouldn't matter, because even if the secondary effect of those moves activates, it would do nothing.
This doesn't necessarily imply that the games would desync on a status move. It could well be that the battle engine calculated probabilities on each game, then sends its success or failure over to the other game, meaning a Hypnosis would hit 61% of the time from the team on FR but only 60% from the Emerald team. No single battle would desync but if you analyzed a large number of link battles you would see more Hypnosis hits from FR. Regardless it does end up that the games both likely run off of the Emerald battle engine as we saw from the PP data being overriden. The other possibility I guess is that the FR game, when linking, noticed a discrepancy between the games and reverted to the correct PP, assuming that the PP hack was not completely implemented and some ROM data remained to check against, but then one would imagine that would happen in the single player game as well. So most likely the link battle is in fact reading from the Emerald battle engine.
@@TheShinyTresasLWIt must be the case that FR has an additional chance to activate a status move. Clearly from the 0 case we see a 1% activation; likewise Hypnosis has 61 rolls in FR that set it off. So either they instead added one to the accuracy numbers in Emerald and left the strict < or they changed to "less than or equal to". Over the integers these are equivalent inequalities ( x
That's how poison point should work anyways. not just when the pokemon is attacked because the point is there whether the pokemon is being attacked or not. Like it makes more sense for the point to be used offensively as well as defensively.
So what you're saying is; they made the same mistake as they did with gen 1 with accuracy checks, but in a more exetreme nonsencial way. True Gamefreak coding.
Well, your creativity and dedication to glitch hunting has me beat! I'm definitely not convinced that this glitch would occur during a link battle between RSFRLG and Emerald. Although that might depend on the scope as to how much Emerald actually governs in a link battle. If it determines ability effects as well, then we'd have our answer.
Sorry, didn't mean to paraphrase what you said in the video. I have a nasty habit of going in circles when speculating aloud! In all seriousness, I'm almost half-tempted to give this glitch a look if only to satisfy my own curiosities.
@@chaoticbravealisdair2925 If you do, definitely share your results! If my math is right, any given multi hit move that makes contact has a 1/300 chance to activate this glitch with Static and Poison Point (and Flame Body, although that's only possible with hacking or Skill Swap/Role Play). Effect Spore might actually be 1/1000, cuz Bulbapedia says it has a 10% chance to activate, rather than the 30% for Static and its clones. And no worries, I was just bringing that up just in case my wording in the video was off.
I believe that the host game purely decides how all battle mechanics and calculations play out as observed in this video with the Emerald host. I remember this coming up in a TPP post from 8 years ago about having touhoumon fight moemon where the games had completely different moves and type charts.
Not sure about your C/XD findings: isn't the glitch an issue with handling 0% chances, which was fixed in Emerald? If so, doesn't setting the chance to 100% bypass the glitch condition? It'd be like fixing the shore tiles on Cinnabar in gen1 and complaining that the old man glitch is still active if you force an encounter without clearing wild data. Or maybe I'm misunderstanding... Anyway, good video! I actually found your channel from your comment on Evie's video!
Hey there, thanks for pointing this out! I had a sinking feeling that I was forgetting something, or I messed something up, and now I know why, LMAO. I went ahead and did 400 trials in XD with the correct specifications (specifically, I used Twineedle, but changed its secondary effect chance to 0), and this glitch never occurred there. I did the same thing in Colosseum, and the glitch still happened, meaning the glitch occurs in Colosseum, but not XD. My apologies for the oversight and unintentional spread of misinformation; I'm glad you still enjoyed the video regardless!
The part where it mixes up what ability us supposed to be doing what kinda reminds me of the Acid Rain glitch, and how that can have some odd messages concerning abilities.
the fact that the number checks for equal to or lesser than reminds me of the gen one miss glitch. you'd think they'd have learned their lesson form that
Super interesting glitch! As for incorrect abilty text, I've seen this sort of bug all the time when making rom hacks It boils down too there being variables for the most recently activated ability and battler; so it's likey a timing issue based around to opposing mon activating/checking some behaviour You'd have to obv debug the exact condition to find out what is activating it
Oh yeah, you made the Emerald Roguelike hack, right? That was a neat hack! I imagine all sorts of weird things must crop up, especially if you're making a decomp hack.
Young me definately did this and had no clue it wasn't a feature. I think on a Spore Shroomish. I'm sure most of us that chose Torchic and spammed Double Kick saw this glitch and didn't even register it in our minds, as abilities were new we were more or less blindly groping around on their effects.
I never thought it would happen in Colosseum, even if it was fixed for XD, this is amazing lol For the name of the ability being displayed thing, I already talked about this on the discord but basically my theory is that if the ability triggers multiple times in different hits, it will only display the name of the ability the first time and all the other times will just say you were paralyzed/burned/poisoned This is normally impossible to notice because if you already have a status the game won’t display text if the ability triggers again. Maybe with status cancellation berries this could be tested? Like you get paralyzed, the berry activates and you get paralyzed again? I’m not sure if the berry would wait for the end of the move to activate but I have a feeling that it unfortunately would.
Update apparently the berry does activate after the hit that statused you, and i was able to get statused in one move by using this. However it said the name of the opponent's ability both times, so that's not what causes it. No idea why it happens then.
Thank you very much! I actually did mess up a little bit - the glitch can't activate in XD - but everything else is correct. It was a ton of fun learning about this glitch and testing it out!
Great to see Chikasauris getting her due recognition for her numerous contributions to glitch documentation in the franchise. Well done explaining this glitch and compiling the research! It thrills me to no end seeing new glitches get rediscovered and deep dived in the modern age
Hey Yuki! Thanks for investigating this further! I’m like 99% sure the weird text is displayed when the opponent is the one using the multi-hit move rather than the player. In hindsight, I'm not really surprised that it doesn't cause a desync - because if what I'm thinking is the case, it would probably have a 1% chance to desync with any move at all, so we would know about it by now lol. What I'm wondering now is if the chance of *all* secondary effects triggering is 1% higher than intended in R/S/FR/LG/C? It probably would be, right?
I would assume so, yeah. Although, you might wanna remove XD from that list - I made an error when testing this stuff out, and this glitch does NOT occur in XD.
Or the third - there’s kind of one in gen 2 as well! A move with a 100% chance to apply an effect in gen 2 has a 1/256 chance for it not to work (think mud-slap)
Unrelated but I had to double take after seeing your name in a random video I clicked on as a recommendation, this is Kaze from the old redpill OOB server, that's it but hi lmao
it's caused by how FR/LG handle it differently, one instance happened when the opponent used the move and the other happened when the player used the move so it's not because of the opponent using the multi-hit move
It seems like they were trying to describe something about reality with the way they programmed static - "Pikachu was filled with static, so *when you made contact,* you became paralyzed."
So to generalize that code error, if the status chance is any number less than 100, the actual chance of it being inflicted is 1% higher. 0% becomes 1% and 99% becomes 100%.
Gen 3 games use will use emerald's engine if emerald is one of the games involved in the battle, same with gen 4 and Pt/HG/SS, the biggest difference I'm aware of there is the accuracy of hypnosis going from 70% to 60%.
I bumped into this in FireRed earlier and someone linked me here. A Poliwag used Double Slap on my Parasect, activated Effect Spore on the first hit, and fell asleep. Then Parasect randomly fell asleep. It certainly caught me by surprise.
when i was young i had a cd rom with the first 2 gen games on it, they were a glitchy mess for some reason, even more than the original games, in red i evolved a nidoran to nidorino with a moon stone and in silver the guy that trades you an onix for a bellsprout couldn't be spoken to because he was violently spinning in place
So, I haven't looked into the code so I'm probably missing stuff, but what I noticed about the times the text popped up is that the pokemon triggering the glitch had an ability that could also trigger it. What might be going on is that the new 'extra' condition that double kick gives retains some attribute of, "Inflicted by opponent's ability", so when the Double-kick user has Poison Point, that allows it to match up to this property, so it sees that say Nidoking has an ability that adds a secondary effect, and that say Raichu was hit by a status inflicted by a secondary effect generated by an ability, but if the user pokemon lacks one of these abilities it skips some kind of check or falsely assumes that it must just be a natural part of Double-kick, thus no text. Also, For the desync with emerald something I noticed is that the Emerald pokemon game was the host. This actually changes a lot of things about the battle as back then basically the host is registered as the 'player' so is kinda given a lot of advantages that the player subtly has over NPCs that's not much talked about (such as if you throw two pokemon with weather setting abilities on the field at the same time, the order of abilities is not determined by the pokemon's speed but rather who is the host and who isn't). If you ever want to try the desync again you should try the other game hosting the battle and see if this causes both games to play by the rules of the new host (thus this glitch is possible but doesn't cause a desync) or if Emerald still runs it's own base code even though the host has different code (thus the glitch only happens on one end causing a desync) Edit: Also it was very neat to see that not only can effect spore sleep activate the glitch, but it seems like out of all the possible status effects if you were guaranteed to get a sleep activation during a multi-hit attack, it's the most likely to hit both pokemon, since the example you showed only did '1-hit', meaning that since sleep ends the multi-hit move a sleep activation will *always* be on the final hit allowing it to fulfill two of the conditions (inflict a status effect and be the final hit of a multi-hit attack) in one go.
In the image with Charmander and Squirtle, the Squirtle was hacked to have Static, but the Charmander still had Blaze. As for the link battle stuff, assuming the host is player one, Ruby was actually the host - the game windows were just (unintentionally) set up in a deceiving way.
@@yukihoshikawa Oh, interesting that Emerald was the one using the rules then! Well then that probably means Emerald rules are always used when it's one of the games.
Indeed - it probably happened because Pikachu's a popular Pokemon, and you can get it right at the start of the game. On top of that, a lot of trainers use Nidoran, which gets Double Kick, which just so happens to be one of the moves that triggers this glitch.
20:00 Is that a difference caused by Ruby/Sapphire and FireRed/LeafGreen being different games? I never heard you specify whether you'd tested this in both pairs of games or not, but the pictures/clips you showed of the 'text glitch' all used Gen 1 Pokemon, and I don't _THINK_ I heard you say that you'd tested FireRed/LeafGreen, only Ruby/Sapphire...
That might be part of it, but I don't think it's *all* of it. If you look at the speedrunner's clip, which is also FR/LG, that weird text doesn't display there.
@@yukihoshikawa ...hmm. Maybe it's something to do with the specific battle being replaced, like 'rival 1 battle' tutorial code interacting with ability text pop-ups... _no,_ that doesn't seem very likely. Maybe... something to do with using the ability's number/numerical value as junk data? If the 'text bug' is replicable in those specific circumstances, I suppose the only way to test it would be to check _literally every ability,_ maybe doing a few separate tests first to confirm that the specific battle it's done in doesn't cause it, but that would be a *LOT* of work, so I totally understand why you don't want to do it. There are probably romhackers who could more easily identify the source code that causes it, anyway: if it matters, the best course of action is probably just to spread the knowledge around for a few weeks/months, and see if anyone comes up with a 'eureka' moment that saves a lot of work.
You know what's hilarious about this? GF made the same "less than or equal to" mistake in Gen 1 and it's the cause of the infamous "Gen 1 miss." I guess old programming habits die hard.
I vaguely recall reading somewhere ages ago that link battles in pokemon games generally defer to the rules of the "newest" cart based on some internal version number, not just between the different flavours in a generation, but also reginal versioning and revisions are taken into account, at least through gen 3 and probably the DS games? Probably by the switch games i assume you just have to be "up to date" to connect to anyone in the first place
Hey, your video is amazing, really love how indepth it is, just wanted to tell that..the interaction reminder is nice and all, but it really takes you out of it? I'm enjoying listening to your explanation whilst I am doing something else and having the loud ding of it can be distracting and made me lose focus on what you were saying at the time. It's free to still have it, but I'd recommend having it be muted so it's only a visual reminder and allows people who are only activly listening to not be distracted. Outside of that : the video is amazing and I was suprised you weren't a big youtuber, instantly subscribed to you and I hope to see more of your content !
That's fair, honestly. I honestly don't even include it most of the time; whether or not it's in a video is just a "mood of the day" type of thing, you know? Perhaps I'll experiment with it being muted the next time I include it (if I don't forget, lol; I can be kinda forgetful sometimes) Still, I'm glad to hear you enjoyed the video! Thanks for taking the time to comment, and thanks for subscribing, too; I truly appreciate it!
I just experience a glitch in Pokemon shield. I am in the battle towers and I went against a trainer one of there Pokemon was a Snorlax with heat crash I dynamaxed my seelasteela and then the opposing Snorlax tried to use heat crash and I read the text say "Snorlax tried to use heat crash but it is a move that it can't use" happened 2 times 2 turns in a row while my seelasteela was dynamaxed then it used yawn my seelasteela returned to normal form and then when the Snorlax tried to use heat crash it worked without problem, it was such a weird thing to happen never seen anything like this ik the Battle tower
Hey there, that's actually not a glitch! Heat Crash is a move whose damage is determined based on the weight of the user and the opponent. There are a few other moves that work like this, and they all fail when used against a Dynamaxed Pokemon. So, it's a deliberate game mechanic (just, maybe a bit of an obscure one).
This explains why I thought weird things as a kid 😂 Like kicking= paralyzing Makes sense why i was confused about this, my first games were all of gen 3 and remakes. Then gen 2. Someone tell me why i swear I used an action replay as a kid and got Manaphy in Emerald?
I have a very strange glitch that happened to me in one of the RBY games. It happened when I was little and no one has ever been able to explain it. In either red/blue or yellow version (I forget but the more I think back the more I think it was yellow) I was in the bushes on route 4 after you jump the point of no return ledge. I encountered a wild sandshrew that used struggle as its first and only move. At that point I had never seen the move struggle before and wanted to catch it. Sadly it fainted to self recoil damage. I remember this event because I then spent the next four hours trying to find another sandshrew that knew struggle. Now that im older and remember this, I know that its very strange since non player pokemon don't have PP in gen 1. Before anyone asks: I'm not misremembering it as GSC. I had just come from mount moon with low level pokemon. I was heading toward Misty. Additionally I got GSC with a gameboy color and this glitch happened to me on the original game brick. I've been pondering this for awhile and I'm guessing its either a hardware glitch or spaghet code sorcery. Some sort of weird sequence of shenanigans that caused some sort of memory mixup. Or maybe both! I don't know. My theory is that the sandshrew spawned with zero moves or only glitch moves. As struggle was the ONLY move it used from the start of the battle. Unfortunately I don't know how RBY's code works well enough to do more than wildly speculate. I figured a weird obscure glitch video was a good place to share this experience. I've never seen anyone else with the experience online so I figure I would bring it up if someone smarter than me found it interesting.
In my experience modding GSC (sorry haven't done much with RBY but I assume it works similarly), if a Pokemon has 0 moves in its moveset the game just crashes. (although I made the same mistake in Black once and the opponent actually did just use Struggle)
@@KurusuPanda maybe it had junk data for its move or a glitch move or something that made it so the game didnt crash but it had no moves to use? Idk. Struggle might have been the fail safe in that case. Or maybe it actually had struggle on its moveset
I would assume that if an enemy Pokémon only had glitch moves, for example, there are glitch moves named after all 55 TMs and all 5 HMs, then they would use those glitch moves instead of struggling. My assumption is that the wild Sandshrew somehow didn't generate with any moves at all, which should, under normal circumstances, be only possible if the Sandshrew is level 0. However, level 0 Pokémon don't usually appear in the wild. So something must have gone terribly wrong for that to happen. In Pokémon Red & Blue, it is possible to get a Pokémon with 0 moves. You first need a Ditto or Mew whose only move is Transform. Then, have it use Transform in battle. After that, swap the first move with the second using Select. This glitch was patched out in Pokémon Yellow. Now, technically, Transform is in the second slot with a blank slot in the first. However, you're only able to use the first slot in this case. Trying to uses the blank move in battle can cause what is known as the TMTRAINER effect. The TMTRAINER effect causes the music to fade out and makes the enemy frozen solid and burned at the same time, this burn fainting the enemy in one turn.
Huh, I thought electric pokemon couldn't get paralyzed. Edit: Possible I was getting it mixed up with Poison, I've only been playing the damn games for almost 30 years
It at least looked like both of the examples you showed for the strange "Paralyzed by [Ability]" text were from FRLG, instead of Ruby or Sapphire. All of the testing that you mentioned doing in the video was on Ruby - have you done any testing with the glitch on FRLG? It could be another small difference between the game versions.
I haven't done any other testing in FR/LG, but not every example of this glitch happening in FR/LG had the glitchy ability text. That leads me to believe there's a little something more than just what game is being played, and that's the part that's bugging me.
My guess as to why the glitchy messages show up is that the game recognizes the status trigger is an ability, but since the one afflicting it is the pokemon with a multi-hit move the game just assumes that pokemon has a status afflicting ability and as such, displays it. As to why it didnt show up during your testing, i think it might be because it's a frlg thing. both of the screenshots where it happens appear to be kanto games, so it's possible frlg are coded slightly differently, and we can't really test if emerald has this problem without removing the [if x > 0] fix. it is probably possible if we make this change tho.
GOD ok so one time years and years ago while i was playing firered i remember battling a less on the route east of cerulean, pikachu vs spearow, and i swear while it was using fury attack on me it procced statis and then i saw my pikachu ALSO get paralyzed with the prompt "spearow's keen eye paralyzed pikachu!" i felt like i was insane for years but now this video confirms it's a real glitch. thank god
Now this is the kind of wack I love to see in my old school Pokémon. It would be cool if ghost type Curse could be tested with this, but no abilities with curse as a secondary affect exist. Does make me think if stuff like stat lowering moves like Growl would have an impact on this. Unless it’s specifically towards status moves
Something thats confusing me, maybe you can explain, is WHY the move gains the ability’s effect. Like, why is it programmed that way? What purpose does that serve in regular, non glitchy gameplay?
Like, I’m looking at the code in your video and have it paused to look at it. I just cannot fathom why they coded it to give the opponent’s move the ability’s effect. Is this required to make the effect happen at all or something? Like what purpose does it serve to code that at all? The other mistakes that lead to the glitch make logical sense. Like not ordering the effects properly to account for something that SHOULD be 0% odds. Or the 0-99 thing, someone just not considering 0=0 in their math. But deliberately coding into the abilities a line that gives the enemy move your ability’s effect… that makes no sense to me. Why do that at all?
@@cybiinnie Unfortunately, I'm not sure myself. If I had to fathom a guess (and I'm going to emphasize "guess" - I genuinely have no idea), it must be because these games are programmed in a way where that's necessary to apply an effect like that mid battle. And to be fair, if the rest of the code was properly written, it'd work! It'd be a really janky solution, but it'd work. Maybe Game Freak was just more concerned with getting the job done, rather than getting the job done well, so to speak. Again, though, this is just a guess on my part; I don't know the rest of the code well enough to make any definitive statement.
Hey everyone! I, embarrassingly, made an error in this video (thanks to ndm13 for leaving a comment informing me of my mistake).
This glitch does NOT occur in XD, but DOES occur in Colosseum. The mistake I made was setting Twineedle's secondary effect chance to 100, which I did to test out the timing of secondary effects with multi hit moves, but then I never set the effect chance to 0 to test out if the glitch occurs for realsies.
My apologies for this oversight on my part. Hopefully you still enjoy the video regardless.
Absolutely unforgivable. I just disliked, sued, and reported you in that order
I was just about to comment that lol Like, wasn't the fix in Emerald just making it so there's no more 1% chance for moves with no effects? Then the Twineedle with 100% chance doesn't work for testing. I'm guessing Colosseum doesn't have that 1% chance fix, but XD probably does since it's after Emerald.
@@mari_zz Yeah, lol. Very unfortunate mistake on my end that I didn't catch before uploading; I'll definitely have to be more careful with future videos.
Since UA-cam removed annotations, which would've been the perfect solution for this error, hopefully enough people notice the pinned comment, as that's about the only good option for correcting myself at this point.
@@MegaMetal96 the sin of all sins
Wouldn't this mean that Twin needle has version of this glitch in in Emerald & XD (and all other versions) where it can paralyze/burn/sleep if attacking a pokemon with static/flamebody/effect spore ? Is that version of the glitch less obscure and only the Double Kick, Double Slap, etc. version was the one that needed research?
As soon as you mentioned the random numbers of 0-99, I immediately thought. "Oh god, this is going to be another gen 1 accuracy glitch."
It's actually the inverse of that, technically! But yeah, it's exactly the same idea; they got confused between "
Fair enough, my thought was just. Oh somebody used the wrong symbol.@@yukihoshikawa
@@yukihoshikawait’s essentially the same, in the sense that some event gets an extra 1% chance of happening, regardless of the intended accuracy. (For instance, Poison Sting actually has 31% chance of poisoning as a result of this bug… Not just 0% moves)
The only difference is that the extra chance gets added to success rather than failure
they shoulda used random numbers from 1 to 100 instead of 0 to 99
@@rockman7perezthey should have just used < not < or = to.
This is like those playground rumors of Splash having a miniscule chance to do something cool, except it's actually real.
Yeah, I suppose so, lol!
the only reason we know of that first person that found that glich is because he wasnt using an unsearcheable private community like discord. Anything put into discord if not saved dies with it. its very different from using a forum where even if the forum dies web scrapers and many different backup projects keep the information alive. thanks for this video and for saving a piece of information. and if you read thing comment, plz remember to not use discord as a wiki or forum, discord is where communities go to die
I thought about that and yeah, it does feel like it's the case
It feels like the internet in general, and especially google got MUCH worse over the years at linking you to what you're searching
It reeally looks like you can't find the answers you want to a LOT of things outside of going to specific sites like reddit, because nothing is accessible to google anymore, because it's hidden in subreddits, discords, privated sites etc...
In Pokemon Diamond and Pearl, Hypnosis had a 70% accuracy, and was changed back to 60% Platinum onwards. In link battles if a DP copy battled a Platinum one, it would "pull" the code from Platinum and make Hypnosis hit its regular 60%.
I assume Platinum, HG, and SS don't allow Diamond or Pearl to host netgames (NETwork, so both online and LAN) and then the host does all accuracy checks in Gen IV.
It's really interessting how this flipped in Gen 3. In Gen 1 and 2, the later game has the responsibility of preventing desyncs.(And because Gamefreak didn't want to do anything fancy, they simply blanket-coded these games to play by the unfixed rules in link battles, even if only fixed games are connected)
What if it’s a WiFi battle, please do tell 🙏
@yoshiwoollyworld My understanding is, that doesn't really matter. Regardless of who the "leader" is, the games together will choose a "host", and that "host" will be the one that runs all of the battle calculations. The results are then passed to the other parties.
In instances where there is an initial game and an expansion game playing together(e.g. R/S and E, or D/P and Pt), the expansion game will have priority, and will always be chosen as the "host".
Interestingly, this architecture was chosen specifically to avoid the problem of desyncs from Gen 1 and 2. Set up like this, only one set of calculations is run, and everyone else is told what that result is. There's no chance of desyncs to happen as they did before.
In fact, if it weren't for the priority thing, that it's possible the glitch COULD happen in Emerald, but only if a non-fixed game was chosen as "host". And it wouldn't cause a de-sync, since everyone would be following the (incorrect) calculations.
The 1/256 miss keeps haunting Pokemon games, in different forms.
First it was discovered that accuracy check is a "lesser or equal", so if it hits maximum, any move that doesn't completely ignore the check will miss (which Stadium "fixed" by making it do that check again if it rolls max).
Then it was discovered that the secondary effect check suffers from the same problem in G2, where things like DynamicPunch inflict status 99.6% of the time (and Werster has seen Zap Cannon not paralyze in Stadium 2, so that's there too).
And now, this fucking Ability related thing transferring the secondary effect, though this time it's a 1/100.
It's like it does not want to leave.
Oh my god, you're right.
When are we getting a 1/256 or 1/100 glitch in gen 4, LMAO
As soon as they said "0 to 99" I was just like, "oh no"
Off by one errors are one of the most common types of errors in computing. In the 1/256 context it was using < when the code needed
@@bioico8458 Instant Vietnam flashbacks going into denial "Surely they can't be that stupid. No way it's going to be the same glitch as Gen1, right ? RIGHT ?!"
To be fair, it's not about being stupid. It's more comparable to writing a famous essay then getting mocked 20 years laterfor using a comma instead of a semicolon on paragraph 14, line 7.
To this day, nearly 20 yrs later, I swore that double kick once hit three times when I was fighting Roxanne in Pokemon Emerald.
At a guess, I'm assuming that XD uses Colosseum's code rather than Emerald's. Also, it really makes you wonder how much earlier this glitch would've been discovered if GameFAQs users weren't being GameFAQs users.
lol, I know, right? But even then, you have to use very specific moves that generally aren't that great against specific Pokemon. AND THEN, if the ability activates on the last hit, there's only a 1% chance to get that status condition off.
Still, it does make you wonder, what if.
Also, I suppose it makes sense that XD uses Colosseum's code as a base, just cuz Colosseum has glitches exclusive to it, so it prolly didn't use, like, Ruby's code or anything. Which, I guess that makes sense, too, now that I think about it - it might just be easier to code from scratch rather than convert the GBA game to play in 3D and have new stuff like Shadow Pokemon.
@@yukihoshikawaTo add to this, Colosseum and XD were made by another team, so it might be possible that whatever the process was to fix the glitch they might not have been informed since this is already an almost non issue which would be an even more non issue in a less open game like xD/Colosseum
What in the playground rumour spaghetti code hell?
I don't even blame the devs for not catching that (pre-Emerald). Abilities were completely new by that point, so such a peculiar and niche interaction was bound to slip through the cracks lol
You have no clue how shocked I was when it was revealed this issue is caused by the same kind of operator coding error that gen 1 missing has.
I'm gonna be 100% honest, I didn't even make that connection until people started commenting about it, LMAO.
that's cause it's a super common programming mistake. It crops up ALL the time.
So, if I'm understanding the technical details here properly... the root cause of this glitch is the exact inverse of the root cause of the famous "Gen 1 miss". (The Gen 1 miss happens because a check that should have been "less than or equal" is instead a "less than", whereas in this case, a check that should have been "less than" is instead "less than or equal".) Pretty wild that they would make that same type of mistake twice. Of course, in this case, the conditions in which this glitch would occur are so specific and unlikely that it's even easier to believe that it wouldn't get caught in testing.
Bingo; you got it!
Yeah, honestly, I'm not surprised this glitch was seldom reported on in the past 20+ years. You have to be fighting with/against a Pokemon with Effect Spore (where the odds of this happening are even lower than the other abilities), Static, Poison Point (which, most Pokemon with this ability are immune to the poison status), or Flame Body (which, ALL of the Pokemon with this ability can't get burned), and use moves that... generally aren't the greatest, IMO. Like, Double Kick's probably the only good move of the bunch; the rest have 15 power per hit, more often than not will only hit 2 or 3 times, and can miss. Ew.
As someone who has done programming
Checking variables against eachother get confusing fast,
Programmers often don't put in the numbers,
That's what game designers are for.
I love that new glitches are still being found in these games. They truly are coded.
This series truly is the most coded ever
the programmed of all time
lmao
One of the most games of all time
these games truly were coded by a team of programmers
Regarding the status condition messages: Each status condition effect has one of two messages it can display: One for when it is inflicted by a move, and one for when it is inflicted by an Ability.
The move text is the generic "[SUBJECT POKEMON] is paralyzed! It may be unable to move!" that you see in most of the cases.
The Ability text is "[ACTIVE POKEMON]'s [ACTIVE POKEMON ABILITY] paralyzed [SUBJECT POKEMON]! It may be unable to move!"
When a Pokémon's Static/etc. ability activates, the flag MOVE_EFFECT_AFFECTS_USER in the MOVE_EFFECT_BYTE is set to TRUE, so that that effect will apply to the user of the current move (instead of the target). When this flag is read, it swaps which Pokémon are considered the active and subject for the next effect resolution, then immediately resets the flag (making it FALSE). Notably, this does not apply to other changes to the MOVE_EFFECT_BYTE, like adding MOVE_EFFECT_PARALYSIS to it. So when the multi-hit move hits a second time, the flag MOVE_EFFECT_PARALYSIS is still present but MOVE_EFFECT_AFFECTS_USER is now FALSE, so it's now a move that can paralyze its target (which is why the Pokémon with Static/etc. ends up paralyzed). And since the active Pokémon is now the move's user and the target Pokémon is the move's target, when filling it the text template for an Ability inflicting a status condition, it is assumed that it is the move's user and its Ability that inflicted the status condition, which is why you get that odd-looking text.
The tricky part is how the game determines which message of the two types (move text or Ability text) to display. This seems to depend on a flag that the disassembly calls HITMARKER_IGNORE_SAFEGUARD (although IMO this is a bit of a misnomer - in general, it's used to check whether an effect is coming from a status-inflicting Ability, including for Shield Dust too). I tried looking into when this flag is reset, but I wasn't able to work out why there would be a difference in which message gets displayed. (Potentially it's related to whether the status condition is inflicted during the resolution of a single hit vs the resolution of the entire move, but I wouldn't expect the Ability text to display after the number of hits like it does on Chickasaurus's video in that case.)
I've used Static and Paralysis in all my descriptions here for simplicity, but the same applies to Poison Point, Flame Body, and Effect Spore (although Effect Spore is locked into which status condition it chooses the first time).
Oh wow, thank you so much for looking into that and sharing!
I admit, this is going a little over my head right now, but I also just woke up, so I'll probably understand this better once I'm more awake, LMAO.
If im understanding this right this happenening for changing from true to false to true etc for each hit, so the same bug could happen if you hit 4 fury swipes/double slap?
@@6ustavocosta No, it's not flipping the bit each time. There are certain occasions it gets set to TRUE, and certain occasions it gets set to FALSE. You can get both messages with just Double Kick (compare Chickasaurus's video with the Twitch clip).
@@ShapelessMonstrosity this is almost true, but you missed the part where both instances of it happening were in FR/LG
@@chainsawz5618 Based on my look into the decomp, I don't believe the Ability message is exclusive to FRLG. It should be possible for it to occur in other games. (Note that the move text can also appear in FRLG under seemingly identical circumstances, so there is very likely a random element involved.)
This is really weird. Double Kick was my most used move in Sapphire as a kid and I can't remember a single instance of this happening. My Blaziken would always use this against almost everything.
Keep in mind that just because you use Double Kick a lot doesn't mean the glitch will activate. You're only gonna fight a handful of Pokemon that have Static or Effect Spore, and in addition, if that Pokemon belongs to a trainer, that Pokemon is always gonna have whatever ability is coded in... "slot one", we can call it. This means it'll never be able to activate against a trainer's Voltorb or Electrode, for example, as all of them will have Soundproof. Of course, wild Voltorb can have Static, but that's the only time you'll find one with that ability.
In addition, the glitch obviously can't activate if you KO a Pokemon with Double Kick, etc. So if your Blaziken was powerful enough to KO everything with one Double Kick, even if both kicks connected, the glitch wouldn't be able to activate.
I always just thought it was a glitch when using double kick and shrugged it off….
I always find it super fascinating whenever the older Pokémon games have new glitches, exploits, and programming quirks uncovered years later. Great video, I learned something new!
I, too, enjoy these kinds of findings - it's always really neat learning about these kinds of things!
Glad I could teach you something new!
The validation that poster from gamefaqs is feeling after it building up for 15 years must feel great
It'd be amazing if they saw this video, lol
Incredible that the Pokémon company managed to make the 1/256 glitch a second time.
Imagine being vashperado, facing years of skepticism from practically everyone, even having some claim you were lying for attention...only to be vindicated a decade and a half later. I can’t think of an “I told you so” moment with more buildup.
Ty for explaining everything that happened. I was astonished by that glitch. I had more than 4k speedruns attempts and never saw a single shiny Mon, but that glitch happened...
Well... Its what it's!
Great video Yuki!
Oh hey, I'm glad you managed to find this! I had a feeling you might be curious as to what happened, haha.
I'm glad you enjoyed the video! Best of luck in your future speedruns!
Loved this video, the glitch itself was really fun to learn about and the extensive testing with other moves and games was great to see too, I adore weird lil quirks like this in these games
We should try this irl
Thank you! Although it's worth noting I messed up a little - the glitch occurs in Colosseum, but not XD. I messed up my testing with the GameCube games, cuz my brain had a moment, lol.
I just love mental image of Mudkip having Arm Thrust as starting attack, with those tiny little legs to pull it off
Oh my god, that's an amazing visual! 😂
This same thing mustve happened to me as well, as gen 3 were the only games I had access to as a child. I distinctly remember thinking Double Kick could cause paralysis for several years, confused why it would never activate again. Really interesting stuff!
That would explain it, LMAO!
You don't actually need to check for desyncs using this glitch, if it is possible to cause desyncs then every status move in the game has a 1% chance to cause a desync since the bugged effect chance check means that every status inflicting move in Ruby & Sapphire has a 1% higher than expected chance to cause said status. That seems like it would be a very, very high chance over the course of a battle and would happen all the time, so I would pretty strongly suspect that it isn't actually a problem.
You make a good point, LMAO.
Not 100% sure but I don't think that's necessarily the case. Since they used integers, "less than or equal to 29" would be the same as "less than 30". Just put in the chance minus one. So as long as they would have kept that in mind, it should be the same. I would even wager they did do this correctly in the other cases. It's hard to believe that all the moves with secondary effects have a 1% higher chance of activating than they are supposed to in these games, without it being widely known by now. The person might have even wanted to insert the correct number, which would be -1 in this case, but maybe a negative number for this variable messed up some other calculations. They certainly would have thought it wouldn't matter, because even if the secondary effect of those moves activates, it would do nothing.
This doesn't necessarily imply that the games would desync on a status move. It could well be that the battle engine calculated probabilities on each game, then sends its success or failure over to the other game, meaning a Hypnosis would hit 61% of the time from the team on FR but only 60% from the Emerald team. No single battle would desync but if you analyzed a large number of link battles you would see more Hypnosis hits from FR. Regardless it does end up that the games both likely run off of the Emerald battle engine as we saw from the PP data being overriden. The other possibility I guess is that the FR game, when linking, noticed a discrepancy between the games and reverted to the correct PP, assuming that the PP hack was not completely implemented and some ROM data remained to check against, but then one would imagine that would happen in the single player game as well. So most likely the link battle is in fact reading from the Emerald battle engine.
@@TheShinyTresasLWIt must be the case that FR has an additional chance to activate a status move. Clearly from the 0 case we see a 1% activation; likewise Hypnosis has 61 rolls in FR that set it off. So either they instead added one to the accuracy numbers in Emerald and left the strict < or they changed to "less than or equal to". Over the integers these are equivalent inequalities ( x
That's how poison point should work anyways. not just when the pokemon is attacked because the point is there whether the pokemon is being attacked or not. Like it makes more sense for the point to be used offensively as well as defensively.
Honestly, that'd be really neat to see, cuz yeah, it makes sense!
I should stop being suprised by people finding new things in old pokemon games, but I know i won't any time soon.
LOL, for real. It's still neat to me whenever something's found in these games that you think we'd know everything about.
This was an interesting video, I appreciate how in-depth you went with testing, even getting the spinoff games.
Thanks! Just a slight note on that, though, I did make an error while testing in the GameCube games - the glitch only occurs in Colosseum, not XD.
So what you're saying is; they made the same mistake as they did with gen 1 with accuracy checks, but in a more exetreme nonsencial way. True Gamefreak coding.
Well, your creativity and dedication to glitch hunting has me beat!
I'm definitely not convinced that this glitch would occur during a link battle between RSFRLG and Emerald. Although that might depend on the scope as to how much Emerald actually governs in a link battle. If it determines ability effects as well, then we'd have our answer.
Yeah, I did heavily stress that it's just an assumption on my part. I'd honestly be glad to have my assumption proven wrong!
Sorry, didn't mean to paraphrase what you said in the video. I have a nasty habit of going in circles when speculating aloud!
In all seriousness, I'm almost half-tempted to give this glitch a look if only to satisfy my own curiosities.
@@chaoticbravealisdair2925 If you do, definitely share your results! If my math is right, any given multi hit move that makes contact has a 1/300 chance to activate this glitch with Static and Poison Point (and Flame Body, although that's only possible with hacking or Skill Swap/Role Play). Effect Spore might actually be 1/1000, cuz Bulbapedia says it has a 10% chance to activate, rather than the 30% for Static and its clones.
And no worries, I was just bringing that up just in case my wording in the video was off.
I believe that the host game purely decides how all battle mechanics and calculations play out as observed in this video with the Emerald host. I remember this coming up in a TPP post from 8 years ago about having touhoumon fight moemon where the games had completely different moves and type charts.
If by "host", you mean player 1, player 1 in this case is actually Ruby.
Polite Hoppip here!
I remember scouring the ancient runes (GameFAQ page) trying to figure out this silly little glitch. Cool video!
Eyy, thanks; I'm glad you enjoyed the video! Thanks for your testing efforts, too!
Not sure about your C/XD findings: isn't the glitch an issue with handling 0% chances, which was fixed in Emerald? If so, doesn't setting the chance to 100% bypass the glitch condition? It'd be like fixing the shore tiles on Cinnabar in gen1 and complaining that the old man glitch is still active if you force an encounter without clearing wild data. Or maybe I'm misunderstanding...
Anyway, good video! I actually found your channel from your comment on Evie's video!
Hey there, thanks for pointing this out! I had a sinking feeling that I was forgetting something, or I messed something up, and now I know why, LMAO.
I went ahead and did 400 trials in XD with the correct specifications (specifically, I used Twineedle, but changed its secondary effect chance to 0), and this glitch never occurred there.
I did the same thing in Colosseum, and the glitch still happened, meaning the glitch occurs in Colosseum, but not XD.
My apologies for the oversight and unintentional spread of misinformation; I'm glad you still enjoyed the video regardless!
The part where it mixes up what ability us supposed to be doing what kinda reminds me of the Acid Rain glitch, and how that can have some odd messages concerning abilities.
the fact that the number checks for equal to or lesser than reminds me of the gen one miss glitch. you'd think they'd have learned their lesson form that
Old habits die hard, I guess, lol
Super interesting glitch!
As for incorrect abilty text, I've seen this sort of bug all the time when making rom hacks
It boils down too there being variables for the most recently activated ability and battler; so it's likey a timing issue based around to opposing mon activating/checking some behaviour
You'd have to obv debug the exact condition to find out what is activating it
Oh yeah, you made the Emerald Roguelike hack, right? That was a neat hack!
I imagine all sorts of weird things must crop up, especially if you're making a decomp hack.
@@yukihoshikawa I did indeed 🙂
You get to get to grips with the gen 3 pretty well working on a decomp hack ha ha
Young me definately did this and had no clue it wasn't a feature. I think on a Spore Shroomish.
I'm sure most of us that chose Torchic and spammed Double Kick saw this glitch and didn't even register it in our minds, as abilities were new we were more or less blindly groping around on their effects.
I never thought it would happen in Colosseum, even if it was fixed for XD, this is amazing lol
For the name of the ability being displayed thing, I already talked about this on the discord but basically my theory is that if the ability triggers multiple times in different hits, it will only display the name of the ability the first time and all the other times will just say you were paralyzed/burned/poisoned
This is normally impossible to notice because if you already have a status the game won’t display text if the ability triggers again. Maybe with status cancellation berries this could be tested? Like you get paralyzed, the berry activates and you get paralyzed again? I’m not sure if the berry would wait for the end of the move to activate but I have a feeling that it unfortunately would.
Update apparently the berry does activate after the hit that statused you, and i was able to get statused in one move by using this. However it said the name of the opponent's ability both times, so that's not what causes it.
No idea why it happens then.
RIP; thanks for testing it out, at least!
3 whole generations of Game Freak not knowing the difference between "less than" and "less than or equal to". Amazing
This is a cool video! I don’t watch many UA-camrs who do glitch hunting, so I’ll be excited to see more of it!
Glad you enjoyed the video! Fair warning, I don't just do glitch hunting - I talk about all sorts of aspects with Pokemon.
This video is fantastic, its a super interesting subject & you presented it very well & did your own research.
Thank you very much! I actually did mess up a little bit - the glitch can't activate in XD - but everything else is correct. It was a ton of fun learning about this glitch and testing it out!
I can't believe this was another case of using
Great to see Chikasauris getting her due recognition for her numerous contributions to glitch documentation in the franchise. Well done explaining this glitch and compiling the research! It thrills me to no end seeing new glitches get rediscovered and deep dived in the modern age
Couldn't agree more myself; glad you enjoyed the video!
Great video. I appreciate both your research and your hands-on experimentation.
15:30 the 2 instances where glitched ability text pop up both happened in FR/LG, while all of your tests took place in ruby alone
True, but the altered ability text doesn't always happen in FR/LG (see the streamer's clip). So, there's something else at play.
Hey Yuki! Thanks for investigating this further! I’m like 99% sure the weird text is displayed when the opponent is the one using the multi-hit move rather than the player.
In hindsight, I'm not really surprised that it doesn't cause a desync - because if what I'm thinking is the case, it would probably have a 1% chance to desync with any move at all, so we would know about it by now lol. What I'm wondering now is if the chance of *all* secondary effects triggering is 1% higher than intended in R/S/FR/LG/C? It probably would be, right?
I would assume so, yeah. Although, you might wanna remove XD from that list - I made an error when testing this stuff out, and this glitch does NOT occur in XD.
That would've been the 2nd coming of the 1/256 glitch from Gen 1.
Or the third - there’s kind of one in gen 2 as well! A move with a 100% chance to apply an effect in gen 2 has a 1/256 chance for it not to work (think mud-slap)
Unrelated but I had to double take after seeing your name in a random video I clicked on as a recommendation, this is Kaze from the old redpill OOB server, that's it but hi lmao
it's caused by how FR/LG handle it differently, one instance happened when the opponent used the move and the other happened when the player used the move so it's not because of the opponent using the multi-hit move
i love that you found an old gamefaqs thread on this subject. i was all over those boards in the ruby/saphire days. i hate reddit and miss real forums
this is so weird I love it, there’s so many interesting things people are finding out recently in gen 3
as a crappy coder myself ive also been foiled by less than or equal to
Ild like to assume that at least one of the double kicks like, got them so hard in the spine in paralysed that way
Nurse Joy's gonna be working overtime on that one...
I've never heard of this before! Thanks for sharing, it's really interesting!
No problem; I'm glad you enjoyed it!
1:55 I am shocked at how nostalgic the word 'siggy' makes me feel omg
Great video! I love obscure glitches and I *LOVE* how in depth you went!
I'm glad to hear! I wasn't sure while making this if all of my explanation would be too overkill or not, so I'm glad to hear you enjoyed it!
So they did a "Gen 1 miss" code again. These people never learn.
It really is kind of amazing they managed to mess up multiple times on that front.
It seems like they were trying to describe something about reality with the way they programmed static - "Pikachu was filled with static, so *when you made contact,* you became paralyzed."
This mistake that makes 0% chance possible to activate is the _exact same_ mistake that caused the 1/256 glitch in gen1.
i cannot believe they pulled a reverse gen 1 miss
Gen 3 status hax 😂
Great video!
Thanks; glad you enjoyed it!
So to generalize that code error, if the status chance is any number less than 100, the actual chance of it being inflicted is 1% higher. 0% becomes 1% and 99% becomes 100%.
Yep, you got it!
oh my god its literally the 1/256 miss glitch from gen 1. except way weirder and messed up. this is incredible i love this glitch so much
It really is amazing - I became fascinated by it the moment I learned of it!
12:05 Today I learned Seadra has Poison Point for whatever reason :p
Yeah, it's pretty interesting, especially since the other evolutionary members don't have it - they'll both have Swift Swim instead.
When the two results were .25% and .8% I was like “that’s just the chance of static happening twice,” which it kinda was.
Gen 3 games use will use emerald's engine if emerald is one of the games involved in the battle, same with gen 4 and Pt/HG/SS, the biggest difference I'm aware of there is the accuracy of hypnosis going from 70% to 60%.
That's what I figured would be the case, just cuz I knew that's how gen 4 handled it.
If Static causes paralysis -> display: [Pokemon A]'s [ability: Static] paralyzed foe [Pokemon B].
When Double Kick's secondary effect becomes Static's effect, maybe Double Kick picks up Static's text display trigger? -> [Charmander]'s [ability: Blaze] paralyzed foe [Squirtle]
It only happens some of the time, though. Maybe that's part of it, I don't know, but there's also something else at play.
Damn they really pulled the gen 1 miss glitch code and added it to this secondary affect glitch
"Alright, what if your attack lands, but now it paralyzes?"
- Game Freak intern, circa early 2000s
So we got a 2nd 256 Glitch in Gen 3. Can't believe it came up twice. Great find
This one's only 1/100, but same idea, yeah.
I bumped into this in FireRed earlier and someone linked me here.
A Poliwag used Double Slap on my Parasect, activated Effect Spore on the first hit, and fell asleep. Then Parasect randomly fell asleep. It certainly caught me by surprise.
I can’t believe Gen 3 has its own equivalent of the 1/256 glitch from Gen 1.
You can't just start by saying we're going back 15 years to 2008 so casually like that
17:45 Ugh, fine, I'll rig up another bot
If you actually do that, I'll be curious to hear the results! Sorry about not reaching a definitive conclusion. 😔
when i was young i had a cd rom with the first 2 gen games on it, they were a glitchy mess for some reason, even more than the original games, in red i evolved a nidoran to nidorino with a moon stone and in silver the guy that trades you an onix for a bellsprout couldn't be spoken to because he was violently spinning in place
Man, if you still have that, you should rip it. 👀
You've heard of the gen 1 miss, now get ready for... The gen 3 hit!
So, I haven't looked into the code so I'm probably missing stuff, but what I noticed about the times the text popped up is that the pokemon triggering the glitch had an ability that could also trigger it. What might be going on is that the new 'extra' condition that double kick gives retains some attribute of, "Inflicted by opponent's ability", so when the Double-kick user has Poison Point, that allows it to match up to this property, so it sees that say Nidoking has an ability that adds a secondary effect, and that say Raichu was hit by a status inflicted by a secondary effect generated by an ability, but if the user pokemon lacks one of these abilities it skips some kind of check or falsely assumes that it must just be a natural part of Double-kick, thus no text.
Also, For the desync with emerald something I noticed is that the Emerald pokemon game was the host. This actually changes a lot of things about the battle as back then basically the host is registered as the 'player' so is kinda given a lot of advantages that the player subtly has over NPCs that's not much talked about (such as if you throw two pokemon with weather setting abilities on the field at the same time, the order of abilities is not determined by the pokemon's speed but rather who is the host and who isn't). If you ever want to try the desync again you should try the other game hosting the battle and see if this causes both games to play by the rules of the new host (thus this glitch is possible but doesn't cause a desync) or if Emerald still runs it's own base code even though the host has different code (thus the glitch only happens on one end causing a desync)
Edit: Also it was very neat to see that not only can effect spore sleep activate the glitch, but it seems like out of all the possible status effects if you were guaranteed to get a sleep activation during a multi-hit attack, it's the most likely to hit both pokemon, since the example you showed only did '1-hit', meaning that since sleep ends the multi-hit move a sleep activation will *always* be on the final hit allowing it to fulfill two of the conditions (inflict a status effect and be the final hit of a multi-hit attack) in one go.
In the image with Charmander and Squirtle, the Squirtle was hacked to have Static, but the Charmander still had Blaze.
As for the link battle stuff, assuming the host is player one, Ruby was actually the host - the game windows were just (unintentionally) set up in a deceiving way.
@@yukihoshikawa Oh, interesting that Emerald was the one using the rules then! Well then that probably means Emerald rules are always used when it's one of the games.
Now we wait for this glitch to completely shake up the competitive scene of an obscute tier on showdown.
i cant believe 2 gens in this series, somehow, managed to have the same coding error, resulting in a 1/256 glitch. Or 1/100 in this case.
Game Freak wants to be the very best, like no one ever was...
...at repeating mistakes. :p
Ooooo this is interesting! I like learning about new glitches.
These kinds of glitches are the best - they don't crash the game or anything, and they're out of the way.
There are only two hard problems in programming: naming things, cache invalidation, and off-by-one errors.
so, is it a complete coincidence the gltich occured naturally for a nidoran line vs pikachu line twice?
Indeed - it probably happened because Pikachu's a popular Pokemon, and you can get it right at the start of the game. On top of that, a lot of trainers use Nidoran, which gets Double Kick, which just so happens to be one of the moves that triggers this glitch.
20:00 Is that a difference caused by Ruby/Sapphire and FireRed/LeafGreen being different games? I never heard you specify whether you'd tested this in both pairs of games or not, but the pictures/clips you showed of the 'text glitch' all used Gen 1 Pokemon, and I don't _THINK_ I heard you say that you'd tested FireRed/LeafGreen, only Ruby/Sapphire...
That might be part of it, but I don't think it's *all* of it. If you look at the speedrunner's clip, which is also FR/LG, that weird text doesn't display there.
@@yukihoshikawa ...hmm. Maybe it's something to do with the specific battle being replaced, like 'rival 1 battle' tutorial code interacting with ability text pop-ups... _no,_ that doesn't seem very likely. Maybe... something to do with using the ability's number/numerical value as junk data? If the 'text bug' is replicable in those specific circumstances, I suppose the only way to test it would be to check _literally every ability,_ maybe doing a few separate tests first to confirm that the specific battle it's done in doesn't cause it, but that would be a *LOT* of work, so I totally understand why you don't want to do it. There are probably romhackers who could more easily identify the source code that causes it, anyway: if it matters, the best course of action is probably just to spread the knowledge around for a few weeks/months, and see if anyone comes up with a 'eureka' moment that saves a lot of work.
If I had a nickel for every unverified GameFAQs post that would later be a verified glitch...I would have at least two nickels.
I'm not the only one noticing that the glitched ability text was only happening in FRLG gameplay and not RS gameplay, right?
That's true! However, it doesn't *always* happen in FR/LG - there's some other factor that determines if the ability text gets glitched.
Very cool, thank you for your research and dedication
No problem; glad you enjoyed!
Having just found your channel like a month ago, im consistently shocked by the amazing quality
Thank you!! It always makes my day hearing comments like these!
@@yukihoshikawa u seriously deserve so many more views/subs! I'm just glad I found ur channel
@@SoftSpott Thank you; I truly appreciate it!
You know what's hilarious about this? GF made the same "less than or equal to" mistake in Gen 1 and it's the cause of the infamous "Gen 1 miss." I guess old programming habits die hard.
It's technically the inverse mistake, as with gen 1, they wanted to do "
one glitch that was odd to me that occured was in gen 1 when i had a wild encounter and it rendered a starter.
I'd ask for proof, but it's gen 1. So I don't even doubt this
@@alexisdipoalo9443with those old cartridges, weird things could happen when the cartridge was dusty or damp
@@alexisdipoalo9443Yeah no this is a complete lie. Starters never spawn in gen 1 in the wild unless you do the fly glitch
16:37 An ability that would but the user and opponent in a mutual sleep would be interesting. Or a trick nap.
I vaguely recall reading somewhere ages ago that link battles in pokemon games generally defer to the rules of the "newest" cart based on some internal version number, not just between the different flavours in a generation, but also reginal versioning and revisions are taken into account, at least through gen 3 and probably the DS games? Probably by the switch games i assume you just have to be "up to date" to connect to anyone in the first place
Hey, your video is amazing, really love how indepth it is, just wanted to tell that..the interaction reminder is nice and all, but it really takes you out of it?
I'm enjoying listening to your explanation whilst I am doing something else and having the loud ding of it can be distracting and made me lose focus on what you were saying at the time.
It's free to still have it, but I'd recommend having it be muted so it's only a visual reminder and allows people who are only activly listening to not be distracted.
Outside of that : the video is amazing and I was suprised you weren't a big youtuber, instantly subscribed to you and I hope to see more of your content !
That's fair, honestly. I honestly don't even include it most of the time; whether or not it's in a video is just a "mood of the day" type of thing, you know? Perhaps I'll experiment with it being muted the next time I include it (if I don't forget, lol; I can be kinda forgetful sometimes)
Still, I'm glad to hear you enjoyed the video! Thanks for taking the time to comment, and thanks for subscribing, too; I truly appreciate it!
I just experience a glitch in Pokemon shield. I am in the battle towers and I went against a trainer one of there Pokemon was a Snorlax with heat crash I dynamaxed my seelasteela and then the opposing Snorlax tried to use heat crash and I read the text say "Snorlax tried to use heat crash but it is a move that it can't use" happened 2 times 2 turns in a row while my seelasteela was dynamaxed then it used yawn my seelasteela returned to normal form and then when the Snorlax tried to use heat crash it worked without problem, it was such a weird thing to happen never seen anything like this ik the Battle tower
Hey there, that's actually not a glitch! Heat Crash is a move whose damage is determined based on the weight of the user and the opponent. There are a few other moves that work like this, and they all fail when used against a Dynamaxed Pokemon.
So, it's a deliberate game mechanic (just, maybe a bit of an obscure one).
@@yukihoshikawa ohhh okay okay weird that it would happen twice in a row in the battle tower though
This explains why I thought weird things as a kid 😂
Like kicking= paralyzing
Makes sense why i was confused about this, my first games were all of gen 3 and remakes. Then gen 2.
Someone tell me why i swear I used an action replay as a kid and got Manaphy in Emerald?
That one I'm afraid I can't explain, LMAO
You would need sone insane ACE payload to be able to implement and use Manaphy in Gen 3. The eReader payload save space is only 1 KB.
I have a very strange glitch that happened to me in one of the RBY games. It happened when I was little and no one has ever been able to explain it. In either red/blue or yellow version (I forget but the more I think back the more I think it was yellow) I was in the bushes on route 4 after you jump the point of no return ledge. I encountered a wild sandshrew that used struggle as its first and only move. At that point I had never seen the move struggle before and wanted to catch it. Sadly it fainted to self recoil damage. I remember this event because I then spent the next four hours trying to find another sandshrew that knew struggle.
Now that im older and remember this, I know that its very strange since non player pokemon don't have PP in gen 1.
Before anyone asks: I'm not misremembering it as GSC. I had just come from mount moon with low level pokemon. I was heading toward Misty. Additionally I got GSC with a gameboy color and this glitch happened to me on the original game brick.
I've been pondering this for awhile and I'm guessing its either a hardware glitch or spaghet code sorcery. Some sort of weird sequence of shenanigans that caused some sort of memory mixup. Or maybe both! I don't know. My theory is that the sandshrew spawned with zero moves or only glitch moves. As struggle was the ONLY move it used from the start of the battle. Unfortunately I don't know how RBY's code works well enough to do more than wildly speculate.
I figured a weird obscure glitch video was a good place to share this experience. I've never seen anyone else with the experience online so I figure I would bring it up if someone smarter than me found it interesting.
Unfortunately, RBY isn't my forte either, but that's a wild occurrence! It's a shame you weren't able to catch it.
@@yukihoshikawa it happened with the original carts back when they were new. Hence my lack of proof.
In my experience modding GSC (sorry haven't done much with RBY but I assume it works similarly), if a Pokemon has 0 moves in its moveset the game just crashes. (although I made the same mistake in Black once and the opponent actually did just use Struggle)
@@KurusuPanda maybe it had junk data for its move or a glitch move or something that made it so the game didnt crash but it had no moves to use? Idk. Struggle might have been the fail safe in that case. Or maybe it actually had struggle on its moveset
I would assume that if an enemy Pokémon only had glitch moves, for example, there are glitch moves named after all 55 TMs and all 5 HMs, then they would use those glitch moves instead of struggling. My assumption is that the wild Sandshrew somehow didn't generate with any moves at all, which should, under normal circumstances, be only possible if the Sandshrew is level 0. However, level 0 Pokémon don't usually appear in the wild. So something must have gone terribly wrong for that to happen.
In Pokémon Red & Blue, it is possible to get a Pokémon with 0 moves. You first need a Ditto or Mew whose only move is Transform. Then, have it use Transform in battle. After that, swap the first move with the second using Select. This glitch was patched out in Pokémon Yellow. Now, technically, Transform is in the second slot with a blank slot in the first. However, you're only able to use the first slot in this case. Trying to uses the blank move in battle can cause what is known as the TMTRAINER effect. The TMTRAINER effect causes the music to fade out and makes the enemy frozen solid and burned at the same time, this burn fainting the enemy in one turn.
Huh, I thought electric pokemon couldn't get paralyzed.
Edit: Possible I was getting it mixed up with Poison, I've only been playing the damn games for almost 30 years
Electric type Pokemon started being immune to paralysis in the gen 6 games, X/Y!
@@yukihoshikawa Okay that jives. I couldn't stand RSE so much I didn't pick pokemon back up until Black 2.
On several occasions have seen the master ball fail after being thrown. After decades of gaming ens 1-5 have only seen it happen 3 times.
Fascinating, amazing video
Thanks; glad you enjoyed it!
It at least looked like both of the examples you showed for the strange "Paralyzed by [Ability]" text were from FRLG, instead of Ruby or Sapphire. All of the testing that you mentioned doing in the video was on Ruby - have you done any testing with the glitch on FRLG? It could be another small difference between the game versions.
I haven't done any other testing in FR/LG, but not every example of this glitch happening in FR/LG had the glitchy ability text. That leads me to believe there's a little something more than just what game is being played, and that's the part that's bugging me.
My guess as to why the glitchy messages show up is that the game recognizes the status trigger is an ability, but since the one afflicting it is the pokemon with a multi-hit move the game just assumes that pokemon has a status afflicting ability and as such, displays it. As to why it didnt show up during your testing, i think it might be because it's a frlg thing. both of the screenshots where it happens appear to be kanto games, so it's possible frlg are coded slightly differently, and we can't really test if emerald has this problem without removing the [if x > 0] fix. it is probably possible if we make this change tho.
GOD ok so one time years and years ago while i was playing firered i remember battling a less on the route east of cerulean, pikachu vs spearow, and i swear while it was using fury attack on me it procced statis and then i saw my pikachu ALSO get paralyzed with the prompt "spearow's keen eye paralyzed pikachu!" i felt like i was insane for years but now this video confirms it's a real glitch. thank god
Now this is the kind of wack I love to see in my old school Pokémon. It would be cool if ghost type Curse could be tested with this, but no abilities with curse as a secondary affect exist. Does make me think if stuff like stat lowering moves like Growl would have an impact on this. Unless it’s specifically towards status moves
I don't think status moves play any role in this glitch, but god, yeah, if Ghost type Curse were involved in this glitch somehow, that'd be amazing.
Can't wait for Pokémon Showdown to add this extremely obscure glitch that will somehow net someone a win in tournament play.
Actually kind of a crazy glitch
This definitely happened to me before! It was weird and it didn’t make sense to my younger self!
That glitched ability text kinda reminds me of Acid Rain. Except, y’know, only happening once.
Something thats confusing me, maybe you can explain, is WHY the move gains the ability’s effect. Like, why is it programmed that way? What purpose does that serve in regular, non glitchy gameplay?
Like, I’m looking at the code in your video and have it paused to look at it. I just cannot fathom why they coded it to give the opponent’s move the ability’s effect. Is this required to make the effect happen at all or something? Like what purpose does it serve to code that at all?
The other mistakes that lead to the glitch make logical sense. Like not ordering the effects properly to account for something that SHOULD be 0% odds. Or the 0-99 thing, someone just not considering 0=0 in their math.
But deliberately coding into the abilities a line that gives the enemy move your ability’s effect… that makes no sense to me. Why do that at all?
@@cybiinnie Unfortunately, I'm not sure myself. If I had to fathom a guess (and I'm going to emphasize "guess" - I genuinely have no idea), it must be because these games are programmed in a way where that's necessary to apply an effect like that mid battle.
And to be fair, if the rest of the code was properly written, it'd work! It'd be a really janky solution, but it'd work. Maybe Game Freak was just more concerned with getting the job done, rather than getting the job done well, so to speak.
Again, though, this is just a guess on my part; I don't know the rest of the code well enough to make any definitive statement.