FASE (Fucking Awesome Spectrum Engine)

Chit chat general. Habla con los MojonTwins y con los amigos de los MojonTwins. Reza a Vah-ka. Delinque. Aviso: está PROHIBIDO tirarse peos fuerte. Si les cortas el pescuezo, vale.

Moderador: na_th_an

Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor D_Skywalk » Jue, 12 Jun 2014, 23:35

El otro día haciendo el hangout/directo churrero me di cuenta que si uno pasara a usar esta nueva opción, necesitaría también una modificación en el conversor de mapas, no?

Lo digo por que ya los sprites no estarán con la misma posición de antes ... Quizás comprobando su tamaño se haga un apaño :?

Bueno sólo para que lo tengamos en cuenta, por lo demás mañana por la mañana voy a seguir leyéndome la documentación, hay cosas que aún no me quedan claras pero ya mañana te pregunto :cafe:

Eso sí para la JAM lo que haga creo que será poco configurable, pero lo que intentaré sera documentar bien todas las funciones y variables. A ver si me queda todo clarito, aunque con el límite de tiempo ya se sabe... :tits:
David Skywalker
Weblog: http://david.dantoine.org
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Vie, 13 Jun 2014, 00:18

Tienes razón. En la Churrera se posicionan los enemigos teniendo en cuenta la antigua distribución de los sprites. En FASE no habría problemas puesto que los enemigos no se posicionan.

La única solución que se me ocurre es adoptar este formato, en el cual se dejan huecos donde antes había máscara.
Adjuntos
spriteset.png
spriteset.png (805 Bytes) Visto 2245 veces
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Vie, 13 Jun 2014, 00:20

Otra solución es deprecar el antiguo formato y sacar un conversor de imagen del antiguo formato al nuevo.
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor D_Skywalk » Sab, 14 Jun 2014, 12:26

antonio, podemos pintar la mitad de un sprite? puedo elegir el tamaño del sprite a pintar?
Podría pintar parte de un tile?

Estaba pensando hacer un sprite de 16x8 :?
Si hay que tocar ASM no hace falta, sólo pregunto a ver que opciones tenemos :)
David Skywalker
Weblog: http://david.dantoine.org
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Sab, 14 Jun 2014, 14:40

D_Skywalk escribió:antonio, podemos pintar la mitad de un sprite?


Con tamaños menores a 16x16 no hay problemas. La rutina es adaptativa, si el sprite es de 8x8 ocupará menos en memoria y tardará menos en pintarse. Lo recomendable es que esté centrado en el recuadro de 16x16 si la vista es cenital, o que esté centrado en la parte inferior si la vista es lateral (para que vaya levitando).

D_Skywalk escribió:puedo elegir el tamaño del sprite a pintar?


No, te tienes que ceñir a 16x16 o más pequeño, hasta 1x1 pixel, es cuestión de poner la máscara indicada.

D_Skywalk escribió:Podría pintar parte de un tile?


Tampoco. Los tiles no tienen máscara por lo que siempre deben ser de 16x16. Puedes tener los tiles que quieras hasta 256, y aunque no se compriman puedes indexarlos para que ocupen menos. Indexarlos es usar los mismos 4 atributos para varios sprites, o los mismos bitmaps con distintos colores (por ejemplo una roca blanca y una amarilla), o combinaciones de ambas indexaciones.

D_Skywalk escribió:Estaba pensando hacer un sprite de 16x8 :?
Si hay que tocar ASM no hace falta, sólo pregunto a ver que opciones tenemos :)


En ese caso no hay problema.

Algo que resulta extraño en este engine es que no puedes pintar cuando quieras. Si tienes que actualizar marcadores tienes que escribir la dirección de la función en los bytes $5c06-$5c07 (variable drwout). Así se pintará en el momento adecuado. No asumas que la memoria de video está en $4000, tienes que añadir shadow<<8 a la dirección antes de escribir, puesto que en los 128K se emplea también la página 7 (localizada en $c000-$daff).

El manejo de tiles es muy flexible, puedes cambiar los tiles de la pantalla actual a tu antojo con el array tiles e indicar el rectángulo de tiles a actualizar con la macro tilepaint. Te recomiendo que te leas el reame.html e intentes comprender la demo de main.c. Si no entiendes algo de la demo, ya sabes, pregunta.
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor D_Skywalk » Dom, 15 Jun 2014, 10:48

No me refería a pintar sólo una zona de un sprite de 16x16 usando una máscara de 16x8, si no a tener sprites de 16x8 para por ejemplo tener más frames para la animación, acciones, etc...

La documentación me la leí y lo del shadow lo entendí. Quiero hacer un juego para 128K para que tengamos también un ejemplo de como crear fases y demás, supongo que no me vale como lo hace na_th_an en la churrera, no?

Un saludo y gracias tio :)
Pd. Tengo muchos fixes ya del fase para que compile en linux, ¿los subo ya?
David Skywalker
Weblog: http://david.dantoine.org
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Dom, 15 Jun 2014, 13:48

D_Skywalk escribió:No me refería a pintar sólo una zona de un sprite de 16x16 usando una máscara de 16x8, si no a tener sprites de 16x8 para por ejemplo tener más frames para la animación, acciones, etc...


No hay una forma sencilla de meter sprites de otro tamaño. Pero lo que te decía, está tan optimizado que si te curras una rutina de 16x8, ésta va a ser igual de rápida que usando sprites de 16x16 con máscara de 16x8.

D_Skywalk escribió:La documentación me la leí y lo del shadow lo entendí. Quiero hacer un juego para 128K para que tengamos también un ejemplo de como crear fases y demás, supongo que no me vale como lo hace na_th_an en la churrera, no?


No sé cómo lo hace na_th_an en la churrera. Mi idea era evolucionar más adelante FASE para que esto fuese transparente. Es decir tú le metes los niveles de tal forma que un sólo nivel quepa en 48K y todos los niveles juntos no sobrepasen los 128K. La herramienta te generará un TAP que al principio te reconoce la máquina, y si es 128K te lo carga todo del tirón, si es 48K te carga la primera fase (lo mismo que hacen muchos juegos de spectrum).

D_Skywalk escribió:Un saludo y gracias tio :)
Pd. Tengo muchos fixes ya del fase para que compile en linux, ¿los subo ya?


Sí, claro, súbelos.
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor D_Skywalk » Dom, 15 Jun 2014, 18:25

Decía usar 16x8, para poder tener más frames (o puedo usar más frames?)
Solo por saberlo ¿donde se definen estas cosas?

Otras cosas, te parece bien que los binarios y demás ficheros que se generan vayan a un directorio build?
Lo digo por meterlo en mi make, pero claro hay que tocar los includes de los asm y demás :?
Por eso pregunto XD

Ya he subido los primeros cambios, pero es para añadir eso o no :)

:cafe:
David Skywalker
Weblog: http://david.dantoine.org
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Dom, 15 Jun 2014, 20:57

No, los frames son los mismos que hay en la churrera, 8 para el personaje principal y 8 para los enemigos. Esto es así de inflexible, lo siento.

Ahora mismo nadie está usando este engine, así que puedes tocar lo que quieras. Lo que sí te pido es que compruebes que funcione todo bien antes de hacer el commit, y si has cambiado algo que está explicado en el readme.html, modificar también el readme.html.
Avatar de Usuario
D_Skywalk
Mensajes: 352
Registrado: Mar, 01 Oct 2013, 13:36

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor D_Skywalk » Lun, 16 Jun 2014, 00:08

Lo que no funcionaría sería el BAT de windows, por eso te digo, yo es que no tengo windows donde mirar :?
David Skywalker
Weblog: http://david.dantoine.org

Volver a “General”

¿Quién está conectado?

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