Pengo. Sus últimos secretos

Para hablar de esos juegos de las recreativas que tanto nos gustaban
Avatar de Usuario
explorer
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 158
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 recibidas: 32 veces
Contactar:

Pengo. Sus últimos secretos

Mensajepor explorer » 25 Nov 2014, 22:46

1181242143163.png
1181242143163.png (4.44 KiB) Visto 365 veces


Este hilo es para contar los secretos que he descubierto al desensamblar el código del Pengo (Sega, 1982).

Lo que ya sabíamos (descrito en la hoja de manual de servicio y en el panel frontal de la máquina) está descrito en diversos sitios de Internet. Lo que sigue son detalles descubiertos exclusivamente mirando el código del juego.

Juego
Consta de 16 fases (actos) en donde un pingüino (Pengo) debe sobrevivir a los malvados Sno-bees: su simple contacto es letal.

Para defenderse, Pengo puede aplastarlos empujando bloques de hielo sobre ellos, o aturdirlos si se encuentran en la vecindad de un muro. También puede juntar los tres bloques marcados como diamantes, obteniendo bonos y aturdiendo a todos los enemigos.

El acto termina cuando ya no quedan más enemigos en el tablero de juego.

Detalles ocultos
  • Un acto no puede durar más de dos minutos de forma continua (es decir, sin que se produzca la muerte del jugador). A partir de ese momento, todos los Sno-bees pasan al modo "huida", incluso si aún no han aparecido (siguen ocultos como huevos).
  • La duración de un acto (segundos que luego son convertidos en puntos al final del juego) es, exactamente, desde que el Pengo empieza a moverse, hasta que termina de moverse y desaparecen los bloques.
  • El conseguir los bonos al juntar los diamantes tiene un efecto colateral: los huevos que aún queden escondidos parpadearán durante el resto de la fase, lo cual es una gran ventaja.

Sno-bees
  • Los Sno-bees rompedores (los que tiene brazos) tienen predilección por seguir rompiendo en la misma dirección en que rompieron el bloque anterior, así que esa es la razón por la cual son capaces de destruir muros enteros. Y esa también es su debilidad ;)
  • Los Sno-bees tienen querencia en ir hacia el Pengo en función del número de fase y de "su" tiempo de vida: cuanto más tiempo lleva un Sno-bee en juego, más querencia tiene en ir hacia el Pengo.
  • El algoritmo de aproximación al Pengo es muy simple: calcular la diferencia en filas y columnas con el Pengo y elegir reducir la mayor de ellas. Esto implica que en las fases más altas, el Sno-bee hace un efecto de escalera para ir casi diagonalmente hacia el Pengo.
  • El movimiento general de los Sno-bees es el siguiente: eligen una dirección al azar (o por querencia, hacia el Pengo), y la mantienen durante un determinado tiempo. Cuando termina ese tiempo y llegan a una posición de pantalla que es múltiplo de bloque de hielo, deciden una nueva ruta. Si mientras se mueven a lo largo de ese tiempo, chocan contra un diamante o huevo escondido, toman la dirección contraria. Mientras tanto, su comportamiento normal es el de recorrer los pasillos. En concreto:
    • Si están completamente rodeados de bloques, se promocionan inmediatamente a rompedores.
    • Si solo hay un camino, puede tratarse de un Sno-bee atrapado en un callejón. Tomará en cuenta las posiciones que recorre. Si al cabo de dos movimientos se repiten las posiciones, se promociona a rompedor (eso quiere decir que si metemos a un Sno-bee en un espacio de tres o más bloques libres, tardará en salir de allí).
    • Si hay dos caminos (pasillo), su tendencia es a seguir el pasillo.
    • Si hay tres caminos posibles elije uno al azar, pero descartando la dirección por donde ha venido (evitar que el Sno-bee tenga un movimiento excesivamente errático).
    • Si hay cuatro caminos posibles (está en campo abierto), en el 50 % de los casos irá en dirección hacia el Pengo.
  • El tiempo del "recorrido" del Sno-bee depende del número de acto. Eso quiere decir que en los primeros, los Sno-bees tienden más a ir por grandes rectas o seguir los pasillos del laberinto, mientras que en las fases más altas están más tiempo pensando a dónde ir y por eso son más directos hacia el Pengo.
  • Los Sno-bees que están exactamente en la misma columna o fila que el bloque deslizante, tienen 3 comportamientos distintos. a) Si aún no han terminado su recorrido programado, seguirán tal cual. b) Pueden quedarse completamente quietos (curioso, ver más abajo). c) Aumentar la velocidad, huir en dirección contraria y escapar en el primer cruce que encuentren. Pasado el susto, vuelven a su estado anterior.
  • El gran misterio de la huida del último Sno-bee en pantalla. Este es el algoritmo que determina ese momento:
    • Hay una rutina que se ejecuta cada 1/61 de segundo. Entre otras cosas, lleva el contador de tiempo de juego (segundos/minutos/horas ¿horas?) y un contador secundario.
    • Cuando, en el juego, se da la circunstancia de que quedan 2 Sno-bees, en cada fase de animación se pone a cero ese contador. Esto se hace para lo que viene a continuación.
    • Si sólo queda un Sno-bee, el contador no se reinicia, por lo que se va incrementando en cada cuadro de animación.
    • A continuación se comprueba si el byte superior del contador es mayor o igual a 3, es decir, cuando pasen 3*256/61 = 12.6 segundos, transforma el Sno-bee en uno que huye.

    Y aquí queda aclarado el misterio:
    • Si vamos eliminando Sno-bees uno a uno, cuando queden dos, el contador se inicializa. En cuanto eliminemos a uno de ellos, pasarán 12 segundos, y el último que quede, huirá.
    • En cambio, si cuando quedan 4 o menos Sno-bees, eliminamos a todos menos uno, éste huirá inmediatamente, debido a que el contador no se ha inicializado (no hemos pasado por el momento de que quedaran exactamente 2 Sno-bees) y llevamos más de 12 segundos del acto (que es lo más normal).

    Esto lo podemos aprovechar a nuestro favor, ya que sabemos entonces el momento exacto (más o menos) de cuándo huirá o también en los casos en los que quedan 3 o 4 Sno-bees, decidir si eliminar a todos ellos menos el último (poder controlarlo con los muros laterales mientras intentamos unir los diamantes).
  • El Sno-bee que huye tiene como objetivo llegar a una esquina del tablero.
    • Primero elige un sentido (arriba, abajo, izquierda o derecha), y al llegar a un muro, vuelve a elegir otro, para llegar a una esquina.
    • Si en el camino se encuentra con un diamante, elegirá un camino aleatorio, y en la siguiente posición múltiplo de bloque volverá a escoger el sentido original de la huida. Esto lo podemos aprovechar construyendo un sándwich (o bocadillo). Basta con colocar los diamantes formando un callejón sin salida. Si tenemos la fortuna de que el Sno-bee llegue a meterse, tendremos la recompensa de poder romper todos los bloques de hielo de la pantalla, algo que solo merece la pena si llevamos más de 30 segundos de juego.
      Imagen

