Tout d'abord seulement les sprites peuvent être affichées dans la zone frontalière ou une répétition de 8 séquence de bits (8 pixels de large) qui est lu à partir du dernier octet de la banque d'images vidéo, généralement $3fff. Remarque vous ne pouvez voir ces sprites ou 8 bits de modèle lorsque vous tromper la VIC puce "ne pas afficher" les frontières. Voir ci-dessous.
Les frontières ont une priorité plus élevée que les sprites, donc, normalement, quand un sprite est établi dans une zone de frontière la frontière couvre le sprite. Avec un peu de VIC puce ruse vous pouvez tourner les frontières off.
Vous pouvez activer le haut et le bas des frontières hors assez facilement (je vais expliquer ci-dessous), et du côté des frontières avec très critique calendrier.
Tout d'abord un peu d'info sur la façon dont le VIC puce travaille sur un c64.
Le VIC puce attire l'écran du haut à gauche vers le haut à droite, puis vers le bas une ligne, et de gauche à droite jusqu'à ce que la totalité de l'écran est tiré. Il effectue cette redessiner 50 fois par seconde (PAL unités) ou 60 fois par seconde (NTSC unités).
Il y a un 8-bit VIC registre qui contient la position verticale de la trame à un moment donné. $d012. En fait il y a plus de 255 positions possibles, de sorte que le 9e bit est stocké dans le bit 7 (le plus élevé de bits) ou registre $d011. Donc, à tout moment, vous pouvez lire ces registres et de trouver la position verticale de la trame. Il n'existe pas de vous inscrire pour lire la position x de la trame.
Une autre fonctionnalité intéressante de la VIC de la puce a été utilisée pour résoudre un problème lors de l'utilisation de matériel de défilement. De base le défilement vertical est obtenu par l'utilisation d'un matériel inscrire pour déplacer l'écran de 0-7 pixels à la verticale. Une fois que vous avez atteint la limite de (0 ou 7 selon le sens de défilement), vous déplacez chaque personnage (bloc de 8x8 pixels) à un bloc verticalement et dessiner les nouvelles données à afficher en haut (ou en bas, selon la direction). Cela fonctionne très bien, sauf que toutes les 8 pixels de défilement vous souhaitez voir les données "pop" sur l'écran. Pour remédier à cela, vous pouvez faire de la frontière de la zone de croissance de 8 pixels verticalement par compensation bit 3 dans le registre $d011. Ceci est appelé 24 ligne mode. Par défaut, l'écran a été fixé à 25 lignes de 8x8 pixels caractères. En 24 ligne mode, vous pouvez toujours dessiner les caractères de la ligne du bas, ils n'auraient qu'à être caché par la frontière.
Donc, l'astuce pour désactiver le haut et le bas frontières, c'est:
1) Définir un écran de 25 ligne mode
2) attendez que le raster pour atteindre une position verticale entre $f2 et $fa (le 8 pixels entre la bordure commence dans les deux 24 ligne mode et 25 ligne mode).
3) Régler l'écran à 24 ligne mode... en passant à la verticale de début de la frontière au-dessus de l'actuel raster position
4) Attendre jusqu'à après la verticale raster position ($fa)
5) Répéter chaque image
Étape 3) tours de la VIC de la puce dans la pensée qu'elle a déjà commencé à dessiner la frontière, de sorte qu'il ne démarre jamais de dessin. Voila, le haut et le bas les frontières sont ouvertes.
Concernant le côté des frontières, vous pouvez faire la même chose avec des registres différents, mais que le mouvement horizontal de la trame est beaucoup plus rapide, puis le mouvement vertical le timing doit être beaucoup plus serré. Et il y a un autre point à prendre en compte de la gigue. <-que je ne vais pas expliquer ici. Rechercher sur le web pour "Stable Raster C64" pour une profondeur explication de cette question.