Other Features MissingNo's identity: A scientific approach

Status
Not open for further replies.
I do have something in mind... possibly for Issue 28, since in 27 im gonna work in the second part of the rby underdog article. This is a completely different thing though, definitely won't suit people looking for an "easy read", but I think it can be potentially very interesting. I don't know whether to expect it to be approved or not for that reason. My point would be to explain why MissingNo (in red/blue) is who he is, why he has the stats it has, the typing, learns Water Gun x2 and Sky Attack instead of Leech Life or whatever, its learnset, height/weight, how the old man glitch is possible (the most common way to get MissingNo), but obviously this has to be done in a very "scientific" approach, so that the reader can understand where all the data (in hex) that defines MissingNo comes from and stands for. So that's how the article would look like (likely in that order):

- Explain a bit about the hexadecimal numeration, explain that in a red/blue rom, each byte (a number between 0x00 and 0xff) defines something. Explain what pointers are.
- Explain the fact that originally 190 pokemon were intended to appear, but only 151 were finally released. Explain difference between index number and pokedex number (entry). Explain that the other 39 pokemon were left as "MissingNo", and all point to pokedex entry 0x00 but have a different index number.
- Explain how does the old man glitch work and why does it work (ciannbar island has wild pokemon identifiers but no pokemon data, so when old man overwrites your name, your name overwrites wild data and blah blah).
- Explain where Missingno's data comes from. For that, explain first how "base stats data" works and what each byte in the base stats data structure stands for (stats, type, tm/hm flags etc). Explain that there is only a pointer to the starting location of the base stats data, and it's ordered by pokedex number, and due to missingno's being 00 in pokedex, when you do -1 it underflows to ff, then it points to something that isn't base stats data of any pokemon (since it ends with 151 or mew), instead it is used data for trainers, that also happens to define Missingno... What I have in mind would be explain both how does that data affect missingno's identity, and what does that data do in reality (thus, explaining how trainer data structure works would be necessary).
- Same for height/weight data and learset data, explain that in these cases, there is a pointer for each pokemon with an index number, and that MissingNo's data in these cases only affects MissingNo and it's not data used for other purposes that MissingNo randomly happens to point there.

And well, that's it. You know, i'd obviously try to explain it as easily as possible, but anyway this is something that can be considered either extremely interesting, or extremely difficult to understand. Everything needs to be proved with hex values, pointers and locations so it could be not be the kind of topic or article the smog wants and I understand it. It's your choice :P. As for my knowledge in the topic, just in acse you are wondering, I'm more familiar with gsc hacking (still pretty noobish lol), but this is something that only requires basic understanding of hex and pointers since there is a lot of info in the web as well and mostly you just have to understand it and obviously know how to prove it by yourself to make an accurate article.

In short, I just came up with this and thought it could be an interesting topic, at least something "different" so to speak.
 
This is cool. I can't verify any of the stuff you're talking about though as I have little familiarity with the subject, so I do hope you know what you're talking about. :P If there are no objections soon, I'll approve -- there's no rush, since you want this approved for Issue #28 and Issue #27 hasn't even commenced yet.
 

Toast++

Nexus is literally the worst.
is a Site Content Manager Alumnusis a Battle Simulator Admin Alumnusis a Programmer Alumnusis a Top Researcher Alumnusis a Top Smogon Media Contributor Alumnusis an Administrator Alumnus
I love this kind of thing and I do know a few others that would, as well. I can vouch for the general reasoning of the glitches (data overflow that disrupts the pointers used elsewhere) but I don't know the specifics here.

My only concern is making it understandable for the average reader. I suppose this would cater to a specific audience that would be more inclined to understand, though. I don't see anything wrong with that.

Support from me.
 
Thanks for the support guys!

Thinking that it may be a good idea to talk about what defines a pokemon in general before getting into specifics with MissingNo. I'm not planning to get into more advanced stuff like cries or sprites themselves firstly because I'm not 100% familiar with it and secondly because that could be too advanced. So it would be to first briefly explain how base stats data, pokedex data and learnset/evolution data works.
 
I can vouch for the general reasoning of the glitches (data overflow that disrupts the pointers used elsewhere) but I don't know the specifics here.
Well, MissingNo doesn't exacly exist because of data overflow so to speak... It's hard to explain it in just one paragraph, but the thing is that now it comes to mind that I would probably have to talk about "garbage pokemon" as well. In general, MissingNo is a Pokemon (well, 39 Pokemon) that does actually have data pointing to a pokedex entry of 00, because the other 39 pokemon that were planned to appear (pressumably), were all basically left as the same pokemon (only differences in cry or sprite (remember ghost, aero/kabutops fossils?) may occur), that have no assigned data and all point to 00 in the pokedex. And, because they point to 00, that's when 00 overflowing come in, making it read stats data as if it was pokemon number 256 or 0x100 in the pokedex.

"Garbage Pokemon" weren't assigned a pokedex entry, but they actually do have one, because the game keeps reading from the "pokedex order" table when it ends with Victreebel (index number 190, last pokemon) until pokemon with index number of 0xFF or 255. These pokemon weren't "implemented", they just exist because of how the game works internally. In that table for example (starting at offset 0x40124) , the first byte is 0x70, which means that the pokemon with index number of 1 (rhydon) has a pokedex entry of 114. In the table all 39 MissingNos point to 00. After Victreebel's byte (offset 0x410E1, where the table is supposed to end), you see a 0xFA, which has nothing to do with the pokedex order table data and affects something else in the game. But it is also the number that defines the pokedex entry of the garbage pokemon with an index number of 191 since the game just keeps reading. This causes the game assign stats data to that garbage pokemon as if it had a pokedex entry of 0xFA, so that data would be located before and near MissingNo's data and obviously would be data meant for other stuff (possibly trainer data as well).

That's where pokemon known as "hybrids" come from, because for example after the 0xFA byte, it comes a 0x3D byte (or 61 that is, poliwrath), which means that the pokemon with an index number of 192, would point to Poliwrath's pokedex entry and thus stats data. And just in case I left you with interest :P this is the result: http://bulbapedia.bulbagarden.net/wiki/A

Sorry about the wall of text lol but this is something i really enjoy toying with and talking about! Well i guess this also tells you a bit about how the artcile would be. This could easily be a part of the article, obviously explained in a clearer way!
 

sandshrewz

POTATO
is a Site Content Manager Alumnusis a Top Artist Alumnusis a Forum Moderator Alumnusis a Top Contributor Alumnusis a Top Smogon Media Contributor Alumnusis a Battle Simulator Moderator Alumnus
I might not understand everything here (mainly the byte thing) but the way you tried to explain it is pretty interesting and kept me reading lol :) I don't think The Smog has ever had a similar article; very interesting topic and I think you can present it well. This has my support too :)
 
Okay, approved! You don't need to make a placeholder thread until the issue you intend to write it. You know what to do by now, I think~ Thanks for the interesting application!
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top