Página 9 de 12

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 03 Oct 2016, 22:34
por yombo
Sí, uso la interrupción de 50 Hz, pero en realidad no: cuando termino de dibujar hago polling para saber cuándo ha cambiado el frame, y sincronizar el switch de página de vram.

No sé qué es la IM2, supongo que es esa interrupción de 50 Hz.

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 03 Oct 2016, 23:20
por mcleod_ideafix
yombo escribió:Es en x4 que se oyen ruidos aleatorios.
No es culpa tuya. Es mía. Aún no tengo resuelto al 100% el tema de los registros cuando vas a x4.

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 04 Oct 2016, 01:01
por yombo
mcleod_ideafix escribió:
yombo escribió:Es en x4 que se oyen ruidos aleatorios.
No es culpa tuya. Es mía. Aún no tengo resuelto al 100% el tema de los registros cuando vas a x4.
Vale, de acuerdo :okidoki;

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 15 Oct 2016, 17:47
por Haplo
Hace cosa de una semana empecé a preocuparme del tamaño del código principal, a pesar de que los datos de gráficos y músicas están en páginas de RAM, voy a tener que hacer encaje de bolillos para que quepa entre 31000 y 49151.

Ahora mismo lo que tengo en zxbasic es mayormente la parte de control de teclado, generación de las pantallas y preparación de las tablas necesarias. Casi todo se hace pokeando a tope y dejando todo el tema de manejo de sprites y gráficos al motor en asm con las interrupciones.
Apenas me he metido con el control de los enemigos y la interacción con los elementos del juego, pero ya se va acercando el código generado a la zona donde está ubicado el motor.

El zxbasic de Boriel está genial y me simplifica mucho el prototipado y el debug, pero tengo que pensar en pasar casi todo a ASM puro, para de esa manera ahorrar espacio y poder reubicar código. También se me ha pasado por la cabeza echarle un ojo a z88dk, pero nunca he tocado C (aunque no me suena a chino) y me da no se qué a estas alturas, parar a estudiarlo y después migrar el código. No sé cierto qué ventajas tiene un lenguaje sobre el otro.

De momento, una de las cosas que ya he hecho es mover tablas y ubicar módulos en asm como el de música en memoria paginada. Así a lo tonto he ganado casi 4k de espacio.

Por cierto, he sufrido unos días locos de debugging porque al "externalizar" el player de música y sonidos fx, tenía errores y cuelgues a patadas. Después de revisarlo todo mil veces, resulta que es un error en el player de Shiru. Resulta que en un bucle de inicialización de valores en una tabla, tenía un valor incorrecto en el contador y se pasaba los límites de la misma, corrompiendo los datos o el código que hubiera a continuación. Según dónde ubicara la rutina, a veces funcionaba o petaba sin remedio. Abriré un hilo para colgar el código del player ya corregido.

Seguimos desarrollando.

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 17 Oct 2016, 09:40
por Hark0
Espero poder cargar un TAP este sábado en la RetroSevilla Miguel.... dale caña ;) :okidoki;

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 17 Oct 2016, 10:37
por Haplo
Si, sin problemas.

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 17 Oct 2016, 11:29
por Radastan
Haplo escribió:También se me ha pasado por la cabeza echarle un ojo a z88dk, pero nunca he tocado C (aunque no me suena a chino) y me da no se qué a estas alturas, parar a estudiarlo y después migrar el código. No sé cierto qué ventajas tiene un lenguaje sobre el otro.
Mira esto y me cuentas:
http://www.bytemaniacos.com/ficheros/zx ... basico.pdf

Con mis rutinas (hay versión ZXUno) es como programar en BASIC.

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 17 Oct 2016, 13:40
por Haplo
Gracias miguel, leído y parece fácil, a priori. Para el uso que le doy a zxbasic creo que es trivial pasarlo a c. Sólo es cuestión de adaptar algunas cosas y familiarizarse con la sintaxis.

El caso es que he husmeado por ahí y he leído algo sobre SDCC, pero no entiendo bien si es una evolución de z88dk porque está el proyecto abandonado, si es mejor, si se diferencia en algo,etc. Parece que la cosa se mueve mucho en la escena cpc, no sé si es extrapolable al entorno spectrum.

¿Alguién me puede aclarar como está el panorama?

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 17 Oct 2016, 20:50
por yombo
Haplo escribió:Gracias miguel, leído y parece fácil, a priori. Para el uso que le doy a zxbasic creo que es trivial pasarlo a c. Sólo es cuestión de adaptar algunas cosas y familiarizarse con la sintaxis.

El caso es que he husmeado por ahí y he leído algo sobre SDCC, pero no entiendo bien si es una evolución de z88dk porque está el proyecto abandonado, si es mejor, si se diferencia en algo,etc. Parece que la cosa se mueve mucho en la escena cpc, no sé si es extrapolable al entorno spectrum.

¿Alguién me puede aclarar como está el panorama?
Por lo que sé, el z88dk incluye su propio compilador, pero como está un poco desfasado, ya han incluido la opción de usar otro compilador más completo, el SDCC, en la última versión 1.99A. Pero no va muy fino, o yo no he conseguido que funcione. En la supuesta próxima versión 2.0 de z88dk se incluiría soporte completo para este compilador.
Para usar el compilador SDCC se activa con un flag en la línea de comandos al compilar, está en la wiki de z88dk.
Pero se ve que no han portado todas las librerías a este nuevo compilador, y éstas están duplicadas a medias.

Re: Proyecto de juego: Las Aventuras de Tolo

Publicado: 20 Oct 2016, 17:37
por Haplo
Dejaré el tema del C para otra ocasión, ya que merece dedicarle un tiempo que ahora no tengo.
He estado reorganizando todo y he sacado lo que alojaba en RAM 0 salvo la tabla de saltos de la IM2, de esta manera el código zxbasic puede crecer hasta ocupar unos 32 k sin complicarme la vida. Actualmente llevo "comidos" casi 11 KB de ellos, con lo que no creo que me pille el toro si no me desmadro :silbando:
Lo único es que tengo que tener cuidado de colocar las rutinas que necesitan acceder a datos en las otras páginas de RAM por debajo de 49152 para que pueda paginar sin problemas.

Dado que no uso llamadas a ROM y que tengo las interrupciones y la pila bajo control, puedo usar todo el espacio destinado a las variables del sistema entre 22528 y 24576 (inicio pantalla shadow de Timex) para meter tablas y variables mías. Sin embargo, he visto que los últimos bytes de RAM 0 (a partir de 65330) no están a 0, parecen ser usados por algo, no sé si es por algún periférico (DivMMC?) o por el ZXbasic de Boriel, porque si los toco consigo un bonito cuelgue o reset.
¿Qué usa esta zona? La tabla de saltos no tiene que ver porque está entre 65024 y 65280.