Páginas

viernes, 9 de septiembre de 2011

CONVERSIÓN DE UN JUEGO DE SEGA SYSTEM 16B EN OTRO

     Marcos colabora con Arcade Maniac con un artículo sobre cómo cambiar un juego de system16 a otro. Resulta muy interesante. Desde aquí gracias a Marcos por su artículo. No olvideis visitar su web: http://marcos75-arcade.jimdo.com/


1. Introducción
No es de extrañar mi interés por los juegos del sistema System 16B de Sega. Fue un sistema que se desarrolló durante la segunda mitad de los ochenta, mi época dorada de los videojuegos arcade. Por ello títulos como Altered Beast, Dynamite Dux, Golden Axe, Heavyweight Champ, Shinobi, Time Scanner y Wonder Boy III son imprescindibles en mi colección.
Algunos de esos títulos son habituales en foros y webs de compraventa, con lo cual pagando más o menos dinero puedes conseguirlos. Pero otros no se dejan ver con facilidad. ¿Renunciamos a incorporarlos a nuestra colección? Pues no. Precisamente el objetivo de este tutorial es aprender a modificar cualquier placa System 16B para cambiar el juego que contenga por otro que nos interese.

2. Fundamentos
Placa tipo 5797: Golden Axe
No vamos a entrar en detalles acerca de la estructura de los juegos del sistema System 16B, sino que trataremos lo estrictamente necesario para comprender lo que aquí se explique. Antes de seguir, decir que prácticamente toda la información que necesitamos para esta tarea está, como no, en el código fuente de MAME (http://mamedev.org/source/src/mame/drivers/segas16b.c.html). En la parte inicial de ese archivo (la parte comentada del código) está la información de la estructura de todos los juegos de este sistema, y en la parte final las ROMs que necesita cada juego y la posición de memoria donde se carga cada una de ellas (mapa de memoria).
Placa tipo 5358: Shinobi
Decir que los juegos de este sistema constan de una placa base, etiquetada como 171-5357, y de una placa secundaria de ROMs. Existen varios modelos para esta última, etiquetados como 171-5521, 171-5358, 171-5797 y 171-5704. En realidad las placas 171-5521 y las 171-5704 son idénticas a excepción de la configuración de jumpers que después repasaremos, con lo cual podemos decir que tenemos tres tipos diferentes de placas de ROMs. Esta estructura de base más placa de ROMs se parece mucho a la estructura de consola/cartucho que tanto se extendió en los 90s.
La primera idea que se nos puede ocurrir es, dado que la placa base es común a todos los juegos, cambiar la placa de ROMs para cambiar de juego. Eso es factible con las limitaciones que más adelante comentaremos (chips de protección), pero no es nuestro objetivo ya que, en general, nos resultará tan difícil conseguir la placa de ROMs del juego que queremos como conseguir el juego completo.
Placa tipo 5521: Heavy Champ
Placa tipo 5702: Wonder Boy III




La idea que a nosotros nos interesa es cambiar las ROMs de la placa secundaria para cambiar de juego. De nuevo indicar que existen limitaciones, pero a priori esta opción es mucho más sencilla que la anterior: necesitamos únicamente unas EPROMs vacías y un programador.

3. Procedimiento
Pues manos a la obra. En principio el procedimiento es muy sencillo, pero es muy fácil que no funcione porque se nos haya pasado algún detalle.
Lo primero es, una vez decidido el juego que queremos tener, buscar la forma más sencilla de conseguirlo: la mayoría de los juegos de este sistema tienen diversas versiones correspondientes a distintos sistemas de protección o a distintas regiones. Este es el primer punto importante: las versiones encriptadas de los juegos. En principio las ROMs que utilizaremos para generar nuestros juegos podrán ser las mismas que utiliza MAME, pero dichas ROMs pueden estar encriptadas, con lo cual no funcionarán en una placa base con procesadores estándar (68000 y Z80B).
En general, si existe una versión sin proteger del juego que queremos, será esa la elegida. Pero, ¿cómo sabemos cuándo una versión está protegida? Lo más sencillo es consultar una base de datos como MAWS (http://maws.mameworld.info/maws/):

· Las versiones en las que al lado del nombre del juego aparezca entre paréntesis FD1094 están protegidas: requieren un procesador específico en lugar del 68000 genérico, y contienen varias ROMs encriptadas. Si queremos utilizar estas versiones necesitaremos conseguir una versión desencriptada de esas ROMs, o deberemos desencriptarlas nosotros mismos, siguiendo este tutorial: http://marcos75-arcade.jimdo.com/baterías-suicidas/desencriptación-fd1094/
· Las versiones en las cuales entre paréntesis aparezca 8751 detrás del nombre del juego necesitarán del uso de un microcontrolador i8751 adicional, colocado en la posición 2C de la placa base. En el momento de realizar este tutorial desconozco si se puede utilizar cualquier i8751 o tiene que ser uno específicamente programado para cada juego en cuestión (el i8751 lleva integrada una EEPROM de 4KB). En la medida de lo posible también evitaremos estas versiones.
· Las versiones en las que al lado del nombre del juego aparezca entre paréntesis MC-8123B tienen encriptado el código de la parte de sonido: requieren de un procesador específico en lugar del Z80B genérico, y contienen (generalmente) una única ROM encriptada. Si queremos utilizar estas versiones, necesitaremos conseguir una versión desencriptada de esa ROMs, lo cual no es difícil: podemos utilizar esa ROM tomada de otra versión que sea desencriptada, o que lo que tenga encriptado sea el código principal (FD1094).
· Las versiones en las que aparezca la palabra unencrypted o no aparezca ninguna de las reseñas anteriores estarán sin encriptar, y serán nuestras preferidas.

Mucho cuidado en la búsqueda de la versión que más nos interese. Determinados juegos existían en varios sistemas, o tenían versiones bootleg. Nos tenemos que asegurar de que la versión que vamos a utilizar corresponde al sistema System 16B (en general, si el juego tiene varias versiones, en las bases de datos como MAWS dicha versión aparece después del nombre del juego, entre paréntesis).
Teniendo en cuenta todos esos factores, revisando la base de datos de juegos emulados en MAME que hayamos elegido (por ejemplo MAWS), buscamos la versión del juego que más nos interese.
El siguiente paso será buscar una placa de un juego del sistema System 16B que funcione perfectamente (obvio) y que sea compatible con el juego que queremos conseguir; es decir, que utilice el mismo tipo de placa de ROMs (teniendo en cuenta que los modelos 171-5521 y 171-5704 son compatibles). Para ello acudimos al código fuente de MAME: http://mamedev.org/source/src/mame/drivers/segas16b.c.html. En ese fichero veremos cómo, en la parte superior (en los comentarios), aparece una descripción de cada tipo de placa de ROMs y una lista detallada de qué juegos la usan.
Pues bien, buscamos nuestro juego, en la versión que nos interese (siguiendo los criterios mencionados anteriormente), y cualquier otro juego que utilice el mismo tipo de placa de ROMs sería válido. En ese mismo fichero donde estamos buscando la información puedes consultar qué juegos podríamos utilizar.
Veamos con un ejemplo práctico lo que hasta ahora hemos contado de manera genérica: vamos a tratar de obtener un Time Scanner. Los pasos serían los siguientes:

· Buscamos en la base de datos MAWS el juego Time Scanner, y observamos que MAME reconoce 2 versiones de dicho juego:
o Time Scanner (set 1, System 16A, FD1089B 317-0024)
o Time Scanner (set 2, System 16B)
Descartamos la primera opción, ya que corresponde claramente a unas ROMs de la versión System 16A del juego. La segunda versión es idónea: es para System 16B, y además no tiene ningún tipo de protección (no aparece ni FD1094, ni MC-8123B, ni 8751 entre paréntesis junto al nombre del juego). Será la versión que utilicemos, fijándonos en que el nombre del fichero de ROMs es timescan (MAWS nos lo muestra en el campo set name).
· A continuación vamos al código fuente de MAME, y vemos que el juego Time Scanner únicamente está disponible en un tipo de placa de ROMs (ojo, otros juegos pueden estar disponibles en más de una placa de ROMs, así que tenemos que identificar cuál es la que necesitamos para la versión del juego que hemos elegido). En este caso es el tipo 171-5358, tipo que a su vez, según vemos en ese mismo apartado del fichero de código fuente, corresponde a versiones de los juegos: Shinobi, Ace Attacker, Sonic Boom, Passing Shot, etc.
· Por último ya “sólo” nos queda adquirir uno de esos juegos. Por ejemplo, en este caso, Shinobi es un juego muy popular del que hay muchas copias, con lo cual no nos debería costar mucho encontrar uno a la venta.

No hay que olvidar que si la placa que hemos comprado para montar nuestro juego trae algún tipo de chip de protección, deberemos quitarlo: si tiene un FD1094 lo sustituimos por un 68000 y si tiene un MC-8123B lo sustituimos por un Z80B.
Llegados a este punto ya tenemos claro qué versión del juego que nos interesa vamos a utilizar (sabemos también el nombre que da MAME al conjunto de ROMs de esa versión), y tenemos una placa System 16B compatible con dicho juego. El siguiente paso es conseguir programar los integrados (EPROMs) que va a necesitar el nuevo juego.
El siguiente paso es conseguir de manera legal el fichero que contiene las imágenes de las ROMs del juego que estamos clonando, programar un juego de EPROMs con dicho contenido y sustituir las EPROMs que vienen en el juego original que compraste por las nuevas EPROMs recién programadas. Esta es la parte más técnica del tutorial. Más que detallar los pasos a seguir, que no tienen ningún tipo de dificultad, voy a tratar de dar una serie de pautas o cuestiones a tener en cuenta:

· Vamos a necesitar tantas EPROMs como ficheros compongan el set de ROMs que vamos a grabar. El modelo de EPROM que vamos a necesitar en cada caso nos lo va a dar el tamaño de cada archivo: si el archivo tiene 64 KB, necesitaremos una EPROM de esa capacidad. Ojo, hay que tener en cuenta que la capacidad de las EPROM se mide en Kb, no en KB (es decir, en Kilobits, no KiloBytes). O sea que para un archivo de 64 KB necesitamos una EPROM de 64 * 8 = 512 Kb (una 27512 o una 27C512), para un archivo de 32 KB una de 32 * 8 = 256 Kb (una 27256 o una 27C256), etc. Siguiendo con el ejemplo que hemos utilizado antes, el set timescan se compone de 19 ROMs de 32 KB, con lo cual necesitaremos 19 chips del modelo 27C256.
· Hay que tener en cuenta que muchos juegos System 16B utilizan ROMs de 128 KB (o sea, 1 Mbit). En estos casos no podemos utilizar EPROMs que sigan el estándar JEDEC (27C010 ó 27C1001) sino EPROMs non-JEDEC (27C1000 ó 27C301). Tenedlo muy presente ya que muchos programadores de gama baja (como los Willem no USB) no son capaces de programarlas directamente, y tendrás que hacer un adaptador “casero” para conseguir programarlas.
· Los juegos System 16B utilizaban de forma frecuente Mask-ROMs, es decir, ROMs no programables. Nosotros en su lugar utilizaremos sin problemas EPROMs (ROMs borrables y programables). En muchos casos las Mask-ROMs son más pequeñas que las EPROMs de su misma capacidad; pero insisto, no hay problema. Por ejemplo, si vemos una foto del juego Dynamite Dux original vemos que tiene Mask-ROMs de 1 Mbit de capacidad que únicamente tienen 28 pines, con lo cual una vez situadas en sus zócalos dejan libres 4 huecos del mismo. Nosotros utilizaremos en su lugar EPROMs 27C1000 (también de 1 Mbit), que tienen 32 pines y que, por tanto, ocupan todo el zócalo. A modo de curiosidad cabe decir que es el hecho de utilizar chips non-JEDEC el que permite que, en un mismo zócalo, puedas conectar indistintamente EPROMs de 32 pines y Mask-ROMs de 28 pines.
· Saber en qué posición va cada EPROM es sencillo. En la mayoría de los casos los ficheros que hemos grabado se llaman EPR-XXXXX.YY, donde XXXXX es el número de la etiqueta de la EPROM e YY es la posición de dicha EPROM en la placa de ROMs. También podemos verlo de una forma más gráfica de nuevo en el fichero: http://mamedev.org/source/src/mame/drivers/segas16b.c.html
· Un último detalle a tener en consideración es el de los jumpers que aparecen en la placa de ROMs. Antes de probar el “clon” que acabamos de crear es necesario comprobar que están bien posicionados. Básicamente sirven para determinar el tamaño de las EPROMs que hemos colocado. De nuevo, en el fichero anterior puedes ver para tu modelo de placa de ROMs qué función tiene cada jumper y así podrás saber en qué posición colocarlo. Incluso para muchos juegos viene directamente detallado cómo colocar los jumpers en ese caso concreto.
Una vez realizados todos estos pasos únicamente nos queda probar nuestro nuevo juego. No te olvides de utilizar un adaptador si lo vas a conectar a un mueble JAMMA o a un supergun, ya que las placas System 16B tienen un pinout específico.

4. Conclusiones
Con un procedimiento relativamente sencillo somos capaces de conseguir “sintetizar” juegos System 16B que de otra forma nos costaría muchísimo conseguir en el mercado (ya que son juegos que muy raramente se ven en venta). Pero existe una serie de limitaciones que no debemos olvidar:
· El juego resultante no se podría considerar estrictamente hablando un original: no tiene las pegatinas originales, no tiene las Mask-ROMs con su serigrafía, no tiene los chips EPROMs originales con sus pegatinas de fábrica, etc. Pero para mi gusto es más original que las versiones phoenix de los juegos CPS-2, por ejemplo, o las versiones del juego Ghouls and Ghosts que venden por ahí a precio de oro, montadas sobre una placa Street Fighter II. Al fin y al cabo nosotros estamos corriendo el código original del juego (sin modificación alguna) sobre el hardware para el cual fue diseñado.
De hecho ni la placa base ni la placa de ROMs se fabricaban de forma exclusiva para un juego, como ya hemos comentado. A modo de anécdota os cuento mi experiencia: detecté que en mi Shinobi las pegatinas de las placas habían sido puestas encima de otras pegatinas. Quité las de arriba (las que hacían referencia al juego Shinobi), y vi que debajo estaban las pegatinas correspondientes al juego Alien Syndrome, tanto en la placa principal como en la de ROMs. O sea, esta placa había acabado siendo un Shinobi cuando probablemente nació para ser un Alien Syndrome.
· Existen juegos que tienen interfaces propios para los controles (como el Heavyweight Champ) o venían preparados para poder jugar 4 jugadores simultáneamente (como ciertas versiones del Passing Shot). Podremos crear también estos juegos a partir de otros, pero necesitaremos para poder jugarlos la sub-placa adicional de controles que utilizaban originalmente y que iba colocada en el conector CN5 de la placa base.

Utilizando este método yo he incorporado a mi colección un Dynamite Dux creado a partir de un Altered Beast y un Time Scanner a partir de un Shinobi. En el caso del Dynamite Dux utilicé la versión de ROMs encriptadas (FD1094) así que previamente tuve que desencriptarlas.
Espero que todo esto os sirva de ayuda y podáis así completar vuestra colección con los títulos que se os resistan.
Saludos.
Dynamite Dux genuino
Dynamite Dux Clon creado por nosotros
Marcos75

1 comentario: