Missingno: A Verdadeira Explicação

O Mistério de MissingNo Solucionado

O enigma 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 erroneamente a outros pokémons glitches 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 R/B/Y. 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 R/B/Y. 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 longe) e surfe de cima para baixo na costa pelo lado direito de onde tem terra, bem encostado nela (parte metade terra e metade água). Após um tempo, você irá encontrar muitos pokémons não-naturais (chamados “Pokémon glitches”) 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 o “seu nome” são alteradas temporariamente para “OLD MAN” (é por isso que aparece “OLD MAN used POKé BALL”, o termo “old man” irá sobrescrever o seu nome nesse instante). 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 voltar ao normal). Os programadores decidiram guardar a informação do seu nome na variável que especifica quais pokémons podem aparecer nos matinhos de Viridian (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 matinhos. Porém….

2- Por um descuido, a 1ª “linha” 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 de nº 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, C=3, 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
P (símbolo monetário) = 240
x (símbolo de multiplicação) = 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 glitches 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 de nº 3, 5 e 7 de seu nome 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 deles pode vir com bugs que travariam (e provavelmente apagariam) seu jogo. Outro detalhe, o pokémon determinado pela letra 3 virá com o nível determinado na letra 2, o pokémon da letra 5 virá com o nível da letra 4, e o pokémon da letra 7 virá com o nível da letra 6.

Pergunta: Existe algum código GameShark para trocar o meu nome? Não quero iniciar um novo jogo!
Resposta: Bem, já que está usando GameShark, porque já não captura o pokémon que quer usando o código do respectivo pokémon? Em todo caso, se quer mesmo alterar o seu nome, eis o código:

Letra 1: 01xx58D1
Letra 2: 01xx59D1
Letra 3: 01xx5AD1
Letra 4: 01xx5BD1
Letra 5: 01xx5CD1
Letra 6: 01xx5DD1
Letra 7: 01xx5ED1
Fim do nome: 01505FD1

Os “xx” são valore hexadecimais.