Scroll horizontal carácter a carácter
Moderador: Sir Cilve Sinclair
-
- Herbert
- Mensajes: 75
- Registrado: Lun Jul 23, 2012 1:55 pm
Scroll horizontal carácter a carácter
Siguiendo con las prácticas en ensamblador, he conseguido realizar un scroll horizontal carácter a carácter. Como me estoy iniciando lo he hecho superponiendo una pantalla sobre otra con una rutina que pinta el mapa a partir de una coordenada en el array de tiles. Así a pelo el scroll funciona aunque obviamente es mejorable.
El problema es que el sprite que va en medio parpadea debido a que cada pantalla se machaca una encima de otra por lo que se borra todo el sprite.
¿Cómo podría solucionar esto?
Muchas gracias.
El problema es que el sprite que va en medio parpadea debido a que cada pantalla se machaca una encima de otra por lo que se borra todo el sprite.
¿Cómo podría solucionar esto?
Muchas gracias.
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Scroll horizontal carácter a carácter
Hola.
Existen varias maneras de solucionarlo.
Una sería usar un buffer de pantalla. Creas la pantalla actual en el buffer, pintas todos los sprites, y cuando esté todo lo que se tiene que ver, vuelcas todo el buffer a la pantalla real.
Otra manera es hacer el juego para modelos de 128kb y usar la shadow screen.
Otra sería usar el método de ir pintando detrás del raster de la pantalla, pero éste es más complicado y tiene sus limitaciones.
Yo en Knightmare 2ZX he usado el primer método y si usas rutinas rápidas para crear el mapa, pintar los sprites y volcar el buffer, el asunto funciona bastante bien.
Existen varias maneras de solucionarlo.
Una sería usar un buffer de pantalla. Creas la pantalla actual en el buffer, pintas todos los sprites, y cuando esté todo lo que se tiene que ver, vuelcas todo el buffer a la pantalla real.
Otra manera es hacer el juego para modelos de 128kb y usar la shadow screen.
Otra sería usar el método de ir pintando detrás del raster de la pantalla, pero éste es más complicado y tiene sus limitaciones.
Yo en Knightmare 2ZX he usado el primer método y si usas rutinas rápidas para crear el mapa, pintar los sprites y volcar el buffer, el asunto funciona bastante bien.
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
-
- Herbert
- Mensajes: 75
- Registrado: Lun Jul 23, 2012 1:55 pm
Re: Scroll horizontal carácter a carácter
Climacus, muchísimas gracias.
Voy a probar con el buffer. Creo que lo he entendido pero lo que parece complicado es ver de qué forma puedo pintar en la pantalla del buffer y de ahí rápidamente volcarlo todo en la pantalla real. Probaré a ver qué velocidad consigo.
Voy a probar con el buffer. Creo que lo he entendido pero lo que parece complicado es ver de qué forma puedo pintar en la pantalla del buffer y de ahí rápidamente volcarlo todo en la pantalla real. Probaré a ver qué velocidad consigo.
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Scroll horizontal carácter a carácter
Para eso, puedes usar LDI para ir volcando cada línea. Lo más rápido es ir haciendo POP y PUSH alternando la pila entre el buffer y la pantalla real
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
-
- Herbert
- Mensajes: 75
- Registrado: Lun Jul 23, 2012 1:55 pm
Re: Scroll horizontal carácter a carácter
Gracias de nuevo, climacus.
He probado a hacer el volcado a la memoria de pantalla real desde la dirección 51200, por probar. Lo he hecho con ldir, que aunque sé que es lentísimo quería hacer una prueba inicialmente.
Primero pinta el primer tercio de la pantalla, luego los tiles que debieran ir en el segundo tercio se han pintado sobre el primer tercio. La zona de pantalla del segundo tercio se queda en blanco y sí que se imprime el tercer tercio correctamente.
Creía que se copiaría todo del tirón tal cual de un byte a otro.
Pruebo escribiendo varios ldi pero sólo se imprimen los primeros bytes y el resto aparecen y desaparecen rápidamente.
En fin, seguiré tanteando a ver qué tal.
He probado a hacer el volcado a la memoria de pantalla real desde la dirección 51200, por probar. Lo he hecho con ldir, que aunque sé que es lentísimo quería hacer una prueba inicialmente.
Primero pinta el primer tercio de la pantalla, luego los tiles que debieran ir en el segundo tercio se han pintado sobre el primer tercio. La zona de pantalla del segundo tercio se queda en blanco y sí que se imprime el tercer tercio correctamente.
Creía que se copiaría todo del tirón tal cual de un byte a otro.
Pruebo escribiendo varios ldi pero sólo se imprimen los primeros bytes y el resto aparecen y desaparecen rápidamente.
En fin, seguiré tanteando a ver qué tal.
-
- Herbert
- Mensajes: 75
- Registrado: Lun Jul 23, 2012 1:55 pm
Re: Scroll horizontal carácter a carácter
Lo que comentaba lo he solucionado haciendo el buffer en otra dirección, en 49152 Con ldir me pinta bien la pantalla. Ahora a crear un código rápido con ldi.
¿Hay alguna zona de la memoria en concreto recomendada para el buffer o ya depende de cada juego?
¿Hay alguna zona de la memoria en concreto recomendada para el buffer o ya depende de cada juego?
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Scroll horizontal carácter a carácter
La memoria que tenga que ver con la pantalla y para código que se tenga que ejecutar rápido o a velocidad constante no debe ser contenida. Osea hay que ponerlo por encima de 32728. Editado
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
- Alxinho
- Freddy Hardest
- Mensajes: 896
- Registrado: Mar Jun 19, 2007 11:20 am
- Ubicación: Barcelona
- Contactar:
Re: Scroll horizontal carácter a carácter
A ver si te animas algún día a hacer cursillos Climacus!
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es
Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Soy un tío feliz, más que nada ... porque me sale más a cuenta.
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Scroll horizontal carácter a carácter
Creo que queda patente que me explico fatal, no?Alxinho escribió:A ver si te animas algún día a hacer cursillos Climacus!
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
- Alxinho
- Freddy Hardest
- Mensajes: 896
- Registrado: Mar Jun 19, 2007 11:20 am
- Ubicación: Barcelona
- Contactar:
Re: Scroll horizontal carácter a carácter
Lo que queda patente es que sabes mucho y ese mucho nos iría muy bien a todos que lo compartas con tutoriales
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es
Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Soy un tío feliz, más que nada ... porque me sale más a cuenta.
- radastan
- Phantomas
- Mensajes: 2232
- Registrado: Lun May 07, 2007 5:34 pm
- Contactar:
Re: Scroll horizontal carácter a carácter
Me apunto a que Climacus nos traslade sus conocimientos. Si quieres haz un texto y yo lo "traduzco", se me da bien.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
-
- Herbert
- Mensajes: 75
- Registrado: Lun Jul 23, 2012 1:55 pm
Re: Scroll horizontal carácter a carácter
Pues sí. Gracias a las orientaciones de climacus me está quedando un scroll bastante decente. Al final estoy haciendo el buffer con la pila. Laborioso pero efectivo.
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Scroll horizontal carácter a carácter
No, si al final me liáis entre unos y otros...radastan escribió:Me apunto a que Climacus nos traslade sus conocimientos. Si quieres haz un texto y yo lo "traduzco", se me da bien.
Voy a mirar si puedo dedicarle el tiempo suficiente y quizá me anime.
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Scroll horizontal carácter a carácter
Me alegro mucho de que te haya servido. Cuando tengas algo presentable nos lo enseñas!!!!Kodaly escribió:Pues sí. Gracias a las orientaciones de climacus me está quedando un scroll bastante decente. Al final estoy haciendo el buffer con la pila. Laborioso pero efectivo.
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
- Alxinho
- Freddy Hardest
- Mensajes: 896
- Registrado: Mar Jun 19, 2007 11:20 am
- Ubicación: Barcelona
- Contactar:
Re: Scroll horizontal carácter a carácter
climacus escribió:No, si al final me liáis entre unos y otros...radastan escribió:Me apunto a que Climacus nos traslade sus conocimientos. Si quieres haz un texto y yo lo "traduzco", se me da bien.
Voy a mirar si puedo dedicarle el tiempo suficiente y quizá me anime.
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es
Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Soy un tío feliz, más que nada ... porque me sale más a cuenta.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado