LO + BASICO SOBRE…
CARTUCHOS DE LA NES
CONOCIENDO LOS CARTUCHOS
Si no tienes ningún conocimiento sobre la NES, te aconsejo que leas mi artículo "Lo + Básico sobre la NES" antes de entrar en este.
Los juegos de la NES vienen grabados en memorias ROM, soldadas en una placa de circuito impreso, alojada dentro de un cartucho de plástico. Pero no todos los cartuchos son iguales, ni mucho menos, ni siquiera todos son compatibles entre sí. Por eso, intentaré dar una introducción breve, pero sólida.

Super Mario Bros PAL
Al contrario que otras consolas, la NES usa al menos 2 memorias por cartucho; una para el programa (PGR-ROM), y otra para los gráficos (CHR-ROM), señaladas en la imagen superior. En algunos juegos programa y gráficos están en una misma ROM, y entonces en lugar de una CHR-ROM para gráficos, hay una memoria RAM. Cuando el juego requiere usar cualquier gráfico, debe "extraerlo" de la PGR-ROM a la CHR-RAM, porque el chip de video de la NES sólo puede acceder a gráficos que estén en una CHR, ya sea ROM o RAM.
A parte de las memorias ROM, existen, dentro del cartucho, uno o más integrados con otras funciones. Aunque únicamente uno es indispensable, y es el que está señalado en rojo en la imagen superior. Se trata del CIC, el chip que se encarga del bloqueo zonal, o sea, de bloquear la consola en caso de intentar jugar a un juego extranjero. Hablaré es esto enseguida.
A parte, opcionalmente pueden haber otros chips. Estos son requeridos por cada juego en cuestión. Analicemos un ejemplo en concreto, muy interesante y representativo. El cartucho de la siguiente imagen.

