MSX Village forum

La Place des Développeurs Lire la valeur des couleurs de la palette MSX2 ???

6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 28/07/2015 à 20h12
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


Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 29/07/2015 à 10h08
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
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 29/07/2015 à 12h02
il y a un programme de dessin de T&E Soft qui permet de récupérer les palettes mais je ne sais plus le nom !!!
le programme est a part du logiciel de dessin et est en basic


:noel
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 29/07/2015 à 16h28
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)
   
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 29/07/2015 à 22h33
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 :fou

Après lecture des docs j'ai compris qu'il fallait les appeler en passant par EXTROM :D



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 ???


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 30/07/2015 à 11h38
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 !!


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 30/07/2015 à 20h20
les adresses sont bien en VRAM ?
Car je ne vois aucune modification en les changeant :(


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 30/07/2015 à 20h43
essai ceci : color = restore


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 30/07/2015 à 21h59
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 ;)


Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 30/07/2015 à 22h36
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


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 31/07/2015 à 10h58
tu peux aussi faire un bload "palette",s dans la zone concernée


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 31/07/2015 à 11h24
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 :D
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 :top

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 :fou

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


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie