Autor Tema: Lunar Rescue [juego Basic]  (Leído 5086 veces)

josepzin

Lunar Rescue [juego Basic]
« en: Junio 09, 2013, 09:40:39 »
Otro juego programado por Danycresp, publicado en Zonadepruebas: http://www.zonadepruebas.com/viewtopic.php?f=15&t=3660



EL JUEGO
Este videojuego arcade fue desarrollado por Taito en 1979.

El objetivo del juego consiste en rescatar a los hombrecitos que están en la superficie del planeta controlando un módulo de aterrizaje. Primero hay que desengancharse de la nave nodriza, sortear el cinturón de asteroides durante el descenso y alunizar en las plataformas. Durante el ascenso deberemos sortear o destruir las naves enemigas y volver a ensamblar en la nave nodriza.

Controles:
Pulsa Z o X para mover el módulo de aterrizaje a izquierda o derecha.
Pulsa la barra espaciadora para desengancharte, frenar o disparar.

Obtenemos puntos por aterrizar en las plataformas y destruir las naves enemigas.
Al finalizar el nivel recibimos puntos por cada hombre rescatado y un bonus de 500 puntos si los rescatamos todos.

Descargar el juego en formato ".D64":
http://retroinvaders.com/commodoremania/foro/index.php?action=dlattach;topic=1001.0;attach=2269


BLOQUES
Se ha dividido el listado en 13 bloques:

- Declaración de las matrices. Llamada a rutinas principales.
- Controlar los distintos movimientos de nuestra nave.
- Control de los invasores y asteroides.
- Detección de las colisiones de nuestra nave. Toca suelo, asteroide, nave enemiga, nave nodriza o estrellas.
- Perder una vida.
- La nave aluniza en una plataforma.
- La nave se ensambla a la nave nodriza.
- Pantalla de Presentación.
- Inicio de la partida.
- Rutinas  varias.
- DATA con rutina en código máquina que duplica el juego de caracteres en otra posición.
- DATA con los gráficos del juego.
- DATA con los datos de los enemigos y la posición y tipos de plataformas de aterrizaje.


COMO FUNCIONA
Todo el programa ocupa 142 líneas.

A continuación indico el principio de las distintas partes del programa:

10 - Definimos las matrices del juego.
30 – Saltar a la rutina que redefine los gráficos.
50 – Vamos a la presentación del juego.
100 – Si la nave esta enganchada (T=0) salta a 180.
110 – Leer el teclado y mover nuestra nave en descenso o ascenso.
130 – Control de la nave durante el descenso (T=1).
150 – Control de la nave durante el ascenso (T=2).
160 – Control de nuestro disparo durante el ascenso.
180 – Movimiento de la nave nodriza si estamos enganchados (T=0).
200 – Movemos una de las 5 filas de asteroides o naves enemigas en la dirección correspondiente.
230 – Revisamos si hay algo encima de nuestra nave. Si hay salta a 500.
400 – Si la posición Y está en la zona de los asteroides o naves enemigas salta a 500.
410 – Si es estamos descendiendo mira que hay a los pies de nuestra nave. Salta a 600 si hay una plataforma.
420 – Si estamos ascendiendo mira si encajamos con la zona central de la nave nodriza. Salta a 700 si nos enganchamos.
450 – Si nuestro disparo toca una nave enemiga ponemos la explosión, sumamos puntos y la hacemos desaparecer.
500 – Ponemos una explosión en la posición de nuestra nave y reproducimos un sonido.
505 – Miramos si hemos colisionado con  la nave nodriza y hacemos la animación del hombrecito cayendo.
520 – Actualizamos el marcador de vidas, y si hay más hombres a rescatar seguimos la partida.
550 – Si no hay más vidas finaliza la partida.
600 – La nave a alunizado sobre una plataforma. Calculamos en que plataforma lo hemos hecho.
625 – Borramos uno de los hombrecitos de la superficie del planeta, y sumamos y mostramos los puntos.
630 – Activamos el ascenso, contador de hombres pendientes de rescatar y borramos la plataforma de aterrizaje.
700 – La nave ha ensamblado con la nave nodriza. Actualizamos hombres rescatados y lo ponemos en la parte superior.
720 – Si hay más hombres a rescatar (HP) la partida sigue.
730 – Si hemos rescatado los 6 hombres recibimos 500 puntos de bonificación.
750 – Recibimos puntos por cada hombre rescatado.
780 – Incrementamos el nivel de dificultad.
2000 – Pantalla de presentación del juego.
2050 – Al pulsar una tecla borramos la pantalla (5400) y actualizamos el marcador del jugador 1.
2180 – Mostramos el mensaje de puntos por hombre rescatado.
2190 – Inicialización de las variables principales de la partida.
2200 – Mostrar la zona de juego.
2580 – Inicializar parte de las variables del juego.
5000 – Rutina para redefinir el juego de caracteres. Aquí se baja el RAMTOP 1KB.
5010 – Se carga la rutina en ensamblador desde los DATA en memoria y se ejecuta.
5020 – Copiamos los DATA de los gráficos en la nueva posición y cambiamos los colores de pantalla.
5050 – Guardamos en una matriz las posiciones de los hombres en la superficie del planeta.
5060 – Guardamos en una matriz las posiciones de las plataformas de aterrizaje.
5100 – Rutina que activa el juego de caracteres redefinido.
5200 – Rutina que activa el juego de caracteres original. El nuestro queda residente en memoria.
5300 – Rutina que activa los colores por defecto del C-16 cuando está en BASIC.
5400 – Rutina de borrado de pantalla.
5500 – Rutina de PAUSA. Valor en (J).
5600 – Rutina que muestra las 5 filas de enemigos (según corresponde) en su posición y con el color correspondiente.
5700 – Rutina que genera las tiras de los enemigos en una matriz de dos dimensiones (E).
5800 - Rutina para vaciar el buffer del teclado.
8000 – Valores DATA de la rutina en código máquina que duplica el juego de caracteres en otra posición de memoria.
9000 – Línea DATA con los gráficos del juego.
9500 – DATA con los gráficos de los 5 enemigos distintos (2 asteroides y 3 naves).
9510 – Posición de los distintos hombrecitos.
9520 – Posición y gráficos de las distintas plataformas de aterrizaje.


EL LISTADO
Ver en ZonadePruebas: http://www.zonadepruebas.com/posting.php?mode=quote&f=15&p=23571


APUNTES FINALES
A principios de los 90 programé en ensamblador con un MSX una versión más simple de este juego, y llevaba tiempo deseando hacer una versión más completa y fiel al original.

Como tenía fresca la programación del C-16 y había sido una experiencia satisfactoria, me decidí a hacer una versión con el Commodore Plus/4.

Principales descartes respecto al original:
- Esta versión es un poco más ancha y menos alta porque el formato del original es vertical.
- Hay algunas filas de asteroides y naves menos debido al tema del tamaño.
- Durante el descenso no frenamos la nave. La paramos completamente mientras hay fuel.
- Durante el ascenso no podemos acelerar.§   Los invasores no disparan y no se aceleran al avanzar en el juego.
- La nave nodriza no se mueve cuando descendemos o ascendemos.
- No aparecen las bolas de fuego que cruzan la pantalla durante el ascenso.

Por el resto, el juego tiene un aspecto y una mecánica casi idéntica al original.

El programa no es todo lo rápido que me gustaría pero se deja jugar perfectamente y es difícil. El programa es más complejo y largo que otros realizados previamente.

Para redefinir los gráficos he usado la misma rutina que con el “Galaxy Wars”, pero aquí hay muchos más gráficos.

El control de los enemigos es muy simple. Hay 5 tiras con los enemigos en su posición correspondiente. Las filas pares rotan a la izquierda y las impares a la derecha. Con LEFT$ y RIGHT$ muevo un carácter de un extremo al otro e imprimo la fila con el color correspondiente. Todo muy rápido y sencillo gracias al comando CHAR. Estas tiras están almacenadas en una matriz de dos dimensiones. El primer índice marca la tira a visualizar según descendamos o ascendamos.

El control de colisiones es más completo y complejo. Para detectarlas accedo directamente a la zona de memoria reservada al video. Hay 1 KB para los caracteres y otro para los atributos de color.

Durante el ascenso he reducido la velocidad a la mitad del descenso para facilitar la destrucción de naves enemigas.

He tenido que guardar el estado de las plataformas y los hombrecitos en unas matrices ya que al colisionar podemos borrar parte del escenario y al redibujarlo perdía el estado.

He respetado las puntuaciones y bonus del original, y he incluido la caída del hombrecito al chocar con nuestra nave nodriza durante el ascenso.

Respecto al equipo
Este es mi primer programa con un Plus/4 y la verdad es que es prácticamente igual al C-16. La única pega que he encontrado ha sido el tamaño y forma de las teclas de los cursores. Pequeñas y poco cómodas.

Para poder pasar el programa al PC he usado una placa 1541-III. Como el conector del casete es distinto la he tenido que alimentar con una fuente de alimentación de 5V externa. En el emulador de PC funciona “casi” exactamente igual. He aprovechado para retocar algún gráfico que en la TV no se apreciaba que tuviera algún pequeño fallo.

Respecto al BASIC es bastante completo y rápido. Adaptaré el juego a otros sistemas pero dudo que tengan tan buen rendimiento.

Pues nada más, solo me queda esperar que os guste.

Os invito a probarlo.
« última modificación: Septiembre 09, 2016, 14:03:05 por josepzin »
 

marcos64

Re:Lunar Rescue [juego Basic]
« Respuesta #1 en: Junio 09, 2013, 11:02:21 »
@ josepzin: ese primer link???
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.
 

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #2 en: Junio 09, 2013, 11:12:39 »
Ops... es lo que tiene hacer las cosas a los apuros!!!! :D

marcos64

Re:Lunar Rescue [juego Basic]
« Respuesta #3 en: Junio 09, 2013, 20:14:56 »
A ver si pongo un dia de estos el C16 y pruebo todo lo nuevo que hay para el  ;D
http://marcos64.orgfree.com/
Actualizacion 22/4/2018: Actualizada Load'N'Run numero 5 con nuevos TAPs y PRGs.
 

Borrocop

  • Commodorista
  • ***
  • Mensajes: 94
  • SYS 0
    • Ver Perfil
Re:Lunar Rescue [juego Basic]
« Respuesta #4 en: Agosto 26, 2016, 22:11:15 »
He intentado bajarme el juego y me da un error cuando intento abrir el zip  :-\

No es un refloting, soy un recién llegado y he intentado bajarme el juego.

Un saludo Gracias

-Borrocop.-
 

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #5 en: Agosto 26, 2016, 22:19:48 »
Este es el enlace de descarga: http://www.zonadepruebas.com/download/file.php?id=1197

Me has hecho recordar estos juegos de Danycrest...

Borrocop

  • Commodorista
  • ***
  • Mensajes: 94
  • SYS 0
    • Ver Perfil
Re:Lunar Rescue [juego Basic]
« Respuesta #6 en: Agosto 26, 2016, 22:33:59 »
Este es el enlace de descarga: http://www.zonadepruebas.com/download/file.php?id=1197

Me has hecho recordar estos juegos de Danycrest...

!   C:\Users\Borrocop\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\W12L9V6I\LunarRescue.rar: Error de CRC en LunarRescue.d64. El fichero está dañado
!   C:\Users\Borrocop\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\W12L9V6I\LunarRescue.rar: Final inesperado del archivo

Esto es lo que dice si intentas abrirlo después de descargarlo Jose....  :'(

Saludetes
 

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #7 en: Agosto 27, 2016, 00:56:45 »
Anda, está corrupto el RAR!

Borrocop

  • Commodorista
  • ***
  • Mensajes: 94
  • SYS 0
    • Ver Perfil
Re:Lunar Rescue [juego Basic]
« Respuesta #8 en: Agosto 27, 2016, 02:17:48 »
Anda, está corrupto el RAR!

Anda que no es suerte la mía, pillo un único juego y resulta que está frito  :o :o

Bueno me quedo con las ganas de ver lo parecido que pudiera estar con la recreativa  :-\

Saludos
-Borrocop-
 

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #9 en: Agosto 27, 2016, 16:23:52 »
Ya le he escrito a Dancresp, a ver si lo puede volver a subir.

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #10 en: Agosto 27, 2016, 16:39:03 »
Ya lo he encontrado en otra parte y además lo he subido a IND: http://ind.commodoremania.com/1169

Borrocop

  • Commodorista
  • ***
  • Mensajes: 94
  • SYS 0
    • Ver Perfil
Re:Lunar Rescue [juego Basic]
« Respuesta #11 en: Agosto 27, 2016, 18:37:33 »
Ya lo he encontrado en otra parte y además lo he subido a IND: http://ind.commodoremania.com/1169

Bueno ya lo estoy probando ahora sólo me queda ver como hago funcionar el joystick !!!

Gracias un saludo
Borrocop.-

EDITADO....
« última modificación: Agosto 27, 2016, 19:12:06 por Borrocop »
 

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #12 en: Agosto 27, 2016, 22:34:09 »
Tendrás que arreglartelas con las infames teclas, como tu infame ordenador favorito :P

Citar
Controles:
Pulsa Z o X para mover el módulo de aterrizaje a izquierda o derecha.
Pulsa la barra espaciadora para desengancharte, frenar o disparar.

Borrocop

  • Commodorista
  • ***
  • Mensajes: 94
  • SYS 0
    • Ver Perfil
Re:Lunar Rescue [juego Basic]
« Respuesta #13 en: Agosto 28, 2016, 00:00:44 »
Tendrás que arreglartelas con las infames teclas, como tu infame ordenador favorito :P

Te equivocas yo soy CPCero... pero no hago ascos a ninguno ya que lo más importante no es la máquina, si no disfrutar jugando  ;D

Salud compi
 

josepzin

Re:Lunar Rescue [juego Basic]
« Respuesta #14 en: Agosto 28, 2016, 00:03:56 »
El CPC también es infame... :P