MSX Village forum

La Place des Développeurs Créer un image pour les Screen modes 1 et 2 Et les contraintes qui vont avec ! ^^

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 27/02/2021 à 00h31
Suite à une discussion en MP avec Gfx, je vais faire un p'tit résumé ici des contraintes pour créer des images pour les Screen modes 1 et 2.

Avant de rentrer dans le détail, il faut déjà préciser que ces deux modes, définies comme « graphique » dans la terminologie MSX, sont en fait de simples Text modes. En effet, la zone mémoire qui sert à l’affichage, ne stocke pas d’informations sur les pixels, mais uniquement des numéros de caractère (ou pattern). Ce sont les patterns qui eux, définissent la forme et les couleurs des pixels.

Screen mode 1



- Résolution : 32x24 blocs (soit 768)
- Patterns : 256
- Couleurs : 2 par groupe de 8 patterns (soit 32 combinaisons de 2 couleurs)

Chacun des 768 blocs de l’écran utilise l’un des 256 patterns.
Chaque pattern fait 8x8 pixels (donc l’écran fait 256x192 pixels).
Chaque pixel des patterns vaut 0 ou 1.
On peut définir les couleurs par groupe de 8 patterns (pattern n°0~7, n°8~15, n°16~23, etc.).
Pour chaque groupe de 8 patterns, on peut définir l’une des 16 couleurs pour les pixels qui valent 0 et une autre pour les pixels qui valent 1.
Sur MSX1, les 16 couleurs utilisables sont fixes (cf. https://paulwratt.github.io/programmers-palettes/HW-MSX/HW-MSX-palettes.html).

Pour résumer, en Screen 1, on ne peut avoir que 256 patterns uniques (donc 1/3 de l’écran) et seulement 32 combinaisons de 2 couleurs parmi 16. Ces contraintes ne sont pas forcément gênantes si on veut faire une petite image à l’écran. En terme de couleur, ce mode ne permet pas d’avoir plus de 2 couleurs par bloc de 8x8 à l’écran.

Screen mode 2



- Résolution : 32x8 blocs x 3 (soit 768)
- Patterns : 256 x 3 (soit 768)
- Couleurs : 2 par ligne des 768 patterns

L’écran est divisé en 3 bandes horizontales (haut, milieu, bas).
Chacun de ces bandes fait 32x8 blocs, soit 256 blocs chacune.
Chaque bloc d’une bande utilise l’un des 256 patterns associé à sa bande (les bandes ont chacune leurs propres patterns).
Chaque pattern fait 8x8 pixels.
Chaque bande fait donc 256x64 pixels (et l’écran qui regroupe ces 3 bandes fait 256x192 pixels).
Chaque pixel des patterns vaut 0 ou 1.
Pour chaque ligne de chaque pattern, on peut définir l’une des 16 couleurs pour les pixels qui valent 0 et une autre pour les pixels qui valent 1.
Sur MSX1, les 16 couleurs utilisables sont fixes (cf. https://paulwratt.github.io/programmers-palettes/HW-MSX/HW-MSX-palettes.html).

Pour résumer, en Screen 2 on peut avoir un pattern unique pour chaque bloc de l’écran (ce qui le rapproche d’un mode bitmap). Cependant, pour une utilisation normale, le découpage en 3 bandes rends ce mode plus complexe car on doit savoir sur quelle(s) bande(s) sont utilisés chaque pattern. Pour pallier à ce problème, il n’est pas rare dans les jeux, que les trois bandes contiennent les mêmes patterns et que ce mode ne soit utilisé que pour sa plus grande liberté dans l’utilisation des couleurs que le Screen 1. En Screen 2, la contrainte est de 2 couleurs par ligne d’un bloc. A l’écran, cela se résume à 2 couleurs par groupe de 8 pixels de long sur 1 pixel de haut.

Voilà, si y a des choses pas clair, dite-moi. ^^


On est toujours ignorant avant de savoir.
Github    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 27/02/2021 à 18h01


Merci beaucoup, je pense avoir compris. J'ai essayé de faire une image pour me représenter le truc (je suis assez visuel :)
Pour le Screen mode 2 tu dis 2 couleurs par groupe de 8pixels horizontaux et 1px vertical. Je pensais qu'une pattern faisait 8x8px et ne s'appliquait qu'a un bloc et que ce bloc ne pouvait contenir que 2 couleurs (Bit 0 & 1) ?
Edité par Gfx Le 02/03/2021 à 09h09


Il faut cultiver notre jardin.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 27/02/2021 à 19h04
Gfx :
Merci beaucoup, je pense avoir compris.
Pour le Screen mode 2 tu dis 2 couleurs par groupe de 8pixels horizontaux et 1px vertical. Je pensais qu'une pattern faisait 8x8px et ne s'appliquait qu'a un bloc et que ce bloc ne pouvait contenir que 2 couleurs (Bit 0 & 1) ?

En screen 1 : un pattern 8x8 = 2 couleurs pour tout le pattern
En screen 2 : un pattern 8x8 = 2 couleurs par ligne du pattern


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)
   
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 27/02/2021 à 19h22
Merci Metalion, j'ai compris le truc. Dites-moi si mon schéma est correct du coup.

Edité par Gfx Le 02/03/2021 à 09h09


Il faut cultiver notre jardin.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 27/02/2021 à 19h25
Gfx :
Dites-moi si mon schéma est correct du coup.

Oui, c'est bien ça.


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)
   
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 27/02/2021 à 20h07
Top, et donc @aoineko tu utilises quel Mode pour l'écran d'accueil de ton jeu ?


Il faut cultiver notre jardin.
   
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 27/02/2021 à 20h17
Bravo Gfx,

Je suis aussi visuel, ton schema aidera bcp de personnes ;)
Merci


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 27/02/2021 à 20h43
Il est super ton schema ! :top
Ca mérite qu'on mette tout ça sur le Wiki pour la postérité.

Pour Final Smash, je te réponds sur le fil de discussion dédié.


On est toujours ignorant avant de savoir.
Github    
Gfx Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 27/02/2021 à 21h23
Merci ^^


Il faut cultiver notre jardin.
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/02/2021 à 08h06
Bravo pour ces explications et le dessin est juste parfait :top


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