Detalles técnicos
  • La generación de los laberintos, aunque parezca increíble, es aleatorio. Se utiliza un algoritmo básico de generación de laberintos, usando una máscara de bits (cada bit es un bloque de hielo), para su generación. Pero, lo más sorprendente, es que usa automodificación de código para crear los pasillos. Naturalmente, estamos hablando de un juego grabado en ROM, así que lo que hace el programa es reservar unos bytes en la RAM para crear allí el código que va a usar. Primero pondrá el código para preguntar si puede crear un pasillo, y luego lo sustituye por código que crea realmente el pasillo. Como las rutinas que controlan la creación de pasillos son las mismas que las que dicen si es posible crearlos, pues usa este truco para no tener que duplicar un montón de líneas de código.
  • El generador de números aleatorios sólo se ejecuta dentro del acto. Esto permite, por ejemplo, que en el modo attract del juego, se pueda reproducir un acto determinado (laberinto y movimientos de los Sno-bees). Este azar controlado permite mover a los Snobess (decisión de ir a por el Pengo, por qué lado, a qué lado rebotar en caso de llegar a un muro, a qué esquina escapar, etc.) O también, permite que algunas fases se puedan resolver siguiendo un patrón de acción. Esa es la explicación de por qué da la sensación de que el número de escenarios es limitado, o por qué los huevos y diamantes están siempre en las mismas posiciones. Hay más detalles sobre el generador de números aleatorios en un mensaje posterior de este hilo.
  • La velocidad de reproducción de la melodía, durante el juego, depende del número de Sno-bees. Al principio del juego se pone a una determinada velocidad por defecto. Cada vez que se mata un Sno-bee y hay que generar un nuevo huevo, se comprueba si el número restante de Sno-bees es menor que [(el número de fase-1)/4+4] (resulta un valor entre 4 y 7). Si es así, se acelera. También, cuando un Sno-bee entra en modo huida, al final de la partida, se acelera aún más.
  • Cuando disparamos un bloque de hielo, hasta que no se detiene no podemos empujar otro. Esto es una limitación del hardware que solo tiene 6 sprites: 4 para los Sno-bees, 1 para el Pengo y otro más para el bloque de hielo deslizante. Esto es una desventaja tremenda para el Pengo, sobre todo si dispara bloques en vertical. Puede tardar mucho en poder golpear un muro o romper un bloque o disparar otro bloque.
  • Un bloque de hielo, mientras se rompe, tiene 8 fases de animación:
    bloque_rompiendose.png
    bloque_rompiendose.png (18.31 KiB) Visto 365 veces

    Es en el quinto cuadro de animación cuando se considera que el bloque "ya no está". El Pengo no puede atravesarlo hasta que desaparezca del todo, pero sí podemos empujar un bloque a través de él para pillar a los Sno-bees que estén al otro lado (o rompiendo ese mismo bloque). Es "fácil" distinguir visualmente ese cuadro: es el que ya no tiene "hielo" en la parte superior (primera fila).
  • El número máximo de bloques de hielo que se pueden romper a la vez, es de 6. Se puede ver, en los actos más altos, que en ocasiones queremos romper un bloque, y no podemos. Eso sucede bajo la siguiente circunstancia (muy rara, pero posible): los cuatro Sno-bees están rompiendo bloques, y el Pengo rompe en rápida sucesión dos bloques e intenta hacerlo una tercera vez. En ese momento, se observa que no se puede romper.
  • El juego tiene errores de programación. Pocos, pero hay alguno. El más desagradable sucede cuando desajustamos la cuenta de Sno-bees, que suele suceder cuando rompemos el bloque de hielo que contiene un huevo que está justamente eclosionando. Eso puede provocar que se desajusten los 3 (¡tres!) contadores de Sno-bees en juego, y que la fase no termine nunca (salen Sno-bees de forma indefinida. Mejor dicho: saldrán 255 Sno-bees más, pero no hay suficientes bloques para matarlos a todos). Otro error de programación es que a los Sno-bees se les prohíbe entrar en la misma columna o fila en donde está deslizándose el bloque que hemos empujado. Pues bien: el algoritmo no está completo, por lo que los Sno-bees sí entran, y podemos pillarles.
  • La posición de inicio del Pengo en el tablero, no es fija. Si da la casualidad que en la posición donde debe aparecer hay un bloque que contiene un huevo o un diamante, el programa prueba a ver si puede colocar el Pengo en los bloques superior, inferior, derecho o izquierdo. Y si no puede, entonces mira las cuatro esquinas de ese conjunto de 3x3 bloques. Y si no puede... pues... no está contemplado en el programa :D
  • La animación del "tropiezo" del Pengo cuando termina el acto es totalmente aleatorio (50 % de probabilidad).
  • El logotipo "Pengo" en grande, está compuesto en caracteres, en un esquema comprimido muy parecido a una codificación RLE. Todo por la limitación de 256 caracteres posibles. Cuando aparece la escena del banco de hielo, se usa un banco secundario de otros 256 caracteres.
  • Por todo el código hay controles antipiratería. Se comprueba si ciertas posiciones de memoria contienen un determinado valor, y si no es así, reinicia el juego. Esto no es un gran impedimento para modificar puntualmente el juego y crear una nueva versión del mismo.
  • Hay "código basura" :) Trozos de código que nunca se llaman. Son los restos del código que se usó para grabar la partida de demostración.

Curiosidades
  • Casi nadie lo sabe, pero... es posible ver a más de un Sno-bee huyendo :) Solo hay que esperar 2 minutos a que suceda la desbandada.
    tres_huyendo.png
    tres_huyendo.png (3.36 KiB) Visto 365 veces

  • Al final del acto, cuando se acaba de matar al último Sno-bee o éste ha huido por una esquina, el mayor número de bloques de hielo que se pueden romper antes de que termine la fase, es de 4 (muy difícil, pero posible).
  • Los diamantes son irrompibles, pero hay situaciones donde se pueden romper. Una de ellas es lanzar el diamante sobre un Sno-bee que está rompiendo un bloque. Si el diamante ocupa la posición del bloque de hielo que estaba rompiendo, desaparecerá. Pero sus coordenadas siguen almacenadas. Eso quiere decir que aún será posible unir los otros dos bloques al lado de esa posición, y obtener los bonos.
  • La fase más difícil es la 13, no la 16 (esto depende del nivel de dificultad y de la versión de juego). Se debe a que en la 14, 15 y 16, los Sno-bees están más tiempo pensando a dónde ir. Casi siempre irán hacia el Pengo, pero el nivel de fase les hace "pensar" en cada posición de bloque, por lo que serán más propensos a tomar curvas o dejar de perseguir el Pengo (Nota personal: para mi, la fase más difícil es la siguiente a la 16, o sea, la 1 de la siguiente vuelta, ya que la diferencia de agresividad de los Sno-bees te hace bajar la guardia :D).
  • Aunque parezca imposible, sí es posible conseguir más de 30 000 puntos (y por lo tanto, vida extra) con solo los dos primeros actos. Para conseguir tal proeza se deben dar una serie de circunstancias: juntar los diamantes y matar dos Sno-bees a la vez, en los dos actos, matar tres Sno-bees juntos al menos una vez, y terminar los dos actos en menos de 30 segundos. Casi nada...
  • En algunas ocasiones, cuando un Sno-bee está en la misma columna o fila que el bloque deslizante, se queda paralizado. La causa de esto es que el programa no tiene suficiente lógica en la parte de animación. Más detallado, si se dan las siguientes circunstancias, el Sno-bee queda congelado en su sitio:
    • está en una posición múltiplo exacto de bloque
    • no han pasado dos minutos de tiempo de juego
    • quedan más de 3 Sno-bees en juego, o 1 solo, con menos de 12 segundos desde que quedó solo
    • si el número de Sno-bees es menor que 3 + (Acto - 1) / 4
    • ha pasado un minuto de tiempo de juego.
    Si se dan todas estas circunstancias, el Sno-bee es promocionado a rompedor, independientemente de que antes estuviera huyendo del bloque deslizante. Lo que esto provoca es un cambio continuo entre un tipo y otro, con la consecuencia de que no se mueve del sitio (no da tiempo a hacer la animación de movimiento).
  • El "huevo de Pascua" lo descubrí hace años cuando empecé a desensamblar. Esto es lo que sale:
    pengocredits.png
    pengocredits.png (951 Bytes) Visto 365 veces

    La forma de sacarlo es así: en el modo attract (fuera del juego, cuando se está reproduciendo la demo del juego), poner los dos joysticks hacia arriba, pulsar los dos botones de acción, y uno de los botones de inicio de juego. Se mostrarán los créditos del juego. Después de unos segundos, el juego se reiniciará. La espera se puede abreviar pulsando el botón de inicio del primer jugador.

Recomendaciones para jugar
  • Este juego es de los más frustrantes que conozco. Si os gusta, pues bien, pero tomároslo con calma.
  • A partir de 100 000 puntos podéis estar en el escalafón de la fama de máximas puntuaciones. El récord está en un poco más de 1 200 000. Mi récord personal es de 980 470 (655 360 + 325 110):
    pengo_record_980420.png
    pengo_record_980420.png (3.31 KiB) Visto 365 veces

  • El marcador de la puntuación sólo llega a los 655 350 puntos y luego vuelve a cero (es un contador de 16 bits), por lo que en las competiciones es necesaria la presencia de un árbitro.
  • Es mejor no estar "muy encima" de la pantalla. Es preferible tener la imagen de juego un poco alejada para que la tengamos presente en todo nuestro campo visual (reducir el movimiento de ojos al mínimo).
  • Después de jugar muchas partidas, una de las primeras cosas que se olvida es tener conciencia de en qué acto estamos, y se trata de algo muy importante. Hay que recordar que el nivel de dificultad aumenta notablemente en las fases 5 (alias "tropezón"), 9 (alias "fatídica") y 13 (alias "muerte segura").
  • Hay una forma muy rápida de romper y empujar los bloques de hielo: pulsando el botón de acción mientras el Pengo llega a la posición de bloque (no esperar a estar junto al bloque que queremos deslizar).
  • Otro movimiento rápido que podemos hacer solo es posible si el mando permite posiciones diagonales: yendo en una determinada dirección, pasando al lado de un bloque que queremos romper o empujar, colocamos el mando en diagonal entre la dirección que llevamos y la posición del bloque. Al llegar a la altura del bloque, pulsamos el botón de acción, e inmediatamente volvemos a poner el mando en el sentido del primer movimiento.
  • La mejor forma de escapar de un grupo de Sno-bees es haciendo zigzag, en diagonal. Requiere de una enorme habilidad para moverse en múltiplos de bloque, pero se puede hacer. El objetivo es salir de la misma columna o fila que ocupan los Sno-bees, ya que tienen más probabilidad de seguirnos si es así. Aún más: hay que salirse de las columnas o filas aledañas a las que ocupan los enemigos.

Futuro
Estoy en conversaciones con otros autores que han publicado códigos de otros juegos, como por ejemplo el MSPacman, para ver si podemos coordinar esta labor, por ejemplo en una web. De momento, el código se publica en GitHub. El mío todavía no está ni presentable, pero al menos genera una copia literal del pengo2u.

Queda por realizar la investigación de las diferencias -que las hay- entre las otras tres variantes del juego (pengo, pengo2, pengo3, pengo4, pengo5, pengob, pengopac, pengojpm).

Ejemplos de diferencias:
  • En el Pengo normal, pasa un minuto hasta que un Sno-bee se convierte en rompedor. Y cada minuto que pase se volverá más peligroso. En el pengo2, en cambio, aparecen Sno-bees rompedores inmediatamente.
  • En el Pengo normal, tienes 7/8 de posibilidades de que el Sno-bee te persiga si está justo a tu lado (horizontal o verticalmente). Si no, se comportará de forma normal. En el pengo2, son más agresivos, se dirigen más hacia el Pengo.


Cuando lo tenga algo más decente, publicaré el código.

Si queréis hacer alguna pregunta sobre el juego, con gusto la intentaré responder.
Última edición por explorer el 05 Oct 2017, 22:28, editado 19 veces en total.

Avatar de Usuario
JoJo
Amiga 1200
Amiga 1200
Mensajes: 1042
Registrado: 03 Feb 2008, 22:45
Sistema Favorito: PC
primer_sistema: PC
consola_favorita: Nintendo SNES
Primera consola: (Otro)
Gracias dadas: 10 veces
Gracias recibidas: 30 veces

Re: Pengo. Sus últimos secretos

Mensajepor JoJo » 25 Nov 2014, 23:57

Muy muy interesante, siempre me ha encantado este juego y me ha encantado leer tantas curiosidades.

Ya te avisaras cuando publiques el codigo, siempre es interesante echarle un ojo :)
PCP, el microcomputador de proposito general de 32 bits.
http://www.vieju.net

Avatar de Usuario
Mode2
Amiga 2500
Amiga 2500
Mensajes: 2618
Registrado: 08 Oct 2009, 23:53
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Atari 2600
Primera consola: TV Games/Pong Clone
Ubicación: The Grid
Gracias dadas: 1 vez
Gracias recibidas: 5 veces
Contactar:

Re: Pengo. Sus últimos secretos

Mensajepor Mode2 » 26 Nov 2014, 10:46

Digo lo mismo que Jojo, ¡gran trabajo! =D>
BUSCO: VideoPac+, Jaguar Saturn, Micromanía 1 y 25, Amstrad Semanal, MicroHobby, juegos especialmente CPC y Vectrex, Aquarius, Sam Copé, 520 ST, Everdrive SNES, manual +3, manual CPC664.

Avatar de Usuario
6128
Amiga 2500
Amiga 2500
Mensajes: 2753
Registrado: 27 Ene 2010, 18:06
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Sega Genesis/Megadrive
Primera consola: Sega Genesis/Megadrive
Ubicación: León
Gracias dadas: 31 veces
Gracias recibidas: 15 veces

Re: Pengo. Sus últimos secretos

Mensajepor 6128 » 26 Nov 2014, 11:22

Muy interesante el patrón que siguen los Snobees. Y muy útil.

A este juego jugué poco o nada en recreativa, pero le di bastante caña al Troglo de Amstrad CPC que es una conversión no oficial del Pengo (existen varias más para CPC). Es un juego que con paciencia consigues avanzar algo pero como la mecánica es tan repetitiva puedes desmotivarte rápidamente. Vamos, igual que el Pac-Man. típico juego que merece la pena jugar unos 5 minutos o así y te lo pasas genial.

Avatar de Usuario
josepzin
Amiga 2500
Amiga 2500
Mensajes: 2758
Registrado: 12 Ene 2009, 14:36
Sistema Favorito: C64
primer_sistema: ZX81
Ubicación: Carthagonova
Gracias dadas: 2 veces
Gracias recibidas: 10 veces
Contactar:

Re: Pengo. Sus últimos secretos

Mensajepor josepzin » 26 Nov 2014, 11:50

Fan-tas-ti-co!!!

Me encantó leer todos y cada uno de esos puntos!

Pengo fue uno de los poquísimos juegos que metí monedas en su momento :-)

Cómo es eso de hacer una web? Quizás pueda ayudar.

Avatar de Usuario
commodoro
Amiga 1200
Amiga 1200
Mensajes: 1278
Registrado: 17 Abr 2010, 17:32

Re: Pengo. Sus últimos secretos

Mensajepor commodoro » 26 Nov 2014, 12:30

¿Sabeis si alguien ha desensamblado el Moon cresta?

¿Y aunque ya se que no el destroyer de cidelsa?

Avatar de Usuario
josepzin
Amiga 2500
Amiga 2500
Mensajes: 2758
Registrado: 12 Ene 2009, 14:36
Sistema Favorito: C64
primer_sistema: ZX81
Ubicación: Carthagonova
Gracias dadas: 2 veces
Gracias recibidas: 10 veces
Contactar:

Re: Pengo. Sus últimos secretos

Mensajepor josepzin » 26 Nov 2014, 13:05

La próxima vez que juegue al Pengo me pasaré antes a leer estas pautas de comportamiento, seguro que ayudan bastante a predecir los movimientos de los enemigos.

Avatar de Usuario
jotego
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 634
Registrado: 16 Ene 2013, 23:25
Sistema Favorito: Atari ST
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari Lynx
Ubicación: Valencia (España)
Gracias dadas: 19 veces
Gracias recibidas: 25 veces

Re: Pengo. Sus últimos secretos

Mensajepor jotego » 28 Nov 2014, 11:34

¡Fantástico trabajo! Muy interesante. Estoy deseando ver el código publicado con sus comentarios correspondientes. Por cierto, ¿cómo está el tema de los derechos de autor en este caso?

Yo estoy haciendo lo mismo con el código del Ghosts'n Goblins. Es un proyecto intermitente pero cada vez que veo que lo voy a dejar una temporada documento bien el progreso para poder seguir. La próxima vez que lo cojo sigo por donde me quedé. Acumulando poco a poco, algún día llegaré al final :-)

¿Sabéis de alguna web que publique código desensamblado y comentado de algún arcade?

Avatar de Usuario
web8bits
Atari 1040 STf
Atari 1040 STf
Mensajes: 695
Registrado: 14 May 2004, 22:07
Gracias dadas: 4 veces

Re: Pengo. Sus últimos secretos

Mensajepor web8bits » 28 Nov 2014, 13:38

Buenísimo trabajo, gracias por compartirlo.

Avatar de Usuario
explorer
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 158
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 recibidas: 32 veces
Contactar:

Re: Pengo. Sus últimos secretos

Mensajepor explorer » 28 Nov 2014, 18:21

jotego escribió:¡Fantástico trabajo! Muy interesante. Estoy deseando ver el código publicado con sus comentarios correspondientes. Por cierto, ¿cómo está el tema de los derechos de autor en este caso?
Pues... mal. Aunque estamos hablando de un juego hecho hace 32 años, Sega sacó una versión de Pengo para 8 jugadores hace cuatro años, así que digamos que sigue disfrutando de la marca.

Lo que hay que hacer es ponerse en contacto con Sega y pedir permiso para publicar el código, pero lo más seguro es que digan que no. De todas maneras, preguntaré a gente más experta. Ha sido un trabajo tremendo. Lo que se llama ahora arqueología informática, pero otros lo pueden considerar ingeniería inversa, y eso está perseguido penalmente en algunos países.

El proceso de creación también ha sido especial, ya que me he asegurado en cada paso que el código ensamblador generaba una copia exacta del programa grabado en ROM, y eso quizás merecería un mensaje nuevo, no sé si en este hilo, en este foro, o mejor en el de programación. Puede servir para animar a otros en esta labor. O de conocer maneras más cómodas.

jotego escribió:Yo estoy haciendo lo mismo con el código del Ghosts'n Goblins. Es un proyecto intermitente pero cada vez que veo que lo voy a dejar una temporada documento bien el progreso para poder seguir. La próxima vez que lo cojo sigo por donde me quedé. Acumulando poco a poco, algún día llegaré al final :-)
El caso es que trabajar solo está siendo algo del pasado. Lo más moderno sería trabajar en equipo, usando bien herramientas de trabajo colaborativo, o más cómodo, algo tan sencillo como git, en web como Github. Si el código se puede partir en bloques, pues más fácil repartir el trabajo.

jotego escribió:¿Sabéis de alguna web que publique código desensamblado y comentado de algún arcade?
Oficialmente, no conozco ninguna, por lo comentado antes, pero... con quien he contactado es con Scott Lawrence, alias BleuLlama, que lleva años con estos temas, con documentación de las placas Pacman/Pengo y enlaces a herramientas para ayudar en el desarrollo de programas para las mismas. Hace unos años que tiene cuenta en Github, y allí es donde tiene publicados los códigos de algunos juegos, como el MSPacman (Miss Pacman) y el E.T. para la 2600. Me ha ofrecido ese espacio para publicar mi código, y casi seguro que lo haga así. Pero también le he comentado que debería haber una página dedicada a este tema. He estado buscando y no he encontrado nada.

Edito: Acabo de encontrar esta curiosa página de Wikipedia: List of commercial video games with available source code. Ahí se ven programas que sí tienen publicado su código, acompañado de su correspondiente licencia.


Volver a “Videojuegos arcade”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado