Re: Official 1st Gen (Red/Blue and Yellow) Glitch Discussion
Posted by: camper
Date: 2014-04-12 04:15:11
Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of a thread from Glitch City Laboratories Forums.
You can join Glitch City Research Institute to ask questions or discuss current developments.
You may also download the archive of this forum in .tar.gz, .sql.gz, or .sqlite.gz formats.
I have two questions:
1. Why does Missingno. crash your game in yellow? Does it suffer the same problem as PokeWTrainer?
2. Why can't you use the Cooltrainer move to mutate Pokemon in Yellow?
The Missingno. you get is hex:32, like in Red/Blue.
The Missingno. you get is hex:32, like in Red/Blue.
The Pokemon you get depends on the last position you opened the Party menu, Item menu or the PC, whether in or out of battle. Whether the glitch occurs is likely to be depended on the RAM.
The problem I get whenever I try the "—" move (X - x can learn it at level 11) is that no matter what happens, the game simply crashes. No matter where my position is, the game just immediately crashes. Another thing I noticed is that in Yellow, opening the Pokemon menu in battle gives a Horsea instead of Missingno.
And for Missingno., is there a way to encounter Missingno. without cheats and without it crashing? (Normal form missingno., not Kabutops/Aerodactyl/Ghost Missingno)
You're just unlucky. Keep trying. I did it in Diglett's Cave after opening the Pokémon menu in battle there.
You're just unlucky. Keep trying. I did it in Diglett's Cave after opening the Pokémon menu in battle there.
Opening the Pokemon menu guarentees Horsea 100% for me. It's just when I try to get Pokemon off of the screen tiles that it crashes. What makes it differ from Red/Blue than with Yellow?
Opening the Pokemon menu guarentees Horsea 100% for me. It's just when I try to get Pokemon off of the screen tiles that it crashes. What makes it differ from Red/Blue than with Yellow?
I guess I didn't make my question clear enough :(.
What I meant to say is use the "—" move like you would is TheZZAZZGlitch's Catching rare/unavailable/glitch/over lv.100 Pokemon with the Cooltrainer move.
I made sure there was a bush tile in the correct position, yet my game crashed. Why does it work in Red/Blue, but not in Yellow?
- Sadly, all presented glitches (with exception of the first part of Harmless Super Glitch trick) do not work in Yellow. Newer versions handle battle screens a little bit differently, not allowing me to carry overworld screen data to a battle. However, the way of manipulating Super Glitch's written values remains the same. Maybe someone will find a workaround soon.
You may have to trade a Ditto with the 0x00 move from Red/Blue to Yellow (and it is no longer CoolTrainer typed on Yellow).
does anyone know what is the cause of zzazz glitch?
To start a Trainer battle, the game needs to load a lot of data, such as the trainer sprite, his pokemon and the money he'll concede if defeated. When it loads the money is where things can get really ugly. For reasons that are beyond me, money is stored in a completely different manner, the game uses a data structure of three bytes and instead of converting the value to binary, it stores it in "human" representation. For example, $123456 would be stored as 0x123456 instead of 0x01E240, the proper conversion.
Trainer missingno.s of ID 251, 252, 254 and 255 point to location with invalid money data. When the game tries to perform arithmetic with these data in said structure, it goes nuts and starts overwriting huge portions of RAM. More specifically, for every block of three bytes, two of them will contain 0x9999 (the maximum amount of money a trainer could give). This pattern repeats itself many times through RAM. To see this better, I recommend pausing the video on the emulator after the ZZAZZ trainer is faced and set VBA's memory viewer to 0xD070.
It's interesting that 153 = 0x99, as the game does use Binary-Coded Decimal for some values; for example your money ($999,999 = 99 99 99 rather than 0x0F423F). However I think this is a coincidence. From a technical standpoint, this glitch overwrites several areas of memory with two different patterns. Your Pokémon's stats all become 153, which (being 16-bit values) indicate the entire status block is overwritten with the byte pattern 0099. However your name becomes ZZxZZxZZxZZx (where x is unchanged), which indicates that block is overwritten with a different pattern: write two bytes of 99, then skip one.
Having played with the game code a fair bit, this seems familiar to me: I suspect it's actually the graphic decompression routine gone out of control due to the Pokémon having garbage graphic data. The graphic compression routines include commands such as "fill with 2-byte pattern" (0099 in this case) and "fill with byte, skipping every third." These exactly match the symptoms. Another hint is that it corrupts the player's trainer and Pokémon graphics - the first place an out-of-control graphic decompression routine is going to trash is the other graphics right nearby. HyperHacker 03:45, 16 December 2009 (UTC)