Port del AGD de Z-80 a 6809

jltursan
Mensajes: 2268
Registrado: 20 Sep 2011 13:59
Agradecido : 114 veces
Agradecimiento recibido: 310 veces

Re: Port del AGD de Z-80 a 6809

Mensajepor jltursan » 16 Nov 2018 17:42

Último mensaje de la página anterior:

Pues es verdad que te lo he comentado un par de veces y por ahí andan todavía. Últimamente tengo poco tiempo y sólo esporádicamente me conecto y hago cosillas. Miro a ver si consigo desatrancar el tema y hacerte el envío.

Me muero por ver una versión "casi" definitiva :-)

Avatar de Usuario
pser1
Mensajes: 2250
Registrado: 08 Dic 2012 18:34
Agradecido : 319 veces
Agradecimiento recibido: 355 veces

Re: Port del AGD de Z-80 a 6809

Mensajepor pser1 » 16 Nov 2018 21:51

jltursan escribió:Pues es verdad que te lo he comentado un par de veces y por ahí andan todavía. Últimamente tengo poco tiempo y sólo esporádicamente me conecto y hago cosillas. Miro a ver si consigo desatrancar el tema y hacerte el envío.
Me muero por ver una versión "casi" definitiva :-)

Hola José Luis,
con tus gráficos será la *definitiva* ya que los posibles retoques que le haga al motor no van a afectarle puesto que estamos probando
funciones no utilizadas en Foggy ...
saludos
pere

Avatar de Usuario
pser1
Mensajes: 2250
Registrado: 08 Dic 2012 18:34
Agradecido : 319 veces
Agradecimiento recibido: 355 veces

Re: Port del AGD de Z-80 a 6809

Mensajepor pser1 » 14 Dic 2018 16:34

Hola,
ya han pasado casi seis meses desde que empecé a convertir rutinas del motor AGD para ZX-Spectrum, cosa que arrancó a finales de Junio.
Ahora que todo el código ZX-Spectrum ha sido convertido, a excepción de las rutinas dedicadas al sonido (chip AY), creo que ya es hora de
ir pensando en cerrar este proyecto!
Con la ayuda de Kees van Oss empezamos la tediosa tarea de pruebas y una vez solucionados los errores encontrados, nos decidimos a añadir
algunas nuevas funcionalidades que se están añadiendo en la actualidad al estandar AGD.
Por ejemplo además de los sprites 16x16 ahora podemos manejar los de 16x24

Como los sprites se mueven dos pixels a la vez, implica que debe haber cuatro 'imágenes' desplazadas desde la izquierda 0,2,4,6 pixels
para mostrar una secuencia competa.
Por ahora, AGD lo solventa creando cuatro bloques de datos para cada sprite, uno para caga imágen. Estas imágenes adicionales las genera el compilador de forma que el fichero ASM final contiene 128 bytes en lugar de 32 por sprite.
Existe un desarrollo muy ingenioso que, usando cuatro tablas de solo 256 bytes, es capaz de pintar las cuatro imágenes partiendo
de solamente la principal. Ello implica mas código y las tablas en si mismo, pero como muchos juegos usan
muchos sprites, el resultado global es muy positivo.
De este modo, algunos juegos que NO cabían en las 32K bajas, ahora SI caben!
Posteriormente, estas tablas las he enviado a la parte alta de RAM, liberando otros 1024 bytes de forma que ahora todos los juegos
funcionan en CoCo-Dragon. Además, el código tiene varios indicadores de compilación condicional, que permiten evitar partes
que no hacen falta para un juego.
*** Solo recordaros que los juegos AGD *requieren* máquinas con 64K de RAM (obligatoriamente) ***

Bien, el 'motor' ha sido la primera parte que debía ser convertida. Contiene las funciones que se ofrecen al creador de juegos que puede
llamarlas desde el script que genera la aplicación AGD en el Spectrum.
A continuación, con Kees nos dedicamos a modificar el compilador que lee este script y genera un fichero ASM con código 6809 y los datos del programa. Es un programa en C que se ejecuta bajo Windows y se compila bajo MinGW
La suite se completa con otra herramienta importante, el conversor que, también es un programa en C que lee un fichero .sna de Spectrum
(creado con AGD) y es capaz de extraer un fichero de scripts y datos para su posterior compilacion.

Con el conversor, el compilador y el motor podríamos convertir unos 150 juegos aprox.
Para hacernos la vida mas fácil, he creado una colección de ficheros .bat que permiten probar ficheros AGD en XRoar emulando CoCo o Dragon,
crear los discos (VDK, DSK) e incluso crear una carpeta para cada juego con todos los ficheros intermedios utilizados
puede hacerse de forma individual o masiva.

Para todo ello, estamos utilizando algunas heramientas de otros programadores (listados alfabéticamente)
- ASM6809 de Ciaran Anscomb (Sixxie)
- DragonDos de Rolf Michelsen
- ImgTool de MAME/MESS
- XRoar de Ciaran Anscomb (Sixxie)

AGD es el acrónimo de Arcade Game Designer y fué creado en 2008 por Jonathan Cauldwell

Que esperamos ahora de todo esto?
Bien, la guinda en el pastel sería que la aplicación WinAGD sea capaz de dar soporte a los esquemas de colores del 6847 (Pmode3 y Pmode 4).
Este es un punto importante para cualquiera que desee hacer una versión en colores de cualquier juego que vayamos
liberando a partir de ahora ...
Y mas importante, nos permitiría crear juegos desde cero!
La imaginación al poder!!

saludos
pere

Ps Podéis ver mas datos sobre el proyecto AGD en estas páginas
https://jonathan-cauldwell.itch.io/arcade-game-designer
http://www.worldofspectrum.org/infoseek ... id=0020176

jltursan
Mensajes: 2268
Registrado: 20 Sep 2011 13:59
Agradecido : 114 veces
Agradecimiento recibido: 310 veces

Re: Port del AGD de Z-80 a 6809

Mensajepor jltursan » 14 Dic 2018 22:17

Parece buena idea la de generar al vuelo los fotogramas del sprite; pero, ¿se pierde mucho más tiempo o es muy asumible?

Avatar de Usuario
pser1
Mensajes: 2250
Registrado: 08 Dic 2012 18:34
Agradecido : 319 veces
Agradecimiento recibido: 355 veces

Re: Port del AGD de Z-80 a 6809

Mensajepor pser1 » 14 Dic 2018 22:56

te diria que pràcticamente no se nota. Solamente es un acceso indexado a una tabla de 256 bytes alineada a 256 con lo que el acceso es realmente simple ...
saludos


Volver a “Software Dragon”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado