葱级毁灭吧 关注:158贴子:14,644

【转帖】底层分析口袋妖怪rom的bug

取消只看楼主收藏回复

英文的,锻炼一下英文水平吧
内容大概是“乱码兽”的
Mystery Solved! 
Q: What is Missingno.?
A: For most variables on Game Boy games, the fewest possibilities for the variable is 256 (HEX 100), labeled 0 to 255 (HEX 00 to FF). This goes for most variables in RBY, including ones for all the Pokemon lookup slots. However, only 151 Pokemon exist in RBY. So, if there are 256 possibilities, and only 151 slots were defined by the programmers, what do the other 105 slots have? Glitches. And so, Missingno. was created. 
Q: How do I find it?
A: You don't know how to find it? Go play some more RBY. But, if you're one of the outcasts who doesn't know how to find it, here goes. Talk to the Old Man at the northern edge of Viridian, and let him catch a Weedle. Then, Fly to Cinnabar (you can also go to Fuchsia and Surf to Seafoam Islands, but that takes a lot longer) and Surf up and down the right edge. After a while, you'll run into some unnatural Pokemon at high levels, and Missingno. (or a Pokemon with a glitched name containing 'M in the middle). NOTE: THIS DOES NOT WORK IN YELLOW, OR THE EUROPEAN VERSIONS OF THE GAME.
Not true! I've received reports of MissingNos and 'Ms from European players!!! 
(At this point, it gets very complex. You'll be better off reading the rest if you know how to hack.) 
Q: Why does the above trick work?
A: There are two things that, when combined, made it possible for this trick to exist. Here they are: 
1. When creating the map for what Pokemon appear where, they made a crucial flaw. The 1-square-wide strip of water on the right side of Cinnabar and Seafoam Islands was programmed to be a place where wild Pokemon CAN appear. But (and thank GAMEFREAK for this one) they forgot to define what Pokemon can appear there. This wouldn't be that big of a deal, except that means the previous settings for "what Pokemon can appear" will remain, and if you read #2, you'll see why that causes the glitch. 



1楼2009-03-11 22:37回复

     
    2. When the Old Man catches the Weedle, they change the variables that are assigned to "Your Name" to Old Man, so it shows up as "Old Man threw the Poke Ball." Now, in order to do that, it overwrites the variables you gave to "Your Name". Therefore, the game must store the variables that make up your name to another place, so it can recall them later. So the programmers at NOA probably thought,
    "What are some variables that we can overwrite to assign to the character's name for this process?"
    "I got it! How about the slots that define what Pokemon you can run into?"
    "That's it! Whenever the character enters a new area, they'll be rewritten, so it won't disturb the game at all!"
    *points to #1* Umm.....no. As a result, that wonderful glitch can be yours for only *insert whatever price your local retailer charges for R/B*! Of course, it's not JUST Missingno. you can run into. There will also be some L100+ Pokemon, whose species and levels are determined by your name. 
    *sees audience sleeping*
    *turns on 12-inch subwoofers at full blast*
    There. Now that I have your attention,.... 
    Q: How do I determine the levels? 
    A: First off, look at letters 2, 4, and 6 of your name. Those letters will determine the levels of the Pokemon you can run into. First, take the NUMERICAL equivalent (A=1, B=2, etc.) of those letters, and add 127 for uppercase or 159 for lowercase. In addition, the symbols are as follows: 
    ( 154
    ) 155
    : 156
    ; 157
    [ 158
    ] 159
    PK 209
    MN 210
    ? 239
    P(monetary symbol) 240
    x(times sign) 241
    . 242
    ? 245
    Also, at the end of your name, the game inserts an 80 (HEX 50) to designate "End of Name". Because of how the variables are used, this means that one of the levels your Missingno. (or glitched 'M name) will be is always L80. 
    


    2楼2009-03-11 22:37
    回复

      Q: Species determined by name? Cool! I'll get a new name and try that so I can get Mew WITHOUT SHARKING! 
      A: Hold it right there. While it is determined by name, the lowest number assigned to a character (other than the 80 that is assigned to the "End of Name" character) is 128, for a capital A. In EVERY variable that designates a Pokemon, Mew is assigned the number 21 (HEX 15). If you can make the connection, that means that NO name you enter will result in Mew being a possibility. The low numbers like 21 represent glitch characters that are not available for naming anything and can only be found with a Shark. For convenience, here is the table of what Pokemon will appear for each letter. Letters 3, 5, and 7 are used to determine this: 
      A: Golduck
      B: Hypno
      C: Golbat
      D: Mewtwo (BIG OPPORTUNITY HERE!)
      E: Snorlax
      F: Magikarp
      G: Missingno.
      H: Missingno.
      I: Muk
      J: Missingno.
      K: Kingler
      L: Cloyster
      M: Missingno. ('M)
      N: Electrode
      O: Clefable
      P: Weezing
      Q: Persian
      R: Marowak
      S: Missingno.
      T: Haunter
      U: Abra
      V: Alakazam
      W: Pidgeotto
      X: Pidgeot
      Y: Starmie
      Z: Bulbasaur (Get all the starters without trading!)
      a: Missingno.
      b: Missingno.
      c: Missingno.
      d: Ponyta
      e: Rapidash
      f: Rattata
      g: Raticate
      h: Nidorino
      i: Nidorina
      j: Geodude
      k: Porygon
      l: Aerodactyl
      m: Missingno.
      n: Magnemite
      o: Missingno.
      p: Missingno.
      q: Charmander (Get all the starters without trading!)
      r: Squirtle (Get all the starters without trading!)
      s: Charmeleon
      t: Wartortle
      u: Charizard
      v: Missingno.
      w: Missingno. (KABUTOPS FOSSIL)
      x: Missingno. (AERODACTYL FOSSIL)
      y: Missingno. (GHOST)
      z: Oddish 
      Note: If you want to try the glitch, DO NOT use one of the special characters in your name. If you do, you might end up facing a Trainer. You will not be able to get out of the match, and eventually one of their Pokemon will be a glitch that can freeze (and possibly erase) your game. Also, species from 3 goes with level from 2, species from 5 goes with level from 4, and species from 7 goes with level from 6. 
      


      3楼2009-03-11 22:37
      回复

        Q: How do I shark a name change? I want that "DxDyDzD" name without having to restart! 
        A: Well, if you're sharking, just go ahead and get the Pokemon that way. But if you want a name change, here it is:
        Letter 1: 01**58D1
        Letter 2: 01**59D1
        Letter 3: 01**5AD1
        Letter 4: 01**5BD1
        Letter 5: 01**5CD1
        Letter 6: 01**5DD1
        Letter 7: 01**5ED1
        End Name: 01505FD1
        That ends this venture into the World of Glitches. If you are still here, consider yourself lucky to understand what I was saying. 
        


        5楼2009-03-11 22:37
        回复
          附图片:
          missingno('m)(不知中文版如何显示)


          28楼2009-03-15 14:27
          回复
            附图片:
            刀盔骨


            29楼2009-03-15 14:28
            回复
              附图片:
              RS/EM中的问号兽


              30楼2009-03-15 14:29
              回复
                附图片:
                missingno四合一


                31楼2009-03-15 14:32
                回复
                  18L: mew是梦幻啊……


                  32楼2009-03-15 14:33
                  回复
                    附图片:
                    恶搞版misssingno


                    33楼2009-03-15 14:35
                    回复
                      G/S版本中的missingno,因为G/S中有251只精灵,所以missingno槽位只有5个,比较珍稀


                      34楼2009-03-15 14:36
                      回复
                        G/S


                        35楼2009-03-15 14:37
                        回复
                          RS/EM中另一种问号兽


                          36楼2009-03-15 14:39
                          回复
                            参考资料:http://trsrockin.com
                            www.pokemonaaah.net
                            P.S.请大家努力找出G/S版本中missingno的产生规律及原因


                            37楼2009-03-15 14:41
                            回复
                              34L:打错了,槽位只有4个,No.252-255


                              38楼2009-03-15 14:42
                              回复