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:

sugerencias



Hola, amigos de la retocomputación

Esta pagina es para que dejéis sugerencias y peticiones


13 comentarios:

  1. Hola qué tal? soy uno de los escritores del libro Enciclopedia Homebrew y me gustaría hablar contigo ya que vamos a incluir tus juegos en el segundo volumen. ¿Cómo puedo contactar contigo via email?

    Saludos!

    ResponderEliminar
    Respuestas
    1. hola

      Pues encantado, mi correo es jjaranda13@gmail.com
      ya por correo si quieres te paso mi telefono y charlamos tranquilamente

      Eliminar
  2. Hola.
    Magnífico trabajo.

    ¿Sería posible añadir alguna de estas características?

    - Comando para eliminar el borde de la pantalla y mostrar gráficos full screen.
    - Comando para realizar alguna síntesis de voz "text to speech"
    - Comando para partir en dos la pantalla y utilizar tintas con colores diferentes en cada zona.

    ResponderEliminar
    Respuestas
    1. hola Zarkon,

      Lamentablemente los comandos que manipulan la pantalla para poder hacer lo que indicas, se basarían en interrupciones que deben funcionar con extrema precisión. Por ejemplo, para dividir en 2 la pantalla hay que engancharse a la interrupcion de video y 10 ms mas tarde cambiar las tintas. Es posible hacerlo pero si se va a usar desde BASIC, el problema es que el interprete BASIC desactiva interrupciones y se pierden algunas y eso es problematico. el amstrad ejecuta 300 veces por segundo un call &38, desde donde se puede saltar a cualquier rutina que programemos. Esto debería funcionar a la perfección para hacer lo que propones pero no es asi, pues si estamos en el interprete BASIC, el amstrad desactiva interrupciones en algunos intervalos de tiempo (segun el comando que se ejecute) y se pierden algunas llamadas. Para la música uso esa interrupcion para invocar a una rutina 50 veces por segundo y en dicha rutina analizo si el amstrad se ha "saltado" alguna de las interrupciones, para compensarlo enviando mas datos al buffer del chip de sonido en menos tiempo. Asi la musica siempre funciona al mismo ritmo. En video hay que ser mas preciso pues no se puede compensar nada con un buffer. Tengo una idea de como hacerlo, de modo que a pesar de la dificultad que entraña , lo voy a intentar

      lo del text to speech es posible, claro que si, aunque los "alofonos" van a ocupar mucha ram, pero puede ser una característica opcional. Voy a calcular cuanta memoria consumirían los alofonos. Puede ser interesante

      un saludo y muchas gracias por tus ideas!

      Eliminar
  3. Vas aimplementar máscaras? o en Basic no se pueden usar?

    ResponderEliminar
    Respuestas
    1. Hola MonosodiKo

      las mascaras son mapas de bits que permiten acelerar las operaciones de impresión cuando se requiere sobreescritura ( que el sprite se imprima respetando el fondo, sin dejar un rectángulo alrededor). En 8BP se podría usar un mecanismo de mascaras sin problema alguno, sin embargo una sobreescritura basada en máscaras requiere de un doble buffer, y por tanto de mucha memoria RAM para poder funcionar. el doble buffer es como tener una segunda pantalla donde se guardan el fondo para poder reestablecerlo cuando el personaje se mueve. Ese es el motivo por el que muchos juegos reducen el tamaño de la ventana de juego

      En 8BP he optado por una solución que no gasta memoria y permite la sobreescritura y reestablecer el fondo como por arte de magia, sin necesidad de guardarlo. Y sin necesidad de mascaras. Básicamente 8BP "esconde" los colores del fondo dentro de los colores del personaje. En el fondo lo que ocurre es que los bits que se usan para el color de fondo no interfieren con los bits que se usan para el color del personaje y por lo tanto el fondo nunca se destruye aunque lo parezca. En el capitulo "sprites con sobreescritura" del manual describo con detalle esta técnica. La ventaja: no requiere doble buffer y es tan rápida como usar mascaras. El inconveniente: solo puedes usar 7 de los 16 colores para tus sprites y para los colores de fondo puedes usar 2 colores. Para los objetos de fondo que no requieran sobreescritura (una nube,un tejado) se pueden usar 9 colores. La limitacion compensa la gran ventaja de no usar doble buffer, pues asi hay mucha mas memoria para tu programa. Por ejemplo el juego nibiru usa sobreescritura ( mira la fase 2) usando esta técnica. Y también he subido algunas demos que la usan

      Eliminar
  4. Hola. Soy la persona que subi el video de tu conferencia al canal GecaSoft, hable contigo en la RetroMadrid.

    Estoy intentando hacer un port con tu libreria, tengo algunas dudas, aprovecho para preguntarte aqui:

    1- Sonido:

    He probado Wyztracker, pero necesitaria saber si hay alguna tool que convierta un archivo WAV a su formato de sonido o en ensamblador para CPC.
    Necesitaba adaptar los sonidos de mis archivos WAV o por lo menos que fueran los mas parecidos posibles.

    2 - Graficos:
    Usando RGAS he podido adaptar los graficos, pero al exportar a ASM no se que opcion de la lista seria la compatible o que exporte al mismo formato que he visto en los ejemplos. Tienes algun tutorial de RGAS y como usarlo en 8BP ? Spedit ni se como abrirlo en el emulador ;)

    3 - Distro
    Se que parte del codigo es Basic, dijiste que ni era necesario compilar para ejecutar el juego, pero me gustaria saber como se compila o 'proteje' el codigo al hacer la release.
    Tienes un CPC real para poder probar mi juego una vez que lo termine antes de sacarlo ? Gracias.

    ResponderEliminar
    Respuestas
    1. Hola

      Un placer conocerte. Puedes escribirme dudas detalladas de tu juego a jjaranda13@hotmail.com y te ayudare.

      1) no conozco una aplicacion que convierta de wav a binario para cpc, pero es cuestion de investigar. Es posible que exista. Voy a preguntarle a Augusto Ruiz (el creador de WYZtracker) a ver si el sabe de alguna herramienta que haga eso

      2) el spedit se ejecuta en el cpc. es decir, arrancas el emulador, cargas el disco donde esta spedit y pones run "spedit10.bas". en el manual lo tienes en capitulo 6, pag 29. Para usar RGAS te dejo este link a una entrada antigua donde lo explico: http://8bitsdepoder.blogspot.com.es/2016/08/el-editor-de-sprites-rgas-ahora-es.html

      3) un juego entero se puede hacer en BASIC sin compilar con 8BP. Si quieres proteger el codigo tendras que bloquear la tecla "esc". en el manual digo como se hace en la pagina 199, usando una rutina del firmware. Y Si, tengo un CPC real. de hecho tengo 3 y estare encantado de ayudarte a probar el juego sobre mis maquinas

      un abrazo!


      Eliminar
    2. Gracias por la ayuda, ya le habia preguntado por email, estoy esperando a que responda.
      Mirare lo de RGAS asi que pueda, yo tambien tengo algun Amstrad pero no he podido probarlos aun ;)
      Los modelos que tengo apuntados son estos: Amstrad 6128 Plus, Shneider CPC 6128 y el Amstrad CPC 464. No los he vivido en su epoca, apenas pude disfrutar de algun Spectrum ya que era mas de recreativas y consolas. Esta semana estaré de vacas asi que de momento no podre seguir con el juego, cuando lo retome ya le envio un email cuando tenga mas dudas. Muchas gracias

      Eliminar
  5. Hola José Javier,

    En primer lugar quisiera agradecerte por el increíble esfuerzo en regalarnos a todos los amantes del Amstrad esta maravillosa herramienta con la que poder revivir los momentos más felices de nuestra infancia y adolescencia.

    Una librería de la felicidad con la que poder, al fin, llevar a cabo uno de los mayores sueños y anhelos de muchos adolescentes de la época (entre los que obviamente debo incluirme), desarrollando su pequeña joya en forma de videojuego. Enhorabuena por el trabajo!!

    No quisiera copar muchas líneas ni salirme mucho del hilo de sugerencias, pero considero obligado rendir tributo a quien pone en nuestras manos semejante potencial, fruto de su esfuerzo y conocimiento, sin más pretensión que hacernos un poco más felices.

    La reciente visita del adorado Jon Ritman a RetroMadrid ha despertado nuevamente en mi un anhelo recurrente, a la par que una deliciosamente sana envidia al veros juntos en una imagen.

    Sé que se ha barajado la opción de implementar en la librería una técnica de representación isométrica/axonométrica estilo Filmation.

    Decir sin más que de poder llevarlo a cabo sería la ostia, pues el germen de mi particular "Nibiru", podría comenzar a desarrolarse casi 30 años después.

    Entretanto, me retrotraigo en el tiempo al día en el que el CPC 464 apareció en mi vida.

    |RETROTIME, "16/07/1985"

    Muchísimas gracias por 8BP.

    ResponderEliminar
    Respuestas
    1. Hola Ivan,

      Muchas gracias a ti, por tus palabras, que son un estímulo para seguir avanzando en esta libreria que es para todos. Y prometo ponerme a ello, filmation en 8BP!

      Eliminar
  6. Una pregunta rápida...
    Aún no me he metido de lleno con 8bp [estoy liado con Spectrum] pero lo haré espero que pronto.
    Entiendo que la librería lleva incorporado el editor de sprites. Si no se va a usar, optando por otras soluciones... se puede eliminar de la librería y así conseguir más espacio para el código?
    - Gracias por tu labor, un saludo -

    ResponderEliminar
    Respuestas
    1. hola Lord Raptor

      el editor de sprites viene de serie con 8BP, pero es un programa, es decir, igual que 8BP te da un manual, una libreria y juegos de ejemplo, tambien te da un editor de sprites, que puedes usar o no. Hay editores de sprites que son compatibles con 8BP, como RGAS y puedes usar el que quieras. En realidad el formato de imagen que usa 8BP no tiene ningun misterio ( ancho, alto, lista de bytes) por lo que cualquier editor de sprites se puede usar con 8BP.

      Por clarificar un poco mas, la libreria 8BP no tiene dentro al editor de sprites. Te deja 24 KB libres para tu programa y no hay forma de sacar mas espacio para tu programa, salvo si por ejemplo en lugar de usar 8KB para graficos usas menos y entonces en el area que 8BP destina a graficos puedes incluir nuevas rutinas tuyas. En cualquier caso 24KB es bastante para la logica de un programa. Piensa que tienes:
      1.4 KB para musica
      8.4 KB para graficos ( si usas menos puedes meter aqui rutinas)
      0.5 KB para el tile map (en 8BP lo llamamos "layout")
      80 bytes para el banco de estrellas ( si no usas el comando STAR este area lo puedes usar para rutinas)

      8KB libreria 8BP

      24KB libres para tu programa ( BASIC o C o ensamblador o el lenguaje que uses para programar)

      como ves 24 KB son para la logica, y es bastante para la logica de un programa. los graficos y la musica no forman parte de esas 24KB, sino que se almacenan en otras zonas de memoria. En el manual hay un mapa de la memoria y donde empieza y acaba cada zona

      saludos!!!

      Eliminar