Chip de Sprites virtual para ZX Spectrum

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
chernandezba
Mensajes: 831
Registrado: 02 Oct 2015, 23:35

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por chernandezba » 11 Nov 2015, 23:14

Hola

He subido otro video de demo:

https://youtu.be/vUTapkT4wl0

Mostrando el zoom sobre sprites, espejo horizontal y vertical, y algún movimiento nuevo de Sonic ;)

Espero que os guste.

Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
Haplo
Mensajes: 366
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por Haplo » 11 Nov 2015, 23:36

Que caña, me quedo embobado la verdad.
Una cosa, los glitches(no sé si se denominan así) que hacen los sprites a veces al moverlos verticalmente son debidos a las rutinas de pintado del programa no a la "velocidad" del chip, correcto?

Avatar de Usuario
chernandezba
Mensajes: 831
Registrado: 02 Oct 2015, 23:35

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por chernandezba » 12 Nov 2015, 00:03

Si, es debido a eso. Piensa que por ejemplo, cuando Sonic salta y está el "malo" en pantalla, tengo que actualizar los dos objetos. Son muchos sprites a cambiar las coordenadas x e y, además de realizar un scroll vertical. Mas o menos todo esto se cambia al principio de una interrupción de pantalla, y si tarda mucho en actualizar todas esas coordenadas, se encuentra que el chip de video ya ha mostrado parte de esos sprites en pantalla. De ahí los "glitches" o parpadeos. Además, cuando Sonic salta, tengo que cambiar continuamente el sprite de "giro" de Sonic, y eso significa desactivar el sprite anterior y hacer visible el siguiente del giro... ahí también puede suceder un parpadeo.

No es nada provocado directamente por el chip, sino que es la manera de redibujar los sprites por el programa de demo. La verdad es que me he encontrado con estos problemas por primera vez, dado que nunca había trabajado con sprites.... ;)


Saludos
César
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
chernandezba
Mensajes: 831
Registrado: 02 Oct 2015, 23:35

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por chernandezba » 12 Nov 2015, 00:07

Ah y respecto a la "velocidad" del chip....
El dibujado de pantalla se realiza de la siguiente manera:

-Cada 50 veces por segundo, se empieza a dibujar la pantalla, leyendo las direcciones de memoria 16384-23295, además del border, desde la linea superior hasta la inferior. Cuando se ha llegado "abajo", ha pasado otro 1/50 de segundo y se vuelve a arriba de nuevo a dibujar. Esto es así en un Spectrum normal.

-El chip de sprites lo que hace es que, además de leer las direcciones de memoria y el border, también se lea la tabla de sprites y se muestre la linea correspondiente al sprite. Por ejemplo, cuando se leen los primeros pixeles de pantalla (justo por debajo del border superior, coordenada Y=0) si hay algún sprite que tenga alguna de sus 8 líneas en la coordenada Y=0, se muestra dicha linea de sprite. Siguiendo el mismo ejemplo, se realiza lo mismo para Y=1, Y=2 así hasta Y=191. Realmente el concepto de dibujado de sprite es muy simple

Por tanto, el concepto de "velocidad" del chip no tendría mucho sentido aquí. Se podria medir la velocidad de dibujado de pantalla en 1/50 de segundo.
Saludos
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
Haplo
Mensajes: 366
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por Haplo » 12 Nov 2015, 00:22

Ok, lo suponía. Imagino que optimizando las rutinas de manejo de datos se podrán minimizar esas cosillas dentro de unos límites, claro está. El "cuello de botella" sería la velocidad del spectrum en actualizar los datos del sprite.
¿cuándo podremos meterle mano al invento? :mrgreen:

Avatar de Usuario
chernandezba
Mensajes: 831
Registrado: 02 Oct 2015, 23:35

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por chernandezba » 12 Nov 2015, 00:30

Si, esas rutinas de manejo de sprites no están para nada optimizadas. Aparte que el tamaño del sprite de Sonic lo he dejado igual para todos sus movimientos, para facilitarme la conversión del bitmap, pero soy consciente que uso muchos más bytes de los que debería.
En cuanto a probarlo... Bueno como siempre se puede bajar el código fuente de la última snapshot y compilarlo... Pero bueno como sé que no es un proceso cómodo, ya pasaré un binario compilado, al menos para windows, para que podáis probar la demo :)
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Chip de Sprites virtual para ZX Spectrum

Mensaje por Hark0 » 12 Nov 2015, 10:22

Grande!!!!

:plasplas:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Responder