Vblank en SC4 Nestorbasic

Por jorge.romero.9655

Master (147)

Imagen del jorge.romero.9655

28-05-2015, 02:10

Saludos de nuevo.

Hoy os escribo porque tras terminar el juego de "Dribol", me he animado a hacer otro en Nestor basic.

Para este nuevo juego he creado un mini "scroll" en el banco inferior de la pantalla, pero aunque todo se mueve bastante rápido, queda un efecto de teering durante el dibujo de los patrones que no me gusta nada.

Por el momento he descartado hacer un doble buffer porque en este modo de pantalla no tengo paginas adicionales. Mi idea es tratar de sincronizar el vblank con el dibujo de mis tiles.

El tema es que no tengo ni idea de como averiguar el momento apropiado. ¿Como puedo saber en Basic-XBasic cuando se inicia o finaliza uno de estos barridos?

He estado buscando en el foro y no me termino de aclarar.

Login sesión o register para postear comentarios

Por Warchild

Paragon (1280)

Imagen del Warchild

28-05-2015, 03:39

A ver aquí:

http://www.msx.org/forum/msx-talk/development/how-avoid-teer...

También hay por ahí un ejemplo de interrupción de línea en Turbo Basic, por si te puede ser útil.

Por jorge.romero.9655

Master (147)

Imagen del jorge.romero.9655

28-05-2015, 12:03

Mmm... parece que es justo lo que buscaba. Esta misma tarde lo pruebo.

¡Muchas gracias Warchild! Big smile

Por AxelStone

Prophet (2956)

Imagen del AxelStone

01-06-2015, 10:41

Estás que te sales compi. En cuanto tenga un rato miro el fuente que escribí para evitar el teering y te lo mando Wink

Por cierto, este es mi mensaje 1111, curioso número LOL!

Por AxelStone

Prophet (2956)

Imagen del AxelStone

07-06-2015, 11:51

Aquí tengo el fuente. Se trata de un scroll horizontal para MSX2+, pero el vblank es igual:

Quote:

90 FOR N%=1 TO 400
100 '#I 243
110 VDP(27)=N%\8
120 VDP(28)=N% AND 7 XOR 7
130 '#I 251
140 '#I 118
150 NEXT N%

El ciclo es: habilitas interrupciones, esperas vblank, deshabilitas interrupciones. Puedes añadir si quieres el comando para esperar al VDP (estaba puesto en otro hilo), pero yo no noté diferencia y lo quité para ahorrar proceso.

Suerte con ese proyecto.