Scroll horizontal carácter a carácter

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Scroll horizontal carácter a carácter

Notapor Kodaly el Vie May 06, 2016 7:39 am

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.
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el Vie May 06, 2016 9:27 am

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.
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el Vie May 06, 2016 11:09 am

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.
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el Vie May 06, 2016 12:07 pm

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
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el Vie May 06, 2016 4:33 pm

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.
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el Sab May 07, 2016 10:38 am

Lo que comentaba lo he solucionado haciendo el buffer en otra dirección, en 49152 :oops: 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?
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el Sab May 07, 2016 7:25 pm

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
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Alxinho el Dom May 08, 2016 10:22 pm

A ver si te animas algún día a hacer cursillos Climacus! :mrgreen:
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Avatar de Usuario
Alxinho
Freddy Hardest
 
Mensajes: 893
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona

Re: Scroll horizontal carácter a carácter

Notapor climacus el Lun May 09, 2016 9:49 am

Alxinho escribió:A ver si te animas algún día a hacer cursillos Climacus! :mrgreen:


Creo que queda patente que me explico fatal, no? :oops:
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Alxinho el Mar May 10, 2016 9:12 am

Lo que queda patente es que sabes mucho y ese mucho nos iría muy bien a todos que lo compartas con tutoriales :mrgreen:
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Avatar de Usuario
Alxinho
Freddy Hardest
 
Mensajes: 893
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona

Re: Scroll horizontal carácter a carácter

Notapor radastan el Mar May 10, 2016 10:05 am

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
_________________________________________
Avatar de Usuario
radastan
Phantomas
 
Mensajes: 2113
Registrado: Lun May 07, 2007 5:34 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el Mar May 10, 2016 7:23 pm

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.
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el Mie May 11, 2016 8:49 am

radastan escribió:Me apunto a que Climacus nos traslade sus conocimientos. Si quieres haz un texto y yo lo "traduzco", se me da bien.


No, si al final me liáis entre unos y otros...

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
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el Mie May 11, 2016 8:49 am

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.


Me alegro mucho de que te haya servido. Cuando tengas algo presentable nos lo enseñas!!!!
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Alxinho el Mie May 11, 2016 9:23 am

climacus escribió:
radastan escribió:Me apunto a que Climacus nos traslade sus conocimientos. Si quieres haz un texto y yo lo "traduzco", se me da bien.


No, si al final me liáis entre unos y otros...

Voy a mirar si puedo dedicarle el tiempo suficiente y quizá me anime.


Imagen
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.
Avatar de Usuario
Alxinho
Freddy Hardest
 
Mensajes: 893
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona

Siguiente

Volver a Programación y nuevos desarrollos

¿Quién está conectado?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron