La Place des Développeurs Lire la valeur des couleurs de la palette MSX2 ???
Bonsoir,
Très peu présent en ce moment pour cause de boulot, boulot, boulot
Je bricole un peu par ci par la, et je voulais connaitre par programme BASIC ou ASSEMBLEUR la valeurs RGB des couleurs de la palette ?
Autant en Basic on peut créer une couleur COLOR=(C,R,G,B) même la réinitialiser COLOR(=NEW), etc
Mais je n'ai rien trouvé pour connaitre les valeurs RGB d'une couleur de la palette ???
Sinon comment récupérer les valeurs de la palette sauvegardé par BSAVE"",S, que l'on applique par COLOR=RESTORE ???
Et pour finir si la palette est stocké en adresse VRAM quelle est cette adresse ???
Merci d'avance pour vos lumières . Edité par 6502man Le 28/07/2015 à 21h42
Très peu présent en ce moment pour cause de boulot, boulot, boulot
Je bricole un peu par ci par la, et je voulais connaitre par programme BASIC ou ASSEMBLEUR la valeurs RGB des couleurs de la palette ?
Autant en Basic on peut créer une couleur COLOR=(C,R,G,B) même la réinitialiser COLOR(=NEW), etc
Mais je n'ai rien trouvé pour connaitre les valeurs RGB d'une couleur de la palette ???
Sinon comment récupérer les valeurs de la palette sauvegardé par BSAVE"",S, que l'on applique par COLOR=RESTORE ???
Et pour finir si la palette est stocké en adresse VRAM quelle est cette adresse ???
Merci d'avance pour vos lumières . Edité par 6502man Le 28/07/2015 à 21h42
En machine, il faut appeler les routines suivantes de la Sub-ROM.
00141h pour initialiser la palette de couleurs.
00145h pour restorer la palette de couleurs.
00149h pour obtenir la palette d'une couleur.
0014Dh pour changer la palette d'une couleur.
Regarde dans le PDF "Pratique du MSX" pour les détails. Il y a aussi une routine d'exemple pour écrire directement dans la palette.
En Basic, faire des VPOKE/VPEEK dans la table de la palette en VRAM.Peut-être l'instruction BASE indique cette adresse. Sinon, tu peux la trouver dans le PDF "Pratique du MSX". Elle varie selon le mode d'écran.
Edité par
GDX
Le 29/07/2015 à 17h00
00141h pour initialiser la palette de couleurs.
00145h pour restorer la palette de couleurs.
00149h pour obtenir la palette d'une couleur.
0014Dh pour changer la palette d'une couleur.
Regarde dans le PDF "Pratique du MSX" pour les détails. Il y a aussi une routine d'exemple pour écrire directement dans la palette.
En Basic, faire des VPOKE/VPEEK dans la table de la palette en VRAM.
La bonne méthode est celle expliquée par GDX : tu récupères l'adresse de la table de palette en VRAM en fonction de ton mode d'écran (soit par BASE, soit par les valeurs par défaut), et puis tu utilises VPEEK pour récupérer l'info.
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Merci les gars pour les infos
En faite j'avais trouvé les routines BIOS Getplt et Setplt mais ca ne fonctionnais pas, car c'est des routines en subrom et donc l'appel ne se fait pas directement
Après lecture des docs j'ai compris qu'il fallait les appeler en passant par EXTROM
Une solution par Basic aurait êtait pratique aussi !
Je n'ai pas trouvé cette infos dans les docs que j'ai trouvé !!!
Ca m'intéresserais grandement pour faciliter les choses !!
Notamment pour le mode SCREEN 2, 5 et 8 ???
En faite j'avais trouvé les routines BIOS Getplt et Setplt mais ca ne fonctionnais pas, car c'est des routines en subrom et donc l'appel ne se fait pas directement
Après lecture des docs j'ai compris qu'il fallait les appeler en passant par EXTROM
Une solution par Basic aurait êtait pratique aussi !
Citation :
adresse de la table de palette en VRAM
Je n'ai pas trouvé cette infos dans les docs que j'ai trouvé !!!
Ca m'intéresserais grandement pour faciliter les choses !!
Notamment pour le mode SCREEN 2, 5 et 8 ???
on trouve l'adresse des palettes dans pratique du MSX2 page 254
screen 1 : 2020H 203FH 32 octets
screen 2 : 2020H 203FH 32 octets
screen 3 : 2020H 203FH 32 octets
screen 4 : 1E80H 1E9FH 32 octets
screen 5 : 7680H 769FH 32 octets
screen 6 : 7680H 769FH 32 octets
screen 7 : FA80H FA9FH 32 octets
screen 8 : FA80H FA9FH 32 octets
normalement le screen 8 n'a pas de palette !!
screen 1 : 2020H 203FH 32 octets
screen 2 : 2020H 203FH 32 octets
screen 3 : 2020H 203FH 32 octets
screen 4 : 1E80H 1E9FH 32 octets
screen 5 : 7680H 769FH 32 octets
screen 6 : 7680H 769FH 32 octets
screen 7 : FA80H FA9FH 32 octets
screen 8 : FA80H FA9FH 32 octets
normalement le screen 8 n'a pas de palette !!
Ah je comprends ce que tu veux dires c'est que le VDP met à jour ca palette avec les valeurs stocké dans cette zone, mais ne correspond donc pas à la palette active !!
Okay je vais voir si cela peut être intéressant à faire sinon je reste avec les appels SUBROM
Okay je vais voir si cela peut être intéressant à faire sinon je reste avec les appels SUBROM
Je viens de faire un test rapide en Basic avec des VPEEK et VPOKE et effectivement ca fonctionne uniquement avec COLOR=RESTORE, mais c'est très lent .
Je vais le tester en assembleur les prochains jours quand j'aurais un peu de temps ... Edité par 6502man Le 30/07/2015 à 22h38
Je vais le tester en assembleur les prochains jours quand j'aurais un peu de temps ... Edité par 6502man Le 30/07/2015 à 22h38
igal
Membre non connecté
Conseiller Municipal
Il me semble que le SCREEN 10 n'a pas besoin de COLOR=RESTORE
J'avais prévu de faire un dégradé du fond d'image de Batsugun simplement en chargeant une infime bribe d'image de quelques octets seulement juste avec un BLOAD"bribe.SCA",S
1) je BSAVE cette image complète en SCREEN10:
2) je BSAVE (juste deux lignes) de cette images alors que le fond s'est légèrement dégradé vers une autre couleur dans l'animation du jeu
3) je répète l'opération (2) sur autant de dégradé que je souhaite.
une fois terminé, il ne reste plus qu'a charger comme suit:
10 BLOAD"IMAGE.SCA",S (affiche l'image)
20 BLOAD"BRIBE.SCA",S (applique la palette contenue dans la bribe)
Nb: j'avais fais l'essai avec des bribes contenant 5 lignes ou même 2 lignes seulement et ca marche sans avoir à faire COLOR=RESTORE
Je sais pas si ca peut te servir mais au moins l'info est partagée
Edit: L'idée était d'obtenir cet effet sans avoir à appliquer de modification de la palette graphique ou du moins, sans utiliser COLOR=RESTORE
L'effet recherché est celui qui dure depuis la seconde 8 à 10 de cette vidéo mais avec des variations de couleur dont voici les sources.
Edité par igal Le 31/07/2015 à 12h01
J'avais prévu de faire un dégradé du fond d'image de Batsugun simplement en chargeant une infime bribe d'image de quelques octets seulement juste avec un BLOAD"bribe.SCA",S
1) je BSAVE cette image complète en SCREEN10:
2) je BSAVE (juste deux lignes) de cette images alors que le fond s'est légèrement dégradé vers une autre couleur dans l'animation du jeu
3) je répète l'opération (2) sur autant de dégradé que je souhaite.
une fois terminé, il ne reste plus qu'a charger comme suit:
10 BLOAD"IMAGE.SCA",S (affiche l'image)
20 BLOAD"BRIBE.SCA",S (applique la palette contenue dans la bribe)
Nb: j'avais fais l'essai avec des bribes contenant 5 lignes ou même 2 lignes seulement et ca marche sans avoir à faire COLOR=RESTORE
Je sais pas si ca peut te servir mais au moins l'info est partagée
Edit: L'idée était d'obtenir cet effet sans avoir à appliquer de modification de la palette graphique ou du moins, sans utiliser COLOR=RESTORE
L'effet recherché est celui qui dure depuis la seconde 8 à 10 de cette vidéo mais avec des variations de couleur dont voici les sources.
Edité par igal Le 31/07/2015 à 12h01
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie