Emezeta.com

La historia de Missingno


Quizás hayas escuchado alguna vez el nombre de Missingno (también llamado frecuente y erróneamente missigno). Pero... ¿Qué o quién es Missingno?

En la época en que el fenómeno Pokémon arrasaba, salieron dos juegos para Gameboy (Pokémon Rojo y Pokémon Azul) donde parece que podía conseguirse, tras mucho esfuerzo, este pokémon oculto de aspecto bastante curioso, similar a una pieza o bloque de tetris.

MissingNo: El pokémon misterioso

Curioso, misterioso y enigmático Pokémon, llamado Missingno.

Sin embargo, no era tal cosa. Quizás estemos frente a uno de los errores de programación (medio bug, medio glitch) que más famosos se han hecho, por sus estrambóticas y curiosas consecuencias.

1. Introducción: ¿Qué es Pokémon?

Pokémon para Gameboy fue un juego que tuvo mucho éxito, debido a la utilización de una fórmula muy adictiva: coleccionar los distintos pokémon existentes y convertirse en el mejor.

Debido a la naturaleza humana (competitiva) esto se convirtió en un genial sistema de juego. Una carrera por conseguirlos todos, que incluso permitía profundizar en la historia de los distintos animalitos existentes, montando todo un universo sobre él.

Batalla Pokemon donde aparece Missingno

Batalla Pokemon: ¡Un Missingno salvaje ha aparecido!

La aparición de un desconocido Pokémon, practicamente sin documentar y del que nadie había oído hablar, se convertía en todo un suculento reto para los jugadores más competitivos: destacar sobre los demás y capturarlo.

2. Pero... ¿Qué era realmente Missingno?

Como muchos habrán supuesto, al ver la imagen anterior de Missingno, este misterioso Pokémon no era tal, sino la representación gráfica de una corrupción de datos:

Representación gráfica de dos imágenes con los datos corruptos

Esto no es más que, errores de algún tipo (o información no prevista) que hace que al representar la imagen no se muestre como debería, altere parcial (o totalmente) los resultados o mezcle fragmentos de varias imágenes diferentes.

3. El nacimiento de Missingno

El lector se puede estar preguntando... «¿Pero cómo es posible que se cree todo un personaje nuevo? ¡Alguien tuvo que crearlo!». La historia es realmente muy curiosa, ya que se basa en un encadenamiento de tres situaciones diferentes, que intentaré explicar sin utilizar demasiados tecnicismos:

Area del mapa no prevista

Los mapas del juego tienen ciertas zonas donde se pueden encontrar algún pokémon salvaje, por lo que internamente, estas zonas se asocian con un número que representará el pokémon salvaje que aparecerá ahí (cada número identifica a un pokémon determinado).

Estos números se guardan en una zona llamada buffer de datos, que es un espacio de memoria donde se guarda información de la partida del jugador.

Pokémon: Asignación de pokémon salvaje en áreas de un mapa

Sin embargo, hay una zona del mapa, por la que no se debería poder caminar (ni teóricamente navegar), y por lo tanto, no tiene asociada información sobre el pokémon salvaje que aparecería en ese lugar.

El reemplazo del Anciano (Old man)

En una parte del juego, el jugador puede hablar con un anciano que le enseña a capturar. En ese momento, se muestran algunas imágenes con el anciano tomando el rol de jugador (en la parte inferior izquierda).

Los programadores decidieron guardar temporalmente el nombre real del jugador en el buffer de datos, reemplazándolo por el del anciano mientras realizaba la demostración de la captura de Pokémon, y posteriormente volviéndolo a recuperar.

Pokémon: Reemplazo del nombre del jugador por el anciano en el buffer de datos.

El problema es que, la zona del buffer de datos donde se guardaba el nombre del jugador, coincidía con la zona donde se guardaba el pokémon salvaje que se podría encontrar en la región «no-caminable» del mapa anterior.

Así pues, tras hablar con el anciano y viajar directamente a esa región del mapa (para evitar alterar el buffer de datos) teníamos zonas con varios pokémon salvajes sin determinar desperdigados, que dependían directamente del nombre de nuestro jugador (recordar que las letras en un PC, equivalen a una representación numérica).

El manejo de excepciones

En el mundo de la programación, existe un concepto llamado manejo de excepciones. Básicamente, se trata de una acción especial a realizar en el caso de que ocurra un evento concreto (generalmente un error o problema).

Al pasar por una región del mapa donde podría haber un pokémon salvaje (hierba, mar...), el juego buscaba en el buffer de datos, encontraba el número del tipo de pokémon, lo buscaba en su «diccionario interno» para saber de que pokémon se trataba (imaginemos que son del 100 al 250) y lo mostraba en la batalla.

Pokémon: Manejo de excepciones para un Pokémon de número desconocido.

Pero en el caso del que hablamos, en lugar de un número concreto (previamente preparado por el programador) teníamos las letras del nombre de nuestro protagonista (por ejemplo, la A es 65) que podrían representar tanto a un pokémon concreto del diccionario como un número que no represente a ningún pokémon.

Al no encontrar el número en el diccionario interno, se activa la excepción MissingNo (del inglés, Missing No.: número desconocido, número no encontrado) mostrándolo como el pokémon encontrado.

4. La inocente repercusión

Aunque el juego tenía un ámbito muy amplio, estaba orientado en su mayoría a un público infantil, que al desconocer todo este tipo de detalles, su lineal juego se convertía en algo que «cobraba vida» y lo asociaban a un misterioso y aún no descubierto pokémon.

Para terminar de rizar el rizo, este problema (que no deja de ser un error de corrupción de datos), alteraba el curso normal del juego, produciendo, como parece obvio, todo tipo de errores que despertaban la curiosidad del inocente jugador:

  • Imagen visual: Generalmente se mostraba esa «pieza», aunque en otras ocasiones se mostraban otros sprites poco usados como un fantasma o los fósiles pokémon de un museo (Si ya era misterioso el Missingno, imaginen cuando les aparece a un niño un pokémon no documentado en formato de esqueleto o fantasma...)
  • Puntuaciones o acciones: Todo tipo de errores se podía ver en los niveles, puntuaciones o energía de los diferentes pokémon, en el que su funcionamiento normal se volvía totalmente impredecible.
  • Sonido corrupto: Como se puede ver en el siguiente vídeo, la música sufría el mismo problema de corrupción de la imagen, sin embargo, a veces el efecto producido era el de nuevos sonidos y canciones que resultaban bastante curiosas para alguien que desconocía toda esta historia.

5. La repercusión en Internet

Como siempre, la fantástica repercusión en Internet de este fenómeno se propagó por la red y se puede encontrar en forma de inteligentes gags humorísticos y referencias de todo tipo, al estilo del Nyan cat o el Whale meme.

Pokémon: Cosplay y recortable (papercraft) de MissingNo.

Existen desde Recortables (Papercraft) de Missingno hasta peluches de Missingno, pasando por cosplays y crossovers con otros memes como el del Staredad:

Staredad Meme: MissingNo.

Ahora que ya conoces la historia, ten mucho cuidado. Nunca sabrás cuando puedes encontrarte con un Missign%$%@#..42!&