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:
Tutoriales
- Tutoriales creados por el usuario Nanths.
NIVEL 1 - Game Boy clásica (ROM ≤ 512Kbytes)
- Reproducción del juego Kaeru no tame ni kane wa naru, cuyo parche con la traducción al inglés podéis conseguir y agradecer en http://www.romhacking.net.
- Elementos necesarios:
- 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:
- 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:
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:
- 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):
- 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í:
- 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):
- 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:
- 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.
- 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:
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:
- 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:
- 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:
- 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:
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.
- 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.
- El esquema de las memorias AM29F800B:
- 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.
- 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:
- 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.
Apartado 4: Probando con éxito el trabajo.
|
Videos
- Prueba de la repro de Shantae en el Game Boy Player de Gamecube.
Gameplay | - Shantae en Gamecube (09/07/2013) | 1:47 |