¡Hola a todos!, hay problemas con la web que espero poder arreglar lo antes posible, ¡mil perdones!

8 bits de poder

8 bits de poder
Visitar página web/blogCastellanoEspaña63 entradas

8 bits de poder es una página web/blog de España en castellano que ha publicado 63 entradas, siendo la última del día 21/06/2022.

Relacionado con 8 bits de poder (videos)

Programación del Amstrad CPC usando la libreria 8BP (`8 bits de poder`) desde BASIC `Las limitaciones no son un problema, sino una fuente de inspiración` Jose Javier Garcia Aranda twitter: @8bitsdepoder youtube: 8bp

Ver índice de webs/blogs

"Paco, el hombre" : nuevo juego disponible para descarga [8 bits de poder] [Leer]


 hola amigos de 8BP

Un nuevo juego se añade a la lista de juegos 8BP. Se trata de "Paco, el hombre" un comecocos con 4 niveles de dificultad que hace uso intensivo de logicas masivas. Lo podéis encontrar en https://github.com/jjaranda13/8BP .junto con sus fuentes, música, etc


Como su nombre indica, "Paco el hombre" esta basado en el clásico PAC-MAN. Creado en 1980 por la empresa Namco, fue el juego que más monedas recaudó en los 80 (14 mil millones de dólares). Entre 1981 y 1987 se vendieron 293.822 máquinas arcade con todas las variantes de este videojuego. La versión de 8BP tiene la esencia del mítico comecocos pero simplificado. No se han incluido frutas ni te puedes comer a los fantasmas


Consta de 4 niveles y en cada uno la velocidad es mayor. En cada nivel el numero de fotogramas por segundo aumenta y la velocidad llega a complicar mucho el juego

  • nivel 1: 15 fps (en BASIC)
  • nivel 2: 19 fps (en BASIC)
  • nivel 3: 30 fps (en C)
  • nivel 4 : 33 fps (en C)

Cada nivel tiene un diseño de colores diferentes al resto, pero el laberinto es el mismo.


Este juego usa una tecnica especial para mover los sprites medio byte (dos pixels de mode 1, o si estuviesemos en mode 0 sería un solo pixel). Un byte contiene 2 pixels en mode 0 , o bien 4 pixeles en mode 1. La tecnica para mover medio byte se trata de tener una imagen del personaje desplazada medio byte y simplemente asignársela al Sprite. Aunque se imprima en la misma coordenada, parecerá que se ha movido


Para ayudar a generar estas imágenes desplazadas, junto con el juego he publicado la versión V15 de SPEDIT que permite desplazar hacia la derecha e izquierda cualquier imagen. 

Un movimiento suave es mas agradable pero también da la impresión de ser mas lento. Por eso es muy importante lograr el mayor numero de FPS posibles y para ello se ha hecho uso intensivo de logicas masivas. Las tareas del juego se dividen en ciclos y tras 4 ciclos de juego todo vuelve a comenzar. Es como un "motor de 4 tiempos". En cada ciclo todo se mueve (los 4 fantasmas y también paco) pero solo se realizan algunas tareas. Ello permite reducir el numero de instrucciones que se ejecutan en cada ciclo. 


Para que esto sea posible, cada vez que un fantasma se encuentra en una bifurcacion del laberinto es muy importante que justo en ese momento se ejecute su lógica. Para que esto ocurra se colocan inicialmente los fantasmas en posiciones calculadas de modo que SIEMPRE que un fantasma alcanza una bifurcación, su lógica se va a ejecutar.

Una estrategia "extra" de lógicas masivas se usa en los niveles 2 y 4. Se calculan las decisiones de los fantasmas en una ejecucion "normal " y se almacenan en una tabla. Dicha tabla es consultada en estos niveles, ahorrando lógica de chequeo de muros etc. El universo del juego es "determinista" y con ello aceleramos unos cuantos fps

El laberinto se ha construido con la capacidad de layout de 8BP y tienes mucha información en el documento "making of" del videojuego, también disponible en la sección de documentación de 8BP

¡espero que lo disfrutes! te dejo con un video del juego



hasta pronto amigos! y feliz verano!










SPACE PANIC: un nuevo juego creado por adolFito usando 8BP [8 bits de poder] [Leer]


 hola amigos de 8 bits de poder

