Comme l'a fait remarqué Gilles, on est contraint par une fluctuation (boucle d'attente), je ne sais pas si on peut faire autrement (je ne vois pas comment).
En ce qui concerne le positionnement, il y a un ajustement avec le :
Code:
leay -21,y
qui a une granularité de 8 cycles car il influe sur le nombre de boucles ici :
Code:
! leay -1,y
bne <
Dans le test ce pas de 8 cycles représente 64 pixels il me semble, si on veut se "caler" plus précisément il faut ajouter des nop ou brn * après cette boucle de tempo.
et là on peut se positionner par pas de 8 pixels (toujours avec cette fluctuation de 0 à 6 cycles donc 48px dans ce mode graphique)
Pour faire un changement de palette sans artefact il faut se positionner dans la bordure qui fait 192 px soit 24 cycles.
Code:
[2] lda #8*2
[4] sta <$DB
[3] ldd #$0FFF
[4] stb <$DA
[4] sta <$DA
Dans le code ci dessus l'artefact commence à se voir quand l'écriture est appliquée donc un cycle après le début du stb.
Il faut donc que ces 5 cycles (40 pixels) soient dans les 192px.
On a donc de la place, mais par contre pour faire un second changement de couleur, c'est plus difficile ...
Il me semble avoir lu quelque part que Préhisto avait une technique pour ça.
Pour le moment avec ce code il me manque 4 cycles pour pouvoir faire un second changement de couleur dans la bordure.