Hooal

domingo, 20 de enero de 2013

Destripando un cartucho de Gameboy (Pokémon Red): Parte 1

El día de hoy destriparemos un cartucho de Gameboy para ver que es lo que tiene dentro.
El cartucho que vamos a abrir será el de Pokémon en su versión Roja. Un juego clásico que seguro mantuvo ocupados a muchos de nosotros durante nuestra infancia, adolescencia e incluso hasta ahora.

Bien podrás preguntarte.. ¿Qué es lo que tiene un cartucho de Gameboy dentro? ¿Cómo funcionan los cartuchos? ¿Cómo salvan los cartuchos? ¿Cómo es que permiten identificar los passwords los cartuchos? ¿Hay manera de duplicar/clonar o programar tus propios cartuchos? Contestaremos todas las preguntas anteriores a excepción de la ultima ya que a esa le toca un post especial debido a la complejidad del tema.   

Viendo un Gameboy desde una perspectiva ingenieril, éste es un sistema digital controlado por un microprocesador (una variante del Zilog z80, un microprocesador de 8 bits). El Gameboy Posee periféricos de Entrada/Salida (Botones, cartucho y pantalla), una unidad de procesamiento (CPU, el Zilog mencionado arriba) y memoria RAM (Para agilizar operaciones digitales). Con esta comprensión ya podemos entonces saber que el Gameboy es solamente un interprete del cartucho. Como es lógico  cada cartucho diferente es un juego diferente, sin embargo la esencia es la misma. Todos los juegos comparten un núcleo común (con alguna ligera variante según la complejidad del juego y sus características) pero el mecanismo de funcionamiento a fin de cuentas es el mismo. 

Si pudiéramos ver lo que hay dentro del cartucho de Pokémon Red nos encontraríamos con lo que nos muestra la siguiente imagen.


Un cartucho que ofrece posibilidades de guardar como el que estamos operando contiene 5 elementos clave:

  • ROM (C983338-M / MX23C402-20/ DMG-ZLE-2 E1 / 1P0381Y1)
  • RAM (HY6264/LLJ-10/KOREA)
  • MBC (DMG / MBCIB1)
  • CONVERSOR DC/DC (6129A 8771)
  • BATERÍA (CR2025)
¿Qué es lo que hace cada elemento? 
  • ROM (Read Only Memory, Memoria de Sólo Lectura): Contiene el Juego del cartucho (Código, o programa del juego)
  • RAM (Random Access Memory, Memoria de Acceso Aleatorio):  Permite almacenar datos del juego siempre y cuando la batería esté en buen estado. Gracias a la RAM es posible que nuestro progreso no se borre. 
  • MBC (Memory Bank Controller, Controlador de Bancos de Memoria): Permite expandir el numero de direcciones mediante el switcheo de bancos de memoria.
  • Conversir DC/DC: Garantiza una corriente de 200mA a la memoria RAM para que los datos del juego salvado no se pierdan. No importa que tan nueva o vieja esté la batería, éste componente siempre mantiene la corriente en un nivel fijo.
  • Batería: Permite el almacenamiento de datos en la memoria RAM. Suministra energía al conversor DC/DC el cual a su vez suministra la corriente necesaria a la RAM del cartucho. Si se desconecta la batería se pierden los datos del cartucho. 
Como comentario, la batería tarde o temprano se va a desgastar así que la perdida de datos es segura. Existen varias alternativas para salvar los datos de los juegos un determinado periodo de tiempo empleando FRAMs (RAM Ferromagnética),  o en el disco duro de una PC. Ya tocaremos el tema cuando sea debido. 

CONTINUARÁ PRÓXIMAMENTE



No hay comentarios:

Publicar un comentario