Desentrañando los misterios del Frogger (¡¡croac!!)

Foro dedicado a la programación en todo tipo de sistemas clásicos.
Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor Bubu » 10 Nov 2018, 16:39

¡Jarl, torpedos!

Resulta que el Frogger (1981), como sabéis, es considerado como uno de los mejores juegos de la historia, que más ha influido, que más ha enviciado, que más se ha votado, etc. Véase, en el puesto 21:

https://www.arcade-museum.com/TOP100.php


Lo desarrolló Konami en 1981, y lo distribuyó Sega. Este juego inicialmente se iba a llamar Highway Crossing Frog, pero los de Sega lo cambiaron a Frogger. Como curiosidad, el Frogger se ideó a partir del "Freeway", un juego de 10 años antes (1971) desarrollado para el IMLAC PDS-1. Este Freeway era un software terapeútico, para tratar temas de memoria, y los de Konami se inspiraron en él e hicieron el arcade.

Imagen

Este juego tiene varios trucos y bugs, como podéis ver aquí:

BUG: Sometimes the lady frog is invisible normally purple until you accidently jump on it. Then she appears white with red legs on the frog's back. You still get 200 points.
BUG: From the middle section between the river and the road, jump upwards to a pad and jump back so where you have been moved to the left just a few pixels. You should be able to go off-screen to the right. If not, repeat. For more fun, jump upwards to where a pad should be. You will make it, but you will die.

BUG: Part of the background music will cut-out from time to time, only leaving the primary melody playing.

BUG: The game is not always even-handed with the rules, and frogs are occasionally killed on perfectly valid jumps.

BUG: When timed just right, if you jump into a home base that has an alligator and the alligator disappears mid-jump, your frog will die but will also make it home safely!

BUG: Moving left and right on the very top log can sometimes be very slow, and is more likely to occur after previously eating a fly.

TRICK: You can usually jump so where you are dangling off of the left side of a turtle, but not the right.

TRICK: If you play this game on a PC emulator such as MAME and use a code for unlimited time, you will hear the entire background song to its finish. This was never possible on the actual arcade game since you always ran out of time before the song finshed playing.

TRICK: The frog becomes controllable in attract mode once it reaches the very top log.

TRICK: When the frog in the demo in attract mode is at it's last move, you can control it with no tokens!



Yo coñozco otro bug que es el peor de todos: cuando estás en la fila de más arriba que ya lo te quea es meterte en una caseta, si por lo que sea tienes que volver a la fila inferior, al darle al mando p'abajo éste no responde. Le tiés que dar una segunda vez. Y hoy he vivido ese bug en mis cannes. Estaba a punto de llegar al nivel 15, y me quedaba una última caseta, pero apareció en dicha caseta un cocodrilo, y entóns quería irme p'abajo pa hacer tiempo. Pues al darle p'abajo, ni de coña funcionó, y ya me mataron... Me parece ingreíble que KLOV no recoja ese bug.

Imagen


Bueno, la idea de abrir este hilo es por si a alguien le gustaría meterse de lleno en el código fuente del Frogger a partir de las roms recopiladas en MAME, descubrir qué funciones tiene, qué variables usa, qué métodos usa para mover el juego, y divertirnos con ello. Y para que no sea todo tan estricto y matemático, intentar descubrir los siguientes misterios, los cuales hasta ahora naide del mundo ha descubrido:

- En la 3ª fase en un momento determinado de repenete una fila de coches se pone a una velocidad descomunal. A priori parece que ocurre en un momento aleatorio (ld a, r AJjAjaJaJjaJA) pero me gustaría saber qué fórmula usaron para iniciar esa velocidad
- Al llegar a la fase 15, ya se muestran abajo más ranitas indicadoras de la fase. Me gustaría saber aónde está ese IF fase>15 then no pintes más fases
- Ver por qué ocurre el fallo de ir p'abajo desde la última fila a la penúltima, aunque esto puede ser complejo de descubrir.


En fins, ¿alguien se apunta a esto? Por supuesto sin prisas ni estreses, que estas cosas llevan su tiempo...

Imagen
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
mon
Amiga 1200
Amiga 1200
Mensajes: 1426
Registrado: 21 Jun 2006, 17:01
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo SNES
Gracias dadas: 15 veces
Gracias recibidas: 12 veces
Contactar:

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor mon » 11 Nov 2018, 12:13

Yo en la máquina real no recuerdo el bug que comentas.
Era bastante habitual hacer ese movimiento que dices, pero no recuerdo el error.
Y jugué mucho al frogger.
También puede influir mi edad y que sí pasara el bug...
:-)

p.d.: el otro día, comenté en mi trabajo (relacionado con informática) si conocían porque se lllamaban a los errores informáticos bugs. Y nadie lo sabía. :-)

Avatar de Usuario
gamer80
Atari 1040 STf
Atari 1040 STf
Mensajes: 781
Registrado: 31 Oct 2011, 19:34
Ubicación: ESPARTA
Gracias dadas: 20 veces
Gracias recibidas: 34 veces
Contactar:

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor gamer80 » 11 Nov 2018, 12:25

