So, let me get this straight. The one time Game Freak puts a fail safe in Gen I, it causes one of the most infamous glitches glitches in the game. Bravo Game Freak, bravo.
Wow, this is fascinating. As someone who works in software, the fact that this whole procedure works without crashing the program is amazing. There are so many places where this could have gone wrong, different addresses being overwritten, etc. I am amazed by this not just working, but returning the game to a "clean" running state at the end of it all. Thanks for making this video!
Pokemon glitches are fascinating to me. I love how so many of them result in something that "works", because the "wrong" memory values still correspond to something. It's freaky.
1. Mew's ID is 21, not 23. 2. CF13 can contain other values according to the last text you read. That's why flashing the Start menu is necessary for some cases, as otherwise other text (including out-of-index ones) could be shown. Excellent work nonetheless!
+Glitcher Red Thanks for pointing these out, I feel dumb on the first one lol. In the video CF13 became 0 when I opened the start menu to use Fly to go to Lavender, but indeed if you just went there by walking (or did the glitch somewhere else where you dont have to fly to), you'd have to open the start menu (else the text/script of the npc matching that id will be executed and if it's a trainer it's header will be loaded too).
Your videos are terrific! Educational yet simultaneously entertaining. I am a sucker for early Pokémon glitches, unused content, and the like, and it's great knowing people like you are around. Keep it up!
Are you sure that's a failsafe and not the code used to handle legendary battles/Voltorb item balls? They begin in the same way as trainer battles - through examining an overworld object.
For a long time I wanted to find an explanation to how the glitch works the way it does (Not used to disassembling or watching memory values) so this is great.
The earliest you can do this glitch (albeit not getting a Mew in the process) is in Viridian Forest before you beat Brock. Instead of fighting a trainer, you can fight a wild Pokémon, and then try and leave for Route 3. When the guy directing you to Pewter Gym approaches you, that resets the 'NPC approaching' address. This can be used as part of an experience underflow glitch to get a level 100 Nidoking.
Thank you. By the way, is the "InitBattleEnemyParameters" function used for legendary Pokemon Encounters? That would explain why the index check exists.
+Pesthuf I believe it's only used for trainer battles when they engage you, to retrieve data from the trainer associated with the NPC that engaged you.
So, if you reduce the Attack of the Slowpoke 6 times (so it's -6, or 1 internally) and then you encounter Mew, will it be at level 1? If you catch it and let it gain exp will it overflow to level 100?
It'll only level up to 100 if the exp gain at the end of a battle is less than what is needed to get to level 2 Example: 63 to level 2. Gain more than 63= Lv2 63 to level 2. Gain less than 63= Lv100
@@airwolf9248 Actually, not quite! The auto-level-up-to-100 glitch is caused by an underflow. The experience for level 1 is calculated to be -54, and the game dutifully attempts to store -54 there - which gets stored as 16,777,216 - 54 = 16,777,162, since the value is 24-bit unsigned. If the Pokémon gains 54 experience points or more, it will go all the way up to the positive values, correcting the overflow and disengaging the glitch. Only if the experience gain is below 54 will the glitch be triggered - gaining between 54 and 62 experience points will let you keep your level 1 Mew (with between 0 and 8 experience total, needing an accumulated total of 9 to level up).
this glitch can also be done right before misty, harder for sure to get a teleport pokemon and needs better reaction time for the trainer then this one seemed to in my testing but having mew in a half hour from start can always be fun to prove co workers wrong over lunch break
Now, what I wonder is.. Does it work in the VC versions of RBY? Or did they fix the "NPC-Problem". It seems to me that their script now has a higher priority than the inputs given by the Start/X button. This would make it rather impossible to get Mew that way.
+Masashiro Knight of Cookieland Everything works the same in the VC releases as far as I can tell. Been using this and other glitches just the same as the old days
What prevents the trainer fly glitch from occurring in Gen II? I read that it was because the start menu is disabled upon being in a trainers line of sight but not too sure how plausible that is. If this is the case, would it be possible to disable this or force the start menu and actually try to see how the game behaves if you attempt to do the glitch like in Gen I?
Internally GSC are vastly different to how RBY are written in general so it's not simple to give a specific answer tbh, plus I'm not familiar with NPC movement and overworld engine in GSC. But yes, one of the differences is that NPC "noticing" is disabled while you are using Fly and another one is that everything related to NPC drawing and movement is more smooth in general in GSC
Mi pregunta es, si en total hay 190 slots de pokémon y cuando empiezas una batalla esta puede ser contra un trainer o contra un wild pkmn dependiendo de si el número es superior a 200 o inferior y, en el segundo caso, enfrentas al pokémon dependiente al código interno, qué pasa cuando este código está entre 200 y 190?
Un Pokemon glitch, que son los que corresponden a index numbers entre 191 y 255 (y el 000). La información de estos Pokemon es completamente aleatoria. Puedes ver la lista aquí: bulbapedia.bulbagarden.net/wiki/List_of_glitch_Pok%C3%A9mon#In_Generation_I
I might just not be seeing it, but you should do a video explaining why coin case glitch works, if you haven't. I did a very brief search and saw nothing in depth.
So here's an... interesting problem. I am attempting to use the Virtual Console version (which I understand is mostly the same as the original, save maybe for the odd or VERY odd bug correction here or there- seriously, why fix the nugget bridge rocket nugget exploit? c'mon guys), but instead of DEFEATING the Youngster, I tried letting him knock my Pokemon out, so that he could be reused and I could catch multiple Mew. Except for some reason, when I blacked out and moved back up to the bridge, the battle text of the trainer I used to trigger the Trainer Fly glitch popped up, and the battle started as normal. Did the game erase the Special stat data when I blacked out? Did it get overwritten by something in between? Any idea what the deal is?
If I'm understanding it correctly, the thing is that you need to go back to the route where you flew away from the long range trainer, not to the route where you fought the youngster.
At 7:18, the author claims 0 is the default value for overworld. It's not exactly true - it's the ID of the last displayed textbox, which is 0 for the start menu, which you are forced to use to fly to lavender. But when you use the long-range trainer at route 24, you are not, so it creates a case of textbox matching - you fought trainer the slowpoke trainer, and it's textbox ID started. However, textbox IDs are resolved per map, and it just so happens that it's equivalent to talking to the trainer the battle is resumed.
You're right about the text box id, but how does that prevent the battle against Mew from happening? CD2D/CD2E (engaged trainer class and set) don't change, do they? I've forgotten most of the logic behind this glitch by now tbh.
I still feel there is more hidden mew glitches. I have seen a few. It makes you wonder where originally they wanted to put mew. Mew had to be somewhere coded before mewtwo.. For all we know mew could of been planned to be caught after you catch mewtwo. Even as a kid it was weird for me how far you have to go to catch dratini.lol
Not true at all. Mew was the last Pokémon implemented, only two weeks before release, and AFTER QA testing. Mew was originally just going to be Mewtwo's backstory.
Could you do a video of this that explains the glitch that allows you to get a shiny ditto by having a ditto transform into a shiny gyarados twice? (pkmn.net/?action=content&page=viewpage&id=113)
I had never looked into that trick but it looks like it has a relatively simple explanation. To begin with, the trading from GSC part is not necessarily required. You could catch a Pokemon in RBY with the same DVs as the shiny Gyarados to the same effect. As you probably know, when a Pokemon in RBY uses Transform, the transformed Pokemon's DVs are replaced with the opposing Pokemon's DVs. The transformed Pokemon's current DVs are then saved to a couple of backup addresses in memory, so that the original DVs can be restored after battle. Let's say Ditto's DVs are 5/5/5/5 and Gyarados' DVs are 14/10/10/10. When Ditto uses transform the first time: Backup DVs
That makes sense. Much like a glitch in Mortal Kombat Trilogy on the N64 that has a similar cause with a different effect. In this case, you do a button-hold trick in 2-player mode to 'temporarily' change your character to one of the two bosses, and then a second time (only possible in 2-player mode, a 1-player game won't allow you to do it twice like this), and upon winning and the opponent not continuing, you go into the 1-player mode as the boss, which normally isn't supposed to happen.
The Special stat needed to catch Mew is 21, not 23. Source:bulbapedia.bulbagarden.net/wiki/Mew_glitch and myself actually catching Mew using the "Ditto glitch". Otherwise, great video!
As much as I try, my brain just falls asleep when coding is being discussed. It's worse than a foreign language for me, I'd find learning Russian grammar easier than comprehending the language of computer systems. I even attended a course to learn coding with an incredibly patient teacher and it just couldn't be done. This coming from a straight A guy with uni degree in his 20s, I'm not even a tech illiterate boomer and I just cannot understand this stuff to save my life.
It's funny that the entire team of Game Freak at the time agreed on doing this as a prank, just without telling Nintendo because it violated the rules of programmers. In the end they were all gamer boys at heart.
svengary1193 Pokemon is one of the most complex games on the Gameboy. Gold and Silver's development even needed Iwata's assistance to get the data optimized to fit on a gameboy cartridge because it was so massive
So, let me get this straight. The one time Game Freak puts a fail safe in Gen I, it causes one of the most infamous glitches glitches in the game. Bravo Game Freak, bravo.
chill out freak, you can't even do maths so stop pretending you would have done better
Wow, this is fascinating. As someone who works in software, the fact that this whole procedure works without crashing the program is amazing. There are so many places where this could have gone wrong, different addresses being overwritten, etc. I am amazed by this not just working, but returning the game to a "clean" running state at the end of it all. Thanks for making this video!
Believe you me, the ones who figured out how exactly to do this glitch likely spent maaaaany hours of trial-and-error first.
Pokemon glitches are fascinating to me. I love how so many of them result in something that "works", because the "wrong" memory values still correspond to something. It's freaky.
1. Mew's ID is 21, not 23.
2. CF13 can contain other values according to the last text you read. That's why flashing the Start menu is necessary for some cases, as otherwise other text (including out-of-index ones) could be shown.
Excellent work nonetheless!
+Glitcher Red Thanks for pointing these out, I feel dumb on the first one lol.
In the video CF13 became 0 when I opened the start menu to use Fly to go to Lavender, but indeed if you just went there by walking (or did the glitch somewhere else where you dont have to fly to), you'd have to open the start menu (else the text/script of the npc matching that id will be executed and if it's a trainer it's header will be loaded too).
Your videos are terrific! Educational yet simultaneously entertaining. I am a sucker for early Pokémon glitches, unused content, and the like, and it's great knowing people like you are around. Keep it up!
Are you sure that's a failsafe and not the code used to handle legendary battles/Voltorb item balls? They begin in the same way as trainer battles - through examining an overworld object.
For a long time I wanted to find an explanation to how the glitch works the way it does (Not used to disassembling or watching memory values) so this is great.
The earliest you can do this glitch (albeit not getting a Mew in the process) is in Viridian Forest before you beat Brock. Instead of fighting a trainer, you can fight a wild Pokémon, and then try and leave for Route 3. When the guy directing you to Pewter Gym approaches you, that resets the 'NPC approaching' address.
This can be used as part of an experience underflow glitch to get a level 100 Nidoking.
The special stat isn't 23. It's 21. 23 corresponds with Shellder, not Mew.
Nice work! It's really cool to see everything basically laid bare like this.
Anyone else find it vaguely creepy every time the music cuts out?
Thank you.
By the way, is the "InitBattleEnemyParameters" function used for legendary Pokemon Encounters? That would explain why the index check exists.
+Pesthuf I believe it's only used for trainer battles when they engage you, to retrieve data from the trainer associated with the NPC that engaged you.
love your explanation videos!
Wow this was really thorought. I always wondered why the start menu pops up there
Beautiful! You should do these types of videos on more glitches!
So, if you reduce the Attack of the Slowpoke 6 times (so it's -6, or 1 internally) and then you encounter Mew, will it be at level 1? If you catch it and let it gain exp will it overflow to level 100?
+PluslineNeko That's true, as Mew is of the medium slow experience group.
PluslineNeko and here I thought growl was only useful in early game lol
It'll only level up to 100 if the exp gain at the end of a battle is less than what is needed to get to level 2
Example: 63 to level 2. Gain more than 63= Lv2
63 to level 2. Gain less than 63= Lv100
@@airwolf9248 Actually, not quite! The auto-level-up-to-100 glitch is caused by an underflow. The experience for level 1 is calculated to be -54, and the game dutifully attempts to store -54 there - which gets stored as 16,777,216 - 54 = 16,777,162, since the value is 24-bit unsigned. If the Pokémon gains 54 experience points or more, it will go all the way up to the positive values, correcting the overflow and disengaging the glitch. Only if the experience gain is below 54 will the glitch be triggered - gaining between 54 and 62 experience points will let you keep your level 1 Mew (with between 0 and 8 experience total, needing an accumulated total of 9 to level up).
this video Is really well made!
Awesome video!
I remember people telling me he was mew but I was never able to do it
this glitch can also be done right before misty, harder for sure to get a teleport pokemon and needs better reaction time for the trainer then this one seemed to in my testing but having mew in a half hour from start can always be fun to prove co workers wrong over lunch break
Now, what I wonder is.. Does it work in the VC versions of RBY? Or did they fix the "NPC-Problem". It seems to me that their script now has a higher priority than the inputs given by the Start/X button. This would make it rather impossible to get Mew that way.
Mew glitch and missing no glitch work in virtual console
+Masashiro Knight of Cookieland Everything works the same in the VC releases as far as I can tell. Been using this and other glitches just the same as the old days
RichardBlaziken Yes, i did test it myself. Turns out, VM02/Teleport are needed, otherwise the glitch will not be triggered at all.
What prevents the trainer fly glitch from occurring in Gen II? I read that it was because the start menu is disabled upon being in a trainers line of sight but not too sure how plausible that is. If this is the case, would it be possible to disable this or force the start menu and actually try to see how the game behaves if you attempt to do the glitch like in Gen I?
Internally GSC are vastly different to how RBY are written in general so it's not simple to give a specific answer tbh, plus I'm not familiar with NPC movement and overworld engine in GSC. But yes, one of the differences is that NPC "noticing" is disabled while you are using Fly and another one is that everything related to NPC drawing and movement is more smooth in general in GSC
Mi pregunta es, si en total hay 190 slots de pokémon y cuando empiezas una batalla esta puede ser contra un trainer o contra un wild pkmn dependiendo de si el número es superior a 200 o inferior y, en el segundo caso, enfrentas al pokémon dependiente al código interno, qué pasa cuando este código está entre 200 y 190?
Un Pokemon glitch, que son los que corresponden a index numbers entre 191 y 255 (y el 000). La información de estos Pokemon es completamente aleatoria. Puedes ver la lista aquí: bulbapedia.bulbagarden.net/wiki/List_of_glitch_Pok%C3%A9mon#In_Generation_I
Vale, muchas gracias 👌
mulilla Hola, soi Dora
I might just not be seeing it, but you should do a video explaining why coin case glitch works, if you haven't. I did a very brief search and saw nothing in depth.
forums.glitchcity.info/index.php?topic=6716.0
It really sucks you can't get Mew and Celebi legitimately (for Celebi, at least in English releases).
psyxypher
You can get them without a cheating device though, which I think is a decent compromise.
psyxypher aren't you able to now in the eShop version of crystal?
And now the ZZAZZ glitch.
+Metal The ZZAZZ glitch is already covered pretty well in Bulbapedia.
So here's an... interesting problem. I am attempting to use the Virtual Console version (which I understand is mostly the same as the original, save maybe for the odd or VERY odd bug correction here or there- seriously, why fix the nugget bridge rocket nugget exploit? c'mon guys), but instead of DEFEATING the Youngster, I tried letting him knock my Pokemon out, so that he could be reused and I could catch multiple Mew. Except for some reason, when I blacked out and moved back up to the bridge, the battle text of the trainer I used to trigger the Trainer Fly glitch popped up, and the battle started as normal.
Did the game erase the Special stat data when I blacked out? Did it get overwritten by something in between? Any idea what the deal is?
If I'm understanding it correctly, the thing is that you need to go back to the route where you flew away from the long range trainer, not to the route where you fought the youngster.
No, no, that's what I'm doing. The long-range trainer is on Route 24, and the Youngster is on Route 25.
Try flashing (opening and closing without doing anything) the start menu before you come back to the route to fight mew.
At 7:18, the author claims 0 is the default value for overworld. It's not exactly true - it's the ID of the last displayed textbox, which is 0 for the start menu, which you are forced to use to fly to lavender. But when you use the long-range trainer at route 24, you are not, so it creates a case of textbox matching - you fought trainer the slowpoke trainer, and it's textbox ID started. However, textbox IDs are resolved per map, and it just so happens that it's equivalent to talking to the trainer the battle is resumed.
You're right about the text box id, but how does that prevent the battle against Mew from happening? CD2D/CD2E (engaged trainer class and set) don't change, do they? I've forgotten most of the logic behind this glitch by now tbh.
I still feel there is more hidden mew glitches. I have seen a few. It makes you wonder where originally they wanted to put mew. Mew had to be somewhere coded before mewtwo.. For all we know mew could of been planned to be caught after you catch mewtwo. Even as a kid it was weird for me how far you have to go to catch dratini.lol
Not true at all. Mew was the last Pokémon implemented, only two weeks before release, and AFTER QA testing.
Mew was originally just going to be Mewtwo's backstory.
Could you do a video of this that explains the glitch that allows you to get a shiny ditto by having a ditto transform into a shiny gyarados twice? (pkmn.net/?action=content&page=viewpage&id=113)
I had never looked into that trick but it looks like it has a relatively simple explanation.
To begin with, the trading from GSC part is not necessarily required. You could catch a Pokemon in RBY with the same DVs as the shiny Gyarados to the same effect.
As you probably know, when a Pokemon in RBY uses Transform, the transformed Pokemon's DVs are replaced with the opposing Pokemon's DVs. The transformed Pokemon's current DVs are then saved to a couple of backup addresses in memory, so that the original DVs can be restored after battle.
Let's say Ditto's DVs are 5/5/5/5 and Gyarados' DVs are 14/10/10/10.
When Ditto uses transform the first time:
Backup DVs
That makes sense. Much like a glitch in Mortal Kombat Trilogy on the N64 that has a similar cause with a different effect.
In this case, you do a button-hold trick in 2-player mode to 'temporarily' change your character to one of the two bosses, and then a second time (only possible in 2-player mode, a 1-player game won't allow you to do it twice like this), and upon winning and the opponent not continuing, you go into the 1-player mode as the boss, which normally isn't supposed to happen.
Brilliant.
The Special stat needed to catch Mew is 21, not 23.
Source:bulbapedia.bulbagarden.net/wiki/Mew_glitch and myself actually catching Mew using the "Ditto glitch".
Otherwise, great video!
+Spyro Christoulakis Thanks. It had been already pointed out, so I added an annotation correcting it 2 weeks ago. Hopefully it's showing.
Oh, maybe I had annotations off at the time. Nevertheless, still a great video!
As much as I try, my brain just falls asleep when coding is being discussed.
It's worse than a foreign language for me, I'd find learning Russian grammar easier than comprehending the language of computer systems. I even attended a course to learn coding with an incredibly patient teacher and it just couldn't be done. This coming from a straight A guy with uni degree in his 20s, I'm not even a tech illiterate boomer and I just cannot understand this stuff to save my life.
Misconception: calling it a glitch
It was a last-minute joke put in by a developer that took advantage of a fail-safe system.
Mew being in the game code was a joke put in by a developer, but I don't think Trainer Fly had anything to do with that joke.
It's funny that the entire team of Game Freak at the time agreed on doing this as a prank, just without telling Nintendo because it violated the rules of programmers. In the end they were all gamer boys at heart.
though i like japan, pokemon is one of the best examples that they cant programme XD
svengary1193 Pokemon is one of the most complex games on the Gameboy. Gold and Silver's development even needed Iwata's assistance to get the data optimized to fit on a gameboy cartridge because it was so massive