Dumpear juegos y partidas de Mega Drive con la Mega CD
Para consultas y debates sobre el contenido de este artículo, visita el Hilo oficial.
Contenido |
Introducción
- La red está repleta de ROMs, juegos retro que han sido volcados/dumpeados a un fichero software. Prácticamente no existe ningún juego y versión que no haya sido dumpeada. Pero... ¿y si aún quedan versiones muy raras o prototipos no dumpeados que nosotros tengamos?. Lo ideal sería hacerle un dump para mantener una copia software duradera, o simplemente para poder jugarla en el PC con emuladores. Pero el hardware para hacer dumps puede ser caro o difícil de encontrar, o en el caso de que queramos construirlo puede ser complicado.
- Para los juegos de Mega Drive, hace años se innovó una solución relativamente fácil de poner en práctica si disponemos de una Mega CD, el Sega CD Transfer Suite.
- Este proyecto consiste en construir un simple cable Serie – Paralelo, el cual se conecta por una parte en la Mega Drive (en el puerto del segundo mando) y por otra parte al puerto paralelo del PC. Con dicho cable, y con el software creado para PC y Mega CD del proyecto, podemos dumpear muchos cartuchos de Mega Drive de manera rápida y sencilla.
- Utilidades de dumpear tus propios juegos:
- Juegos que aun no estén dumpeados (asiáticos, prototipos, rarezas, etc).
- Tener una copia de seguridad.
- Comprobar su versión (si está reconocida).
- Experimentar con él en emuladores, etc.
Material necesario
- Mega Drive con Mega CD.
- Conector hembra DB-9 (Serie).
- Conector macho DB-25 (Paralelo).
- Fajo de mínimo 8 cables (se usarán solo 8 de los 9 pins del DB-9). Es recomendable que sean largos.
- Cinta adhesiva y tijeras.
- PC con puerto paralelo; Windows 98 o XP (no se ha probado con Windows 7 y superior, pero posiblemente funcione).
- Tampoco se ha probado con un conversor "Paralelo a USB", para los PCs que no disponen de puerto paralelo.
- CD-R para grabar la iso con el software de la Mega CD.
- Software para PC y Mega CD del Sega CD Transfer Suite. Se puede obtener de la web del proyecto (en el apartado Downloads):
- Existen dos versiones del software, la v1.0 y la v1.1.
- La v1.0 está para cualquier región de Sega CD (para la Mega CD europea el paquete de software se llama "comcableeu.zip").
- Se han probado las dos y ambas funcionan igual de bien para dumpear cartuchos.
- Para el tutorial se ha usado la v1.1 "comcable11.zip". El inconveniente de esta versión más actual es que solo está para la Sega CD USA, si queremos usarla en nuestra Mega CD europea debemos convertir la iso a PAL (en la misma web existe otro proyecto llamado ConvSCD para realizar esta conversión).
- En el propio paquete .zip del software que vamos a descargar, se encuentra tanto el .iso que debemos grabar a CD para usar los programas de la Mega CD, como los programas .exe del PC.
- (Opcional) GoodGen para renombrar y comprobar la versión exacta de la rom dumpeada:
- Editor hexadecimal si vamos a dumpear además las partidas guardadas del juego (penúltimo apartado). Se ha usado para el sub-tutorial HexEdit 1.2.1 de Catch 22.
Construcción del cable
- Simplemente se debe soldar los pins del DB-9 al DB-25 atendiendo al esquema:
MD (DB-9) PC (DB-25) --------- ---------- 1 2 2 3 3 4 4 5 6 15 7 14 8 21 9 13
- Hay que tener en cuenta que solo se sueldan 8 de los 9 pins del DB-9 (el pin 5 no aparece en el esquema).
- La numeración de pins está grabada en pequeñito en los propios conectores.
- Ejemplo:
Preparar y conectar todo
- Primero, preparar todo el tinglado (Mega Drive con Mega CD, iso grabada en un CD-R, cartucho de Mega Drive, cable, etc.):
- El CD que se ha grabado es de la iso contenida en la versión 1.1 del proyecto ("comcable11.zip"), previamente convertida (U) -> (E) para poder usarla en la Mega CD europea:
- Pero perfectamente podéis usar la versión 1.0 ("comcableeu.zip") cuya iso no hay que convertirla.
- Conectar el DB-9 al puerto del mando 2 de la Mega Drive:
- Después conectar el DB-25 al puerto paralelo del PC:
- Este paso es importante. Tenemos que hacer un pequeño ajuste al cartucho a dumpear. Consiste en pegarle un trocito de cinta adhesiva al contacto B32 del cartucho (el de más a la derecha del cartucho, en su posición frontal, como indica el círculo verde):
- Esto se tiene que hacer para evitar que arranque la Mega Drive con el juego. Desactivando dicho contacto es como si la Mega Drive no detectara juego al enchufarla y arrancará la Mega CD. No os preocupéis, como mucho se quedará un poco de pegamento en dicho contacto que se puede limpiar con un trapillo y alcohol.
- Una vez conectado todo, lo enchufamos:
- En el PC abrimos una ventana MS-DOS y nos movemos al directorio del software de PC descomprimido (en mi caso el de la versión v1.1 "\comcable11").
Ejecución del software en ambos lados para dumpear el juego
- Cuando haya cargado el CD en la Mega CD, se verá esto:
- A continuación se va a explicar cómo ejecutar por un lado el software de Mega CD y por otro el de PC. Hay que seguir estrictamente este orden de ejecución.
- Primero hay que ejecutar el programa de dump de la Mega CD. Hay que mover la flecha hasta "DUMP.BIN" con la cruceta del mando:
- Y se ejecuta pulsando Start en el mando. Aparecerá esto, pero no se toca nada más por ahora:
- Ahora se va al PC para ejecutar su programa dump. En la línea de comandos se escre "dump.exe":
- Y se pulsa Intro para ejecutarlo. Aparece este mensaje:
- Ahora se vuelve a la Mega CD, y en dicha pantalla se mueve la flecha hasta "Auto":
- Y se pulsa Start en el mando. Ahora ya ha empezado el dump. En la Mega CD aparece este mensaje ("Dumping. Please Wait."):
- Mientras que en el PC va mostrando el porcentaje de progreso del dump:
- Hasta que llega al 100%, si entonces acaba la ejecución de dump.exe, es que se ha dumpeado el juego correctamente:
- En el directorio aparecerá "output.bin" con el juego dumpeado:
- Se puede probarlo directamente en un emulador, para comprobar que la rom funciona correctamente:
Renombrado con GoodGen
- No es necesario hacer este paso, porque simplemente es renombrar la rom con respecto a la nomenclatura y códigos de GoodTools (el formato más común de nombre de roms). Es útil para saber la versión exacta del juego, ya que GoodTools renombra consultando su base de datos e indica en el nombre diversos códigos para saber si es una versión original, una beta, región del juego, etc. Aquí se puede saber más sobre dichos códigos:
- Es muy sencillo. Se lleva la rom "output.bin" al directorio principal del GoodGen:
- En línea de comandos y ubicada en el directorio, se ejecuta "goodgen.exe rename":
- Renombrará la rom y la moverá a la carpeta "GenRen":
- Se entra en ella y se ve la rom renombrada con respecto a su versión concreta:
- En este caso, simplemente indica que es la versión europea del juego (E). Pero en otros juegos nos puede indicar más códigos interesantes sobre la rom original.
Dumpear las partidas guardadas del juego
- A continuación se va a explicar un método para dumpear las partidas guardadas utilizando la herramienta dump.bin/.exe explicada anteriormente.
- Este método sirve para aquellos cartuchos que internamente tienen una memoria aparte de la ROM para guardar partidas y continuaciones. Y el dumpeado de esta memoria de guardado se podrá usar para jugar con las partidas guardadas en emuladores.
- Por ejemplo, el Landstalker tiene una memoria SRAM interna en la que se guardan varias partidas. Se usará este mismo juego para explicar el método:
- Este es el estado actual de la SRAM del juego, vista en la máquina real con el cartucho puesto:
- Dumpear la SRAM que acabamos de ver. Lo primero es dumpear el juego normalmente, como se ha hecho en los apartados anteriores, poniendo "Auto" en la pantalla de dump de la Mega CD:
- Hay que fijarse en el tamaño de Megabits que se están dumpeando, en la pantalla de MS-DOS del PC. En el caso del Landstalker su ROM es de 16 Megabits:
- Una vez dumpeado, se renombra con GoodGen:
- A continuación se va a volver a dumpear el juego, pero esta vez indicando un tamaño mayor que la propia de la ROM dumpeada, por ejemplo, 32 Mb:
- Una vez dumpeado se le pone un nombre manualmente, en este caso "land.bin":
- Y se obtienen estos dos ficheros: la ROM del juego correctamente dumpeada ("Landstalker - The Treasures of King Nole (E) [!].bin"), y un dump del mismo cartucho pero de más tamaño ("land.bin"):
- Por lo tanto, esta es la idea del método: cuando se dumpea un cartucho con memoria de guardado, si el dump se hace de más tamaño que la ROM, la memoria de guardado se incluirá en el dumpeado, repitiéndose la misma varias veces hasta alcanzar máximo tamaño que se ha indicado, tal y como plasma el siguiente dibujo:
- Entonces lo que se tiene que hacer es extraer dicha memoria del fichero "land.bin" con un editor hexadecimal, y guardarla en un nuevo fichero .srm para que se pueda cargar desde un emulador:
- Primero se debe encontrar la dirección donde empieza la primera repetición de la memoria de guardado en "land.bin". Esto es sencillo, se abre "Landstalker - The Treasures of King Nole (E) [!].bin":
- Y se va al final del fichero, situándose en el último valor (círculo amarillo), de modo que el cursor del círculo naranja indica que estamos en la dirección 1FFFFF:
- Se cierra el fichero, y ahora se abre con el editor "land.bin":
- Se va a la opción Search -> Goto Address:
- Se pone la dirección que marcaba el cursor al final del otro fichero, 1FFFFF y se le da al botón Ok:
- Nos lleva a dicha dirección:
- Por lo tanto, este es el límite entre el final de la ROM y el principio de la memoria de guardado:
- Ahora hay que saber dónde acaba esta primera repetición de la memoria de guardado. Hay varias maneras, pero lo más fácil es buscar en internet el tamaño exacto de la memoria de guardado del juego que se ha dumpeado. Por ejemplo, esta tabla indica los tamaños ROM y memoria de guardado de cada juego. Según indica, el tamaño de la memoria de guardado del landstalker es de 128 Kbits:
- Esta cantidad la debemos pasar a bytes:
Siendo 1 Kbit = 1024 bits... (importante K mayúscula son 1024) 128 Kbits => 128 * 1024 = 131072 bits 131072 bits => 131072 / 8 = 16384 bytes
- Por lo tanto, 16384 bytes son los que debemos seleccionar en el editor para tener nuestra memoria de guardado y extraerla de ahí.
- Estábamos posicionados en 1FFFFF, pues nos posicionamos en el principio de la memoria de guardado, con la tecla derecha nos ubicamos en la posición 200000:
- Se va a Edit -> Select Range:
- Se indican los 16384 bytes a seleccionar:
- Y se seleccionan los 16384 valores desde la posición 200000, este rango es justo la primera repetición de la memoria de guardado que se quiere extraer:
- Se pulsa el botón derecho del ratón sobre la selección y se va a Copy To:
- La selección se guardará n un nuevo fichero con el nombre "Landstalker - The Treasures of King Nole (E) [!].srm":
- Y ya se tiene la SRAM del Landstalker con sus partidas actuales en un fichero:
- Ahora se va a probarla en un emulador. Se copia la ROM y la SRAM del juego y se pegan en el directorio principal del emulador (suponiendo que el emulador carga los ficheros .srm desde su directorio principal, que es lo que pasa en principio si no se ha configurado otra cosa):
- Se carga la ROM en el emulador:
- Y finalmente se ve que ha detectado el fichero .srm correctamente con las partidas que tenía en el cartucho:
Detalles importantes y conclusiones sobre todo el tutorial
- No se puede poner directamente el cartucho con la consola enchufada, para evitar ponerle cinta adhesiva en el contacto B32 y que no arranque el juego. En el momento que pones el cartucho "en caliente" y con el contacto "al aire", se bloquea la Mega CD y tienes que reiniciarla.
- El contacto B32 es solo el de la parte frontal, el de más a la derecha. No ponérselo por ambas partes de la ranura, solo por la parte frontal (en la foto he cortado un trozo largo de cinta, pero después la he cortado en dos partes).
- Si os falla el dump o notáis que ha salido mal porque falla en el emulador o no lo renombra GoodGen, podéis probar lo siguiente:
- Recolocar el juego en la consola, ya que como sabemos a veces al ponerlo para jugar suele fallar.
- Buscar el tamaño exacto del juego a dumpear y ponerlo manualmente en la pantalla de dump de la Mega CD en lugar de poner "Auto". Aquí tenéis una lista con los tamaños de los juegos.
- En la pantalla de la mega CD donde se selecciona el tamaño de rom, se puede dumpear la BIOS de nuestra Mega CD (para usarla en el emulador). Y abajo del todo pone "8-Bit" que supongo que será para dumpear juegos de Master System con el Power Base Converter.
- No se ha probado el tutorial con un ordenador actual, con Windows 7 y un conversor "Paralelo a USB" (ya que el puerto paralelo está en desuso). Puede ser que funcione.
- En cuanto al sub-tutorial de dumpear la memoria de guardado, tened en cuenta que es un método empírico/experimental que se ha descubierto. En la web del proyecto no cuenta nada de que se pudiera dumpear la memoria ni en otro sitio de internet, por lo tanto no hay una documentación formal de este método. Puede que no funcione con todos los juegos en los que se puede guardar partida. Juegos probados con resultado satisfactorio:
- Landstalker
- Light Crusader
- Sonic 3 & Knuckles