Autor Tema: Desencriptación Sega System 16/18 (FD1094)  (Leído 2772 veces)

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Desencriptación Sega System 16/18 (FD1094)
« 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.


Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Desencriptación Sega System 16/18 (FD1094)
« Respuesta #1 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.
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Desencriptación Sega System 16/18 (FD1094)
« Respuesta #2 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.


Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Desencriptación Sega System 16/18 (FD1094)
« Respuesta #3 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?
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

hector

Re: Desencriptación Sega System 16/18 (FD1094)
« Respuesta #4 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.

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Desencriptación Sega System 16/18 (FD1094)
« Respuesta #5 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...
« última modificación: 28 de Febrero de 2010, a las 22:33 horas por Marcos75 »


Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Desencriptación Sega System 16/18 (FD1094)
« Respuesta #6 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.

Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!