Blasto para MSX

Foro dedicado a la programación en todo tipo de sistemas clásicos.
dancresp
Amiga 1200
Amiga 1200
Mensajes: 1391
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 2 veces
Gracias recibidas: 19 veces

Blasto para MSX

Mensajepor dancresp » 04 Ene 2014, 20:11

Blasto_1.gif
Blasto_1.gif (4.48 KiB) Visto 1348 veces


EL JUEGO
Este videojuego para sistemas arcade fue desarrollado en 1977 por la empresa Gremlyn.

El objetivo del juego consiste en destruir todas las minas del campo minado antes de que acabe el tiempo. Para ello disponemos de una nave que podemos mover por las zonas vacías de la pantalla, y que pueden destruir todo lo que hay en ella. Hay que ir con cuidado porque al explotar las minas destruyen lo que hay a su alrededor.

Si conseguimos nuestro objetivo conseguiremos una partida gratis.

Blastos.jpg
Blastos.jpg (49.38 KiB) Visto 1348 veces


Controles:
Utiliza el joystick o los cursores para controlar la boca.
Pulsa el disparador/espacio para disparar.

Descargar el juego en formato CAS, para cargar con CLOAD: (Nuevamente gentileza de xgipe)
Blasto.rar
(1.81 KiB) Descargado 28 veces


BLOQUES
Se ha dividido el listado en 10 bloques:

- Declaración de las matrices. Llamada a rutinas principales.
- Control de la nave.
- Control del disparo.
- Final de la partida.
- El disparo ha impactado con algo.
- Destruir una mina.
- Perder una vida.
- Presentación e inicio de la partida.
- Rutinas varias.
- DATA con los UDG del juego y el diseño de la zona de juego.


COMO FUNCIONA
Todo el programa ocupa 73 líneas.

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

10 - Definimos las matrices del juego.
50 – Salto a la subrutina que lee los gráficos, redefine los caracteres y define variables globales y modo de vídeo.
100 – Si no se pulsa el disparador se mira si se ha de mover la nave en una dirección.
140 – Si hay alguna mina pendiente de explotar se va a la rutina correspondiente 350.
150 – Control del disparo.
190 – Se controla la velocidad del juego y se reduce el tiempo disponible para finalizar la partida.
200 – Si queda tiempo vuelve a 100.
205 – Final de partida donde se controla si se ha superado el récord y si se han destruido todas las minas.
300 – Control de que ha tocado el disparo.
350 – Rutina que controla la destrucción de minas en cadena.
400 – Una mina ha explotado cerca y nuestra nave se destruye.
2000 – Pantalla inicial del juego.
2100 – Espera a que seleccionemos el control (J) mientras controla la animación de los enemigos.
2500 – Inicializar variables para la partida y rutina que coloca las minas.
2600 – Posición inicial de nuestra nave.
2700 – Rutina que muestra el laberinto de puntos en pantalla, sin las minas.
3000 – Seleccionamos el modo de video, ocultamos teclas de función.
3010 – Lectura de los DATA de los UDG y de la zona de juego.
5000 – Rutina de vuelta al editor BASIC. Recupera los valores por defecto.
5100 – Rutina que muestra el marcador de puntos.
5200 – Rutina que espera que pulsemos disparo en el controlador que hemos seleccionado.
5300 – Rutina de PAUSA. Valor en (I).
5400 – Rutina que muestra el mensaje de fin de partida o partida gratis.
9000 – DATA con los gráficos de los UDG.
9100 – DATA con las distintas filas que forman la zona de juego.


EL LISTADO
listado.jpg
listado.jpg (180.61 KiB) Visto 1348 veces


APUNTES FINALES
El 6 de enero del 2014 hará 25 años que conseguí mi primer MSX, un SONY HB-20P.
Y para celebrar el aniversario que mejor que desarrollar algún juego con él.

Para la ocasión he decidido adaptar un juego corto y sencillo pero con el que es fácil picarse. Eso lo hace muy adictivo.

Principales descartes respecto al original:
- El juego original permite 2 jugadores simultáneos.
- La pantalla tiene 28 filas y aquí solo 22.
- En el juego original hay 84 minas y aquí 64, ya que la zona de juego es más pequeña.

Por el resto, la mecánica del juego se ha respetado en su totalidad.

En un principio contemplé la posibilidad de hacer el juego para dos jugadores, pero dudando por el rendimiento lo dejé para un único jugador.

El juego
Esta versión funciona tan rápido como el original. Para ello he accedido directamente a la memoria de video mediante VPOKE, y he tenido que frenar la velocidad con el uso de la variable de sistema TIME.

Reacción en cadena
El juego es técnicamente muy sencillo y la única dificultad ha consistido en saber como resolver el problema de las explosiones de minas en cadena, ya que fácilmente pueden haber 2 o más minas juntas. Para ello he creado una matriz de 68 elementos (uno por mina) con dos punteros: “M“ y “N”.

Cuando nuestro disparo detecta que hemos tocado una mina incrementa el puntero “N”, guarda su posición en la matriz y la borra de la pantalla. A continuación se revisan las posiciones que hay alrededor. Cada vez que se encuentra otra mina se realiza la misma acción.

En la línea 140 miramos si el puntero “M” es inferior a “N” y si es cierto, vamos a la rutina que las hace explotar, incrementando el puntero “M”.

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

Os invito a probarlo.

equipo.jpg
equipo.jpg (101.23 KiB) Visto 1348 veces

DSC_0111.jpg
DSC_0111.jpg (86.08 KiB) Visto 1348 veces

DSC_0113.jpg
DSC_0113.jpg (32.02 KiB) Visto 1348 veces

DSC_0114.jpg
DSC_0114.jpg (89.02 KiB) Visto 1348 veces

DSC_0115.jpg
DSC_0115.jpg (61 KiB) Visto 1348 veces

DSC_0116.jpg
DSC_0116.jpg (88.13 KiB) Visto 1348 veces
Última edición por dancresp el 13 Feb 2017, 18:05, editado 7 veces en total.
Buscando la IP de la W.O.P.R.

Avatar de Usuario
xgipe
Atari 1040 STf
Atari 1040 STf
Mensajes: 829
Registrado: 26 May 2010, 15:59
Sistema Favorito: MSX
primer_sistema: MSX
consola_favorita: Sega Master System
Primera consola: Videopac
Ubicación: D.O. Penedès
Gracias dadas: 36 veces
Gracias recibidas: 29 veces

Re: Blasto para MSX

Mensajepor xgipe » 04 Ene 2014, 21:03

¡Bravo! Un nuevo juego para MSX. :)
A ver si mañana encuentro un momento para pasarlo a CAS...

- Por cierto, que veo que has desenpolvado la G7400 - :gamers:
BLOAD "CAS:",R
Found: WIN3.11

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1391
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 2 veces
Gracias recibidas: 19 veces

Re: Blasto para MSX

Mensajepor dancresp » 04 Ene 2014, 21:51

xgipe escribió:¡Bravo! Un nuevo juego para MSX. :)
A ver si mañana encuentro un momento para pasarlo a CAS...

- Por cierto, que veo que has desenpolvado la G7400 - :gamers:

Pues si, un nuevo juego y ... muy viciante.
Te lo digan mis amigos que lo han probado.

En el turno de rotación de consolas le ha tocado a la G-7400, y bueno, a ratitos voy jugando.
El cartucho 22 es el "Space Monster", ese clon de los "Space Invaders".

Y como no, espero ese fichero "CAS".
Buscando la IP de la W.O.P.R.

Avatar de Usuario
xgipe
Atari 1040 STf
Atari 1040 STf
Mensajes: 829
Registrado: 26 May 2010, 15:59
Sistema Favorito: MSX
primer_sistema: MSX
consola_favorita: Sega Master System
Primera consola: Videopac
Ubicación: D.O. Penedès
Gracias dadas: 36 veces
Gracias recibidas: 29 veces

Re: Blasto para MSX

Mensajepor xgipe » 04 Ene 2014, 23:29

Vaya, vaya... conozco bien ese cartucho de Videopac (es uno de mis favoritos).

Aprovecho para subir el CAS de Blasto... y comentar lo difícil que es conseguir destruir las bombas en 90 segundos ](*,)

BLASTO.rar
(1.82 KiB) Descargado 77 veces


Saludos,
Xgipe
BLOAD "CAS:",R
Found: WIN3.11

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1391
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 2 veces
Gracias recibidas: 19 veces

Re: Blasto para MSX

Mensajepor dancresp » 04 Ene 2014, 23:57

xgipe escribió:Aprovecho para subir el CAS de Blasto... y comentar lo difícil que es conseguir destruir las bombas en 90 segundos ](*,)

Pues una vez más, gracias. =D>

Respecto a la dificultad, te aseguro que me lo acabo 4 de cada 5 veces.
Anda, que lo prueben tus hijos... :-ss

Por cierto, he añadido el enlace en el post principal y he puesto un screenshot tomado del emulador.
Buscando la IP de la W.O.P.R.

Avatar de Usuario
xgipe
Atari 1040 STf
Atari 1040 STf
Mensajes: 829
Registrado: 26 May 2010, 15:59
Sistema Favorito: MSX
primer_sistema: MSX
consola_favorita: Sega Master System
Primera consola: Videopac
Ubicación: D.O. Penedès
Gracias dadas: 36 veces
Gracias recibidas: 29 veces

Re: Blasto para MSX

Mensajepor xgipe » 09 Feb 2017, 13:04

xgipe escribió:Vaya, vaya... conozco bien ese cartucho de Videopac (es uno de mis favoritos).

Aprovecho para subir el CAS de Blasto... y comentar lo difícil que es conseguir destruir las bombas en 90 segundos ](*,)

Blasto.rar
(4.83 KiB) Descargado 28 veces


Saludos,
Xgipe


Resubo un RAR que tenía guardado pero que no he podido probar... Notificadme si hay algún problema con el CAS que incluye.

Saludos,
Xgipe
BLOAD "CAS:",R
Found: WIN3.11

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1391
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 2 veces
Gracias recibidas: 19 veces

Re: Blasto para MSX

Mensajepor dancresp » 13 Feb 2017, 18:06

Bueno, ha costado porque se desordenaban las imágenes ¿@#? pero el post ya está restaurado.
Buscando la IP de la W.O.P.R.


Volver a “Programación”

¿Quién está conectado?

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