Reproducciones de Game Boy

Para consultas y debates sobre el contenido de este artículo, visita el Hilo oficial.


Reproducir un juego consiste en reprogramar un juego de una determinada consola con la finalidad de reciclarlo para jugar a un juego nuevo cualquiera, un prototipo, un juego casero o una modificación de un juego original.

Contenido

Introducción

  • Debido a que los cartuchos de Game Boy son más pequeños que los de SNES, todo lo necesario es más pequeño (memoria flash, cables, soldador, espacio, etc) así que la complejidad de estas reproducciones es mayor que las de nivel 1 de SNES.
  • Comparación de la eprom que se utiliza en el nivel 1 se SNES y la memoria flash que se utilizará en este tutorial:
Comparacion memoria flash y eprom - Tutorial reproducciones Game Boy.jpg

Tutoriales

  • Tutoriales creados por el usuario Nanths.

NIVEL 1 - Game Boy clásica (ROM ≤ 512Kbytes)

  • Rom del juego a reproducir y los parches (en caso de ser necesarios).
  • Cartucho donante.
  • Memoria flash AM29F040 PLCC32.
  • Emulador Game Boy BGB.
  • Resistencia de 47kOhm (47.000 ohm).
  • Cable AWG30 o más fino.
  • Soldador de 14w con una punta de 1mm o inferior.
  • Estaño, willem, punta gamebit 3.8mm, alicates planos, de corte y pinzas de precisión.

Apartado 1: Buscar donante.

  • Para poder cambiar la maskrom de un juego de Game Boy nos interesa saber que existen varios tipos de procesadores que se encargan de controlar el flujo de datos entre la memoria ram y la rom hacia el bus de 16 bits. Existen cuatro procesadores principales llamados MBC que, dependiendo del tamaño de la rom y la ram, se utilizarán de una forma concreta. Se conocen como MBC1, MBC2, MBC3 y MBC5. Más infomación aquí.
  • Tenemos que buscar un cartucho donante que encaje con el juego que queremos reproducir. Si la rom necesita un cartucho con MBC1 y RAM deberemos de buscar eso. En el siguiente enlace podéis ver un listado para que os sea más fácil encontrarlo:

http://www.devrs.com/gb/files/gbmbcsiz.txt

  • Para conocer que MBC necesita nuestra rom, la cargamos en el emulador BGB y vamos al apartado Other/Cart info y nos aparecerá una ventana con la información necesaria:
Imagen emulador BGB - Tutorial reproducciones Game Boy.jpg
Imagen01 emulador BGB - Tutorial reproducciones Game Boy.jpg

  • En este caso vemos que el cartucho donante necesita un MBC1, una RAM y una pila para poder guardar partidas. Iremos al listado y buscaremos el más barato, si es posible uno con la etiqueta rota como este:
Imagen cartucho donante - Tutorial reproducciones Game Boy.jpg

Apartado 2: Preparando la rom a grabar.

  • Si la rom que tenemos tiene extensión .gb y el CRC correcto ya está preparada. Si tenéis que aplicar un parche para su traducción se puede usar el programa IPSWin y después cargarlo con el emulador para ver si el resultado es correcto. En caso de que os aparezca este error de checksum:
Imagen error checksum - Tutorial reproducciones Game Boy.jpg
  • Para arreglarlo se utiliza el ucon64 por linea de comandos:

ucon64 --chk nombredelarom.gb

  • Arreglará el CRC y creará dos archivos, el nombredelarom.gb que es el que grabaremos y un nombredelarom.bak que será una copia de seguridad de la rom utilizada.

Apartado 3: Grabar la rom.

  • Usaremos el el programa willem y seleccionamos el tipo de memoria utilizada, la AM29F040 con encapsulado PLCC32. Esta memoria flash tiene una capacidad de 512kbytes así que la rom no puede excederlos (no estoy seguro si la velocidad de la memoria flash influye al igual que en la SNES así que en caso de duda conseguir unas de 90 o más rápidas):
Imagen Willem - Tutorial reproducciones Game Boy.jpg
Imagen01 Willem - Tutorial reproducciones Game Boy.jpg

  • Comprobar que esté vacía y continuamos.

Apartado 4: Preparamos el cartucho y la memoria flash.

  • Tenemos que quitar la maskrom del pcb calentando las patillas/pistas y levantándolas con cuidado. Se puede usar un cúter de precisión para levantarlas un poco y luego, con unas pinzas también de precisión, terminar de levantarlas. Debe de quedar tal que así:
Imagen pcb cartucho - Tutorial reproducciones Game Boy.jpg
  • Ahora tenemos que moldear las patillas de la memoria flash para que encaje con la placa del juego de Game Boy. Se trata de separarlas y darles forma aplanándolas de esta forma (¡cuidado! Son patillas pequeñas y frágiles):
Imagen memoria flash - Tutorial reproducciones Game Boy.jpg
Imagen01 memoria flash - Tutorial reproducciones Game Boy.jpg

  • Como veis se moldean las patillas de los laterales y se cortan (un poco) las superiores e inferiores.

Apartado 5: Soldando.

  • En el siguiente esquema vemos como hay que soldar las patillas moldeadas directamente a la pcb y el resto de patillas a través de cables. Además, hay que soldar una resistencia de 47k entre el pin 31 de la memoria flash y la pista 32 de la pcb:
Imagen soldando - Tutorial reproducciones Game Boy.jpg
Imagen01 soldando - Tutorial reproducciones Game Boy.jpg

  • Explicación del esquema:
  • Pista roja de la pcb, la número 1, no se utiliza.
  • Pistas azules 2~4, 14~20 y 30 se sueldan, con cables, a los mismos pins que los de la memoria flash.
  • Pistas naranjas 5~13 y 21~29 se sueldan directamente a los mismos pins que los de la memoria flash.
  • Pistas amarillas: el pin 1 de la memoria flash va soldado a la pista 31 de la pcb. El pin 31 de la memoria flash se suelda a una resistencia de 47kohm y esta resistencia se suelda a la pista 32 de la pcb. El pin 32 de la memoria flash va soldado a uno de los dos agujeros que hay en la prolongación del pin 32 de la pcb (ver la foto debajo del esquema).
  • Imágenes que lo aclaran un poco más. Como veis, hay que inclinar la memoria flash para que encaje con las pistas (incluso ajustar las patillas). Por favor, ignorar las pistas que se han saltado al quitar la maskrom.
Imagen02 soldando - Tutorial reproducciones Game Boy.jpg
Imagen03 soldando - Tutorial reproducciones Game Boy.jpg

  • La resistencia tiene que estar bien paralela a la pcb porque sino no cerrará el cartucho.
  • Nota: El cable que véis conectado desde la resistencia al pin 31 del conector del cartucho de la Game Boy no es necesario. Sólo sirve para poder reprogramar la memoria flash con la ayuda de un programador casero (si lo ponéis, tendréis que agujerear la carcasa interior del cartucho para que pase el cable).

Apartado 6: Probando con éxito el trabajo.

  • Sólo queda cerrar el cartucho y comprobar que, efectivamente, funciona en la consola (y ponerle una etiqueta).

Apéndice.

  • Foto de las herramientas necesarias (recomendadas) para moldear la memoria flash. Son la pinza de precisión y el alicate plano:
Imagen herramientas - Tutorial reproducciones Game Boy.jpg

Placas especiales.

  • En este apartado se irán comentando las placas que son diferentes al estándar con la que se ha creado este tutorial.
  • En esta primera placa nos encontramos una maskrom de 44 pins con encapsulado QFP junto al MBC1. Recomiendo que si os encontráis con este tipo de placas, cerréis el cartucho y busquéis otra. Este encapsulado requiere demasiado trabajo.
La placa DMG-BBA-02 lleva una maskrom creada por SHARP llamada LH53515 con una capacidad de 64kbytes y encapsulada en un QFP. El patillaje de este tipo de memoria es más pequeño que el encapsulado PLCC con el que hemos trabajado hasta ahora así que habrá que cablear todos los pins. En el siguiente diagrama vemos la correspondencia de los pins de la maskrom en relación a la memoria AM29F040 con la que trabajamos habitualmente.

Ejemplos.

  • Varios ejemplos:

NIVEL 2 - Game Boy Color (ROM ≥ 1Mbyte)

  • Este nivel resulta más laborioso que el nivel anterior ya que no encontraremos memorias que coincidan con el patillaje de las PCB de Game Boy Color, así que tendremos que recablear todos los pines de la memoria que utilicemos. Las memorias flash para Game Boy Color que se han utilizado en este tutorial se dividen principalmente en dos grupos:
  • Memorias AM29F800B para los juegos de 1Mbyte de tamaño.
  • Memorias MX29L3211 para juegos de 2Mbytes y 4Mbytes.
  • Tal y como sucedía con las reproducciones de Game Boy clásica, nos encontraremos con diferentes tipos de PCB cuando abramos nuestro donante dependiendo principalmente del tipo de maskrom que ésta lleve. En este tutorial utilizaremos la placa DMG-A03-10 y la DMG-A08-01. En realidad son prácticamente identicas salvo que la A03-10 lleva una SRAM de 256kbytes y la A08-01 una SRAM de 64 kbytes.

Apartado común: Buscar donante.

  • Como en el caso de los juegos de Game Boy clásica tendremos que buscar un donante que cumpla con los requisitos del juego a reproducir. Por suerte, la gran mayoría de los juegos de Game Boy Color solo usan un controlador, el MBC5, así que esta vez nos fijaremos en otros aspectos como el tamaño de la RAM para que coincida con el juego que tenemos entre manos.

Listado para que podáis elegir un donante adecuado:

     Internal Name    Cart Type             RAM ROM(in K bytes)    Name of Game
                                  
     BASS POCKET 3    ROM+MBC5+RAM+BAT      8 1024                 Bass Pocket 3
     DQ/MONSTERS      ROM+MBC1+RAM+BAT      8 2048                 Dragon Quest Monsters 
     G&W GALLERY2     ROM+MBC5+RAM+BAT      8 1024                 Game & Watch Gallery 2 GBC
     POCKET PUYOSUN   ROM+MBC5+RAM+BAT      8 1024                 Pocket Puyosun 
     P LURE BOYAQIJ   ROM+MBC5+RAM+BAT      8 1024                 Pocket Lure Boy 
     QUESTFORCAMELOT  ROM+MBC5+RAM+BAT      8 1024                 Quest for Camelot
     RONALDOAORP      ROM+MBC5+RAM+BAT      8 1024                 Ronaldo V.Football 
     TETRIS DX        ROM+MBC1+RAM+BAT      8  512                 Tetris DX
     HARVEST-MOON GB  ROM+MBC3+TMR+RAM+BAT  8 1024                 Harvest Moon GBC
     POKEMON CARD GB  ROM+HuC1+RAM+BAT     32 1024                 Pokemon Card GB 
     ROBOPON STAR     Hudson HuC-3         32 1024                 Robopon Star 
     ROBOPON SUN      Hudson HuC-3         32 1024                 Robopon Sun 
     BEYBLADE3BB3J    ROM+MBC5+RAM+BAT     32 2048                 Bakuten Shoot Beyblade 
     JANKYUSEIBHGJ    ROM+MBC5+RAM+BAT     32 4096                 Jankyuusei Cosplay Paradise
     GLOCAL HEXCITE   ROM+MBC5+RAM+BAT     32 1024                 Glocal Hexcite
     CGBTENNIS BM8P   ROM+MBC5+RAM+BAT     32 2048                 Mario Tennis
     MEDAROT2KBTA2MJ  ROM+MBC5+RAM+BAT     32 2048                 Medarot 2 Kabuto Version
     MISSIONIMPOAIMP  ROM+MBC5+RAM+BAT     32 1024                 Mission Impossible 
     MONSTER RACE 2   ROM+MBC5+RAM+BAT     32 2048                 Monster Race 2 
     PCTG1STABLEAPUJ  ROM+MBC5+RAM+BAT     32 2048                 Pockeet GI Stable
     PP SUCSESS       ROM+MBC5+RAM+BAT     32 2048                 Power Pro Kun Pocket 
     PAWA POKE2BPWJ   ROM+MBC5+RAM+BAT     32 2048                 Power Pro Kun Pocket 2 
     TIMENETFUTURE    ROM+MBC5+RAM+BAT     32 1024                 Sanrio Time Net Future 
     TIMENETPAST      ROM+MBC5+RAM+BAT     32 1024                 Sanrio Time Net Past
     C SUMMONERBT8J   ROM+MBC5+RAM+BAT     32 2048                 Shin Megami Tensei Trading Card: Card Summoner 
     STAROCEANGBBO2J  ROM+MBC5+RAM+BAT     32 4096                 Star Ocean Blue Sphere 
     TURISENSEI2AF2J  ROM+MBC5+RAM+BAT     32 2048                 Tsuri Sensei 2 
     CGBWARIOLAND2    ROM+MBC5+RAM+BAT     32 2048                 Warioland 2 GBC 
     WARIOLAND3AW8A   ROM+MBC5+RAM+BAT     32 2048                 Warioland 3 
     ZELDA            ROM+MBC5+RAM+BAT     32 1024                 Zelda DX 
     SUPER GALSBGLJ   ROM+MBC5+RAM+BAT    128 2048                 Chou Gals! Kotobuki Ran 2

