Duda BASIC: Sprites y Set Page

Por Warchild

Paragon (1285)

Imagen del Warchild

22-06-2011, 19:19

Retomando algunas cosillas que tenía colgadas, vuelvo a un punto en el que me encuentro con el siguiente problema:

En Screen 5 defino un par de sprites y los muevo sin problema pero cuando cambio de página con SET PAGE y hago un PUT SPRITE, no aparecen por ningun lado... cuando vuelvo a la página en la que los estaba usando, vuelven a aparecer. ¿Qué hago mal? No creo que tenga que volver a definirlos cada vez que cambio de página, ¿no?

A ver si alguien me aclara un poquillo esto... gracias Smile

Login sesión o register para postear comentarios

Por Sd-Snatcher

Hero (582)

Imagen del Sd-Snatcher

22-06-2011, 20:25

Puedes ver como tenerlos que redefinir o como tener 4 juegos de sprites precargados pero si, es eso, los sprites se van con la pagina.

Por Warchild

Paragon (1285)

Imagen del Warchild

23-06-2011, 18:08

Gracias Sd-Snatcher, después de haber unas cuantas pruebas todo lo que consigo es tener el juego de sprites operativo en dos páginas. Para el apaño ya me vale, pero no acabo de entender como funciona esto... defino los sprites en cada una de las páginas pero solo en la 0 y 2 se mantienen como han sido definidos. Alguna tontería se me debe estar colando por ahí, pero no la pillo Question

Por Sd-Snatcher

Hero (582)

Imagen del Sd-Snatcher

23-06-2011, 19:28

Te explico, no se si sabes como va lo de las paginas.

Tienes 2 tipos de pagina, la activa y la visible, para dibujar en una pagina tiene que estar activa independientemente de que este visible, tu puedes ver una pagina con sus sprites y todo pero dibujar otra, asi que para poner sprites y dibujos en cada una de las paginas tienes que ir activando cada vez la que te interese aunque no la estes mostrando.

Por mohai

Paladin (932)

Imagen del mohai

06-10-2011, 18:45

Una solución sería que, cada vez que cambies de página, vuelvas a poner los punteros para los sprites, en los registros del VDP, para que apuntaran a la primera página, pero supongo que trabajando desde BASIC, el putsprite y tal escribe sobre otras direcciones ...

Por Warchild

Paragon (1285)

Imagen del Warchild

12-10-2011, 19:51

Gracias por el aporte, imagino que para poner los punteros debería usar OUT para escribir en los registros del VDP.

En un hilo sobre cómo redefinir caracteres había un listado que permitía colocar el set de caracteres en RAM. ¿Se podría hacer lo mismo o algo parecido con los sprites?

No sé si lo común es cambiar el puntero con cada cambio de página. De ser así supongo que sería posible usar un poquito de ensamblador, un gancho con SET PAGE para que lo haga cada vez que haya un cambio de página.

Por pitpan

Prophet (3144)

Imagen del pitpan

12-10-2011, 20:01

Probablemente puedas redefinir las direcciones de los punteros a VRAM de los sprites con el comando BASE desde BASIC, pero no lo he probado para el caso en concreto que planteas.

Por mohai

Paladin (932)

Imagen del mohai

14-10-2011, 13:42

Concretamente, desde BASIC, puedes usar los comandos BASE y VDP, para modificar los registros del VDP directamente.
El truco de cambiar el juego de caracteres desde RAM, no te valdrá para los sprites.
Ten en cuenta que la definición de los caracteres está guardada en el BIOS (movible a RAM cambiando el puntero correspondiente), para que el BIOS los vuelque a cada modo de vídeo cuando lo cambias (screen 0 o 1) o cuando "imprimes" en los modos gráficos.
Esto mismo no existe para los sprites. Éstos solo se guardan en VRAM.
Podrías hacer que los sprites se vuelquen cada vez que cambias de página, pero es lento si trabajas desde BASIC.