O Mistério de MissingNo Resolvido

O mistério foi desvendado!

Pergunta: O que é o MissingNo?
Resposta: É um pokémon glitch, o mais famoso deles, que aparece por causa de um defeito nos primeiros jogos pokémon para Game Boy. Muitos se referem erradamente a outros pokémons glitchs dos jogos da 2ª geração em diante como sendo "MissingNo", mas apenas o que aparece em G/R/B/Y é o verdadeiro.

Para a maioria das variáveis usadas na programação dos jogos de Game Boy, o máximo de variáveis são 256 (100 em hexadecimal), numerados de 0 a 255 (00 a FF em hexadecimal). Isso vale para a maioria das variáveis em RBY, incluíndo para todos os slots (espaços) que possuem dados dos Pokémons. Entretanto, somente 151 Pokémons existem em RBY. Então, se existem 256 possibilidades, e somente 151 slots foram definidos pelos programadores para os Pokémons da primeira geração, o que contém os outros 105 espaços? Dados aleatórios, alguns usados para guardar os sprites dos Fósseis, outros não usados em nenhuma parte do jogo. Ao usar algum código ou truque para aparecer algum "pokémon" destes 105 espaços, o jogo não encontra dados suficientes, e por isso às vezes aparece um "pokémon" com o nome MissingNo (que significa "número perdido", como se fosse uma mensagem de erro).