Apartado 1: Grabar la ROM.

  • ROM = 1Mbyte: Para realizar las reproducciones de juegos de 1Mbyte usaremos unas memorias AM29F800B con encapsulado SOP44. Se puede grabar con un willem clásico y un adaptador SOP44 específico para este tipo de memorias. Enlace del adaptador.
  • ROM > 2Mbytes: Este tipo de memoria tiene una capacidad máxima de 4Mbytes. Las usaremos indistintamente para los juegos de 2Mbytes y 4Mbytes. El problema que nos encontramos con estas memorias es que van alimentadas con un voltaje de 3,3v así que tendremos que reducir el voltaje 5v que lleva de entrada los cartuchos de Game Boy.
  • Las memorias MX29L3211 no podremos grabarlas con el willem típico que utilizamos en este tutorial, se necesita otro tipo de programador como por ejemplo el QG-4X con su adaptador SOP44 versión 4. Si no vais a utilizar muchas memorias se aconseja que las compréis ya grabadas a buyicnow o mirar si alguien que tiene un programado compatible os puede hacer un favor ya que el "combo" QG-4X con su adaptador para estas memorias sale bastante caro.

Apartado 2: Preparamos el cartucho y la memoria flash.

  • Vamos a trabajar con la placa DMG-A03-10. Este tipo de placas lleva una maskrom con un patillaje más pequeño que las SOP44 (y que las PLCC32 que se vio en nivel 1 del tutorial) así que tendremos que recablear todos los pines de la memoria. Imagen de la placa en cuestión:
Imagen preparar cartucho y memoria - Tutorial reproducciones Game Boy.jpg
  • En ésta podemos ver el MBC5 en la parte superior centro-izquierda y la maskrom en la parte inferior derecha, en esta ocasión una MX23C1603-12A. Para quitar esta memoria no podemos usar la técnica que utilizamos en el nivel 1 del tutorial ya que los pines de la maskrom son muy pequeños y finos y no podemos hacer palanca con un cúter o sujetarlos correctamente con las pinzas. En este caso nos hace falta una estación de soldadura con manguera de calor o utilizar la técnica de estañar las patillas como se puede ver en algunos videos de Youtube para retirar las memorias TSOP. Echad un vistazo. En este caso se ha utilizado la segunda técnica, aquí tenéis el resultado:
Imagen01 preparar cartucho y memoria - Tutorial reproducciones Game Boy.jpg
  • Y aquí una comparación con el tamaño de la MX29L3211 (el mismo que el de la AM29F800B) y los contactos que deja la maskrom una vez retirada. Como podéis ver la diferencia de tamaño es considerable:
Imagen02 preparar cartucho y memoria - Tutorial reproducciones Game Boy.jpg
  • Ahora vamos a modificar los pines de las memorias para que no hagan contacto con la PCB. Es más fácil de modificar que las PLCC32 pero ¡cuidado! que son muy delicadas. Se aconseja que cortéis la zona donde se apoyan los pines (indicado en rojo) y luego estirarlos con el alicate plano tal y como se ven en el lado izquierdo de la imagen:
Imagen03 preparar cartucho y memoria - Tutorial reproducciones Game Boy.jpg

Apartado 3: Soldando.

  • Antes de empezar a soldar tenemos que conseguir 3,3 voltios para alimentar la MX29L3211. (¡Atención! Este paso no es necesario para las memorias AM29F800B) La placa del juego de Game Boy nos ofrece 5 voltios así que tenemos dos alternativas: utilizar un reductor de voltaje como se hace en el caso de la "repro" de Super Mario RGB para SNES o usar un par de resistencias. Aquí se ha usado el segundo método con las resistencias que se tenían más a mano pero vosotros podéis elegir las que queráis.
Imagen soldando nivel 2 - Tutorial reproducciones Game Boy.jpg
  • Como podéis ver se ha conectado uno de los extremos de la resistencia de 75ohms a +5v y el otro extremo a la resistencia de 150ohms. Por otro lado, el extremo que queda disponible de la memoria de 150ohms va soldado a ground o masa. El punto de unión de las dos resistencias nos darán 3,3 voltios.
  • Debido a que, como se ha visto, los contactos de la maskrom original son muy pequeños y tiene poca separación entre ellos, es mejor soldar los cables a puntos alternativos situados en la PCB. A continuación podeis ver un esquema indicando los puntos alternativos y su equivalencia en los pines de la memoria que vamos a utilizar. Se ha modificado la numeración de los pines de la memoria porque vamos a usarla en modo 8 bits en lugar de 16bits que es como está indicado en la datasheet.
Imagen01 soldando nivel 2 - Tutorial reproducciones Game Boy.jpg
  • El esquema de las memorias AM29F800B:
Imagen02 soldando nivel 2 - Tutorial reproducciones Game Boy.jpg
  • Ahora soldamos un cable a cada punto alternativo de la placa asegurándonos que están muy bien soldados ya que una vez pongamos la memoria encima no podremos acceder a los puntos de soldadura.
Imagen03 soldando nivel 2 - Tutorial reproducciones Game Boy.jpg
  • Recordad que cable pertenece a cada punto de soldadura porque vamos a aislarlos para que no hallan posibles contactos con la memoria flash. Hacedlos de diferentes medidas, apuntadlo en un papel o haced una foto como la siguiente:
Imagen04 soldando nivel 2 - Tutorial reproducciones Game Boy.jpg
  • Situad la memoria tocando la pila superior para que quepa sin problemas y fijarla con cinta de doble cara. Ahora sólo queda soldar cada cable con su pin correspondiente y otros dos cables desde los puntos VCC y WE hasta las resistencias que hemos preparado antes. (¡Atención! Las resistencias no se utilizan en las memorias AM29F800B) Dejad suficiente espacio en el lado derecho de la memoria porque sino tendréis problemas para cerrar el cartucho.
Imagen05 soldando nivel 2 - Tutorial reproducciones Game Boy.jpg

Apartado 4: Probando con éxito el trabajo.

Videos

  • Prueba de la repro de Shantae en el Game Boy Player de Gamecube.
Icono YouTube.png Gameplay - Shantae en Gamecube (09/07/2013) 1:47

Enlaces relacionados