A veces me pregunto si algunos de esos bugs que aparecen en los videojuegos no son intencionados.
Cuando le das a saltar y no salta.
Cuando vas a ir a la derecha para esquivar a un enemigo y no hace ni caso.
Cuando te matan y parece que ni te ha tocado.
:-k
"Hazlo o no lo hagas, pero no lo intentes" -Maestro Yoda-

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2967
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 68 veces
Gracias recibidas: 322 veces
Contactar:

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor zup » 11 Nov 2018, 12:37

Actualmente parece que va en beneficio del jugador, aunque en aquellos tiempos vete a saber. Por ejemplo, en muchos FPS modernos durante los primeros segundos de un tiroteo los enemigos tienen más o menos la misma puntería que un Stormtrooper normal. Cuando el motor considera que el jugador ya ha sido "avisado", la puntería vuelve a ser la normal.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
gamer80
Atari 1040 STf
Atari 1040 STf
Mensajes: 781
Registrado: 31 Oct 2011, 19:34
Ubicación: ESPARTA
Gracias dadas: 20 veces
Gracias recibidas: 34 veces
Contactar:

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor gamer80 » 11 Nov 2018, 14:46

A saber la de secretos y 'easter eggs' que quedan todavía por descubrir en los viejos arcades 8-)
"Hazlo o no lo hagas, pero no lo intentes" -Maestro Yoda-

Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor Bubu » 11 Nov 2018, 20:37

Jaaarl, bueno, voy a empezar con lo primero, jiji. Y lo primero es pillar la rom original del Frogger:

https://edgeemu.net/details-9970.htm


A continuación necesito el driver del MAME, el cual me dará mucha información sobre zonas de memoria, puertos y demás:

https://github.com/jv4779/openlase-mame ... /frogger.c


Información útil sobre mapeo de memoria:

https://github.com/xobs/chumby-mame/blo ... rogger.cpp



Y por último, un desensamblador:
Última edición por Bubu el 22 Nov 2018, 20:47, editado 1 vez en total.
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
explorer
MSX Turbo R
MSX Turbo R
Mensajes: 398
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias dadas: 2 veces
Gracias recibidas: 138 veces
Contactar:

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor explorer » 12 Nov 2018, 04:48

El propio MAME, entrando en modo depuración, te puede sacar el desensamblado de la ROM y grabarlo a disco. Así es como lo empecé a hacer con el del Pengo.

Bueno, de hecho, es casi lo mejor: algunas ROM tienen medidas para evitar la copia. Muchas de esas medidas consisten en intercambiar líneas del bus de datos. Por eso, en algunos juegos, no puedes desensamblar a partir del archivo de la ROM, porque le parece basura al programa desensamblador. En cambio, si primero lo cargas con el emulador MAME, ya obtienes todo el código correcto. Así pude sacar el listado de las distintas versiones del Pengo (algunas estaban protegidas de este modo).

Si interesa, puedo contar el procedimiento que usé en su momento para recrear el listado original.

Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor Bubu » 12 Nov 2018, 10:10

Pues sí, me gustaría si pudieras explicarme cómo es esa protección de intercambio de líneas del bus de datos. ¿Te refieres a datos encriptados? Te aseguro que el Frogger tiene el código z80 y los datos sin codificar ni nada raro. Lo único que pasa es lo que pasa siempre con los desensamblados cuando hay datos por medio del código:

Código: Seleccionar todo

ld a, (hl)
ret
DB 1
ld a, 32
etc


Como el desensamblador no sabe nada de datos, sino que se espera que todo sea código, el pograma anterior lo desensamblaría como sigue:

Código: Seleccionar todo

ld a, (hl)
ret
ld bc, 8254
etc


y hay que estar vigilando completamente el código para que esto no ocurra...
Así que porfaplís, cuanta cómo lo hiciste con el PENGO :)
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
Namek
Atari 1040 STf
Atari 1040 STf
Mensajes: 838
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 18 veces
Gracias recibidas: 63 veces

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor Namek » 12 Nov 2018, 11:51

Bubu escribió:Pues sí, me gustaría si pudieras explicarme cómo es esa protección de intercambio de líneas del bus de datos. ¿Te refieres a datos encriptados?
Pues en cierto modo si que es una especie de encriptación, pero muy básica. al intercambiar lineas del bus de datos lo que se hace es que la linea que llevaría el bit 0 se conecta a otro diferente por ejemplo al 7 y la 1 al 6, la 2 al 5, la 3 al 4, la 4 al 3, la 5 al 2, la 6 al 1 y la 7 al 0, por tanto los datos estarían grabados con los bits en el orden inverso y al intentar leer las ROMS los datos leidos no tendrían ningun sentido. De esta forma los fabricantes intentaban evitar el acceso al código de sus juegos.

Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

Re: Desentrañando los misterios del Frogger (¡¡croac!!)

Mensajepor Bubu » 12 Nov 2018, 14:49

Pos es una protección como muy infantil, JAjAjajAjA, sólo hay que mirar con los ojos de dónde a dónde van esas líneas del bus, y se acabó la protección :D
A menos que haya algo que me esté yo perdiendo, esa protección es como si yo protejo mi casa poniendo la cerradura bocabajo :D

Recuerdo la protección que lleva la placa del Crazy Climber, en la que el z80 está metido en un epoxi y vete tú a saber la elestrónica que llevará ahí metía.

Pero bueno, ya digo que Frogger no lleva ninguna protección salvo la del perro guardián.
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados