1 points par GN⁺ 2024-07-30 | 1 commentaires | Partager sur WhatsApp

Conception du système vidéo de la Super Nintendo

L’intérieur d’un téléviseur au début des années 90
  • La Super Nintendo envoie sa sortie vidéo vers un téléviseur standard
  • Le téléviseur reçoit les émissions analogiques (NTSC) via une antenne, capte le signal avec un tuner, puis affiche l’image sur un CRT (tube cathodique)
  • Le téléviseur dispose d’une entrée auxiliaire (AUX) et, sur un téléviseur classique, de connecteurs composite (jaune) pour le signal vidéo ainsi que de prises dédiées (blanche et rouge) pour le signal audio stéréo
Principe de fonctionnement d’un CRT
  • Un CRT fonctionne à 15 kHz et trace environ 15 000 lignes par seconde
  • À l’intérieur du CRT se trouvent trois canons à électrons, qui tirent toujours les électrons vers l’avant, tandis que deux jeux d’aimants (vertical et horizontal) déplacent les électrons de haut en bas et de gauche à droite
  • Un CRT n’a pas de pixels, et les électrons émis par les canons atteignent toujours la bande de couleur correcte
Comment piloter un CRT
  • Le CRT consomme des signaux rouge, vert et bleu reliés à chacun des canons à électrons
  • Les signaux de synchronisation (HSYNC et VSYNC) sont transmis par un fil blanc unique, appelé synchronisation composite (CSYNC)
  • Le CRT consomme ces signaux et essaie de synchroniser les canons à électrons
Comment le CRT dessine une image
  • Le CRT trace les lignes de gauche à droite
  • Lorsqu’il reçoit un événement HSYNC, il revient à gauche de l’écran (X=0), et lorsqu’il reçoit un événement VSYNC, il revient tout en haut (Y=0)
  • Le CRT trace les lignes en se déplaçant vers la droite tout en inclinant le faisceau vers le bas
Le point clé pour comprendre un CRT
  • L’essentiel est de comprendre que le canon à électrons se déplace vers la droite tout en inclinant le faisceau vers le bas de l’écran
  • Si VSYNC se produit en même temps que le dernier HSYNC, les lignes sont toujours tracées au même endroit de l’écran
  • Si VSYNC se produit entre deux HSYNC, les lignes se croisent à l’affichage
Le contenu à l’intérieur d’une ligne
  • Le CRT est numérique pour le tracé des lignes, mais le contenu à l’intérieur d’une ligne est analogique
  • Les trois canons à électrons sont directement reliés aux fils RGB, et le système peut modifier librement les signaux de couleur
Contraintes des systèmes de l’époque
  • Les concepteurs de la SNES devaient fournir un signal que le CRT pouvait traiter
  • Il fallait respecter la spécification du signal NTSC
  • Ratio d’image 4:3, 262,5 lignes par champ, 341,25 points par ligne, fréquence de champ de 59,94 Hz
Se mettre dans la peau d’un ingénieur Nintendo
  • Une fois le fonctionnement du CRT compris, il fallait concevoir le système vidéo
  • Un mode progressif a été construit avec 262 lignes, en visant 59,94 Hz comme fréquence d’image
  • Pour respecter le ratio 4:3 avec 350 points, il aurait fallu une dot clock de 5,496,498 Hz
Résolution du problème
  • Il était impossible d’utiliser une dot clock de 5,496,498 Hz
  • Il fallait utiliser un oscillateur maître, que les sous-systèmes exploiteraient via des diviseurs de fréquence
  • Il fallait aussi résoudre le problème de l’overscan
Introduction de l’overscan
  • Si le canon à électrons continue d’émettre pendant une remise à zéro horizontale ou verticale, des artefacts visibles apparaissent
  • Les téléviseurs appliquent un overscan à la zone d’affichage, ce qui rend l’image légèrement plus grande
  • Il faut un temps d’arrêt du faisceau après VSYNC et HSYNC
Choix de la résolution verticale de la SNES
  • Les systèmes concurrents utilisaient 224 lignes visibles
  • Nintendo a réparti les 262 lignes en 224 lignes visibles et 38 lignes vides
Choix de la résolution horizontale de la SNES
  • En utilisant 262 lignes et une horloge maître à 21.47727MHz, on obtient une dot clock de 5.3693175MHz
  • Avec 341 points, on obtient une fréquence d’image de 60.098Hz
Choix de l’overscan horizontal de la SNES
  • Sur 341 points, 256 sont visibles et 85 sont utilisés comme HBLANK
  • Le ratio d’image devient 8:7, ce qui introduit une légère distorsion
Mode haute résolution : entrelacement
  • Il est possible de doubler la résolution verticale à 448 lignes
  • Doubler la résolution horizontale est plus difficile
PAL contre NTSC
  • En Europe, on utilisait le PAL au lieu du NTSC, et en France le SECAM
  • Le PAL fonctionne à 50 Hz avec 312,5 lignes par champ
  • La version PAL de la SNES utilise une horloge maître de 17.7344750MHz
  • La résolution visible est de 224 lignes par 256 points, avec une fréquence d’image de 50.00697891Hz
Sortie
  • La SNES convertit les signaux CRT en composite et en S-Video
  • Via le connecteur AV, elle fournit un signal pur "RGB/CSync", un signal "Composite" et un signal S-Video

Récapitulatif de GN⁺

  • Cet article explique le processus de conception du système vidéo de la Super Nintendo, ainsi que le fonctionnement d’un CRT et la manière dont il traite les signaux
  • Il montre comment la compréhension du fonctionnement d’un CRT et du traitement du signal a guidé les choix de conception du système vidéo de la SNES
  • L’article sera utile à celles et ceux qui s’intéressent à la conception matérielle des consoles de jeux vidéo, et aide à comprendre l’histoire et le fonctionnement de la technologie CRT
  • Parmi les autres projets aux capacités proches, on peut citer la Sega Genesis et la Neo-Geo AES

1 commentaires

 
GN⁺ 2024-07-30
Commentaires Hacker News
  • 224 est divisible par 16, donc cela s’aligne bien avec les tilemaps du pipeline de rendu graphique

    • Le CGA/EGA/VGA avaient tous un mode 320x200
    • La NES était en 256x224, et la SNES aussi
    • Pac-Man était en 288x224 sur arcade
    • Les clones de Pac-Man sur PC avaient toujours un rendu bizarre
    • Je ne l’ai compris qu’après avoir appris les détails de la machine
    • Les pixels ne sont pas carrés dans les résolutions PC
    • En regardant des ports ou des clones de Pac-Man, j’essayais de comprendre la taille du monde, la taille des tuiles et la taille des sprites
  • 59,94 Hz est un chiffre étrange

    • L’Amérique du Nord et quelques autres régions utilisent un réseau électrique à 60 Hz
  • Le ratio d’illustration 8:7 se voit dans les jeux SFC/SNES portés sur d’autres plateformes

    • Les versions PSX/Saturn/PC conservent les graphismes d’origine et ajoutent du padding pour arriver au 4:3
    • Quand on regarde des captures d’écran de la version Saturn, tout paraît légèrement trop mince
  • Les jeux européens déclenchent le VSYNC à 50,00697891 Hz, ce qui fait tourner les jeux 17 % plus lentement que prévu

    • J’ai été déçu quand j’ai joué pour la première fois à Sonic the Hedgehog sur Mega Drive
    • J’ai appris la différence de vitesse entre le NTSC et le PAL via YouTube
    • La musique sonne aussi affreusement en PAL
    • DooM sur SNES avait une image plus grande dans la version NTSC
    • J’étais bon à Punch-Out sur NES, mais si j’avais participé à une compétition aux États-Unis, j’aurais perdu dès le premier round
  • Il y a une coquille dans l’article ; le ratio 8:6 est identique à 4:3

    • J’utilisais la sortie RF pour basculer entre la SNES et l’antenne de la télévision
  • La résolution de sortie 256x224 (8:7) est étirée en image 4:3

    • Le dot clock de la SNES est plus lent que celui des pixels carrés dans la norme ATSC
    • Les pixels sont étirés horizontalement à 8/7, ce qui transforme une résolution 8:7 en 64:49
    • 224*(4/3) = 298 points visibles
    • 224*(7/6) = 261,33... points visibles est une valeur plus proche
  • Je me demande s’il existe un émulateur qui simule fidèlement l’apparence d’un CRT

    • Avec des shaders GPU, cela devrait être possible en termes de performances
  • J’espérais que cela donne un aperçu de la manière dont des designs de jeu emblématiques ont vu le jour

    • J’adorais la SNES, mais je n’ai pas réussi à convaincre mes parents
    • Merci pour l’article. C’était très intéressant