Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

affichage sprite en overscan

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Sid


Hors ligne

Inscrit le: 01 Mai 2018
Messages: 58
Masculin
Point(s): 17
Moyenne de points: 0,29

MessagePosté le: Lun 11 Juin - 12:57 (2018)    Sujet du message: affichage sprite en overscan Répondre en citant

Bonjour à tous,

voila je voulais afficher un sprite en mode overscan.
Donc je suis parti sur la routine d'AST :



 ld de,#c000 ; adresse de l'ecran
 ld hl,harley ; pointeur sur l'image en memoire
 ld b, hauteur ; hauteur de l'image
 loop
 push bc ; sauve le compteur hauteur dans la pile
 push de ; sauvegarde de l'adresse ecran dans la pile
 ld bc, largeur ; largeur de l'image a afficher
 ldir ; remplissage de n * largeur octets a l'adresse dans de
 pop de ; recuperation de l'adresse d'origine
 ex de,hl ; echange des valeurs des adresses
 call bc26 ; calcul de l'adresse de la ligne suivante
 ex de,hl ; echange des valeurs des adresses
 pop bc ; retabli le compteur
 djnz loop


avec la routine bc26 :
bc26
ld a,h
add a,8
ret nc
ld bc,#c060 ; on passe en 96 colonnes
add hl,bc
res 3,h
ret


mais ça ne ressemble à pas grand chose.
donc qu'elle est l'adresse pour un écran de 96 colonnes ? (ld bc,#c060 ; on passe en 96 colonnes)


Revenir en haut
Publicité






MessagePosté le: Lun 11 Juin - 12:57 (2018)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 389
Localisation: LYON
Masculin
Point(s): 5
Moyenne de points: 0,01

MessagePosté le: Lun 11 Juin - 13:13 (2018)    Sujet du message: affichage sprite en overscan Répondre en citant

Il te manque un LD H,A après le ADD 8
Sinon tu fais RET NC sans avoir ajouté 8 à H
Si tu es en plein écran, il va te falloir gérer les deux pages 16K
Alors on se retrouve dans une situation où il est préférable de précalculer les adresses de chaque ligne dans une table


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 675
Masculin
Point(s): 64
Moyenne de points: 0,02

MessagePosté le: Lun 11 Juin - 13:21 (2018)    Sujet du message: affichage sprite en overscan Répondre en citant

Sid a écrit:


avec la routine bc26 :
bc26
ld a,h
add a,8
ret nc
ld bc,#c060 ; on passe en 96 colonnes
add hl,bc
res 3,h
ret

Ca donne cela, un fois corrigé :


Code:


bc26
ld a,h
add a,8
ld h,a ; <---- le fameux que tu as oublié !
ret nc
ld bc,#c060 ; on passe en 96 colonnes
add hl,bc
res 3,h
ret


Rapide comme l'éclair le roudoudou ! Mort de Rire
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Sid


Hors ligne

Inscrit le: 01 Mai 2018
Messages: 58
Masculin
Point(s): 17
Moyenne de points: 0,29

MessagePosté le: Lun 11 Juin - 13:32 (2018)    Sujet du message: affichage sprite en overscan Répondre en citant

merci les gars, bon ça roule pour moi merci encore.
Mais je vais enlever mes moufles un jour je vous le promets. Smile


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 389
Localisation: LYON
Masculin
Point(s): 5
Moyenne de points: 0,01

MessagePosté le: Lun 11 Juin - 20:59 (2018)    Sujet du message: affichage sprite en overscan Répondre en citant

Si ça peut te rassurer, je fais encore régulièrement l'oubli  Laughing

Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 07:48 (2018)    Sujet du message: affichage sprite en overscan

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com