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

antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Sab, 25 Ene 2014, 22:09

He modificado el main.c para que en la demo el protagonista pueda disparar, adjunto el .TAP. Me gustaría que la demo fuese lo más sencilla posible pero a la vez muestre todo el potencial del engine. Si tenéis alguna sugerencia ya sabéis.
Adjuntos
game.tap
(15.05 KiB) Descargado 188 veces
Avatar de Usuario
radastan
Mensajes: 692
Registrado: Vie, 20 Ago 2010, 12:54
Contactar:

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor radastan » Lun, 27 Ene 2014, 10:17

Va como la seda.

Espero con ansia las llamadas desde C que está preparando D_Skywalk.
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Lun, 27 Ene 2014, 11:46

radastan escribió:Va como la seda.

Espero con ansia las llamadas desde C que está preparando D_Skywalk.


De todas formas no hay ningún compromiso. A todos nos gustaría que D_Skywalk completara la parte C del engine para tener algo parecido a la Churrera (que no haya que picar ni una línea de código), pero hay que tener en cuenta que es una tarea muy complicada que le llevará tiempo, incluso si opta por hacer un copy/paste de la Churrera.

En cualquier caso tal y como está planteado el proyecto ahora mismo se pueden hacer juegos en C sin tener que calentarse mucho la cabeza en el aspecto gráfico. Ya tengo terminada la demo definitiva (adjunto .tap). La demo está muy simplificada para que sea didáctica, en un juego real los sprites tienen inercia y gravedad, el protagonista tiene una secuencia de animación compuesta por 8 sprites y los enemigos por 2 sprites y hay muchos más elementos en el juego (sonido, saltos, colisiones con los enemigos, cerrojos, tiles animados, etc...).

La demo está hecha con SDCC, que en general es un compilador más eficiente pero menos amigable que el Z88DK, sobre todo a la hora de incluir ASM embebido y por el hecho de que no acepta ficheros binarios (he tenido que emplear una herramienta intermedia bin2c para incrustar la pantalla de fin)
Adjuntos
game.tap
(20.72 KiB) Descargado 90 veces
Avatar de Usuario
elborra
Mensajes: 209
Registrado: Dom, 12 Ene 2014, 14:37

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor elborra » Lun, 27 Ene 2014, 12:29

Cuanto crack junto hay por aquí...

Algún día le meteré caña al asm, siempre he querido y nunca me he puesto... y que mejor que empezar con el asm para z80 :D

Si que has incrustado la pantalla del final, si XD
Avatar de Usuario
radastan
Mensajes: 692
Registrado: Vie, 20 Ago 2010, 12:54
Contactar:

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor radastan » Lun, 27 Ene 2014, 12:51

antoniovillena escribió:A todos nos gustaría que D_Skywalk completara la parte C del engine para tener algo parecido a la Churrera (que no haya que picar ni una línea de código), pero hay que tener en cuenta que es una tarea muy complicada que le llevará tiempo, incluso si opta por hacer un copy/paste de la Churrera.


Vale, pues entonces miraré en cuanto pueda cómo integrar tu motor en Z88DK y hacer las funciones de llamada en C a tu motor. No quiero una churrera, hablo de integrara en Z88DK tu motor y tener llamadas en C para manejarlo todo.
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Lun, 27 Ene 2014, 13:20

radastan escribió:Vale, pues entonces miraré en cuanto pueda cómo integrar tu motor en Z88DK y hacer las funciones de llamada en C a tu motor. No quiero una churrera, hablo de integrara en Z88DK tu motor y tener llamadas en C para manejarlo todo.


Pues básicamente de lo que se trata es de compilar un binario que empiece en la dirección $8000 (32768) y que se comunique con el motor escribiendo en la zona $5b00-$5c08. Hay constantes pre-generadas en define.h que te pueden ser muy útiles. El quid de la cuestión es cómo mapear esa zona de memoria en C. Con SDCC lo he hecho de una forma un poco cutre: el sprite número N se accede con sprite[N][0] para el número de sprite, sprite[N][1] para la coordenada X y sprite[N][2] para la coordenada Y. Aquí sería más lógico emplear struct y algo como sprite[N].x.

El formato está explicado al comienzo de este hilo aunque se puede deducir (mejor completentar) con el código fuente:
https://github.com/DSkywalk/fase/blob/m ... ine/main.c
https://github.com/DSkywalk/fase/blob/m ... ine/fase.h
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor na_th_an » Lun, 27 Ene 2014, 13:34

También puedes usar defines:

Código: Seleccionar todo

#define SPRITE_X(n) sprite[n][1]


Un poner :)
Como diría Rorshach: "Urm..."
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Lun, 27 Ene 2014, 21:27

Buena idea la de los defines, son muy socorridos.
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Mié, 29 Ene 2014, 00:28

Por fin he acabado de documentarlo. No es muy buena pero al menos es mejor que lo que había. También doy por finalizado el código y liberado la versión 0.99, que salvo bugs y cambios leves será la última versión que publique. Como la parte C del engine es una cosa que está todavía en el aire, no hago ninguna alusión en el readme.html, así me evito el posible vaporware y no meto presión a D_Skywalk. Si sale, bien; si no siempre queda un bonito engine al estilo de Bitfrost* para hacer juegos en C de alto nivel.

Voy a publicarlo en otros foros. Si veis cualquier fallo en el engine o algo que no se entienda en la documentación avisadme. También podéis colaborar pasando la demo a Z88DK, creando otra demo más chula, diseñando un logo o lo que queráis.
Adjuntos
FASE.0.99.zip
(725.08 KiB) Descargado 452 veces
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: FASE (Fucking Awesome Spectrum Engine)

Mensajepor antoniovillena » Mié, 29 Ene 2014, 00:35

Un segundo post para poner la demo
Adjuntos
game.tap
(20.13 KiB) Descargado 554 veces

Volver a “General”

¿Quién está conectado?

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