L'école Pour en voir de toutes les couleurs ! Codes couleurs MSX et correspondance RGB
pegase
Membre non connecté
Villageois
Lors de la création du template du site, je me suis penché sur les codes couleurs propres au MSX et avec l'aide de Jipé, j'ai pu en déduire une correspondance au format RGB des PC actuels.
La première chose est de savoir que le MSX1 n'as que 16 couleurs affichable et que la majorité des jeux MSX2 n'en affichent que 16 sur une palette de 512 en SCREEN5 (c'est une généralité).
Un petit tour dans une doc du V9938 nous as permis de trouver que les composantes de couleurs RGB sont codés sur 3 bits chacun (et uniquement 2 pour la Bleu en SCREEN8).
Les couleurs de base sont agencées comme suit :
Ce tableau nous donne donc les informations sur les numéros des couleurs ainsi que la valeurs de chacune des composantes, la couleur #0 étant transparente.
On observe que chaque composante est chiffrée entre 0 et 7.
Chose remarquable : les couleurs autres que #0 n'utilisent pas "0" comme composante ... je n'ai toujours pas compris pourquoi.
Afin de faire un tableau de correspondance de couleurs sur les composantes RGB actuelles d'un PC allant de 0 à 255, il suffirait de faire 256/7 et d'obtenir le pas pour calculer la valeur de chaque couleur :
Petite recherche personnelles additives :
Curieux de savoir comment réagissent les émulateurs, j'ai été fouiller dans le rendu visuel de Blue MSX.
Il en ressort un tableau de composantes assez particulier :
Il est étonnant de voir que Blue MSX ne respecte pas le principe de conversion définis plus haut... La raison en est pourtant simple.
Regardons l'augmentation des chiffres :
On se rend vite compte que l'augmentation se fait sur des multiples de 8, les chiffres gardés étant les plus proches.
Les premier et dernier chiffres sont remarquables, car ils ne respectent pas les écarts de 8.
La raison en est qu'une composante à 0 doit être considérée comme transparente dans le cas du premier, et pour le dernier, au fait que la base est 248-1 (256-1).
Voilà donc la conclusion de ma petite recherche rapide. En espérant que cela serve à quelqu'un un jour...
Peg'
La première chose est de savoir que le MSX1 n'as que 16 couleurs affichable et que la majorité des jeux MSX2 n'en affichent que 16 sur une palette de 512 en SCREEN5 (c'est une généralité).
Un petit tour dans une doc du V9938 nous as permis de trouver que les composantes de couleurs RGB sont codés sur 3 bits chacun (et uniquement 2 pour la Bleu en SCREEN8).
Les couleurs de base sont agencées comme suit :
Ce tableau nous donne donc les informations sur les numéros des couleurs ainsi que la valeurs de chacune des composantes, la couleur #0 étant transparente.
On observe que chaque composante est chiffrée entre 0 et 7.
Chose remarquable : les couleurs autres que #0 n'utilisent pas "0" comme composante ... je n'ai toujours pas compris pourquoi.
Afin de faire un tableau de correspondance de couleurs sur les composantes RGB actuelles d'un PC allant de 0 à 255, il suffirait de faire 256/7 et d'obtenir le pas pour calculer la valeur de chaque couleur :
Cette correspondance nous donnerait donc le résultat présent sur le tableau de droite :
Petite recherche personnelles additives :
Curieux de savoir comment réagissent les émulateurs, j'ai été fouiller dans le rendu visuel de Blue MSX.
Il en ressort un tableau de composantes assez particulier :
Il est étonnant de voir que Blue MSX ne respecte pas le principe de conversion définis plus haut... La raison en est pourtant simple.
Regardons l'augmentation des chiffres :
On se rend vite compte que l'augmentation se fait sur des multiples de 8, les chiffres gardés étant les plus proches.
Les premier et dernier chiffres sont remarquables, car ils ne respectent pas les écarts de 8.
La raison en est qu'une composante à 0 doit être considérée comme transparente dans le cas du premier, et pour le dernier, au fait que la base est 248-1 (256-1).
Voilà donc la conclusion de ma petite recherche rapide. En espérant que cela serve à quelqu'un un jour...
Peg'
Rétro ... mais pas trop !
Le tableau des codes couleurs de base du MSX apparait dans plusieurs ouvrages liés à la programmation, pour les conversions PC j'aurais raisonné comme toi.
Pour ce qui est du rendu BlueMSX, il varie suivant qu'on fonctionne en mode MSX1 (couleurs palotes) et MSX2 (et+) (couleurs vives).
Et qu'en est il du Screen 8 (256 couleurs)
Edit:
Screen8
Le rouge et le vert ont une variation de de 0 à 7 ( 8 ) et le bleu de 0 à 3 (4) on a bien 8*8*4=256 couleurs.
Le code couleur se calcule comme suit: (Vert *32) + (Rouge*4) + Bleu
Par exemple: 119= 3*32+ 5*4 + 1 -> 3 vert + 5 rouge + 1 bleu.
Pour ce qui est du rendu BlueMSX, il varie suivant qu'on fonctionne en mode MSX1 (couleurs palotes) et MSX2 (et+) (couleurs vives).
Et qu'en est il du Screen 8 (256 couleurs)
Edit:
Screen8
Le rouge et le vert ont une variation de de 0 à 7 ( 8 ) et le bleu de 0 à 3 (4) on a bien 8*8*4=256 couleurs.
Le code couleur se calcule comme suit: (Vert *32) + (Rouge*4) + Bleu
Par exemple: 119= 3*32+ 5*4 + 1 -> 3 vert + 5 rouge + 1 bleu.
Le MSXien le plus à l'ouest ... ou presque
pegase
Membre non connecté
Villageois
Effectivement, j'avais dénoté des légères variations de couleur pour les différentes versions (sans avoir poussé jusqu'au 2+ et Turbo R).
Je verrais à compléter cet article prochainement avec ces versions.
Cependant, les composantes de 0 à 7 offrent bien 8 couleurs, mais on doit diviser 255/7 pour avoir 7 = 255, sinon on se retrouve avec un tableau de composante allant de 0 à 222, ce qui laisse des couleurs ternes.
Peg'
Je verrais à compléter cet article prochainement avec ces versions.
Cependant, les composantes de 0 à 7 offrent bien 8 couleurs, mais on doit diviser 255/7 pour avoir 7 = 255, sinon on se retrouve avec un tableau de composante allant de 0 à 222, ce qui laisse des couleurs ternes.
Peg'
Rétro ... mais pas trop !
aoineko
Membre non connecté
Conseiller Municipal
Pour ceux que ça intéresse, j'ai uploadé la palette des 256 couleurs du mode 8 et des 16 par défaut (mode 5 ?) au format .act : PalettesMSX.zip
Les .act sont juste des listes de 256 * 24 bits (RGB) et peuvent être utilisé sous Photoshop, par exemple, pour convertir vos images. Edité par aoineko Le 15/01/2011 à 03h00
Les .act sont juste des listes de 256 * 24 bits (RGB) et peuvent être utilisé sous Photoshop, par exemple, pour convertir vos images. Edité par aoineko Le 15/01/2011 à 03h00
On est toujours ignorant avant de savoir.
GuillianSeed
Membre non connecté
Villageois
Merci pour cette leçon bigrement intéressante !
Ca me rappelle les nuits où cherchais en tâtonnant sous Graphsaurus les bonnes couleurs sur des images Pinksox...
Guil'
Ca me rappelle les nuits où cherchais en tâtonnant sous Graphsaurus les bonnes couleurs sur des images Pinksox...
Guil'
pegase
Membre non connecté
Villageois
Je déterre le sujet pour vous demander une information quand aux capacités d'affichage d'un MSX.
Je sais que (reprenez-moi si je me trompe) :
- le MSX est capable d'afficher 16 couleurs sur une palette de 16
- le MSX2 à une palette de 512 couleurs (3 composantes notées de 0 à 7) et est capable d'en afficher un certain nombre (selon les mode d'écran)
Cependant, je ne connais pas les restrictions matérielles pour les décors et sprites.
- Peut-on afficher toute la palette dans un sprite ?
- Sinon, quelles sont les restrictions ?
- Combien de couleurs max dans le décors ?
... bref, tout ce que vous pourriez m'indiquer pour que je puisse comprendre le truc !
Merci d'avance
Peg'
Je sais que (reprenez-moi si je me trompe) :
- le MSX est capable d'afficher 16 couleurs sur une palette de 16
- le MSX2 à une palette de 512 couleurs (3 composantes notées de 0 à 7) et est capable d'en afficher un certain nombre (selon les mode d'écran)
Cependant, je ne connais pas les restrictions matérielles pour les décors et sprites.
- Peut-on afficher toute la palette dans un sprite ?
- Sinon, quelles sont les restrictions ?
- Combien de couleurs max dans le décors ?
... bref, tout ce que vous pourriez m'indiquer pour que je puisse comprendre le truc !
Merci d'avance
Peg'
Rétro ... mais pas trop !
une couleur( par ligne?) de sprite, même palette que le décors. tupeux en MSX2 activer le bit OR ce qui ca te donner une troisième couleur si tu superposes deux sprites.
si le premier sprite est en couleur 1 et le second de couleur 2 alors tu veras la couleur 3 s'afficher, si les couleurs sont 8 et 7 alors c'est la couleur 15 qui s'affichera.
par contre si les couleur sont 2 et 2 alors la couleur affiché sera 2.
si le premier sprite est en couleur 1 et le second de couleur 2 alors tu veras la couleur 3 s'afficher, si les couleurs sont 8 et 7 alors c'est la couleur 15 qui s'affichera.
par contre si les couleur sont 2 et 2 alors la couleur affiché sera 2.
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
J'avais déjà mis un lien pour quelques possibilités évoluées de gestion des sprites en screen5, en screen8 par contre je n'ai pas trop d'infos...
Le lien
Le lien
Le MSXien le plus à l'ouest ... ou presque
MSXosaure :
J'avais déjà mis un lien pour quelques possibilités évoluées de gestion des sprites en screen5, en screen8 par contre je n'ai pas trop d'infos...
Le lien
Le lien
Lien intéressant qui explique assez bien même si pour aller jusqu'au bout il aurait du expliquer comment décomposer les couleurs et composer les pixels allumés ou éteints ainsi que la table d'attribution des couleurs pour chaque ligne de sprite.
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
pegase :
Cependant, je ne connais pas les restrictions matérielles pour les décors et sprites
Des contraintes sur les décors ???
Il n'y a pas de contrainte sur les décors autre que celle qui sont liées à l'affichage du mode graphique sélectionné.
Pour les sprites :
- MSX1 : 1 couleur par sprite, parmi les 16 de la palette standard
- MSX2 : 1 couleur par ligne de sprite, parmi les 16 de la palette en cours, et avec l'option "OR" déjà expliquée précedemment
Dans le cas du seul mode graphique MSX2 ou on peut afficher plus de 16 couleurs (SCREEN8), les sprites ne peuvent prendre que 16 couleurs prédéfinies (voir page 98 du manuel du V9938). Edité par Metalion Le 25/10/2014 à 12h28
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)
pegase
Membre non connecté
Villageois
Merci pour vos renseignements.
Effectivement, le Screen 8 du MSX 2 me semble avoir le moins de restriction et correspondrait à ce que je cherche à rendre.
Les autres sont bien trop complexes à rendre sur photoshop de façon "humaine" et fluide
Du coup, si je résume bien : Screen 8 = 256 couleurs sur l'écran et 16 par sprites.
Mais sur une palette de combien ?
Peg'
Effectivement, le Screen 8 du MSX 2 me semble avoir le moins de restriction et correspondrait à ce que je cherche à rendre.
Les autres sont bien trop complexes à rendre sur photoshop de façon "humaine" et fluide
Du coup, si je résume bien : Screen 8 = 256 couleurs sur l'écran et 16 par sprites.
Mais sur une palette de combien ?
Peg'
Rétro ... mais pas trop !
pegase :
Du coup, si je résume bien : Screen 8 = 256 couleurs sur l'écran et 16 par sprites.
Mais sur une palette de combien ?
Mais sur une palette de combien ?
Pour le décor, c'est sur une palette de 256, puisqu'il n'y a pas de palette en SCREEN8 : les couleurs sont fixes, et déterminées par 1 octet par pixel, avec 3 bits pour le Rouge, 3 bits pour le Vert et 2 bits pour le bleu.
Pour les sprites, c'est sur une palette de 16, puisqu'il n'y a pas de palette non plus, les couleurs étant prédéfinies. Maintenant, en lisant la page 98 du manuel du V9938, on voit que les valeurs prédéfinies sont constituées de 9 bits, 3 bits pour chaque composante. On peut donc considérer que c'est sur une palette "virtuelle" de 512.
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)
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie