Discussions endiablées autour du retrogaming et des consoles de jeux vidéo, micro-ordinateurs et Arcade. Amstrad / Atari / Bandai / Commodore / Nec / Nintendo / Sega / SNK / Sony / Microsoft


Château Aventure sur le Chat - Jeudi 23 août à 21h

Connexion

Récupérer mon mot de passe



Derniers sujets

» Les 1000 choses qui vous saoulent !
par fafy Aujourd'hui à 17:52

» Le topic de la Nintendo Switch
par fafy Aujourd'hui à 17:27

» Mario+Rabbids : Kingdom Battle (Switch)
par fafy Aujourd'hui à 13:52

» Le topic des Gunplas et autres maquettes à assembler
par ange_dechu_lucifer Aujourd'hui à 13:39

» North & South (NES)
par ange_dechu_lucifer Aujourd'hui à 13:32

» Shenmue 3 (PC,PS4)
par Battosai14 Aujourd'hui à 12:34

» Doom 2016 [PC, PS4, Xone, Switch]
par Battosai14 Aujourd'hui à 12:31

» Le topic officiel de la XboxOne
par defskerus Aujourd'hui à 12:08

» Topic officiel 2DS / 3DS / N3DS
par fafy Aujourd'hui à 11:04

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée


Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

forum.paderetro.com » L'enfer » Consoles rétros 2D » Sega Megadrive » Le fonctionnement d'une Megadrive - partie 1 : le VDP (dossier)

Le fonctionnement d'une Megadrive - partie 1 : le VDP (dossier)

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

fafy

avatar
Témoin de Nintendovah
----------------------------------

0- Introduction :

Voici le premier volet d'une série de dossiers très axés techniques. Pour cela, nous allons partir à l'exploration de la carte mère de la Megadrive qui est une console assez "facile à comprendre". N'ayez pas peur, il n'y a rien inaccessible dans toutes ces explications et vous verrez qu'au finale, les descriptifs techniques de vos machines préférées n'auront plus de secret pour vous.

Une carte mère de Megadrive.

Aujourd'hui nous allons nous balader au coeur d'un circuit graphique (VDP pour Video Display Processor) utilisé pour les consoles SEGA de la SG-1000 à la Saturn : le Texas Instruments TMS9918 dans son mode Megadrive. La particularité de cette version est qu'elle à été intégrée avec un autre processeur (pour le son) dans un seul et unique bloc (on appel cela le "on a chip") donc, inutile de chercher la puce telle qu'elle existe vraiment, vous ne la trouverez pas sur la carte mère de la Megadrive !

Un TMS9918 sur une carte mère de SG-1000.

----------------------------------

1- Analogie :

Le VDP de la Megadrive propose 2 plans de scrolling (défilement d'une image en vertical ou en horizontal), 1 plan de texte (en mode fixe) ainsi qu'un plan pour les sprites (éléments mobiles d'un jeu comme le héro, par exemple).

Pour définir le processeur graphique, on pourrait commencer par faire une analogie avec une table de montage vidéo pour les films. En effet, prenons l'exemple d'une petite table basique avec 4 voies de mixage reliées chacune à 3 magnétoscopes (oué, on est rétro ou on l'est pas) qu'on appellera A, B & C et une caméra (appelée D) filmant en direct un acteur sur fond vert.

Les cassettes VHS sont insérées dans le magnétoscopes par un technicien (le processeur) suivant une liste (le programme) lui indiquant d'aller chercher ces dernières dans une armoire de classement (la cartouche).

Chacune de ces machines envoie un plan vidéo unique représentant une partie d'un tout, matérialisé par le mixage final des 4 sources par la table de montage (le rendu finale sur votre téléviseur).

Les plans de scorlling et de texte sont appelés Planes (respectivement 1, 2 et Window) et correspondent, dans notre petite analogie, aux magnétoscopes A, B et C, la caméra D représentant le plan de sprites animés.

Le magnétoscope A propose d'avoir une jolie vue de ciel bleu avec des nuages pour l'arrière plan.

Le magnétoscope B propose d'avoir un joli décors en second plan.

Le magnétoscope C se contentera de proposer un chronomètre en haut de l'image.

La caméra D filmera un acteur qui évoluera dans ce décor.

Le tout mixé par la console.


Le VDP de la Megadrive fonctionne de la même manière que cet ensemble à la différence près que magnétoscopes, caméras, armoires de classement, techniciens et acteurs sont remplacés par des mémoires, des sprites, des processseurs et un programme !

----------------------------------

2- Le binaire :

Mais avant de commencer, je vous propose une petite initiation très rapide au binaire pour que la suite de ce dossier vous soit plus aisée :

Le binaire comprend 2 valeurs (le 0 et le 1). Comme pour un interrupteur électrique, on pourrait attribuer comme qualificatifs à ces deux états "éteint" et "allumé". Ces valeurs sont nommées "bits" (contraction de binary digits). On regroupe généralement ces bits dans des "mots binaires" de 8bits (mais cela peut être plus ou moins) que l'on nomme des "octets".


On se retrouve donc avec des suites de 8 bits dans ce genre : 10100101. Le bit de droite est appelé le "bit de poids faible" (LSB en anglais) et celui de gauche se nomme "bit de poids fort" (MSB en anglais).

Quelque soit la longueur du mot binaire utilisé, le bit de poids faible vaux toujours 1 si il est à l'état "allumé" (soit à 1) et 0 si il est "éteint" (donc à 0) . Les bits suivant valent toujours le double de la valeur du bit précédent. Dans le cas d'un mot de 8 bits les valeurs sont 128--64--32--16--8--4--2--1. Additionnés tous ensemble ces valeurs donnent 255, ce qui signifie qu'on peut compter jusqu'à 255 avec 8bits en partant de 0 (si tous les bits du mot sont à 0, le mot vaut 0) soit 256 valeurs.

Notre mot exemple étant 10100101, sa valeur est de 128+0+32+0+0+4+0+1 soit 165 !!!

----------------------------------

3- Explications :

Comme je l’expliquais au dessus, ici, on n'utilise pas de cassettes VHS mais des mémoires comprenant des informations numériques. Dans le cas de ce processeur précis (le VDP de la Megadrive), c'est la mémoire vidéo qui fait office de stock à données et ici, on y stockera que des images !

La mémoire du Texas Instruments TMS9918 étant de 64Ko, ce chiffre se comprend comme ceci :

- en binaire, et en raison de la base de calcul utilisée, un kilo ne correspond pas à 1000 mais à 1024.
- 1 Ko = 1024 octets soit 1024*8 bits = 8192 bits
- 64Ko = 64*8192 bits = 524288 bits ou 65536 octets.

Les images stockées dans cette mémoire sont découpées en plein de petits morceaux, nommés "tiles", de dimension 8*8 pixels (donc 64 pixels en tout). Chacun des pixels composant la tile possède une couleur bien à lui. Cette couleur est fournie par 4 palettes de 16 variantes chacune pour un total de 64 couleurs disponibles affichables simultanément. Pour simplifier l'utilisation de ces dernières, les concepteurs du VDP les ont réparties dans 4 banques internes et codées sur 4 bits (donc 16 valeurs possibles en comptant le 0). Il faut comprendre ici que chaque plan d'image du processeur possède une palette bien à lui.

Le plan de sprites permet l'affichage simultané de 80 de ces derniers avec une résolution maximale de 32*32 pixels (4 tiles * 4 tiles).

Exemple d'un sprite en 4 tiles.

4 bits par pixels, 64 pixels par tile (soit 32 octets de mémoire utilisée par tile puisqu'on peut donc stocker 2 pixels dans un octet) et 65536 octets disponibles dans la mémoire du processeur, on arrive à 2048 (65536/32) tiles stockables simultanément dans les 64Ko offert par le TMS9918 !

Le résolution de la Megadrive étant de 320*240 il faut horizontalement 40 tiles (320 pixels de large divisés par les 8 pixels d'une tile) et verticalement 30 tiles (240 pixels de haut divisés par les 8 pixels d'une tile) pour recouvrir complètement l'image.

Il est à noter que la séquence d'affichage des tiles par le processeur commence en haut à gauche de l'écran pour se finir en bas à droite.

Mais alors, pourquoi utiliser cette technique, visiblement assez compliquée, au lieu de simplement encoder une image et la restituer pixel par pixel ?

L'explication se trouve au niveau des banques de palettes de couleurs. Vous vous rappelez, on a apprit que le VDP en possédait 4 de 16 couleurs chacune ? On a aussi appris qu'on appelait la couleur grâce à un mot de 4 bits ? Et bien ce mot ne correspond non pas à la couleur, mais à la ligne d'information de la couleur dans la palette. Cette ligne comprend le code de la couleur (en hexadécimale) qui sera envoyé au circuit d'affichage. Ces informations étant codée en dur dans le processeur, elle n'ont pas besoin d'être chargées et ne tienne pas de place dans la mémoire vidéo...

Les couleurs sont codées en 3*4 bits (soit 12 bits) selon la méthode RGB (red, green, blue soit rouge, vert, bleu) selon cette formule :0xBGR. Le blanc, par exemple se nomme 0xFFF et correspond en binaire à 1111-1111-1111.

Correspondance binaire(décimal) vers hexadécimal

Vous avez donc compris que cette technique permet de diviser la taille mémoire d'un pixel d'une tile par plus de 2 par rapport à si le pixel avait été codé directement et de manière indépendante. Ingénieux non?

----------------------------------

4- Conclusion :

Voilà, vous savez à peu près tout ce qu'il y a d’intéressant à savoir sur ce processeur. Le reste étant vraiment d'ordre très technique et utile principalement aux développeurs, nous n'irons pas plus loin dans l'exploration de cette puce.

Maintenant, vous savez comment est géré le stockage, l'affichage et l'utilisation des plans scrolling/fixe/sprite. Vous en savez aussi un peu plus sur le bianaire donc, vous êtes prêts pour passer à l'étape suivante de l'exploration de la carte mère de la Megadrive qui se fera par l'explication du fonctionnement du processeur centrale : le Motorola 68000.



Dernière édition par fafy le Dim 17 Mai - 8:07, édité 9 fois

http://www.aros-tech.fr/

dandyboh

avatar
Maudit du Forum

@fafy a écrit:- en binaire, et en raison de la base de calcul utilisée, un kilo ne correspond pas à 1000 mais à 1024.

Pas vraiment juste. En fait, un kilo vaut mille, point final. On ne va pas changer la définition du "kilo" juste pour faire plaisir à l'informatique. Donc, on a inventé le "kibi", qui se note "Ki" pour désigner 1024.

Ainsi, 1Kio = 1024o, mais 1Ko = 1000o.

De la même manière, le "mébi" (Mi) désigne 1024*1024, le "gibi" (Gi) désigne 1024*1024*1024, etc...

C'est la raison pour laquelle, quand vous achetez une carte de 16Go, donc 16 milliards d'octets, vous ne vous retrouvez qu'avec 13,9 Gio... !

fafy

avatar
Témoin de Nintendovah
Je suis de la vieille école moi Smile Les deux restent parfaitement valable! On rencontre plus souvent le Ko, c'est encore ce dernier qui prime majoritairement! Il suffit juste de le savoir donc merci pour cette précision Smile

http://www.aros-tech.fr/

ange_dechu_lucifer

avatar
Administrateur

@fafy a écrit:

Le résolution de la Megadrive étant de 256*224

T'as confondu avec la résolution la plus commune (car il y en a d'autres) de la Snes et la NES : pour la MD, la plus commune c'est 320*224 (même si effectivement, certains rares jeux sont en 256*224, comme les conversions Tradewest Nes vers MD, ou même Monster World IV). ^^

Et encore, 224 pixels car ntsc, sinon c'est 240 pixels de haut en Pal. ^^

http://paderetro.com/

perchu

avatar
Diable Geek

Pourquoi ne pas garder le mot sur l'image pour ton exemple? Ou au moins faire un rappel sur l'image après ton exemple (ainsi on a 2 exemples à la fin).

Ensuite je plussoie dandyboh dans le sens où techniquement on parlera de mébi et commercialement on parlera de mega. Tout dépend d'où tu te places mais vu que ton article se veut une approche technique, je pense qu'il serait bon, après une apparté expliquant pourquoi on parle de mega partout (au début on a considéré que 1000 = 1024 car on ne pensait pas atteindre le gigaoctets et que donc la différence serait faible de tout temps), qu'on parlera donc en mébi.

J'aime beaucoup ton article sinon à part une image qui me choque, megaman a les yeux bleu (effet de transparence...)

Sake C. Buenos

avatar
Maudit du Forum

Merci Fafy pour ce dossier, hâte de lire la suite !

Tylano

avatar
Cerbère de la Manette

Énorme ce dossier!
Yeahh!

fafy

avatar
Témoin de Nintendovah
Merci merci Smile bon, concernant le Megaman, je peux rien y faire Smile pour le probleme des Ko ou Mo, je pense sincerement que les gens connaissent mieux ces termes et ca fait moins d'infos à digerer d'un coup comme ca. Quoi qu'il en soit le resultat est le même, il faut multiplier par 1024 quoi qu'il en soit

Pour l'exemple j'ai fait exepres de poser un mot différent! Je souhaites que vous me disiez combien ce mot "pèse" en décimal pour verifier si vous suivez Je voulais animer ce topic autours de ca pour commencer mais j'ai du m'absenter pour le business

Sinon pour la resolution de la MD, effectivement, j'ai pris la plus basse et la moins commune mais c'est une erreure, je suivais la doc du processeur sur SMS qui possède cette résolution en natif! Dès mon retour à la maison, je corrigerais!

http://www.aros-tech.fr/

fafy

avatar
Témoin de Nintendovah
J'ai effectué les modifications sur le dossier. Du coup, vu que mon plan avait foiré pour vous faire chercher la valeur du mot dans l'image (mais bon, mon rendez-vous à été lucratif alors...), j'ai modifié aussi celui de l'exemple. J'ai également remis la résolution de la MD en 320*240 effectivement plus courante que celle énoncée en premier.

Sinon, concernant le débat Ko ou Kio, je reste sur ma position de départ, l'approche étant, bien entendu technique mais aussi très démocratique alors autant utiliser les termes qu'un maximum de gens connaissent. Ici tous le monde n'est pas un spécialiste en la matière donc...

Mais vous avez raison de souligner le fait que cette autre notation existe après libre à chacun d'employer celle qui lui convient le mieux. Moi j'ai toujours travaillé avec des Ko et non des Kio, je vais pas remettre en question 6 ans d'études électronique et près de 30 ans d'informatique Et en plus, Kio pour moi ca fait chanteur pourrit des années 2000

http://www.aros-tech.fr/

ange_dechu_lucifer

avatar
Administrateur

Z'avez vus comment je suis le seul qu'il écoute? J'suis un chouchou boulet.

http://paderetro.com/

fafy

avatar
Témoin de Nintendovah
Euh... j'ai écouté Perchu aussi (bon pas entièrement ) mais j'ai aussi entendu Dandy aussi Smile

http://www.aros-tech.fr/

ange_dechu_lucifer

avatar
Administrateur

mes espoirs, brisés.

http://paderetro.com/

fafy

avatar
Témoin de Nintendovah
Pov´piti chou

http://www.aros-tech.fr/

fafy

avatar
Témoin de Nintendovah
Preparez vos cerveaux, la suite débarque dans l'après-midi

http://www.aros-tech.fr/

ange_dechu_lucifer

avatar
Administrateur

J'ai peur.

http://paderetro.com/

fafy

avatar
Témoin de Nintendovah
Faut pas

http://www.aros-tech.fr/

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum