Aprendiendo a hacer cartuchos de GBA (Día 13: Más circuitos)

Avisos

Like Tree126Gracias

Respuesta
 
Herramientas Desplegado
  #1  
20/01/2015
Predeterminado Aprendiendo a hacer cartuchos de GBA (Día 13: Más circuitos)
Viendo que en este foro no hay nada de documentación acerca de los cartuchos de GBA, y estos son bastante importantes porque aunque no los usemos para ROMhackear son el soporte físico en el que los juegos originales vienen, he decidido hablar un poco acerca de ellos.

En este post iré detallando los aspectos técnicos de varios juegos de GBA, principalmente me centraré en los juegos más usados por aquí, pokémon rubí y pokémon rojo fuego.


Este es el esquema básico de un cartucho de GBA, en próximas actualizaciones detallaré el funcionamiento de los pines.

Pokémon Rojo Fuego



Este cartucho contiene una Mask ROM*1 (Mask Read-Only Memory, circuito integrado en el que se almacenan de fábrica datos y no se puede modificar)
Y una memoria flash*2 de 1Mbit (128Kbytes) en la que se guarda la partida.


Pokémon Rubí



Este cartucho es algo más complejo que el anterior, vuelve a presentar la Mask ROM y la memoria flash, pero en posiciones distintas pues este cartucho ha de dejar espacio para un módulo RTC (Real-Time Clock), compuesto por una pila*3, un cristal oscilador*4 y un circuito integrado*5 (un DS1307 o parecido) para contar los segundos, en definitiva el RTC es un sistema que permite controlar el tiempo transcurrido aunque el cartucho no esté enchufado en la consola puesto que la pila alimenta este sistema, se estima que un sistema de estos funciona entre 9 y 17 años con una sola pila. El juego usa este sistema para controlar si es de día o de noche y el crecimiento de las bayas, ademas de otros eventos temporales.

Pronto actualizaré con más cartuchos, información acerca de los pines y más

PD: un adelanto de como es una Mask ROM por dentro:


Esto es una ampliación del interior de una Mask ROM, los puntos oscuros y los brillantes se pueden interpretar en binario como 0's y 1's respectivamente

Última edición por PolectronElMagnifico; 22/02/2015 a las 23:40
  #2  
20/01/2015
Predeterminado Respuesta: [Hoy en así se hace (?)] Cartuchos de GBA
Bastante interesante el asunto. Es bueno tener diversidad de usuarios que amplian el panomara de lo que es un videojuego.

Por mi parte estaré pendiente a las cosas que puedas actualizar, muchas gracias.

PD: El titulo deberia ser [Hoy en: "así se hace" (?)]

Última edición por Chamber; 21/01/2015 a las 00:36
  #3  
20/01/2015
Predeterminado Re: [Hoy en así se hace (?)] Cartuchos de GBA
Uuuh, es como mis esquemas de clase (?)

Bromas aparte, gracias por traer esto aquí, no tenía ni idea de que un armatoste como el RTC vivía dentro de mi cartucho de Zafiro. Estaré pendiente de las actualizaciones ^^
  #4  
21/01/2015
Predeterminado Respuesta: [Hoy en así se hace (?)] Cartuchos de GBA
Wow, me acuerdo a ver abierto un cartucho pero no sabia que cosas contenía.
Muy buena información y si es importante.
Estaré al pendiente de las actualizaciones :3
Un saludo.
  #5  
25/01/2015
Predeterminado Respuesta: [Hoy, en: "así se hace" (?)] Cartuchos de GBA
Nueva actualización :3

He decidido desoldar los chips de un carctucho que tenía por ahí (mario vs donkey kong), para ver como son las conexiones de la Mask ROM y la memoria flash, es un cartucho prácticamente idéntico al el del pokémon rojo fuego.

Aviso que las imagenes tienen un tamaño gigantesco, están escaneadas a 1200 dpi para no perder nada de detalle.

front



back



Cuando haya terminado publicaré las conexiones del chip en una sola imagen mostrando las dos capas (fron y back).

Respecto a la imagen que había publicado con anterioridad mostrando los pines del cartucho hoy os explicaré la función de cada uno.



