Why do Missingno and 'M have the same sprite? - Page 1
Im really not sure. Most glitch pokemon have completely different sprites.
If I were to guess, it'd be cause Missingno. and 'M share the same sprite family. Same reason you have hybrids and pokemon like Charizard 'M has charizard's sprite.
Glitch Pokémon that share the same Pokédex number may share the same sprites, and often do, but it may also depend on their index number group. Having the same Pokédex number means they use the same two byte pointers to their sprite and sprite dimensions. The Pokémon base stats data structure begins at 0x0383DE, in Pokédex order, not by index number. This document may be useful for understanding this a little better, and for background information of where Missingno. and 'M get some of their data from.
For some reason, Missingno. and 'M share the same Pokédex number, hence they share most of the same sprite data, base stats, types, catch rates, base experience, starting moves, experience group and TM/HM comptabilities, because this data is all in that data structure.
The index number also matters. This is apparent with hybrid glitch Pokémon (some don't look like real Pokémon). According to Bulbapedia's base stats data structure article, the bank where the frontsprite is located depends on the index number of the Pokémon:
0x00 to 0x1E 0x09
0x1F to 0x49 0x0A
0x4A to 0x73 0x0B
0x74 to 0x98 0x0C
0x99 to 0xFF 0x0D
So if this is relevant here, this means that even though two Pokémon may share the same sprite pointer, its index number would cause it to be in a different bank (it would be a different three-byte pointer). But I think the reason why all Red/Blue Missingno. except for the fossil and ghost Missingno. share the same sprite is because their pointer 1900 is in ROM bank 0. So regardless of the bank the sprite would be the same? (correct me if I'm wrong)
By coincidence, Missingno. and 'M are the only Pokédex #00s in Red and Blue but in Yellow the glitch Pokémon g g (hex: C8) and Pokédollar (hex: F9) are #00 too. This means they use the same two byte pointer, dimensions and backsprite of Yellow Missingno.'s sprite.
Little known fact: If you patch Yellow Missingno.'s sprite (e.g. with Game Genie codes 00F-CDA-F72, 40F-CEA-E6A), you may find there are four groups of invalid Yellow Missingno. front sprites; $1F-45, $4F-73, $79-$92, $9C-B5 (technically all the way to FF if there were Missingno. there, but): $B6-$B8 are the fossil and ghost Missingno. sprites which never change even if you alter Yellow Missingno.'s sprite data dictated by its base stats data structure.
Due to gg and Pokédollar's index numbers both being in the fourth group, they share the same sprites with each other and with $9C, $9F, $A0, $A1, $A2, $AC, $AE, $AF, $B5 Missingno.
Edit: But Yellow Missingno.'s normal sprite pointer is 00 06, in ROM bank 0 like Red/Blue Missingno., so without the randomness involved all 36 non fossil/ghost Missingno. should share the same sprite, methinks.
I have one question about Yellow Missingno. Torchikens mentioned in another thread:
There is a massive error in it that the Yellow B6/B7/B8 Missingno. are different to the fossil/ghost Missingno. but you get glitch sprites like that as a result of the enemy species modifier code (01xxD7CF) instead of encountering them the proper way via Ditto glitch.
Just wanted to ask if anyone knows why this happens? I tried to modify 0xD058, and sprite was normal (like in RB) but via 0xCFD7 - scrambled tiles. I'll throw a wild guess that it somehow involves wrong bank, but i'll better wait for more experiensed user's answer. Btw, i checked not via Gameshark: i did access breakpoint in bgb (write to 0xCFD7) and changed value in register A.
One interesting thing about 'M and MISSINGO. is that they don't actually have the same sprite in the spanish red and blue games; Pokémon Azúl & Pokémon Roja
Here's some pictures just to show what i mean.
Oooh. Spanish glitch pokemon are fabulous.