Sistema de codificación de la Primera Generación de Pokemon

En un artículo anterior he mencionado que Pokemon usa una codificación diferente a la ascii estándar para las cadenas de texto, esta codificación es una codificación propietaria. Cada carácter ocupa 1 byte y la codificación depende de la región del juego, por ejemplo, no es lo mismo el juego de caracteres que posee la versión japonesa que el juego de caracteres que posee la versión europea.

Por encontrarnos en Europa, voy a detallar el juego de caracteres de la versión europea.

  • El byte 0x00 es el carácter nulo
  • Del byte 0x01 al 0x47, ambos inclusive. son datos no usados en la versión europea.
  • Del byte 0x48 al 0x5F, ambos inclusive, son usados como caracteres de control.
  • Del byte 0x60 al 0x7E, ambos inclusive, son datos no usados en la versión europea.
  • Del byte 0x80 al 0xBF, ambos inclusibe, son caracteres imprimibles y que se detallaran a continuación.
  • Del byte 0xC0 al 0xDF, ambos inclusive, son datos no usados en la versión europea.
  • Del byte 0xE0 al al 0xFF, ambos inclusive, son caracteres especiales y números imprimibles (a excepción 0xE9, 0xEA y 0xEB).

 

n14

Veamos un ejemplo, el nombre de nuestro usuario se guarda en RAM en la dirección 0xD158 como se muestra a continuación

c001

Como se puede ver en la dirección de memoria mencionada podemos ver 0x80 0x80 0x87 0x50 que si miramos en la tabla superior damos cuenta que corresponde a ASH y que 0x50 es un carácter de control, generalmente para delimitar cadenas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *