Autor Tema: Los secretos de la ROM del Frogger  (Leído 6273 veces)

Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Los secretos de la ROM del Frogger
« en: 05 de Julio de 2012, a las 23:34 horas »
¡Hola, torpedos!

Llevo unos meses, más bien años, con ganas de meterme de pleno en el listado desensamblado de la ROM del Frogger, y quería hacer un seguimiento de la misma, distinguir funciones, partes, secretos, etc. Lo que pasa es que todo sería basado en software, y no en hardware, claro, y por eso no sé si cuadraría en este foro.

Es por ello que pregunto a los moderadores si ven bien que abra este hilo en el que me pondré a investigar el código ASM de esta ROM. Si no cuadra decídmelo sin ningún poblema, ¿vale?

¡Cheers!

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

¡¡ ni de coña !!

ricky2001

  • ****
  • Mensajes: 1444
  • Arcade Adicto
Re: Los secretos de la ROM del Frogger
« Respuesta #1 en: 05 de Julio de 2012, a las 23:41 horas »
Me dejas impresionado, yo de programación ni flowers si no es aquí espero ver el artículo esté donde esté.

Saludos ricky

luisdatasat

  • Marciano
  • ****
  • Mensajes: 305
    • www.datasat.es
Re: Los secretos de la ROM del Frogger
« Respuesta #2 en: 06 de Julio de 2012, a las 11:15 horas »
Bubu

No hay problema, al contrario, cualquier cosa relacionada con placas Arcade, tienen cabida en este foro.

 ;)

gamezer0

  • Recien llegado
  • Mensajes: 63
Re: Los secretos de la ROM del Frogger
« Respuesta #3 en: 06 de Julio de 2012, a las 18:07 horas »
Si se habla de software genial!! Al menos en eso no soy un negado (más me vale, que con eso me gano el pan :P ) como en hardware de placas jeje!! Aunque el ensamblador lo tengo un poco olvidado, pero se me daba bastante bien :)

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Los secretos de la ROM del Frogger
« Respuesta #4 en: 07 de Julio de 2012, a las 23:42 horas »
Una idea cojonuda, Bubu. Estamos hablando de código de Z80, ¿verdad? Si es así, lo mismo hasta me entero de algo ;)


ricky2001

  • ****
  • Mensajes: 1444
  • Arcade Adicto
Re: Los secretos de la ROM del Frogger
« Respuesta #5 en: 08 de Julio de 2012, a las 01:32 horas »
Cita de: Marcos75 en07 de Julio de 2012, a las  23:42 horas
Una idea cojonuda, Bubu. Estamos hablando de código de Z80, ¿verdad? Si es así, lo mismo hasta me entero de algo ;)

Si es Z80 de hecho la placa no es mas que un galaxían con una placa superior con mayores capacidades de sonido pero la placa inferior es casi identica a un galaxian.

Saludos

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Los secretos de la ROM del Frogger
« Respuesta #6 en: 08 de Julio de 2012, a las 01:40 horas »
Pues nada, lo primero será meterle "vidas infinitas", ¿no? :)

Recuerdo que en su día escribí un mini-programa para mi Amstrad que me permitía buscar una rutina en los juegos que decrementara un contador. Esa rutina podría ser la que restara una vida, y si la anulabas con un poco de suerte acertabas y tenías vidas infinitas.

Sería curioso reprogramar las EPROM de los juegos antiguos para obtener este tipo de ventajas. Lo que hace MAME y sus cheats, pero sobre la placa original... Eso sin tener en cuenta que algunos juegos tenían incluso opciones similares seleccionables con los DIP.

Vaya película que me he montado en un momento...


ricky2001

  • ****
  • Mensajes: 1444
  • Arcade Adicto
Re: Los secretos de la ROM del Frogger
« Respuesta #7 en: 08 de Julio de 2012, a las 08:24 horas »
Pues en concreto esta tiene la opción para poner 256 ranas que creo que puede ser suficiente  ;)

--------------------------------------------

1   2   3   4   5   6   Meaning
-------------------------------------------------------
On  On                  3 Frogs
On  Off                 5 Frogs
Off On                  7 Frogs
Off Off                 256 Frogs (!)

        On              Upright unit
        Off             Cocktail unit

            On  On      1 coin 1 play   \
            On  Off     2 coins 1 play   \ Coin Mech #1
            Off On      3 coins 1 play   /
            Off Off     1 coin 2 plays  /

            On  On      1 coin 1 play   \
            On  Off     2 coins 1 play   \ Coin Mech #2
            Off On      1 coin 3 plays   /
            Off Off     1 coin 6 plays  /


No estoy seguro de haber probado esto pero creo qeu si que funcionaba.

Saludos

Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Los secretos de la ROM del Frogger
« Respuesta #8 en: 09 de Julio de 2012, a las 00:45 horas »
JAjjaJAJAjAJA, ¡¡eso es, es un Z80!! Bueno, en realidad son dos Z80, ya sus contaré.
Bueno, pues en vista de que hay interés, me voy a meter de lleno con esto, jiji. Se trata de destripar la ROM, ver las partes que tiene (gráficos, sonido, movimientos, etc), y por supuestísimo que veremos dónde se "pokea" con vidas infinitas, y sobre todo, por qué, jiji.

¡¡Esta semana que viene comenzamos!!


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

¡¡ ni de coña !!

Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Los secretos de la ROM del Frogger
« Respuesta #9 en: 12 de Julio de 2012, a las 00:49 horas »
Comencemos, començoms.
Vayamos, vayons.
Cojamos, ...

Esto... todo empieza descargándonos el driver para la emulación de la placa Frogger:

www.gtoal.com/gp32/src/drivers/frogger.c

Si lo vemos con un editor de textos cualquiera, veremos que lo primero que tenemos es la lista de zonas de interés dentro de la ROM:

Código: [Seleccionar]
0000-3fff ROM
8000-87ff RAM
a800-abff Video RAM
b000-b03f Screen attributes
b040-b05f Sprites

Así que ya vamos viendo que el Frogger tiene 16KB de ROM que es donde se encuentra el juego en sí, y 2KB de RAM. Con tan poca memoria, y qué juegazo, diommío...

Después de la zona de la RAM, vienen otras zonas dedicadas al vídeo. Es importante saber que Frogger tiene una resolución de 224 x 256 píxeles (o 28 x 32 caracteres de 8 x 8 píxeles c/u).

Aunque realmente en memoria se encuentran 32 x 32 caracteres, sólo se muestran 28 x 32 caracteres. Así las cosas, 32 x 32 = 1024 = 1 KB, que es la zona que va de A800 a ABFF. En esta zona, cada byte corresponde con un carácter, y se llama Video RAM

La siguiente zona es la Screen attributes, uséase, atributos de pantalla. Cada una de las 32 filas del frogger posee 2 atributos: la paleta de colores, y el offset.

La paleta de colores se refiere a una de las 8 paletas que tiene el frogger, siendo cada paleta un conjunto de 4 colores.

El offset se refiere a un desplazamiento en píxeles con el que se va a pintar la fila. Este offset es para mí lo más importante de todo el juego. Gracias a este offset los coches y los troncos se mueven, sin esfuerzo para el Z80, y por culpa de ello es tan difícil emularlo en ordeñadores como el Spectrum, donde no existe offset en las filas.

Para comprender un poco mejor esto del offset: una fila con offset 0 saldrá dibujada normal, pero si pongo a 1 su offset, se desplazará un píxel. Si le pongo a 20 su offset, se desplazará 20 píxeles.

Lo importante es que este desplazamiento lo hace no el Z80 sino el hardware de la PCB del Frogger.


Bueno, ¡¡próximamente más!! Repasaremos la otra zona que nos queda, la de los sprites, jiji.


¡¡CROACA!!
« última modificación: 12 de Julio de 2012, a las 08:46 horas por Bubu »
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Los secretos de la ROM del Frogger
« Respuesta #10 en: 16 de Julio de 2012, a las 13:26 horas »
Próximamente...

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

¡¡ ni de coña !!

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Los secretos de la ROM del Frogger
« Respuesta #11 en: 16 de Julio de 2012, a las 13:37 horas »
Cita de: Bubu en12 de Julio de 2012, a las  00:49 horas
Es importante saber que Frogger tiene una resolución de 224 x 256 píxeles (o 28 x 32 caracteres de 8 x 8 píxeles c/u).

Esta configuración o muy similar es típica en los juegos clásicos. A modo de anécdota, seguramente todos los que cacharreéis con placas habréis observado alguna vez la típica pantalla de "cuadritos", cuando un juego no funciona. Lo que estáis viendo es esa matriz de cuadros de 8x8 píxeles rellena con "basura"...


Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Los secretos de la ROM del Frogger
« Respuesta #12 en: 16 de Julio de 2012, a las 13:41 horas »
Efestivamente.

Y vaya, me acabo de dar cuén de que me he comido la columna 0 (la de más a la derecha) en el esquema que acabo de subir, maldición... Bueno, como tenéis mucha imaginación, imaginad que ahí hay una columna 0.
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Los secretos de la ROM del Frogger
« Respuesta #13 en: 16 de Julio de 2012, a las 13:45 horas »
Cita de: Bubu en16 de Julio de 2012, a las  13:41 horas
en el esquema que acabo de subir

Tron, yo no veo ná...  8)


Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Los secretos de la ROM del Frogger
« Respuesta #14 en: 16 de Julio de 2012, a las 13:50 horas »
Dale a F5, no pué ser. Yo sí veo el esquema (un mapa del Frogger dividido en 32x32 cuadritos). Si no lo ves, tú que eres moderata del foro y puedes editar los mensajes, edítalo a ver si ves algo rarro...
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

luisdatasat

  • Marciano
  • ****
  • Mensajes: 305
    • www.datasat.es
Re: Los secretos de la ROM del Frogger
« Respuesta #15 en: 16 de Julio de 2012, a las 14:04 horas »
Yo si lo veo  8)


Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re: Los secretos de la ROM del Frogger
« Respuesta #16 en: 16 de Julio de 2012, a las 16:36 horas »
Bueno, pues sigo con un poquito más de teoría froggerística, la zona de Sprites. Esta zona mide 32 bytes solamente, y es que en el Frogger se tienen hasta 8 sprites, quedando identificado cada uno con 4 parámetros:

- pos. horizontal
- cód. del gráfico
- cód. de la paleta
- pos. vertical

Así que SPRITE = (x, gfx, pal, y)

En la parte de presentación del Frogger, veréis 7 ranas andando hacia arriba y finalmente convirtiéndose en las letras F R O G G E R. Cada una de estas 7 ranas es un sprite: SPRITE0... SPRITE6.

Luego, ya en el transcurso del juego, el SPRITE0 es la rana rosa, mientras que el SPRITE1 es el protagonista, la rana verde.

Esta zona se almacena desde la posición b040 a la b05f.

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

¡¡ ni de coña !!

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re: Los secretos de la ROM del Frogger
« Respuesta #17 en: 16 de Julio de 2012, a las 17:08 horas »
Ondia, qué chulo. Lo veo perfectamente, no sé qué pasaba antes...