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

$this->bbcode_second_pass_quote('D_Skywalk', 'a')ntonio, 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).

$this->bbcode_second_pass_quote('D_Skywalk', 'p')uedo 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.

$this->bbcode_second_pass_quote('D_Skywalk', 'P')odrí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.

$this->bbcode_second_pass_quote('D_Skywalk', '
')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.