El acceso puede ser tanto secuencial como no secuencial. El primer acceso ha de ser no secuencial. Este tipo de acceso se hace poniendo los 16 bits de la dirección de la ROM en los pines AD0 a AD15 y poniendo el pin /CS en "low" para fijas la dirección. Entonces /RD se pone en "low" y luego en "high" para leer 16 bit de la dirección de la ROM. Las siguientes direcciones de la ROM se pueden acceder volviendo a poner /RD en "low" y "high" sin necesidad de especificar la nueva dirección pues hay un contador en la ROM para saber que nueva dirección leer.
Créditos a Gameboy Advance por las indicaciones y mucha información acerca de los cartuchos de GBA
Si vas a borrar esto, otra vez, dimelo a la cara.


PokéLiberty - La comunidad hispana de pokémon essentials

Si vas a borrar esto, otra vez, dimelo a la cara.
  #6  
25/01/2015
Predeterminado Respuesta: [Hoy, en: "así se hace" (?)] Cartuchos de GBA (Día 2)
Bastante interesante este aporte, vivan los cartuchos de Nin10do.
  #7  
25/01/2015
Predeterminado Respuesta: [Hoy, en: "así se hace" (?)] Cartuchos de GBA (Día 2)
muy interesante este post
  #8  
26/01/2015
Predeterminado Respuesta: [Hoy, en: "así se hace" (?)] Cartuchos de GBA (Día 2)
Otra nueva actualización!

cara 1



cara 2



ambas caras



Ya he trazado las conexiones del cartucho por ambas caras y las he representado en colores distintos (azul capa superior, rojo capa inferior) los puntos negros son unas cosas llamadas vías que permiten conectar trazados de cobre de una de las caras con los de otra cara.

via



Con la próxima actualización traeré información sobre la memoria Flash y la Mask ROM empleados en este cartucho.

Si queréis saber cualquier cosa acerca de los cartuchos que no haya comentado o algo nos ha quedado claro no dudéis en dejar un comentario preguntando al respecto!

PD: Por si no os habias dado cuenta con esta documentación/investigación pretendo llegar hasta la producción casera de cartuchos de GBA
Si vas a borrar esto, otra vez, dimelo a la cara.


PokéLiberty - La comunidad hispana de pokémon essentials

Si vas a borrar esto, otra vez, dimelo a la cara.
  #9  
26/01/2015
Predeterminado Respuesta: Aprendiendo a hacer cartuchos de GBA (Día 3)
la verdad nunca jamás tuve un cartucho de gba en mis manos (solo de sega y family ja), y tampoco creo que lo tenga (a estas alturas...)

pero aún así encuentro muy muy interesante este post.
Creo que compartir este conocimiento técnico es útil y le da un toque de "profesionalismo" al foro y a lo que se hace acá.

en verdad muy buen aporte y felicitaciones por el laburo de investigar y explicar!

saludos!
Próximamente... el Viernes 9 de Diciembre del 2016...



Un User Legendario me dijo: "Brother, espero que, cuando Vuelvas y leas ésto, el 7 no se haya esfumado D: Será un Buen Rpg si lo terminas ;D"

Última edición por enanogm; 26/01/2015 a las 18:24
  #10  
02/02/2015
Predeterminado Respuesta: Aprendiendo a hacer cartuchos de GBA (Día 3)
Información anticuada, el chip de 128Mbit de ese PDF no cumple las características necesarias, pues no tienen versión de 16 bit. La ultima actualización sobre los IC requeridos corrige este error con otro modelo de memoria flash

Como ya tengo la estructura del circuito tanto de la Mask ROM como de la memoria flash he decidido buscar en internet componentes con características parecidas.

La Mask ROM (donde se almacena la ROM del juego) es basicamente una memoria flash de 48 pins con una capacidad de 128Mbit (16MByte, que curioso justo lo que pesa una ROM de pokémon), y una interfaz de datos de 8 bit.

Esta es una memoria flash con esas carácteristicas y la tenemos tanto en 128Mbit como en 256Mbit, 512Mbit, y 1Gbit, tanto en interfaces de 16 bit como de 8 bit
http://www.farnell.com/datasheets/1499238.pdf

La memoria flash (donde se guarda la partida) es una memoria flash de 32 pins con una capacidad de 1Mbit, con una interfaz de 8 bit.
http://www.icchip.info/datasheet/M5M28F101RV-12.pdf

Intentaré hacer un presupuesto y comprar un par de estos componentes a ver si consigo montar un cartucho, ah por cierto para programar la memoria flash necesito un programador willem.

PD: para los curiosos, sí, se puede meter una ROM expandida a 32MByte solo hay que cambiar a una memoria flash de 256Mbit.

Última edición por PolectronElMagnifico; 19/02/2015 a las 18:13
Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 21:59.