En esta ocasión quiero presentaros Space Panic, un nuevo juego creado con 8BP , programado por adolFito (https://fitosoft.itch.io/ ) . Es una conversión de clásico juego de 1980 creado para máquinas arcade, considerado como el "padre de los juegos de plataformas"

Como veis la pantalla de carga es soberbia, creada por brundij


El juego ha sido creado con la versión 8BP v41 y utiliza ciclo compilado (es decir, ha programado en C y usa la capacidad C de 8BP). Lo podéis encontrar en el repositorio de juegos github de 8BP.(https://github.com/jjaranda13/8BP) , Tanto el dsk como el cdt y el fuente en C con el que podéis inspiraros para hacer vuestro propio juego. En el repositorio github de 8BP podéis encontrar un total de 17 juegos que os sirven como ejemplo para vuestras creaciones. Algunos de estos juegos incluso traen un documento "making of" que podéis  encontrar en la carpeta de documentación


Durante el desarrollo, que a su autor le ha llevado algo menos de 3 meses, he tenido ocasión de charlar con el algunas veces y aunque comenzábamos hablando de programación, dudas, etc, acabábamos hablando de lo divino y lo humano y he de decir que en la escena retro hay muy buena gente. Fito es uno de esos tipos con los que conversar es un verdadero lujo.

En realidad ya conocí a Fito, como a Cervantes, a través de sus obras. Jugué mucho a su remake de west bank para android, una pasada de juego con la que he pasado muchas horas viajando en metro. ¡Os lo recomiendo!



Os invito a descubrir Space Panic (descargable desde la web itch de fitosoft y desde el github de 8BP) y a disfrutar se un verdadero clásico.

Gracias Fito!




Cambios de rutas desde BASIC [8 bits de poder] [Leer]


 Hola amigos de 8 bits de poder

En esta ocasión os traigo un pequeño truco motivado por un desarrollador que quería cambiar la dirección de salto de un personaje en mitad de una ruta

Supongamos que quieres que tu personaje salte hacia la derecha y en mitad del sato quieres que el personaje pueda cambiar hacia la izquierda, continuando el salto. Lo que estamos planteando se puede representar con este dibujo:



En este ejemplo nuestro personaje salta y en mitad de la ruta de salto hacia la derecha, cambia de dirección en el punto 2, continuando con la ruta de salto a la izquierda, pero sin comenzar un nuevo salto, simplemente continuando el salto y alcanzando la misma altura (punto 3) que alcanzaría con el salto hacia la derecha para finalmente terminar el salto a la izquierda en el punto 4.

Para poder hacer esto necesitamos cambiar la ruta a nuestro personaje desde basic en el punto 2, pero no podemos usar el comando SETUPSP porque ello iniciaría la ruta, obteniendo un salto mucho mayor, que comenzaría en el punto 2. Lo que podemos hacer en ese caso es simplemente un POKE a la dirección de memoria que almacena la ruta del Sprite, que es la dirección de su estado +15, tal como muestra la tabla de atributos de sprites.

 

Suponiendo que tenemos dos rutas de salto (ruta 0 salto a derecha y ruta 1 salto a izquierda), el siguiente ejemplo ilustra el concepto (puedes cargar las demos de 8BP y modificar estas líneas en la demo 2 para ver el efecto

130 'ciclo de juego ------

150 |AUTOALL,1:|PRINTSPALL,0,1,0

170 ' rutina movimiento personaje -----

173 IF PEEK(27000)<128 THEN 178

174 'estamos en mitad de un salto

175 IF INKEY(27)=0 THEN POKE 27015,0:GOTO 180:'cambio ruta a derecha

176 IF INKEY(34)=0 THEN POKE 27015,1:GOTO 180:'cambio ruta a izq

177 GOTO 193

178 IF INKEY(67)=0 THEN |SETUPSP,0,0,137:|SETUPSP,0,15,dir:'saltar

180 IF INKEY(27)=0 THEN dir=0:|SETUPSP,0,6,1:'ir derecha

190 IF INKEY(34)=0 THEN dir=1:|SETUPSP,0,6,-1:'ir izquierda

193 ciclo=ciclo+1

310 GOTO 150


La única limitación del uso de POKE para este propósito es que la imagen del personaje no cambia hasta que no encuentra un código de cambio de imagen en mitad de la ruta. Cambiar la imagen usando SETUPSP es posible pero peligroso, ya que no sabes si el personaje esta subiendo (borrado con líneas inferiores) o bajando (borrado con líneas superiores). Por ello es mejor simplemente asignar la ruta y que la propia ruta cambie la imagen lo antes posible. Puedes incluso poner en mitad de la ruta cambios de imagen aimque no sean necesarios por si ocurre esta circunstancia. Lo que si tienes que hacer es que la imagen de salto tenga bytes de borrado en ambos lados pues si no lo tiene y cambia de dirección, dejaría un rastro.

He añadido este briconsejo en el manual de 8BP (apartado 12.2.5 del manual) , y en mi próximo post además os hablaré de un fabuloso juego que acaba de salir para 8BP y que podréis encontrar en el respositorio github de 8BP

hasta la vista!

Menus personalizados para DES con 8BP [8 bits de poder] [Leer]


 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!

DISPONIBLE NOMWARS en DSK y TAPE [8 bits de poder] [Leer]


Hola amigos de 8 bits de poder

Recientemente he liberado el juego NOMWARS (junto con sus fuentes, sus gráficos , música etc.). Lo podéis encontrar en https://github.com/jjaranda13/8BP . En total ya tenéis 16 juegos completos hechos con 8BP libres para descargar. Dos de ellos realizados por otros programadores ("dogfight" de Iván Ávila y "zampamanzana" de Dani Masó). Si te animas a publicar tu juego para que forme parte del lote de juegos de 8BP, y ayudar así a otros programadores, ponte en contacto conmigo

El juego NOMWARS ha sido programado con la versión V41 de 8BP y ofrece las dos versiones: BASIC puro y ciclo compilado.



El juego lo encontrareis para descargar tanto en disco como en cinta:
  • DSK: contiene la intro del juego y te da a elegir entre jugar con ciclo compilado o con BASIC puro
  • TAPE: un fichero .cdt con la version del juego compilada y otra .cdt con el juego en BASIC puro. En el formato cinta no esta incluida la intro, porque tardaría mucho en cargar todo, pero en el DSK tenéis todo en el mismo disco
Ademas, puedes comprar la edición fisica en https://hobbyretro.com/retro/nom-wars

Espero que os guste y que os inspire para hacer vuestros propios juegos. Recordad que en la carpeta de "documentacion" tenéis el "making of" de muchos juegos, entre los que se encuentra NOMWARS

Y por ultimo, también disponéis de SPEDIT V14, el cual os proporciona una nueva funcionalidad: podéis capturar sprites de capturas de pantallas de vuestros juegos favoritos o pantallas editadas con la herramienta ConvImg o cualquier otra


Estoy preparando un menú de juegos para DES, programado con 8BP, que os puede servir para crear vuestros propios menús de juegos DES. En este caso va a contener un juego integrado en el menú, de modo que mientras te piensas el juego al que quieres jugar, puedes jugar a un minijuego, Es un concepto atractivo porque os permite hacer menús mucho mas lujosos a vuestro gusto, de un modo sencillo, como siempre, con 8BP. Muy pronto lo tendréis disponible 

hasta pronto amigos!




Disponible "NOMWARS" en formato DES [8 bits de poder] [Leer]


 Hola amigos de 8 bits de poder

Ya podéis disfrutar de NOMWARS, el último videojuego de 8BP 


El juego ha sido editado en formato DES (Dandanator Entertaiment System), un formato que le permite dar nueva vida a tu AMSTRAD CPC con cartuchos, cargándo instantáneamente, con la posibilidad de crear tus propias compilaciones de juegos. El juego esta a la venta en https://hobbyretro.com/retro/nom-wars

Si quieres saber mas sobre DES y sus posibilidades, puedes consultar en https://auamstrad.es/hardware/dandanator-entertainment-system/


NOMWARS es un juego creado en honor al clásico "Commando"  creado por Capcom en 1985.La versión programada con 8BP ha sido titulada “NOMWARS”, por estar de moda las historias sobre el nuevo orden mundial como amenaza. El título es lo de menos porque igual se podría haber titulado “el retorno de joe” o “supercommando”, no deja de ser un clon de comando

NOMWARS ha sido programado en BASIC con 8BP, demostrando una vez más que con 8BP puedes hacer cualquier tipo de juego.

En esta versión se explota la capacidad de scroll de 8BP (comando MAP2SP) y se incluye el famoso puente por el que Joe pasa por debajo usando una técnica basada en el comando SETLIMITS de 8BP.

EL juego se ofrece en dos versiones: la versión de BASIC pura y la versión de ciclo compilado (ciclo traducido a lenguaje C usando el wrapper de 8BP y el minibasic de 8BP).  Ambas versiones son idénticas, pues la traducción a C es una réplica total, casi un espejo de la versión BASIC. De hecho, el juego ha sido programado en BASIC y el ultimo día ha sido pasado a C con la facilidad que tiene para ello 8BP.


Historia de NOMWARS

Siglo XXI, el Nuevo Orden Mundial ha creado una pandemia y se ha hecho con el control de los medios, ha arruinado la economía y está utilizando técnicas de ingeniería social para que la población acepte un régimen totalitario basado en la tecnología. Mediante un plan de vacunación masiva están esterilizando silenciosamente a la población. Cualquier fiesta está prohibida.

Quedan pocos pensadores libres como tú, y tu misión es unirte a una fiesta clandestina, para lo cual deberás destruir al ejército del nuevo orden mundial. Una vez destruido, la humanidad te agradecerá haber roto sus cadenas


Hay gente a la que le ha “alertado” la historia de NOMWARS, porque contradice lo que se dice en los medios de comunicación sobre el NOM, pero una vez más quiero dejar claro que NOMWARS es un videojuego, no es un libro de actualidad geopolítica ni de historia. Es un simple juego y como tal es una ficción. 

La programación del videojuego esta explicada paso a paso en el documento "making of" que encontraras en la sección de documentacion de github , en https://github.com/jjaranda13/8BP

En el documento "making of" encontraras el mecanismo para construir los mapas de cada fase, el scroll, el mecanismo usado para lograr que nuestro personaje pase por debajo del puente, la programación del disparo tan rápido que tiene, el movimiento del personaje, etc



Vamos a explicar aquí el mecanismo del puente, que es sencillo de entender y a la vez interesante:

En estas dos imágenes se ilustra: tras imprimir todos los sprites, se hace un SETLIMITS para restringir el área de impresión de la pantalla y se imprime el personaje. El mecanismo de “clipping” de la impresión de sprites hace que Joe desaparezca justo al entrar en el puente. Justo después de imprimir a Joe se deja el SETLIMITS como estaba para poder usar todo el área de juego al imprimir sprites en el siguiente ciclo de juego

Con 8BP puedes lograr crear juegos de todo tipo y como ves los resultados pueden ser muy profesionales. Espero que disfrutéis de este juego y que os animéis a programar vuestros propios juegos con 8BP!!

os dejo con un video del juego



un abrazo y feliz verano!









¿ Y qué mas da? [8 bits de poder] [Leer]


 Hola amigos de 8 bits de poder,

Recientemente escribí un tweet en el que informaba que no participaría en ferias que siguiesen las medidas "sanitarias" impuestas por el gobierno.  Ojo, he dicho que no voy a participar, no que vaya a participar incumpliendo las normas. Y he recibido muchas criticas, insultos y hasta anónimos. Simplemente por mi posicionamiento en este tema. Incluso me han llegado a decir que debido a mi posicionamiento ya no quieren programar con 8BP (como si yo ganase dinero con 8BP). Considero que una cosa es el problema sanitario y otra muy diferente las medidas. Hay una distancia enorme entre ambas cosas.

8BP es una librería de programación. No es una librería negacionista ni covidiana. Por programar con 8BP nadie se vuelve negacionista. Miguel Bose no es programador de 8BP (que yo sepa).

Este asunto es delicado. Unos creen en la versión oficial (la que ofrece la televisión) y otros piensan (pensamos ) que la televisión no es el mejor camino para llegar a la verdad. La búsqueda de la verdad es lo que debería unirnos a todos, pero parece que este es un tema como el futbol o la política: o eres del Barsa o eres del Madrid. O eres de AMSTRAD o de SPECTRUM. No hay encuentro posible.


La versión alternativa la ofrecen organizaciones como médicos por la verdad, biólogos por la verdad, la universidad de stanford, el centro de la evidencia medica de oxford, los 14000 médicos que han firmado la declaración de Barrington, cientos de científicos a los que por no seguir el dogma de su televisión llaman "negacionistas". La lista es interminable. Hay gente que no piensa lo mismo que dicen en la tele. ¿y que mas da????

En los años 80 tu podías ser racista, el otro podía ser homosexual, otro podía ser homófobo, otro podía estar en contra de los calvos, otro podía ser franquista y otro comunista. Había gente que era de AMSTRAD y gente que era de SPECTRUM (de commodore pocos, que era mas caro). Y todos podíamos juntos charlar y tomarnos una litrona en un parque. Daba igual lo que pensases. La libertad de pensamiento y opinión estaba por encima de todo (a ver, sin usar violencia ni nada para defender las ideas). Disfrutábamos hablando. Hablando en persona, sin wasap ni twitter ni porquerías de esas. Y pasábamos tiempo pensando, meditando mientras paseabas, mientras viajabas en autobús, sin una pantalla de 3 pulgadas a la que mirar como poseído por la berza.

Al igual que a la NASA, que se les ha olvidado como hacer cohetes, nosotros ya no sabemos hablar. Somos de agua dulce o salada pero además, sólo vale ser de una forma. En la televisión llaman debate a interrumpirse hablando, a razonar con adjetivos "no tienes razón porque eres tal". Y si ahora en televisión dijesen  que el AMSTRAD es mejor que el SPECTRUM, los amantes del SPECTRUM tendrían que esconderse para no ser mal vistos por el resto, incluidos otros amantes de SPECTRUM que les señalarían y hasta les denunciarían. ¿nos hemos vuelto locos?

No voy a cambiar mi posición porque una vez que adquieres conocimiento ya no hay marcha atrás. No puedo dejar de saber programar el Z80. Igual que no puedo aceptar que una prueba PCR sea un diagnóstico o que una mascarilla te protege de una persona que no tose ni estornuda. Yo sé que los paraguas funcionan, pero eso no me motiva a usarlos los días que no llueve. Y son razonamientos muy sencillos que se puede plantear cualquiera ( y no debería asustar a nadie). Por ejemplo, el tiempo necesario para conocer los efectos adversos a dos años de una vacuna son... dos años. ¿que alguien no esta de acuerdo? pues mejor. Que cada uno piense lo que quiera.

Queridos amigos: la ciencia consiste en hacer hipótesis falsables. Tu propones una hipótesis y a continuación hay que hacer experimentos hasta que logremos falsarla. En ese momento mejoramos o cambiamos la hipótesis y vuelta a empezar. En ciencia lo que hoy es verdad mañana es mentira. Y NO PASA NADA. El que no esta dispuesto a aceptar esa "terrible" verdad, no tiene espíritu científico. 

En ciencia, todas las ideas, por descabelladas que parezcan, son hipótesis válidas hasta que se refuten. En ciencia, los dogmas no son algo a seguir. Son algo de lo que avergonzarse. Y la televisión es una fuente de dogmas, al igual que muchos libros de texto, pero esa es otra historia de la que os hablaré otro dia.  

Os dejo y me despido con un enlace a un documento que considero una buena contribución para conocer "la otra versión", la que no cuentan en la TV. Da igual si contiene toda la verdad o parte de ella. Tiene valor porque "es la otra versión", la que no te cuentan en TV, y está apuntalada por muchas referencias bibliográficas científicas. Desde que la ví por primera vez me pareció una contribución valiosa y por ello la comparto. 

No es obligatorio leerla, igual que no es obligatorio poneros un supositorio que alguien comparta con vosotros. Yo simplemente lo comparto para el que lo quiera. 

INFORME PANDEMIA




hasta pronto amigos!

 








Como actualizar el cartucho DES de 8BP [8 bits de poder] [Leer]


hola amigos de 8 bits de poder

Hoy os voy a contar como actualizar el cartucho DES de 8BP con los últimos juegos. Para ello he grabado un videotutorial que os adjunto en esta entrada.


El cartucho de 8BP contiene una compilación de juegos que podéis disfrutar de forma inmediata (sin necesidad de esperar a cargar la cinta) gracias al dispositivo DES (Dandanator Entertaiment System) , del que tenéis información en https://auamstrad.es/des/ , y donde podréis adquirirlo.

Tendréis que instalar dos cosas en vuestro PC. un driver USB , pues conectareis el PC al DES a través de un cable USB, y el ROM generator 2.4 , que es la aplicación para crear ROMs con colecciones de juegos y para controlar la grabación del cartucho desde el PC. Aquí tenéis los enlaces a todo:

web del proyecto CPC Dandanator

driver USB para el DES

rom generator 2.4

La compilacion de juegos de 8BP en una ROM la teneis en https://github.com/jjaranda13/8BP , en la seccion de "game examples", dentro de "DANDANATOR ROM COLLECTION"

Aqui os dejo el videotutorial que he preparado, bastante casero. Y os adjunto también un video de pablo Forcén, de AUA (video tutorial de Pablo Forcén)



espero que lo disfrutéis!


8BP galardonado con un AMSTRAD ETERNO 2019 Award [8 bits de poder] [Leer]


 Hola amigos de 8 bits de poder

Es una alegría poder compartir esta noticia, ser uno de los agraciados de los premios AMSTRAD ETERNO de esta edición 2019 y nada menos que con el "premio al mejor equipo desarrollador". Fueron muchos los participantes y un selecto grupo los finalistas, de las 18 categorías del certamen

https://videojuegosretro-upm.blogspot.com/2020/01/2019-international-amstrad-eterno-awards.html

https://videojuegosretro-upm.blogspot.com/2020/01/finalists-2019-international-amstrad.html

Extraordinaria ilustración de Amstrad Eterno

El premio es un reconocimiento a la labor de la gente que le da vida a la escena y cuando reciba el diploma, lo colgaré en mi "sala retro" junto a mi querido Amstrad CPC. Estoy muy agradecido al equipo de amstrad eterno y en especial a Atila Merino @blackmores

Este premio es especial porque tal y como dicen las bases, Para ganar este premio un mismo autor o grupo tiene que haber publicado al menos dos juegos en un mismo año y que la suma de sus puntuaciones sea la mas alta de todas. El jurado (compuesto por 40 miembros) ha sido generoso con 8BP y continuaremos la labor , si cabe, con más ilusión.

Los juegos de 8BP de 2019 fueron "Eridu", "Frogger Eterno" y "Happy Monty". En 2020 sólo he sacado el "Blaster Pilot", aunque he dedicado mas tiempo a mejorar la librería para dotarla de nuevas capacidades musicales y compatibilidad con lenguaje "C", de modo que se puedan hacer juegos mas potentes. Lástima no tener listo el nuevo juego estilo "commando" que estoy acabando. Estará listo en 2021.

como os decía los juegos fueron estos:





Son juegos aceptables, no "top" como puede ser "Pinball dreams" (galardonado como mejor videojuego), pero demuestran las capacidades de 8BP y mi intención es siempre hacer juegos diferentes unos de otros, de diferentes estilos que pongan a prueba la librería, demostrando que puedes hacer cualquier tipo de juego con ella. Y como veis me inspiro en clásicos donde podáis reconocer y hasta comparar con aquellos juegos en los que me inspiro. En "happy monty" incluso incluí el medidor de FPS para que vieses en todo momento la velocidad del juego, como afecta cuando hay mas o menos enemigos, como afecta activar y desactivar la música, etc. Es decir, divertido, si, pero a la vez didáctico y con el código fuente disponible y hasta un manual "making off" explicativo de como se ha hecho el juego.

Cuando termine el juego estilo "commando" que estoy haciendo ( de momento titulado "WWF" World War Fest - guerra mundial fiesta) trataré de preparar un making off y cuando nuestros queridos políticos nos dejen hacer ferias, trataré de dar alguna charla didáctica para explicar su funcionamiento y compartir ideas con todos vosotros.

Tengo muchas ganas de que vuelvan las ferias retro. Muchos sabéis como pienso respecto de las prohibiciones de hacer ferias o reuniones, restricciones que han llevado a la ruina a mucha gente y todas las medidas draconianas que estamos sufriendo. Cada cual debe ser libre para pensar si está o no de acuerdo, para informarse por diferentes vías (esquivando la censura) y formarse su opinión. Pero al igual que no todos los videojuegos valen igual, porque el conocimiento necesario para crear "Pinball dreams" es superior al necesario para crear  un "Pong", tampoco debemos caer en la tentación de pensar que la opinión del sabio vale lo mismo que la del necio. Y mucho menos que un mensaje por el mero hecho de salir en la TV tiene mas credibilidad o sensatez. Vivimos tiempos convulsos, donde la información es manipulada, censurada, recortada, y la verdad se nos hace difícil de alcanzar.

Lo que si deseo, penséis lo que penséis, es que estemos unidos, no dejemos que las ideas o los mensajes de unos y otros rompan nuestras buenas relaciones, nuestra amistad, nuestro afecto. Aquello que nos une tiene un valor que debemos proteger y os deseo que lo logréis, ese es mi mensaje y mi deseo para todos


un abrazo y felices fiestas

y larga vida al AMSTRAD CPC!









Disponible version V41 de la libreria 8BP [8 bits de poder] [Leer]


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!


Disponible versión V40 de la libreria 8BP [8 bits de poder] [Leer]


Hola amigos de 8 bits de poder

ya tenéis disponible la versión V40 de la libreria 8BP, descargable en github https://github.com/jjaranda13/8BP . Esta nueva versión incorpora las siguientes mejoras:


  • libreria: ahora se incluye 8bitsdepoder_v40_00.asm con las siguientes mejoras:
    • compatible con C
    • en el subdirectorio "C" se incluye un wrapper de 8bp (8BP.h)
    • en el subdirectorio "C" se incluye un minibasic (minibasic.h)
    • en el subdirectorio "C" se incluye la herramienta de compilación "compila.bat" que te simplifica el proceso de compilar y crear un .dsk
  • manual: he actualizado el manual e incluido un capitulo que te enseña a traducir tu ciclo de juego a C
  • Demos: todas las demos se recopilan en un menú y están hechas con la v40. ahora hay una demo nueva que demuestra ciclo de juego en C
  • games: se incluye el nuevo "Zampa Manzana" creado por Riper y música de Xeno


Aquí tenéis un pequeño vídeo introductorio: 




En el manual de 8BP encontraras un capitulo dedicado a la forma en la que 8BP se ha hecho compatible con C. 


Con esta nueva funcionalidad tienes 3 opciones:
1)     Hacer tu programa 100% en BASIC ( es decir, no usar la funcionalidad). Esta opción simplifica mucho la tarea de programar pero tienes menos velocidad.
2)     Hacer tu programa 100% en C. Esta opción es compleja pues programar, compilar, buscar y corregir errores, se hace una tarea mucho mas lenta que programando en BASIC

3)     Hacer tu programa en BASIC y al final traducir tan solo el ciclo de juego a C. Esta opción tan fácil como la primera salvo por la ultima fase de traducción a C. 

Puedes programar directamente en C pero también puedes hacer tu juego 100% en BASIC y solo al final traducir fácilmente (mediante un minibasic que viene con 8BP) el ciclo de juego a C. Prácticamente te llevará unos minutos y conseguirás la máxima velocidad.

¿que no te lo crees? pruébalo. Ya nada será igual


Un ejemplo comercial de la opción 3 es el famoso y mítico juego “plaga galáctica”, una producción de Indescomp creado por el excelente programador Paco Suárez en 1984. Le debemos muchas horas de entretenimiento al gran Paco Suárez.


Para esta nueva funcionalidad, 8BP v40 te proporciona dos librerías de C:
  • el wrapper de 8BP, llamado 8BP.h
  • un minibasic ("minibasic.h") con 18 comandos similares al BASIC pra ayudarte a traducir tu ciclo de juego desde BASIC a C




La librería 8BP trae un par de ejemplos ( dos minijuegos) para que aprendas a llevar a cabo este sencillo proceso.  Y el capítulo del manual es muy detallado y te guiará paso a paso

Ya puedes hacer juegos de AMSTRAD como nunca imaginaste.  Con 8BP v40 ya nada será igual en los juegos por computadora


hasta pronto!


Disponible version V39 de la libreria 8BP [8 bits de poder] [Leer]


Hola amigos de 8 bits de poder

ya tenéis disponible la versión V39 de la libreria 8BP, descargable en github https://github.com/jjaranda13/8BP . Esta nueva versión incorpora las siguientes mejoras:


  • librería: ahora se incluye 8bitsdepoder_v39_001.asm con las siguientes mejoras:


    • comando |COLSPALL, id : ahora explora a partir del colisionador id+1. Esto tiene mas sentido que buscar desde el sprite id, ya que este comando se usa para detectar nuevas colisiones a las ya detectadas con COLSPALL, y lo logico es que usemos el id del colisionador detectado, de modo que nos interesa explorar a partir de id+1
    • comando |MUSIC: ahora acepta un nuevo parámetro que permite dejar libre el canal C de sonido mientras suena la musica para usarlo en efectos sonoros con comando SOUND de BASIC
    • comando PRINTSPALL : ahora primero imprime y luego anima, de modo que el primer fotograma de una explosión se imprimirá. Hasta ahora cuando se asignaba una secuencia de animación, el primer fotograma no se imprimía porque primero animaba y luego imprimía
    • ahora los comandos PRINTSP y PRINTSPALL pueden usar imágenes ubicadas en cualquier zona de memoria, incluso fuera del espacio destinado por la librería 8BP para sprites. Esto antiguamente funcionaba pero desde que introduje las imágenes flipeadas, un pequeño error hizo que esta posibilidad quedase anulada, pero ya funciona de nuevo.
    • corregido un minibug detectado en un caso concreto de sobreescritura

  • manual: he actualizado el manual reflejando los cambios en la libreria



  • Demos: todas las demos se recopilan en un menú y están hechas con la v39. ahora hay una demo nueva para probar música y FX a la vez


Con esta nueva versión de la librería he programado el nuevo juego "blaster pilot" que pronto veréis y podreis jugar en la próxima feria en la que participaré ( retroparla) . Aun no ha sido publicado.

Es un juego de acción, con scroll multidireccional, musica on-game (compuesta por bitcaffe), sonidos FX a la vez que la música, muchos enemigos animados y 6 niveles. Pronto publicaré un video de este juego para que veáis como ha quedado. Como siempre, el videojuego será gratis y para todos (tanto el .dsk como los fuentes los tendréis a vuestra disposición)

Por cierto, este juego "busca" sponsor: si quieres que el logo de tu empresa o asociación aparezca en este nuevo juego para siempre, contacta conmigo a través de twitter (@8bitsdepoder )




Por último, a los que deseáis programar con 8BP en C, os diré que el wrapper de C ( un 8bp.h) lo tengo a medias y funciona perfectamente, de modo que podréis disfrutar de esta capacidad en la próxima versión V40




Nos vemos en Retroparla!




Concurso de creación de portada del juego "Eridu:The space port" [8 bits de poder] [Leer]


hola amigos de 8 bits de poder

Como algunos de vosotros ya sabreis a través de las redes sociales y de la página de "Amigos y Usuarios de Amstrad" (https://auamstrad.es) la AUA  ha abierto un concurso hasta el 18 de diciembre para diseñar la portada del cassette del juego Eridu !

Los premios son muy interesantes:

  • 1 PREMIO: Dandanator CPC + juego Eridu
  • 2 PREMIO: Juego Eridu
  • 3 PREMIO: Juego Eridu


Puedes usar cualquier técnica para realizar la portada. Usa la historia de Eridu para inspirarte y recuerda que debes enviar el documento gráfico en alta calidad (600 DPI minimo) para poder imprimirlo en A3 en alta calidad. Bases en https://auamstrad.es/retroescena/certamen-portadas-eridu/

Eridu fue la primera ciudad del mundo y según una leyenda fue creada por unos extraterrestres llamados Anunnaki:
"Las pirámides de Egipto o el trililtón de Baalbek son obras grandiosas que la historia oficial se empeña en decirnos que fueron construidas por personas sin apenas conocimientos, pero que demuestran una gran maestría en el transporte de grandes pesos, sofisticadas herramientas, matemáticas precisas e incluso astronomía moderna.
En el caso de las pirámides, al historia oficial nos dice que la pirámide de Keops fue construida en 20 años. Posee 2.400.000 bloques de piedra de entre 2 y 10 toneladas que los egipcios tenían que haber colocado cada 3 minutos. Trabajando sin descanso día y noche durante 20 largos años. Incluso suponiendo que diferentes equipos de trabajo podrían colocar varios bloques simultáneamente, sigue siendo algo completamente increíble. Todo ello sin mencionar la precisión de la orientación y el hecho de que no hay jeroglíficos egipcios en su interior. Además, la dinastía anterior a la construcción (la tercera dinastía) nunca logró construir una gran pirámide y la dinastía posterior (la quinta) tampoco.
Es como si se les hubiese olvidado "cómo se hacía". Algo parecido a lo que hoy en día sucede con el viaje a la luna...
Todo esto nos conduce a la siguiente pregunta: ¿y si antes de los egipcios, mucho antes, hubiera existido una civilización "madre" que hubiese dejado grandes obras como las pirámides y los trilitones?
Si dicha civilización hubiese desaparecido por algún cataclismo o guerra, su tecnología y conocimientos habrían sido heredados parcialmente, de forma difusa por pueblos posteriores. Y dicha civilización ?de donde sacó sus conocimientos y tecnología?
Las tablillas sumerias encontradas en el desierto de Irak nos hablan de ello. Hay algunas tablillas que contienen incluso información sobre los 9 planetas del sistema solar, lo que revela conocimientos astronómicos para los que hace falta un telescopio.
¿Es cierto todo esto? Sea como sea, merece ser investigado y no quedarnos solo con la "historia oficial" que al igual que la "ciencia oficial" o la "verdad oficial", siempre posee lagunas a incógnitas ocultas no resueltas."

Anímate y participa en este interesante certamen, y contribuye con ello a dar a conocer el verdadero origen de la raza humana...

Más info en la página de la AUA: https://auamstrad.es/retroescena/certamen-portadas-eridu/

Enlaces sobre el juego Eridu:







Suerte amigos! a por ello!






Disponible version V38 de la libreria 8BP [8 bits de poder] [Leer]


Hola amigos de 8 bits de poder

ya tenéis disponible la versión V38 de la libreria 8BP, descargable en github https://github.com/jjaranda13/8BP . Esta nueva versión incorpora las siguientes mejoras:

- detección de colisiones perfeccionada, sin limitaciones por coordenadas negativas
- comando MUSIC mejorado: ahora puedes decidir entra hacer sonar una musica en bucle o hacerla sonar una sola vez.
- el comando MUSICOFF ha sido reemplazado por MUSIC invocado sin parametros
- manual mejorado con capitulo de primeros pasos y diversas pequeñas mejoras
- la librería ocupa exactamente igual que antes (8KB) , dejándote 24 KB para tu lógica BASIC, 8.5 KB para gráficos y 1.4 KB para música

Estos son los primeros pasos con la librería 8BP. Te dejo con un vídeo explicativo y los mismos pasos por escrito, que ademas los tienes en el manual de 8BP que viene con la librería.


Primeros pasos con 8BP 1) Instalar winape
Lo primero que debes hacer es instalarte la última versión de Winape, que es un emulador y a la vez editor y ensamblador de Amstrad. Lo puedes descargar desde www.winape.net

2) Familiarizándote con winape: “hola mundo”
Una vez instalado el Winape, familiarízate un poco con el, probando algun juego de Amstrad y probando a cambiar la configuración. Trata de abrir el assembler que lleva incorporado en el menú y edita un “hola mundo” en la ventana de ensamblador. A continuación, copia y pega el texto en la ventana de emulación. Veras como se pega carácter a caracter



Si haces un programa mas largo, para copiarlo en la ventana de emulación es muy interesante la opción settings->high speed. Verás como se copia rapidísimo.

3) Descárgate la librería 8BP
Estamos llegando a lo mas interesante. Ve a la url https://github.com/jjaranda13/8BPy descargate el zip (https://github.com/jjaranda13/8BP/archive/master.zip) . Para ello puedes simplemente pulsar el botón verde “clone or download” y a continuación seleccionas el zip

Una vez que te lo has descargado, descomprímelo en el directorio que quieras. Tendras el siguiente resultado:


4) Ejecuta las demos
Ahora vamos a hacer una primera toma de contacto con 8BP viendo algunas demos. Entra en el directorio Demos. En el encontraras una serie de subcarpetas : ASM, BASIC, DSK, MUSIC
Entra en DSK . Alli veras un fichero .dsk con las demos. Desde winape ve al menú File->drive A-> insert Disc image y selecciona el archivo de las demos
Una vez seleccionado, desde la ventana de emulación del Amstrad escribe CAT para ver los archivos

Cada fichero .BAS es una demo donde podrás ver alguna de las características de 8BP (no todas sus posibilidades se pueden ver con las demos pero hay algunas representativas).
Ejecuta el comando RUN “LOADER.BAS”. Obtendrás el siguiente menú:




Ya puedes elegir una demo y probarla. A disfrutar. En el siguiente y ultimo paso empezaremos la creación de un juego

5) Creando tu primer programa con 8BP
Hemos probado un fichero .dsk que contiene muchas demos, con graficos y música. En el directorio Demos/ASM y en el Demos/MUSIC se encuentran los graficos y la música de las demos que has probado. Sin embargo, si quieres hacer tu propio juego o demo, es mejor que empieces con unos ficheros “limpios” sin todos los graficos que requieren las demos que has probado.

Nos vamos al directorio raíz. Alli encontraras una carpeta llamada 8BP_V38. Yo te recomiendo que hagas una copia de esta carpeta y la renombres como “mi_juego”. De ese modo preservarás la carpeta 8BP_V38 original aunque empieces a cambiar cosas

Dentro de la carpeta 8BP_V38 encontraras las carpetas ASM, BASIC, DSK, MUSIC, TAPE, y output_spedit


Desde la ventana de ensamblador de winape abre el archivo “ASM/make_all_mygame.asm” y ejecútalo (simplemente en el menú de winape z80 assembler seleccionas Assemble o pulsas Ctrl+F9). Esto comenzara a ensamblar (copiar en memoria) la librería y los graficos en la memoria del Amstrad. En este caso vamos a ensamblar muy pocos graficos, tan solo los indispensables para un pequeño juego. Los gráficos se encuentran en images_mygame.asm
Tras ensamblar todo, obtendrás un mensaje como el que se muestra a continuación:


Pulsas “ok” y desde la ventana de ensamblador vamos a abrir otro archivo. En este caso vamos a abrir un fichero BASIC, concretamente “tu_primer_juego.bas” que se encuentra en la carpeta BASIC. Tras abrirlo veras el siguiente listado en pantalla, que contiene 32 lineas:

Selecciona todo y cópialo. Luego ve a la ventana de emulación del CPC y pégalo usando el menú FILE->paste
Como el listado es algo mas largo que el “hola mundo”, usa settings->high speed para copiarlo y luego vuelve al “normal speed”
Como ya esta ensamblada la librería y los gráficos, puedes hacer RUN y el juego se ejecutará. Debes esquivar unas bolas que caen del cielo para no morir, moviéndote a derecha e izquierda

Puedes probar a modificar el programa y ver sus efectos. Poco a poco iras aprendiendo 8BP y podrás hacer modificaciones interesantes tales como cambiar la frecuencia con la que salen bolas enemigas o su velocidad, o reemplazar al soldado por una nave espacial y a las bolas por naves enemigas con diversas trayectorias.
6) Crea tu .dsk con tu juego 8BP
Por último, vamos a crear un disco con tu juego. Para ello, tras tener el juego funcionanod debes dar estos pasos

·        Crea un disco nuevo mediante winape: FILE-> drive A-> new Blanc Disc
·        Formatealo: FILE->drive A->Format Disc Image
·        Tras haber creado tu fichero dsk , desde la ventana de emulación ejecuta los siguientes comandos:

SAVE “8BP.bin”, b, 24000,18620
SAVE “juego.bas”

Ya casi hemos terminado. Ahora debes seleccionar otro disco desde el menú de winape o salir de winape para que el .dsk que has creado se haga realidad en el sistema de ficheros de windows.

Sal de winape y vuelve a abrirlo
Selecciona el disco que has creado y ejecuta:

MEMORY 23999
LOAD “8BP.BIN”
RUN “juego.bas”



Aleluya !!!



"Happy Monty" : sus secretos desvelados [8 bits de poder] [Leer]


Hola amigos de 8 bits de poder

Como muchos ya sabreis, Happy monty esta disponible para descarga en https://github.com/jjaranda13/8BP asi como el documento "making of", (en la carpeta de documentación). Os recomiendo que os bajeis el juego de mi URL y no de la que publica byterealms porque he retocado algún detalle tras el concurso y la versión que he publicado yo es "la buena".

uno de los 25 niveles
Nada mas empezar a cargar veréis los logos de la AUA (https://auamstrad.es ) y de 8BP. Eso es porque tenemos una relación de cooperación para fomentar los valores de la cultura retro y promover las creaciones con AMSTRAD, para mantener mas viva la escena, si cabe. Haremos muchas cosas juntos, y las vais a poder disfrutar. Soy aliado de la buena gente que quiere contribuir a dar vida a la escena y a compartir conocimientos y desarrollos. Los amigos de la AUA son de esta pasta.

pantalla de carga
El motivo de haber presentado este videojuego a la CPC retrodev 2019 fue para dar a conocer 8BP a aquellos desarrolladores que aun se están pensando si hacer un juego o una demo con su CPC y dudan si sus conocimientos de BASIC serán suficientes. La respuesta es SI. con tener el emulador winape y sin instalar nada, puedes programar en BASIC sobre el CPC y beneficiarte de la gran potencia de 8BP. Evidentemente no he logrado el impacto que deseaba con la CPCRetrodev porque el juego no ha quedado  de los primeros, pero al menos he logrado algo de difusión de esta herramienta 8BP. 

No voy a quejarme del puesto  (ha quedado el 11) porque cualquier cosa que diga se puede malinterpretar y precisamente yo reconozco el valor de los 35 juegos, porque al ser programador, entiendo como están hechos y al igual que una persona en un museo puede entender mejor un cuadro del Bosco si conoce sus motivaciones y lo que representa, un programador entiende perfectamente lo que esta viendo y lo analiza técnicamente muy deprisa, haciéndose una idea muy clara del esfuerzo que supone cada aspecto del juego. Es como tener la capacidad de ver "mas allá" de tu percepción visual porque "entiendes" lo que estás viendo.

Lo que si que considero y me atrevo a decir es que una mejor posición para 8BP (= para Happy Monty) habría beneficiado a la escena CPC porque habría "democratizado" aun más la programación en 8 bits, con un mensaje claro a programadores BASIC: si sabes BASIC puedes hacer un juego como Happy Monty. A pesar de todo, algo de difusión he logrado y más de uno se animará a desarrollar sus juegos o demos gracias a Happy Monty. Desde este humilde blog os animo a probarlo!

uno de los 25 niveles
uno de los 25 niveles

Voy a dar algunas pinceladas en este post sobre  como ha sido construido este juego y cuales son las claves que lo hacen ser una sorprendente creación. Los puntos clave son:

  • El juego esta íntegramente hecho en BASIC y funciona en BASIC sin compilar. Eso si, usa los comandos extendidos que proporciona la librería 8 bits de poder (8BP). 
  • El juego se mide a si mismo e imprime los FPS que esta alcanzando en la parte inferior de la pantalla. Es un dato de "honestidad", para que en todo momento puedas analizar la velocidad del juego y juzgues lo que le cuesta mas y lo que le cuesta menos, sin trampa ni cartón.
  • EL juego es un tributo a Mutant Monty, un juego de 1984 escrito en ensamblador y logra alcanzar su misma velocidad (a veces supera 25 FPS) y hasta posee lógicas mas complejas de enemigos que en el juego original. Esto significa que en BASIC se puede lograr el resultado de un juego programado en ensamblador haciendo uso de 8BP y la técnica de lógicas masivas. Si, has leído bien, se puede hacer.
  • El juego tiene la primera pantalla idéntica a la del juego original. El motivo es muy sencillo: primero porque es un tributo o "segunda parte" (no un plagio ni un clon como ha afirmado algún despistado)  y segundo porque quiero que lo compares: un juego en BASIC vs un juego en ensamblador y decidas por ti mismo si 8BP tiene la potencia de un pura sangre o no. Juega a ambos y alucina viendo lo que desde BASIC se puede lograr

EL juego Mutant monty original

El primer nivel de Happy Monty
Monty tiene dos velocidades: si pulsas una tecla , monty camina, pero si la dejas pulsada...monty corre. Este mecanismo también estaba presente en el juego original. Estas mecánicas tienen también su peso en BASIC y como siempre afirmo: "todo cuesta, incluso un simple IF"

EL lenguaje BASIC interpretado es extraordinariamente lento...¿entonces? ¿como se logra la vertiginosa velocidad de Happy Monty? (calificada hasta de excesiva  -lo cual es un halago- por algún miembro del jurado de la cpcretrodev)  ¿de donde procede su "magia"? pues de dos cosas: de la velocidad de los comandos 8BP ( capaces de mover 32 sprites a la vez a 18 FPS o más)  y de la ya popular técnica de "lógicas masivas" de la que hablo ampliamente en el manual de 8BP, así como en muchas de las charlas de programación que he dado y que encontrareis en youtube y en la carpeta de documentación


Algunas claves del juego:

Niveles definidos de forma compacta:

  • cada nivel se ha creado con 160 caracteres que definen tanto los muros de cada nivel como los enemigos presentes, asi como las trayectorias que deben seguir. tambien en esos 160 caracteres se indica donde se encuentran las piezas de oro, la puerta y la posicion inicial de Monty



  • Para no definir cientos de rutas de sprites de diferentes longitudes, se han creado sprites inversores invisibles. Cuando un enemigo choca contra un sprite inversor , cambia de dirección. En el mapa expuesto son las letras "z" ,"x" para rutas horizontales y "q", "w" para verticales. 
  • los niveles se dibujan en pantalla leyendo desde Basic 160 caracteres almacenados en memoria y "traduciendo" a muros y enemigos que se van pintando. Es por ello que tarda unos segundos en pintarse cada nivel (casi nada). Podría haber hecho una rutina ASM para ello pero he preferido dejarlo así con fines didácticos. Se ha llegado a decir de monty que tiene un problema porque parece que se pinta el nivel como si estuviese hecho en BASIC....pues claro, es que esta hecho en BASIC!!!!


Lógicas masivas:

  • cuando un enemigo choca con un inversor este se desactiva, por lo que ya no hay que detectar colisiones con el, hasta que el enemigo choca con el inversor opuesto. en ese momento se vuelve a activar. Esto reduce muchos calculos pues puede haber hasta 12 inversores en pantalla.
  • el teclado se lee en dos etapas: en los ciclos impares de juego se le OP y en los ciclos pares se lee QA, de modo que hay menos trabajo que hacer en cada ciclo. La velocidad del juego evita que el jugador pueda apreciar esta limitación "invisible"
  • las comprobaciones sobre si monty puede cambiar de dirección solo se hacen cuando monty se encuentra en X= múltiplo de 4 o Y= múltiplo de 16. Esto reduce muchos cálculos por ciclo de juego. Solo se atiende inmediatamente el cambio de dirección si se trata de ir en la dirección opuesta a la que se encuentra en ese momento. En ese caso Monty da la vuelta inmediatamente.
  • los enemigos que se mueven mas despacio, tan sólo se imprimen cada dos ciclos gracias a la capacidad de cambio de estado de las rutas 8BP. Esto ahorra tiempo a la rutina de impresión
  • la detección de colisión con las piezas de oro se hace cada 6 ciclos, al igual que la colisión con la puerta y la detección de pulsación de la tecla M para activar y desactivar la música. Esto ahorra operaciones por ciclo y es imposible que pases por encima de un oro y no lo cojas pues para atravesar completamente un oro hacen falta al menos 8 ciclos.

Gráficos y música
todos los gráficos, secuencias de animación, decorados, etc los he hecho con la herramienta SPEDIT que viene con 8BP. Es muy sencilla y esta escrita en BASIC, la puedes usar desde winape. En cuanto a la música la he hecho con el WYZtracker. El WYZplayer esta integrado dentro de la librería 8BP y para hacer sonar la música on-game basta con invocar el comando MUSIC de 8BP.

Hay mas cosas y detalles que podria contar pero para este post creo que es suficiente. No quiero "saturar" con demasiados detalles. He hablado algo sobre como están hechas "las tripas" del juego para que os hagáis una idea y me alegro de haber compartido este juego con todos vosotros.

Antes de despedirme, quiero también contaros dos novedades muy próximas:

  • 8BP v38 con algunas mejoras y un manual con "primeros pasos" mas fácil aun.
  • y un vídeo que voy a hacer de "primeros pasos" con 8BP, en el que veréis como en 10 minutos podéis hacer vuestro primer juego/demo usando 8BP, que tan solo requiere que tengáis instalado winape, nada mas.


Un abrazo y hasta pronto amigos! Os dejo con un video del juego









8BP estuvo en la RUN" AUA [8 bits de poder] [Leer]


hola amigos de 8 bits de poder

Asi es, 8BP estuvo en la RUN"" AUA, como no podía ser de otro modo. Hubo un gran despliegue de maquinas y buena gente con la que compartimos aficiones y un gran intercambio de información, ideas y pasión por los 8 bits

El lugar del evento estuvo muy bien escogido: espacioso y acogedor, con sala de exposiciones y sala de conferencias. Enhorabuena a los organizadores de AUA. Os estamos muy agradecidos.

El stand de 8BP incluyó una maquina arcade con un emulador de Amstrad donde toda la familia, grandes y pequeños pudieron disfrutar de los juegos de 8BP, incluido el extraordinario "ERIDU", que ya podéis descargar desde https://github.com/jjaranda13/8BP . También llevamos un CPC 464 con el nuevo sistema DES y el cartucho de 8BP con todos los juegos disponibles. Y por supuesto folletos, información, el fabuloso póster de SPACE PHANTOM y la preview del nuevo "Happy Monty"

El stand de 8BP

Al stand acudieron público de todas las edades y fue un excelente momento para unir a toda la familia en torno a un concepto universal: el videojuego. Vivimos juntos momentos de acción y peligro, de aventuras y dificultades, pero siempre entrañables
Un Amstrad no puede faltar en ninguna familia
En el stand se congregaron publico de todas las edades pero como los juegos de 8BP suelen ser conceptualmente sencillos y se entienden sin dificultad, el publico infantil destacó notablemente. Especial mención he de hacer al videojuego "frogger eterno", que todo los niños pedían, aunque el juego "ERIDU" tuvo tanto o mas éxito que frogger. El juego ERIDU fue jugado una y otra vez por todos los visitantes usando la maquina arcade y su mando profesional nos proporcionaba una jugabilidad increíble.
Gran afluencia de selecto público infantil
Ademas de videojugadores, muchos informáticos y gente con conocimientos avanzados acudieron al stand y tuvimos interesantes conversaciones sobre construcción de videojuegos. La librería 8BP no deja indiferente, viendo el catálogo de  juegos disponibles, era inevitable pensar el muchos posibles nuevos juegos y conversar sobre como se podrían construir. Durante la charla de 8BP pude inroducir muchos trucos y consejos que fueron devorados por los asistentes, un halago sin duda para este trabajo que con tanta pasión estamos llevando a cabo.
ilustres visitantes jugando a los juegos de 8BP
Durante la feria, algunos miembros de la AUA pudieron probar el juego "Happy Monty", aun en construcción pero que pronto vera la luz para disfrute de todos. un Juego en BASIC con 8BP que alcanza una velocidad endiablada de 25 FPS.
el nuevo juego "Happy Monty" en construcción
Una de las novedades presentadas por la AUA en la feria fue el nuevo DES con cartuchos estilo "gameboy advance" que permite crear cartuchos de bajo coste insertables en nuestro Amstrad para jugar de forma inmediata sin esperar la carga. En concreto pudimos ver el cartucho de 8BP con todos los juegos de 8BP en un menu, seleccionables y listos para disfrutar. Este formato tiene multiples ventajas, entre las que se encuentra la posibilidad de hacer juegos mas grandes, con muchas fases que no requieren esperar a cargar

El nuevo DES con el cartucho de 8BP
Junto con los amigos de AUA (https://auamstrad.es/) nos hicimos una foto de familia para recordar este gran encuentro. Todo buena gente, de lo mejor, os lo aseguro.
8BP y buenos amigos de la AUA
A la feria acudieron muchos nobles personajes de la escena y algunos buenos amigos, con los que nos inmortalizamos en una foto ( el buenazo de Javi y su mujer)

Fue un placer para mi compartir la charla de 8BP con todos los asistentes, la cual he subido al repositorio de 8BP en charla 8BP , Hubo una gran asistencia e interés, lo cual es una satisfacción para mi y me anima a seguir avanzando en esta librería 8BP, que le da vida a nuestro querido AMSTRAD

hasta pronto amigos!





Disponible version V37 de la libreria 8BP [8 bits de poder] [Leer]


hola amigos de 8 bits de poder

Ya esta disponible la versión v37 de 8BP,  disponible para descarga en https://github.com/jjaranda13/8BP la cual incorpora las siguientes mejoras:
  • comando |COLAY mas rápido y con un cambio en su paso de parámetros. ahora acepta 3,2,1 o ningún parámetro y el nuevo orden de los parámetros es |COLAY umbral,@col,sp . En caso de no usarse ningún parámetro, el comando tiene memoria y usa los de la ultima invocación. Esto permite un incremento notable de velocidad, pasando de 3.5 ms a 2.5 ms
  • se han acelerado unos cuantos comandos, (MOVER, MOVERALL y otros). Para ello se han modificado algunas partes de código ensamblador comunes a varios comandos
  • comando |COLSPALL mas potente. ahora puede ser invocado con un parámetro para especificar el colisionador inicial. Esto permite detectar varias colisiones por fotograma si es necesario. luego veremos como.
  • comando |ANIMALL ya solo se puede invocar mediante un parámetro en PRINTSPALL o mediante CALL pues se ha sacado de la lista para ganar algunos bytes de memoria. El comando normalmente solo se usa desde PRINTSPALL, de modo que no supone ningún problema
  • manual: he actualizado el manual reflejando los cambios en la librería y he incluido un apéndice con la correspondencia entre cada comando y su equivalente CALL. Además, el manual ha sido revisado y mejorado al completo, en especial el capítulo de lógicas masivas
La velocidad en general ha aumentado un poco en todos los comandos, los cuales unidos a la técnica de lógicas masivas nos permite hacer juegos en BASIC como el nuevo "Happy Monty". Es un juego aun en construcción que reproduce fielmente el funcionamiento del mítico mutant monty. Alcanza los 25 FPS y permite activar y desactivar la musica on-game. El juego es muy rápido y se mide a si mismo, mostrando los FPS alcanzados dentro de los marcadores del juego. 

Las colisiones funcionan como siempre (mecanismo de logicas masivas dentro del comando COLSPALL) pero se puede invocar usando como parametro el colisionador de la ultima colisión detectada y si se ejecuta hasta que no haya colisiones, puedes detectar todas las colisiones que sucedan en cada fotograma, aunque es algo que debe usarse solo si es necesario. 
Lo que acabo de contar se puede expresar asi:

colisionador=31
while colisionador<32
  COLSPALL, colisionador
  if colisionador <32 then GOSUB RUTINA
wend

Aqui teneis un video donde podéis ver como esta quedando. Pondré una demo del juego en la feria de la RUN" AUA (Rivas, Sábado dia 19) para que puedas probarla.


Cada nivel se ha construido usando 160 caracteres, apenas lo que ocupa un mensaje de twitter. En 4KB se han metido 25 pantallas y en realidad aun caben mas. Puede que le llegue a hacer 40 niveles.

Aprovecho para deciros que estaré en la RUN"" AUA que tendrá lugar en Rivas el sabado 19 de Octubre (en una semana) y alli contaré como usar la libreria 8BP y diversos trucos de programación usados en space phantom, eridu, frogger, happy monty...


la RUN"" AUA se celebra en la "casa grande ", un espacio ofrecido por el ayuntamiento de Rivas-Vaciamadrid. Teneis mas informacion en https://auamstrad.es/runaua2019/
el fabuloso emplazamiento donde tendrá lugar la RUN"" AUA
Además podreis ver el DES (Dandanator Entertaiment System" https://auamstrad.es/des/) con el cartucho de 8BP en acción, incluyendo el juego "Eridu", "frogger", "space phantom"... todos!!!





Nos vemos en Rivas el sábado día 19, amigos. Hasta pronto!!








8 Bits de Poder estuvo en RetroMadrid Academy 2019 [8 bits de poder] [Leer]


Hola amigos de 8 Bits de Poder

Allí estuve, en un ambiente formidable, intercambiando ideas y pasión con muchos de vosotros. El evento fue un éxito. No tan espectacular en volumen como RetroPixel de Malaga (algo dificil de igualar) pero con contenidos y ponentes de primer nivel y un público con muchisimos conocimientos y deseos de intercambiar ideas. Todas las conversaciones con los asistentes fueron interesantísimas. Os puedo asegurar que habia mucha pasión por los 8 bits, y por la cultura y valores que representan la informática clasica ( técnicas optimizadas de programación, control de la máquina y su hardware, intercambio de conocimientos, etc).


Tuve ocasión de charlar con Gabriel , Rodrigo, Fernando Saenz, Raul, Nacho y muchos otros, un ambiente insuperable. Quiero daros las gracias a todos los que os habeis currado la organización del evento, en un entorno sin parangón como es el CEU.

El imponente edificio del CEU


La imprecindible foto de familia :

Algo de la exposición, muy surtida, inluyendo DRAGON64, MSX, MSX2, AMSTRAD, SPECTRUM, ORIC ATMOS, COMMODORE 64, COMMODORE AMIGA, etc. He de decir que me encantó un videojuego de DRAGON, lástima que no recuerdo el nombre.Trataré de localizarlo.
Y sin duda la conversion de Jet-Pack (creada en 2014) para AMSTRAD me pareció perfecta. No habia jugado antes.



Los asistentes a la charla de 8BP pudieron conocer de primera mano como está construido el videojuego "Eridu: the space port", patrocinado por Amigos y Usuarios de Amstrad (https://auamstrad.es/)  y por ende como programar juegos de marcianos con scroll en general. Tambien estuvimos analizando cómo construir nuevos niveles en Eridu y hasta pudimos ver el resultado de un nuevo nivel, el nivel 5, del que os adjunto una foto al final de este artículo.


Todo fue grabado en video y estoy seguro que muy pronto podremos ver todas las charlas de Retromadrid academy online.
Tanto la presentación como la plantilla para diseñar niveles de ERIDU se encuentra en la carpeta de documentacion de 8BP, en https://github.com/jjaranda13/8BP
aqui teneis el enlace directo a la presentacion: presentacion 8BP y Eridu

La presentación incluye explicaciones de las partes del código fuente BASIC mas importantes del videojuego ERIDU, asi como la memoria que usa, sus graficos, etc.

El aula listo para despegue. No os miento si os digo que todos nos sentíamos a bordo de una nave espacial.


Hubo mucho intercambio de ideas al tratar la técnica de "logicas masivas", cuyos principios son aplicables a cualquier maquina y a cualquier  lenguaje de programación. Son principios sin los que los juegos 8BP no podrían funcionar, ya que recordemos que estan hechos en BASIC sin compilar.



Dentro de los contenidos de la presentacion pudimos analizar la historia "Prohibida" de la humanidad, de la que las tablillas sumerias nos han dejado constancia. Hablamos sobre los misteriosos datos que aportan, su tecnologia "imposible" y las evidencias de que la historia que nos han contado no es del todo correcta...



Con esta plantilla pudimos diseñar nuevos niveles e incorporarlos al juego

y aqui teneis el nivel 5 de Eridu, que vendrá incluido en el juego de serie (aun no lo he publicado pero lo haré muy pronto y podreis disfrutar de el)


¿cual será el proximo juego de 8BP? se aceptan sugerencias: estilo "time pilot"?, un juego de futbol? un estilo filmation? un plataformas de 40 pantallas? todo es posible y continuaré desarrollando juegos para todos.

Una vez más, quiero agradecer a todos lo que haceis posible estos eventos, tanto a organizadores como a público. Y gracias por vuestro interés y acogida

un abrazo!