Kid Icarus PAL
En él vemos la PGR-ROM, con el programa del juego en su interior. Este es un ejemplo en el que no hay CHR-ROM, y en su lugar, hay una CHR-RAM.
El chip marcado en rojo es el CIC, que estaba presente en el otro cartucho sencillo, como es obligatorio en todo cartucho original.
Lo primero que salta a la vista es la presencia de otros 2 integrados. El más habitual es el mapeador, enmarcado en amarillo. Como ya sabes, este se encarga de dar acceso a juegos mayores de 64Kb (la gran mayoría) mapeando su contenido. El problema es que existen muchos mapeadores disintintos, y no son compatibles entre sí. Un juego que requiere un mapeador MMC3 no funcionará en un MMC1.
El otro integrado, marcado en violeta, es una memoria RAM de 8Kb de expansión, que se añade a los escasos 2Kb de memoria RAM de la NES, para otorgarle 10Kb en total. Es usada cuando un juego requiere más de 2Kb de RAM. Habitualmente se la denomina WRAM o SRAM del cartucho.
ENTENDIENDO BLOQUEO ZONAL
Existen 3 versiones de consola Nintendo 8 bits:
Sistema de video |
Conector de cartuchos |
|
Famicom japonesa |
NTSC |
60 pines |
NES americana |
NTSC |
72 pines |
NES europea |
PAL |
72 pines |
Los cartuchos NTSC no funcionan en consolas PAL, ni los cartuchos PAL en consolas NTSC. De esto se encarga el chip CIC. Hay un CIC en cada cartucho, y otro en cada consola, correspondiente a la región a la que pertenece, NTSC o PAL. El CIC puede funcionar en 2 modos, llave o cerrojo. El de los cartuchos es llave, y el de la consola cerrojo. Cuando se enciende el sistema con un cartucho, los CIC se comunican entre sí por unos pines dedicados del cartucho. Si "hablan" el mismo idioma, la consola sigue adelante, sino, se queda en un estado de reset. Bloqueada, vamos.
Por tanto no puedes jugar con juegos americanos en una consola europea; los CIC te lo impíden.
El CIC, no obstante, no impediría jugar con juegos japoneses en una NES americana, o con juegos americanos, en una Famicom. Pero al usar distinto conector de cartucho, no puedes usar los juegos de una en la otra. Los cartuchos por dentro funcionan exactamente igual, sólo cambia el formato del cartucho.
Es posible saltarse estas limitaciones por varios motivos:
Para poder jugar con cartuchos de distinto formato, hay que recurrir a un adaptador, ya sea comercial o casero.
Para poder jugar con cartuchos del mismo formato pero otra región, necesitas deshabilitar el CIC de la consola, haciéndolo funcionar en modo llave, como el de los cartuchos. De este modo, no bloqueará la ejecución de ningún cartucho. Esto es necesario también para jugar con cartuchos caseros que no tengan chip CIC, lo cuál es razonablem, teniendo en cuenta que estos chips son casi imposibles de conseguir, si no es sacándolos de un cartucho original. Hay formas de construir circuitos semi-equivalente, pero es un camino más complejo, y no merece la pena complicarse la vida, habién do soluciones más sencillas, rápidas y limpias.
CARTUCHO REGRABABLE
Llegado a este punto, comentaré lo básico que hay que saber para modificar un cartucho y hacerlo regrabable. No pretende ser un tutorial detallado (si te interesa, puedes leer mi artículo de como hacer un cartucho regrabable de Super Nintendo, porque todo lo que se dice ahí sobre la técnica, es aplicable aquí).
En primer lugar, hay que escoger un cartucho del tipo requerido por el juego o juegos que queramos grabar. No es posible,como norma general, usar un cartucho de un tipo distinto al que el juego está diseñado para usar. A veces, no obstante, es posible modificar uno para hacerlo compatible con otro, pero no siempre. Por ejemplo, no se puede cuando el cartucho lleva un mapeador distinto al que se requiere. Otras modificaciones son posibles, aún cuando pueden complicarse bastante, como añadir una memoria RAM, o cambiar una CHR-ROM por una CHR-RAM o viceversa.
Pero si nos hacemos con un cartucho adecuado, la operación es sencilla.
Si el cartucho tiene PGR-ROM y CHR-ROM |
Luego hay que soldar nuevas memorias ROM programables, como pueden ser EVPROM (como la familia 27Cxxx), EEPROM, o Flash ROM (como la 29F040), o incluso SRAM. Yo recomiendo usar Flash ROM por la comodidad de su reprogramación. Pero en la NES funciona con cualquiera de estas. En otros sistemas más rápidos habría que ver que la memoria fuera suficientemente rápida, aquí da igual. El siguiente paso es hacer coincidir los pinouts. El pinout de un chip es la función que tiene cada uno de sus pines. Normalmente, la memoria que eligas, tendrá un pinout ligeramente distinto. Esto se entenderá bien con la siguiente imagen, que muestra, a la izquierda, el pinout de una PGR-ROM de NES de 512Kb (la más grande posible, que yo sepa), y a la derecha, el pinout una memoria típica flash ROM.
Los pines marcados en rojo NO coinciden con los dela nueva memoria. Hay que hacerlo coincidir, por algún método. Mi artículo de como hacer un cartucho regrabable para Super Nintendo trata esto con detalle. El pin marcado en verno no coincide, pero da igual, porque lo correcto es que cuando una flash ROM o EPROM no vaya a ser programada, su pin /WR esté a 5V (/WR que significa Write, o habilitación de escritura, a veces llamado /WE). Este pin sirve para decirle a la memoria cuando en lugar de leer, debe grabar. En concreto, cuando este pin se pone a 0V o tierra, le dice que debe grabar el contenido de sus lineas de datos, y nosotros no queremos que haga eso nunca, si lo vamos a usar como cartucho de NES, porque el único momento en el que la grabaremos será en el programador de memorias, cuando lo extraigamos del cartucho. Si en lugar de ello, usas un programador especifico, que graba la memoria sin sacarla del cartucho, entonces sí habrá que considerar no conectar 5V a /WR, sino conectarlo a un circuito que controle su estado, y lo habilite cuando haya que escribir. |
Si el cartucho tiene PGR-ROM y CHR-RAM |
|
Hay gente que usa SRAM para sustituir a las memorias ROM, pero ten en cuenta que esta opción tiene sus ventajas y desventajas:
Ventajas de usar SRAM
Desventajas de usar SRAM
GRABANDO EL CARTUCHO
Yo recomiendo usar SRAM si se va a usar el cartucho junto con una solución del estilo Devtendo o CopyNES (actualmente su web esta offline), consolas profundamente modificadas, que permiten , entre otras cosas, grabar y leer cartuchos (tanto las ROM, como el contenido de la posible WRAM del cartucho, que es donde se guardan las partidas salvadas en el caso de que el juego lo soporte).
En caso de que se quiera grabar las memorias en un programador de memorias convencional, recomiendo Flash ROM, porque no se borra. Tarda un poco más en grabarse, pero es para los restos. Hasta que quieras regrabarla, claro. Para grabarla, la tienes que sacar del cartucho, motivo por el cual soldamos un zócalo al retirar la ROM original, que permite insertar y sacar la nueva ROM sin esfuerzo, en lugar de soldarla directamente a la placa, lo que complicaría enormemente su regrabado.
Se puede fabricar un programador de cartuchos especifico. Por ejemplo, mira mi artículo sobre el que hice para Super Nintendo (aunque sea por curiosidad y tener un ejemplo). En estos casos, evitamos tener que sacar las memorias del interior del cartucho, pudiendo conectar directamente el cartucho al programador.
Cualquier sugerencia o duda, consúltame. Así como si quieres que detalle un poco más algo. ¡Un saludo!