Kun Basic / Nestor Basic Copys y Screen5

Door Warchild

Paragon (1271)

afbeelding van Warchild

10-05-2010, 22:58

A ver una ayuditaaa... estoy intentando hacer algun que otro programilla tirando de mis escasos conocimientos de basic. Estoy probando en screen 5 y necesito algo de velocidad así que, como no uso sprites, los desactivo pero aun así es bastante lento así que he intentado usar Nestor Basic y Kun Basic, y después de diversos batacazos os traigo unas cuantas dudas, a ver si me resolvéis alguna y el próximo batacazo me da tiempo de poner las manos Tongue

Duda 1.- He conseguido desde el basic hacer un copy escribiendo en los registros del VDP con VDP y OUT. En basic pelao funciona y hace el copy (no sé si gano velocidad así) pero si lo ejecuto con el Kun Basic la pantalla se vuelve loquita. Ni idea de por qué... Question

Duda 2.- ¿Es posible copiar un gráfico de VRAM a VRAM usando funciones de Nestor Basic? No me aclaro mucho y no sé si hay alguna forma de hacer el equivalente a un copy.

Duda 3.- A la hora de manejar los registros del VDP me encuentro con que no sé como comprobar de forma fácil y rápida si un bit es 1 ó 0 ni sé como hacer para poner tal bit a 1 ó 0... imagino que es a base de alguna operación lógica de esas que escapan a mi ilógica Tongue Si alguien me hecha una manita....

Duda 4.- Tengo un pequeño lío con las direcciones de VRAM... en screen 5, supongo que cada página ocupará 32K, por lo que para grabar en disco la página 0 debería hacer

BSAVE¨nombre¨,0,&h7FFF,S

¿Sería correcto?
¿Haciéndolo así estoy grabando tambien la paleta?

Bueno, tengo ocho armarios más llenos de dudas, pero con estas para empezar hay para un rato no? Wink

Ahm y si alguien pudiera mandarme listados en basic que tenga por ahí que puedan ser interesantes y ¨legibles¨para ir aprendiendo, lo agradecería muy mucho. LOL!

Graciaaasss Smile

Aangemeld of registreer om reacties te plaatsen

Van xgipe

Champion (397)

afbeelding van xgipe

10-05-2010, 23:08

Duda 3.- A la hora de manejar los registros del VDP me encuentro con que no sé como comprobar de forma fácil y rápida si un bit es 1 ó 0 ni sé como hacer para poner tal bit a 1 ó 0... imagino que es a base de alguna operación lógica de esas que escapan a mi ilógica Tongue Si alguien me hecha una manita....

En MSX-BASIC se hace mediante VPEEK y VPOKE...
Pero no sé si en Kun-BASIC o Nestor-BASIC será igual.

Van Warchild

Paragon (1271)

afbeelding van Warchild

11-05-2010, 00:23

Gracias xgipe, me refiero a un solo bit. Con vpoke escribo un byte (8 bits no?). Es decir, supongamos que tengo esto en un registro del vdp: &b00011011 y quiero poner el primer 0 en 1 sin tocar el resto. Por ejemplo, para desactivar los sprites es algo así como VDP(9)=VDP(9) OR 2 (igual ahora me equivoco, no tengo el apunte por aquí). Entiendo que lo que hace esa instrucción (o la correcta si esa no lo es) es cambiar un solo bit del registro, el que le dice al VDP si los sprites están activados o no. Sigo haciendo pruebas Smile

Van e_sedes

Expert (112)

afbeelding van e_sedes

11-05-2010, 01:58

Con AND y OR puedes cambiar los bits que quieras. Si utilizas el valor en binario lo verás más claro. Usando tu ejemplo:

VDP(9)=VDP(9) OR &b00000010 ; los bits que estén a 1 son los que activas, los demás quedan igual
VDP(9)=VDP(9) AND &b11111101 ; los bits que estén a 0 se ponen a 0, los demás quedan igual

Así de simple.

Van Warchild

Paragon (1271)

afbeelding van Warchild

11-05-2010, 08:23

Eso era e_sedes Smile Me lo dejaré apuntadito. Gracias! Una duda menos

Big smile

Van Warchild

Paragon (1271)

afbeelding van Warchild

11-05-2010, 15:38

Vamoooss que se acumula la faenaaaa... que me ha surgido otra duda (y van 5) pero de las existenciales:

Resulta que si defino algunos sprites y cargo una pantalla del disco, los sprites no se visualizan bien. Supongo que al cargar el gráfico me cargo las tablas de patrones de los sprites. ¿Cómo se resuelve esto? He probado a definirlos después de cargar el gráfico pero pasa lo mismo. ¿Debo grabar la tabla de patrones en RAM, cargar el gráfico y vover a meter los sprites en la VRAM? ¿Seguro que esto es tan complicado? A ver si es que he roto algo Tongue

Big smile

Van ENDDEMOGAMITAINA

Paragon (1276)

afbeelding van ENDDEMOGAMITAINA

11-05-2010, 16:43

Warchild no estaras programando manbow 3?si es asi quiero ser beta tester!saludos!

Van Guillian

Prophet (3234)

afbeelding van Guillian

11-05-2010, 18:10

Al cargar un gráfico puede que machaques el área de definicion de sprites, sus atributos y colores. Te puede pasar lo mismo con la paleta. Si sólo necesitas cargar la parte visible de la pantalla, asegura de grabar sólo esa zona y no toda la página.
En SCREEN 5:
BSAVE¨nombre¨,0,&h7FFF,S <- Graba toda la página (zona visible, zona de sprites, zona paleta)
BSAVE¨nombre¨,0,&h69FF,S <- Graba el área visible

Van Warchild

Paragon (1271)

afbeelding van Warchild

11-05-2010, 18:19

Uy manbow 3? Si no llego ni al malvoy 1 XD Hice mi cutre-editor de tiles, que como lo de la velocidad era lo de menos me pude apañar (pero lo de menos menos eh? vamos que te puedes tomar una cervecita mientras rota un tile) y ahora andaba de pruebas, pero la que estoy liando para mover tres monigotes... pero en cuanto domestique a estos me lío ya con el manbow 4 directamente (versión juego de mesa, claro Tongue)

Van Warchild

Paragon (1271)

afbeelding van Warchild

11-05-2010, 18:22

Pues voy a probar ahora mismo eso que me indicas Guillian Smile Muchas gracias!