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

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Scroll horizontal carácter a carácter

Mensaje por Kodaly » 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.

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » 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

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » 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.

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » 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

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » 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: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » 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?

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » 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
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

Mensaje por Alxinho » 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
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » 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
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

Mensaje por Alxinho » 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
radastan
Phantomas
Mensajes: 2232
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: Scroll horizontal carácter a carácter

Mensaje por radastan » 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
_________________________________________

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » 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.

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » Mié 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: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » Mié 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
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

Mensaje por Alxinho » Mié 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.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados