VARIOS (Para hablar sobre la afición, presentar proyectos etc , no postear averías) => Proyectos => Mensaje iniciado por: Marcos75 en 26 de Febrero de 2010, a las 20:48 horas

Título: Desencriptación Sega System 16/18 (FD1094)
Publicado por: Marcos75 en 26 de Febrero de 2010, a las 20:48 horas
Buenas a todos.

Después de pegarme con un Golden Axe y un Wonder Boy III con baterías suicidas, y de ver que no hay NADA de información en la web y que la única solución para eliminarlas es pagar los 40 dólares que cobran en cierta página (la única que ofrece este servicio), decidí hace un par de semanas embarcarme en un proyecto consistente en desencriptar el código de las placas System 16.

Y lo he conseguido. Y como estas cosas deben estar al servicio de la afición sin que haya que pagar por ello (entre otras cosas porque el mérito para desencriptar es del equipo de desarrollo de MAME, siendo el MAME gratuíto y con los fuentes abiertos), me gustaría compartir con vosotros la descripción de cómo lo he conseguido. Me he creado una pagina donde iré subiendo TEMPORALMENTE (algo he hablado con elnaib de este tema  ;)) todos los tutoriales que he ido creando. Está en pañales, pero podéis echarle ya un vistazo al tutorial del que os hablo.

http://marcos75-arcade.jimdo.com/baterías-suicidas/desencriptación-fd1094

Un saludo.
Título: Re: Desencriptación Sega System 16/18 (FD1094)
Publicado por: Bubu en 27 de Febrero de 2010, a las 14:41 horas
Diossssanto, ensamblador, ahhhhhh... mmmmmmmmhhhhh.... ahhhhh..... pprrfffshshhhhhh....

Marcos75, ¿me podrías porfaplís resumir así mu-rápido qué eso de la batería suicida y qué relación tiene el harware (batería) con el software (encriptación)? Antes de meterme de lleno en tu doc. Muchas gracias de antemano, presiento que voy a gosssar con este doc.
Título: Re: Desencriptación Sega System 16/18 (FD1094)
Publicado por: Marcos75 en 28 de Febrero de 2010, a las 15:58 horas
Pues verás: el código se encuentra encriptado en las EEPROM a nivel de palabra (word), que en un 68K es de 2 bytes. El procesador cada vez que coge una palabra de la ROM antes de "ejecutarla" debe desencriptarla, siguiendo un algoritmo basado en una clave. Esa clave se almacena en una RAM dentro del propio procesador. Al ser RAM, necesita estar alimentada continuamente. Y esa es la misión de la pila (también dentro del procesador). Si la pila se gasta, la RAM se borra, y el procesador ya no es capaz de desencriptar el código cifrado.

Tampoco es que sea un experto en el tema, espero que con esa explicación te quede claro... Además de programación sabes tú mil veces más que yo (que sé más bien poco) así que si ves algo incorrecto en el tutorial, ¡dímelo y lo cambiamos!

Saludos.
Título: Re: Desencriptación Sega System 16/18 (FD1094)
Publicado por: Bubu en 28 de Febrero de 2010, a las 18:36 horas
Qué arte. Una duda más: entonces, el fabricante de las placas, ¿metía siempre el mismo valor en la RAM de la CPU en todas las placas, o cada placa tenía el suyo? Imagino que todas tendrían el mismo valor de desencrptación, pero entonces no entendería la utilidad de esto. ¿Antipiratería?
Título: Re: Desencriptación Sega System 16/18 (FD1094)
Publicado por: hector en 28 de Febrero de 2010, a las 21:12 horas
creo que por 2 motivos principales.

el primero evitar la pirateria y los volcados de roms, que empezaban a abundar y distribuirse para varias plataformas.

el segundo y creo que mas importante, el mantenimiento. era asegurarse el mantenimiento de las placas, ya que si no ibas pasando las revisiones recomendadas cada x tiempo, tranquilo que ya llamaras cuando no encienda... xD. un as en la manga.
Título: Re: Desencriptación Sega System 16/18 (FD1094)
Publicado por: Marcos75 en 28 de Febrero de 2010, a las 22:00 horas
El motivo principal es antipiratería. No hay cojones a leer el contenido de esa RAM (que era distinto de juego en juego, incluso entre dos versione de distinta región del mismo juego). El equipo de desarrollo de MAME no lo ha sacado volcando esa RAM, sino "interrogándola". De hecho me pareció leer en la página de Guru que no saben si las RAM que han inferido son realmente las originales o no, aunque debieran serlo y prueba de ello es que los juegos funcionan en MAME.

Lo del mantenimiento pudiera ser, aunque si lo hicieron por eso les ha salido el tiro por la culata. Todavía no he visto un caso de juego con FD1094 en el que se le haya gastado la batería, casi 25 años después...
Título: Re: Desencriptación Sega System 16/18 (FD1094)
Publicado por: Bubu en 28 de Febrero de 2010, a las 22:22 horas
OK, muchas gracias a los 2. Me empaparé tu artículo, Marcos75, para entrar en más detalle. Parece esto bastante interesante, jiji.