help me to make 8BP better

If you like 8BP, your help is welcome. Help me supporting this initiative (from 1€, whatever you want). Donations will be used for materials and 8BP disemination:
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

domingo, 4 de junio de 2023

Disponible nueva versión V42 de la librería 8BP

hola amigos de 8 bits de poder

Ya tenéis disponible la versión V42 de la libreria 8BP, descargable en github https://github.com/jjaranda13/8BP . Esta nueva versión incorpora varias funcionalidades nuevas pero ademas te deja mas memoria libre gracias a "opciones de ensamblaje". Un simple numero con el que especificas la opción y así no "malgastas" memoria en comandos de scroll si tu juego es de laberintos o viceversa. 

Los cambios y mejoras han sido inspirados por vosotros, por programadores que me hacen consultas, me sugieren ideas y echan en falta cosas que poco a poco se han ido incorporando. Gracias a los que como Toni o Fito, me han sugerido ideas y me han ayudado con sus preguntas a comprender donde debía explicar un poco mas en el manual ciertos detalles. 


librería: se han incorporado las siguientes funcionalidades:

  • "opciones de ensamblaje": con las que 8BP ahora te deja 1.5KB para música y hasta 25KB libres para tu listado. Ahora la librería 8BP dispone de varias opciones de ensamblaje que te permiten elegir las capacidades que deseas para tu juego y así dispones de más memoria disponible para el listado de tu juego. La opción de ensamblaje la debes especificar en el fichero Make_all_mygame.asm , el cual tiene una línea específica para asignar el valor del parámetro “ASSEMBLING_OPTION”. con la opcion para juegos de laberintos (1) tienes 25KB libres, con la de scroll (2) tienes 24.8 KB libres y con la pseudo3D (3) tienes 24 KB libres



  • 1.5KB libres para música (antes eran 1.4 KB). El mapa de memoria ha cambiado ligeramente
  • imágenes de fondo: permite scroll sin parpadeos en objetos que pasan por debajo de tus sprites

  • secuencias de animación encadenadas: esto permite hacer secuencias de animación de cualquier numero de frames

manual: incorpora las siguientes mejoras:

  • explicación de las opciones de ensamblaje
  • nuevo mapa de memoria
  • explicación de las imágenes de fondo
  • explicación de las secuencias de animación encadenadas
  • revisión completa del manual con muchas mejoras en todos los capítulos

las demos han sido actualizadas para usar 8BP V42 y se ha añadido la demo 15, que muestra la utilidad de las imágenes de fondo en juegos con scroll


Espero que os guste y os ayude a programar vuestros juegos aun mejor
hasta pronto!







domingo, 14 de noviembre de 2021

Menus personalizados para DES con 8BP

 hola amigos de 8 bits de poder

Con la llegada del dispositivo DES a la escena AMSTRAD, hemos descubierto una nueva forma de cargar juegos en nuestro CPC, los fabulosos cartuchos cuya carga es instantánea


con La herramienta “ROM Generator” de Dandare (aqui) podemos crear nuestra propia compilación de juegos. Quizás quieres personalizar tu menú de juegos con una imagen. Eso es posible aunque debes saber los pasos, que los encontraras en el documento “como hacer juegos con intro para DES”, en la serie de manuales de ayuda de 8BP.  

En este post te voy a contar como hacer un menú con un juego integrado en el propio menu, es decir, que el menú sea un juego. Puedes encontrar esta información en el documento "menus para DES con 8BP", en la serie de manuales de ayuda de 8BP.  



Pero puedes hacer un menú aun mas lujoso y personal si en lugar de una simple imagen haces un programa a modo de menú desde el que puedes saltar a otros juegos. Para ello ROM generator te permite elegir dos modos de comportamiento:
  • arrancar con uno de los juegos directamente (marcando la casilla Autoboot)
  • arrancar desde el menú para elegir el juego

Esto nos sugiere una idea: podríamos hacer un juego con autoboot que en realidad sea un menú personalizado a nuestro gusto. Además, dicho menú podría tener varias pantallas, animaciones e incluso minijuegos integrados. Podemos usar 8BP para construir de forma sencilla estos menús, desde BASIC y para todos los públicos.


Ubicación de la rutina DES
Si vas a hacer un programa que haga las veces de menú con 8BP, necesitas cargar la rutina DES que permite conmutar al DES de una rom a otra en la memoria, para poder saltar a cualquiera de los juegos del menú.
La rutina es esta (como ves es corta). Yo la he ensamblado en la dirección 42000, en la zona de gráficos de 8BP. 


A continuación, tienes el mapa de memoria de 8BP. Podría meter la rutina en cualquier zona por debajo de la dirección 24000 o bien en la zona dedicada a sprites o a música , si es que nos sobra memoria. En el caso que te voy a presentar me sobra casi toda la memoria de gráficos y he usado la zona de sprites (desde la 42000 hasta la 42030). Es decir, son 30 bytes al final de la zona de sprites, sin llegar a tocar ni siquiera el map layout, aunque podría ubicarla ahí porque en este programa no voy a usar el layout


El programa/juego menú

Este programa esta creado con 8BP e integra un minijuego dentro del propio menú.  Primero muestra una imagen en pantalla y mientras se visualiza un fondo de estrellas cayendo te invita a pulsar una tecla. Justo después aparece nuestra lista de juegos al mismo tiempo que podemos jugar a un minijuego. Durante la ejecución del minijuego podemos pulsar un numero para seleccionar un juego de la lista o bien para cambiar de pagina

El minijuego es sencillo: manejas al personaje “hackman” y debes saltar esquivando los enemigos, y cada vez que te matan vuelve a empezar. La máxima puntuación siempre se presenta en pantalla para que sepas la marca que debes batir.
Algunas variables importantes de este pequeño programa:
  • NUMGAMES: numero de juegos de tu lista
  • GAME$(NUMGAMES)=almacena los títulos de los distintos juegos de la lista
  • Page: variable de página. Puedes tener dos páginas de juegos
La rutina que te permite saltar a un juego comienza en la 620 y es invocada cuando pulsas un número. Como ves justo al final se invoca la rutina que hemos ensamblado en la 42000

el listado completo con el lanzamiento de la rom y el juego de saltar bichos lo puedes descargar desde el github de 8BP (https://github.com/jjaranda13/8BP ). No te lo pego aqui porque ocupa un par de paginas pero si estas interesado en los detalles simplemente ve al github de 8BP y descargatelo. Tambien lo tienes en el documento  "menus para DES con 8BP", en la serie de manuales de ayuda de 8BP.  

En este caso se trata de un minijuego muy sencillo, que con los comentarios prácticamente se entiende, pero si que quiero destacar la forma la leer el teclado, con la función B$=INKEY$. Esta función nos permite capturar cualquier tecla que pulses. Solo la ejecutamos si no has pulsado la barra, que es el control de salto del personaje. 

482 if inkey(47) then 484 else |SETUPSP,31,15,0:|SETUPSP,31,0,137:goto 500
484 b$=inkey$: if b$="" then 500 

Como ves en esas líneas solo ejecutamos el INKEY$ si no has pulsado la tecla 47 (la barra)

Últimos pasos

Una vez que te funciona todo, los pasos que debes dar para crear tu rom son:
 1) Grabar la SNA del programa menú (ejecutada desde un 464) 
 2) Grabas las SNA de los juegos de tu lista 
 3) Ejecutas el ROM generator y arrastras los juegos y tu programa menú
 4) Seleccionas AutoBoot en tu programa menú
 5) Pulsas crear rom


Ahora te toca a ti crear un menú. ¿con minijuego integrado? ¿Con animaciones? ¿con pequeñas capturas de pantalla de los juegos que ofrece? ¿con un piano para tocar música hasta que el jugador se decida por un juego?
Puedes hacer lo que tu quieras. Imagina y hazlo realidad con 8BP

hasta pronto amigos!

viernes, 31 de julio de 2020

Disponible version V41 de la libreria 8BP

hola amigos de 8 bits de poder

Ya tenéis disponible la versión V41 de la libreria 8BP, descargable en github https://github.com/jjaranda13/8BP . Esta nueva versión ocupa exactamente lo mismo e incorpora las siguientes mejoras:

libreria: se han incorporado algunas actualizaciones en ficheros asm para proporcionar las siguientes funcionalidades:
  • el comando MUSIC ahora interpreta efectos de sonido (canal FX de wyxtracker) que incluya la melodía
  • nuevo flag en el codigo de enrutamiento 254 para resetear opcionalmente el fotograma de la nueva ruta asignada a un sprite (para hacer que pase a frame 0)
  • cambios en direcciones de cada rutina incorporadas al wrapper 8bp.h 
 
SPEDIT: se incluye spedit v13 , que puede grabar la paleta en disco:

  


manual:

  • se incluyen las explicaciones de las mejoras
  • se incluye una ampliación de como usar mas color en el capitulo de sprites
  • aclaración del comando PRINTSPALL: primero anima y después imprime
  • actualización de las mejoras de SPEDIT v13

Demos: todas las demos actualizadas a v41



Como podeis ver (más bien oir) en el video, suena la musica con un cuarto canal de efectos (efectos de percusion) que en realidad es un "truco" mediante el que se puede simular ese mecanismo sin disponer de un verdadero cuarto canal. A la vez en este video se ha reservado el tercer canal (comando SOUND 4, ...) para los efectos de disparos y colisiones, de modo que en la musica se usan 2 canales y el "pseudo-canal" de efectos y el tercer canal se usa para los sonidos del juego.
Estos efectos se pueden editar con wyztracker, sin embargo conviene probarlo porque en el wyztracker se pueden oir los efectos incluso si no hay un canal activo y en realidad asi no funciona, pero al menos se puede hacer. 

en cuanto a las capacidades nuevas de enrutamiento, se trata del codigo 254, que ahora permite asignar una secuencia de animacion y cambiar el frame al mismo tiempo a frame cero. Para ello se usa el tercer byte que hasta ahora era un cero de relleno, para resetear el frame id.



lo siguiente que os regalaré será un nuevo juego que acabo de empezar, y que espero que os guste

feliz verano!