--== DEVLYNX ==--

 
 
|
 
 
 
 
Accueil
News
Doc
Mémoire
Recrutement
Faq
Liens
Pseudo :

Mot de passe :


Pas de compte ?

S'inscrire...


Statistiques

Documentation


Rootretour à l'arborescence des catégories » Documentation techniqueEnsemble des informations pouvant être utiles au développement » Lynx docRestranscription de la documentation d'origine » Moteur de Sprite et de collisions » Initialisation du moteur de sprite
«««« ( /^\ ) »»»»
INFOS SUR LA CATEGORIE

Créée le : 2009-09-20 17:00:00
Par : vince





INFOS SUR LA PAGE

Titre : Initialisation du moteur de sprite
Sous Titre :
Langue : FRA
Source :
Auteur : vince
Posté par : vince

Initialisation du moteur de sprite

Certains registres doivent être initialisés dans le moteur de sprite après la mise sous tension. Ca n'est pas fait par le matériel pour deux raisons. Premièrement, le moteur est utile pour d'autres tâches que dessiner des sprites: divisions matérielles, multiplications matérielles, etc... Deuxièmement, il aurait été trop coûteux en silicium de faire ces initialisations sur le type de grilles utilisées pour les registres.

Les initialisations à effectuer pour le dessin des sprites sont listées ci dessous. L'ordre de leurs initialisations importe peu du moment qu'ils soient tous initialisés à une valeur valide avant que le moteur de sprite soit allumé.

Toutes ces valeurs peuvent être modifiées pendant le cours des opérations tant qu'elles restent toutes valides entre elles.

Etapes d'initialisation pour le dessin d'un sprite :
¤ Charger la valeur souhaitée dans le registre de contrôle du système (SPRSYS)
¤ Ecrire la valeur correcte dans (SPRINIT)
¤ Ecrire le décalage horizontal par rapport à la gauche de l'écran dans (HOFFH et HOFFL)
¤ Ecrire le décalage vertical par rapport au haut de l'écran dans (VOFFH et VOFFL)
¤ Ecrire l'adresse du cache de collision dans (COLLBASH et COLLBASL)
¤ Ecrire la valeur de décalage entre le dépot de collision d'un SCB et la position du premier octet d'un SCB en ram dans (COLLOFFH et COLLOFFL)
¤ Ecrire les valeurs magiques dans (HSIZOFFH et HSIZOFFL) et (VSIZOFFH et VSIZOFFL)
¤ Ecrire "01" dans (SUZYBUSEN) afin d'autoriser Suzy d'accéder au bus.

Quand vous êtes prêts à lancer le moteur de sprite, les étapes suivantes sont nécessaires :
¤ Ecrire l'adresse de base du cache vidéo dans (VIDBASH et VIDBASL)
¤ Ecrire l'adresse de départ du premier SCB en RAM dans SCBNEXT
¤ Ecrire "01" (ou "05") dans (SPRGO) qui démarrera le moteur de sprite.
¤ Ecrire "00" dans (SDONEACK) pour permettre à Mikey de répondre à la commande de mise en veille.
¤ Mettre le CPU en veille afin de permettre à Suzy de prendre la main sur le bus

Ecrire "01" ou "05" dans (SPRGO) active la bascule "SRPITESEN" qui va causer le démarrage des opérations dans le moteur de sprites. Quand le moteur a terminé de traiter la liste de sprites, ou qu'on lui a demandé d'arrêter à la fin du sprite en cours ou qu'il a été forcé de s'arrêter en mettant "00" dans (SPRGO), la bascule "SPRITESEN" sera alors réinitialisée. Le moteur ne démarre que de son début. Il ne peut pas être arrêté et redémarrer là où on s'était arrêté. Arrêter le moteur n'affecte pas le contenu d'aucun des autres registres.

SUZYBUSEN contient le bit qui permet les accès au bus de Suzy. Ca n'affecte pas le fonctionnement interne du moteur de sprite jusqu'au moment où le moteur de sprite a à nouveau besoin du bus de la RAM. Alors le moteur de sprite va attendre que le bus soit à nouveau disponible avant de reprendre. On suspecte que dans le mode ordinaire d'utilisation du moteur de sprite, ce bit sera positionné une fois et laissé activé. La propriété "non sûr" de ce registre n'est pas affectée directement par ce bit.

Je dois penser à comment s'en servir.

(Source : )
«««« ( /^\ ) »»»»

générée en 4 ms
-= DevLynx, un site par vince pour vous =-