2013-07-31 3 views
1

J'essaie de comprendre comment les sprites sont dessinés sur des lignes de balayage de la puce graphique VDP 9929A, par exemple, pour l'émulation.Ancienne émulation vidéo rétro 8 bits - dessin d'image-objet

Il y a la limite de 4 sprites par ligne de balayage, est-ce que cela signifie que je ne peux pas avoir plus de quatre sprites avec la même coordonnée y? Si je les cascade pour dire dessiner 32 sprites sur chaque ligne les uns au-dessous des autres et un pixel à droite les uns des autres afin qu'ils se chevauchent, cela se traduirait par le centre d'environ 16 sprites étant tirés sur le même ligne. Seraient-ils encore dessinés correctement car ce n'est pas la ligne de balayage qui correspond au début de la coordonnée? J'espère que j'ai du sens.

Merci d'avance.

Répondre

2

Il ne peut y avoir plus de 4 sprites sur une même ligne de balayage; les pixels horizontaux des sprites supplémentaires sont supprimés. Les sprites avec une priorité plus élevée sont dessinés en premier.

En d'autres termes, pour chaque ligne, la puce attirera les 4 sprites avec la plus haute priorité que existe sur la ligne, pas début sur la ligne.

1111  3333  5555 
1111 2222 3333 4444 5555 6666 
1111 2222 3333 4444 5555 6666 
1111 2222 3333 4444 5555 6666 
     2222  4444  6666 

.... où 1 est la plus haute prio, serait la ligne de balayage pour une image-objet d'étirage 1,3,5, pour la ligne de balayage 2-4 dessiner 1,2,3,4, par ligne de balayage 5 tirage 2,4,6.

1111  3333  5555 
1111 2222 3333 4444 
1111 2222 3333 4444 
1111 2222 3333 4444 
     2222  4444  6666