Front Sprite Crashers Revealed! Pokemon Red/Blue
Posted by: GlitchedPokemonStudent
Date: 2018-07-25 21:32:14
So, the other day, I was observing Hex C1 () and try to figure out why it crashes the game and then something happened which it happened to be caught on video!
https://www.youtube.com/watch?v=ieuJ1O36gtQ
I was thinking if that's really the cause of the crash which was a solution, or was it a coincidence? The next day afterwards, I tried that possible solution again, and surely enough, it worked without crashing!
So, the solution was this that I remembered from the 4 4 true cry follow-up video. Thanks TheZZAZZGlitch!
"Freezing the sound bank values: C0EF and C0F0"
So the true main cause of the crashing is the sprites corrupting the sound bank to invalid values around 99% of a time for Pokemon with Pokedex #205 and #211, while it's 100% or constant for Pokemon with Pokedex #224 ($ED and $EF), #245 ($E2, $E5, and $E8) and #255 ($F5).
Sound bank crashes seem more vulnerable in Red/Blue than Yellow. Yellow Missingno. crashes for a different reason more than just a sound bank corruption. But I can't say that for sure.
Finally, here are the revealed front sprites and $F5's backsprite! This was done on BGB.
https://www.youtube.com/watch?v=jjwYjcw9w_U
The #224, #245, and #255 family glitch pokemon behaves like 4 4 in Yellow, however it will crash the time it appears with lines or does the cry from that particular glitch Pokemon it is sent out and just freezes. There seem to be 6 of these in Red/Blue, while it's 4 in Yellow. 3 if you don't count the purple glitch screen one. ($E9)
The #205 and #211 sprites however, differ so much that it's depended on timing if save states are done. When it's encountered in a wild, it appears as a trainer instead. This was proven in the video as well with $C1. It's pretty much impossible to get an accurate picture from it. Although, the differ doesn't occur in VBA, but that's to be expected on a non-accarute emulator. Possibly due how it does the corruption, when those sprites finally appear, most of the time it likes to cause the low-pitched channel of Hitmonchan's cry over its usual one, but sometimes it will play the usual cry afterwards anyway.
Finally, $F5's backsprite is constant, but it always messes up the current music which likely touched the sound bank values as well. The short glitch music before it finally comes out is always the same with sometimes a different start though.
And there you have it. I don't know how useful this information will be, but I'm glad I figured it out and solved my objective. However, I don't think there's a way with glitches to freeze addresses like that in-game. I don't think 8F can perform an action that makes the values stay fixed, but I could be wrong.
Thank you.