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 AUA. Mostrar todas las entradas
Mostrando entradas con la etiqueta AUA. Mostrar todas las entradas

miércoles, 3 de febrero de 2021

Como actualizar el cartucho DES de 8BP

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!


domingo, 24 de noviembre de 2019

Concurso de creación de portada del juego "Eridu:The space port"

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!






domingo, 10 de noviembre de 2019

"Happy Monty" : sus secretos desvelados

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









domingo, 20 de octubre de 2019

8BP estuvo en la RUN" AUA

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!





domingo, 13 de octubre de 2019

Disponible version V37 de la libreria 8BP

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!!