Pergunta: Como eu o encontro?
Resposta: Não sabe como encontrá-lo? Então você precisa jogar mais RBY. Mas se você é um daqueles que ainda não descobriu como achá-lo, aí vai: Converse com o homem idoso ao norte de Viridian, e deixe-o pegar um Weedle. Então voe para Cinnabar (você também pode ir à Fuchsia e surfar pelas Ilhas Seafoam, mas isso é muito mais lonje) e surfe de cima para baixo na costa pelo lado direito de onde tem terra, bem encostado nela. Após um tempo, você irá encontrar muitos Pokémons não-naturais (chamados "Pokémon glitchs") do local em altos níveis, e também MissingNo (ou seu parente 'M).

Pergunta: Como o truque acima funciona?
Resposta: Há duas coisas que, quando combinadas, tornam possível que o bug acima ocorra. São elas:


1- Quando o homem idoso captura o Weedle, as variáveis onde estava guardado "seu nome" são alteradas temporariamente para "OLD MAN" (é por isso que aparece "OLD MAN used POKé BALL"). Mas para que isso fosse possível, o jogo guarda as variáveis que formavam "seu nome" em outro lugar, para que elas pudessem ser recuperadas depois (e seu nome voltasse ao normal). Os programadores decidiram guardar a informação do seu nome na variável que especifica quais pokémons podem aparecer nos matinhos (grass) de Veridian (espaço este que é vazio, já que Viridian não possui matinhos). Normalmente isso não causa anormalidades, porque ao entrar numa rota que possui matinhos os dados são substituídos. Ao voar diretamente para outra cidade, no entanto, esses dados permanecem, já que nenhuma cidade possui grass. Porém....

2- Por um descuido, a 1ª linha (com largura de um quadrado) de água do lado direito de Cinnabar e das Seafoam Islands foram programados como sendo um lugar de grama (!). Mas eles deixaram em branco quais Pokémons poderiam aparecer ali. E é aí que o bug acontece. Você voa para Cinnabar ou Fuchsia, e os dados de "pokémons encontrados em matos" permanece com o seu nome, já que essas cidades não tem matinhos e muito menos pokémons programados nos matos. Ao surfar pelo mar, esses dados continuam porque não existe grama nessas rotas. Mesmo que a beirada de terra das ilhas Seafoam tenham sido programados como sendo grama, não foi programado quais pokémons podiar ter ali, por isso... o jogo acaba usando os dados do seu nome (que foram guardados lá no início ao falar com o velho) para definir os pokémons desse lugar!

Lembra que dissemos no início que existem 151 pokémons e 105 espaços vazios no jogo? Por causa do bug, alguns desses espaços vazios são acessados como sendo "pokémons". Justamente por isso, você pode encontrar não apenas MissingNo, mas vários outros pokémons glitchs. As espécies e seus níveis são definidos pelo nome que você escolheu para seu personagem, que acabou ficando guardado nas variáveis que definem que pokémons podem aparecer!

Vejamos agora como saber (ou até escolher!) o nível e quais pokémons glitchs podem aparecer...

Pergunta: Como eu determino os níveis?
Resposta: Primeiro de tudo, olhe as letras 2, 4 e 6 de seu nome. Essas letras vão determinar o nível dos Pokémons que você pode encontrar. Primeiro, pegue o NÚMERO equivalente de cada letra (A=1, B=2, etc) e acrescente 127 se forem letras maiúsculas ou 159 se forem minúsculas. Além disso, se for os seguintes símbolos:

( = 154
) = 155
: = 156
; = 157
[ = 158
] = 159
Pk (da abreviatura de PkMn) = 209
Mn (da aberviatura de PkMn) = 210
? = 239
$ = 240
x (há um "x" abaixo do "S" na escolha do nome, mas é um símbolo) = 241
. (ponto) = 242
? = 245

Também, no final de seu nome, o jogo introduz um 80 (50 em hexadecimal) para indicar o "fim do nome". Devido a como as variáveis são usadas, isso faz com que o MissingNo (ou seu parente 'M) possa aparecer também no level 80.

Exemplificando, se você colocar DANILO no nome (A = 1+127, I = 9+127, O = 15+127), os pokémon glitchs poderão aparecer nos níveis 128, 136 ou 142.

Pergunta: Espécies determinadas pelo nome? Legal! Vou começar um novo jogo e vou tentar pegar o Mew sem usar códigos!
Resposta: Vá com calma. Como são determinados pelo nome, o menor número que pode ser associado a uma letra (exceto o 80 que indica o "final do nome") é 128, da letra A maiúscula (letra A = 1, some 127 e dá 128). De TODAS as variáveis que designam os Pokémons, Mew está associado ao número 21 (15 em hexadecimal). Isso significa que NENHUM nome que você digitar irá abrir a possibilidade de Mew aparecer. Os números baixos como 21 equivalem a caracteres bugados que não estão disponíveis na janela de escolha do nome do personagem, a não ser por gameshark. Para sua conveniência, aqui está uma tabela de quais Pokémons podem aparecer para cada letra. As letras 3, 5 e 7 são usadas para determinar os Pokémons:

A: Golduck
B: Hypno
C: Golbat
D: Mewtwo (Essa é sua oportunidade!)
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 (Pegue todos os iniciais sem trocas!)
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 (Pegue todos os iniciais sem trocas!)
r: Squirtle (Pegue todos os iniciais sem trocas!)
s: Charmeleon
t: Wartortle
u: Charizard
v: Missingno
w: Missingno (FÓSSIL DE KABUTOPS)
x: Missingno (FÓSSIL DE AERODACTYL)
y: Missingno (Forma GHOST)
z: Oddish

No caso anterior, com o nome DANILO, podem aparecer os pokémons Electrode (N), Cloyster (L), e MissingNo (como não tem a sétima letra, o espaço no final conta como 80, que é um dos números de index do MissingNo). Para nomes com 4 letras ou menos, não se sabe ainda como são definidos os pokémons e os níveis.

Para mais detalhes, veja a lista de pokémons da 1ª geração pelo index number (página em inglês).

Obs: Se você for tentar fazer o truque, NÃO use os caracteres especiais em seu nome. Se você fizer isso, acabará encontrando Trainers para batalhar. Você não será capaz de sair da batalha, e eventualmente um dos Pokémons dele pode vir com bugs que travariam (e provavelmente apagariam) seu jogo. Outro detalhe, a espécie determinada pela letra 3 virá com o nível determinado na letra 2, a espécie da letra 5 virá com o nível da letra 4, e a espécie da letra 7 virá com o nível da letra 6.