Página 15 de 20

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Jue, 12 Jun 2014, 23:35
por D_Skywalk
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:

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Vie, 13 Jun 2014, 00:18
por antoniovillena
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.

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Vie, 13 Jun 2014, 00:20
por antoniovillena
Otra solución es deprecar el antiguo formato y sacar un conversor de imagen del antiguo formato al nuevo.

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Sab, 14 Jun 2014, 12:26
por D_Skywalk
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 :)

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Sab, 14 Jun 2014, 14:40
por antoniovillena
$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.

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Dom, 15 Jun 2014, 10:48
por D_Skywalk
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?

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Dom, 15 Jun 2014, 13:48
por antoniovillena
$this->bbcode_second_pass_quote('D_Skywalk', 'N')o 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.

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

$this->bbcode_second_pass_quote('D_Skywalk', '
')Un saludo y gracias tio :)
Pd. Tengo muchos fixes ya del fase para que compile en linux, ¿los subo ya?

Sí, claro, súbelos.

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Dom, 15 Jun 2014, 18:25
por D_Skywalk
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:

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Dom, 15 Jun 2014, 20:57
por antoniovillena
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.

Re: FASE (Fucking Awesome Spectrum Engine)

Publicado: Lun, 16 Jun 2014, 00:08
por D_Skywalk
Lo que no funcionaría sería el BAT de windows, por eso te digo, yo es que no tengo windows donde mirar :?