Comment la puce graphique Super Nintendo a fonctionné: Guide Super PPU

image

Description des concepts PPU


Super PPU

Super "Picture P rocessing U nit" est une puce de contrôleur vidéo qui traite les graphiques en mosaïque, les plans de défilement et les sprites SNES. La fonction est similaire à la console PPU NES.

VRAM

V ideo RAM - RAM utilisée par Super PPU. Contient des tuiles. Chaque mode d'écran utilise sa propre taille de tuile. Il s'agit généralement de 8 x 8 ou 16 x 16 pixels par mosaïque. VRAM a une capacité de 64 Ko.

Oam

"Object Attribute Memory" - contient les définitions de données des sprites. Peut contenir des données de 128 sprites au maximum. Similaire à OAM dans NES, mais plus avancé.

Données OAM stockées pour chaque image-objet

  • Position du sprite X (9 bits, 0-511 ou 00 $ - 1FF)
  • La position du sprite en Y (8 bits, 0-239 ou $ 00- $ EF). Les valeurs 0-239 sont affichées à l'écran, de -63 à -1 - "au-dessus de l'écran", de sorte que le bas de l'image-objet est visible en haut de l'écran. Cela implique qu'un très grand sprite peut commencer en bas et se terminer en haut.
  • ID de la première tuile sprite. Index 8 bits
  • Tableau des noms de sprites
  • L'ID de la palette utilisée par le sprite (0-7 / $ 00- $ 07). Les sprites utilisent des indices de sous-palette dans les 8 dernières sous-palettes, donc l'ID est en fait 7 + N
  • La taille du sprite. 1 bit: 0 = un sprite plus petit est disponible pour le mode actuel (généralement 1 tuile 16x16 pixels), 1 = un sprite plus grand est disponible pour le mode actuel (généralement 4 tuiles (2x2 tuiles 16x16 pixels))
  • Priorité aux sprites Priorité en OAM: 2 bits; ces bits déterminent la priorité du sprite par rapport aux plans d'arrière-plan (voir la section sur les plans graphiques ci-dessous). Priorité sur les autres sprites. Le sprite zéro dans OAM a la priorité la plus élevée. Le premier sprite dans OAM a une priorité inférieure. Le second est encore plus bas, et ainsi de suite.


Émulateur de visionneuse OAM No $ sns (SMW)

Deux principaux types de machines


Consoles NTSC

  • Super Nintendo (SNES), 60 machines Hertz, principalement vendues aux États-Unis. Résolution d'écran 256x224 pixels (comme NTSC NES)

Consoles PAL

  • Super Famicom (SFC), 50 voitures hertz vendues dans le reste du monde. Résolution d'écran 256x240 pixels (identique à PAL Famicom)


Gauche: NTSC Super Nintendo (modèle 1), droite: PAL Super Famicom

Cartes de tuiles


SNES avait 7 "modes" différents de traitement en arrière-plan

  • Ils étaient appelés Mode 0-7. Le mode 1 avait un mode de variation. Le Mode 7 avait un sous-mode du Mode 7 Ext. BG Chaque mode avait son propre nombre d'avions d'arrière-plan disponibles. Chaque mode avait son propre nombre de couleurs pour les plans d'arrière-plan disponibles dans ce mode. Les propriétés de rendu de chaque arrière-plan étaient légèrement différentes. Dans tous les modes et dans tous les plans du graphique, l'indice de couleur 0 dans n'importe quelle sous-palette dénotait toujours une couleur transparente.


Tableau récapitulatif des modes

4 plans graphiques


SNES pouvait gérer jusqu'à 4 plans graphiques, appelés BG1-BG4. Ces plans graphiques pouvaient défiler (faire défiler).

Tailles des cartes de tuiles

  • Les tuiles des plans de défilement peuvent avoir une taille de tuiles 32x32, 32x64, 64x32 ou 64x64. Selon la taille de chaque bloc de la carte tuile (blocs de 16x16 px / 1 tuile ou 32x32 / 2x2 tuiles), la taille de la carte tuile peut varier de 256x256 à 1024x1024 pixels
  • Pour plus d'informations sur les tailles de tuiles dans les cartes de tuiles, consultez la section «Cartes de tuiles et cartes de personnages» de cet article.

Propriétés de chaque tuile dans la carte des tuiles

  • Carreaux V / HFlip (réflexion verticale / horizontale)
  • Priorité de mosaïque (faible / élevée)
  • Numéro de palette (3 bits, 0-7 / 00 $ - 07 $). Les avions utilisent les 8 premières sous-palettes de CGRAM; les 8 sous-palettes sont utilisées pour les sprites (OAM)
  • ID de tuile


Visionneuse de Tilmap pour 4 arrière-plans (BG) dans SWM

Modes vidéo

Mode 0

  • 4 arrière-plans (BG), chacun avec 4 couleurs
  • BG prioritaire (de l'avant vers l'arrière)

Mode 1

  • 2 BG avec 16 couleurs
  • 1 BG avec 4 couleurs
  • BG prioritaire (d'avant en arrière). La priorité varie en fonction de l'état du bit 3 dans le registre 2105 $.


Mode 2

  • 2 BG avec 16 couleurs chacun
  • BG prioritaire (de l'avant vers l'arrière)

  • Le premier mode avec "offset by tile" (pour plus de détails, voir Mode 2 )

Mode 3

  • 1 BG avec 256 couleurs
  • 1 BG avec 16 couleurs
  • BG prioritaire (de l'avant vers l'arrière)

  • Mode couleur direct disponible (enregistrez 2130 $)

Mode 4

  • 1 BG avec 256 couleurs
  • 1 BG avec 4 couleurs
  • BG prioritaire (de l'avant vers l'arrière)

  • Le deuxième mode avec "passer à la tuile" (pour plus de détails, voir Mode 4 )

Mode 5

  • 1 BG avec 16 couleurs
  • 1 BG avec 4 couleurs
  • BG prioritaire (de l'avant vers l'arrière)

  • «Le mode 5 est différent des modes précédents. Au lieu d'une tuile standard d'une largeur de 8/16 pixels, il utilise toujours une tuile d'une largeur de 16 pixels (la hauteur peut toujours être de 8 ou 16) et n'utilise que la moitié des pixels (à partir de zéro, même les pixels pour les tuiles de sous-écran, les pixels impairs pour les tuiles de l'écran principal). Il passe ensuite aux pseudo-embauches pour rendre une ligne raster de 512 pixels de large. De plus, si le mode entrelacé est activé (voir bit 0 dans le registre $ 2133), la hauteur d'écran au lieu de 224 ou 239 est de 448 ou 478 demi-lignes. Des lignes paires ou impaires sont tracées dans chaque trame, ce qui est déterminé par le bit 7 dans le registre $ 213f. Cela signifie également que 212 $ et 212 $ peuvent recevoir la même valeur pour obtenir l'affichage «attendu». »

Mode 6

  • 1 BG avec 16 couleurs
  • BG prioritaire (de l'avant vers l'arrière)

  • Propriétés spéciales: comme le mode 5, il présente certaines différences. Comme le mode 2, c'est aussi un passage au mode tuile. «Cependant, il convient de rappeler que le mode 6 utilise toujours des carreaux d'une largeur de 8 pixels (16 demi-pixels), ce qui concerne aussi bien BG3 que BG1. "Vous ne pouvez pas appliquer un décalage à une mosaïque de 8 demi-pixels ou à une zone de 16 pixels de large (uniquement si vous n'utilisez pas deux valeurs de décalage pour deux zones de 8 pixels)."

Mode 7

  • 1 BG avec 256 couleurs
  • Un mode très différent; permet des transformations matricielles de la couche BG
  • Utilisé pour un effet pseudo-3D dans des jeux comme Super Mario Kart, FZero, etc.
  • Voir Mode 7 pour plus de détails.



Cgram


"RAM graphique couleur"

  • Contient des informations de couleur pour les palettes
  • Au total, il contient 256 entrées de couleurs de palette ($ FF).
  • Chaque mode graphique divise 256 entrées de palette en sous-palettes, chacune avec N couleurs. N dépend du mode vidéo. Par défaut, chaque sous-palette se compose de 16 couleurs (256 couleurs / 16 couleurs par sous-palette = 16 sous-palettes). Par défaut, les 8 premières sous-palettes (avec ID 0-7 / $ 00- $ 07, ID d'enregistrement de palette 0-63 / $ 00- $ 3F) sont utilisées pour les tuiles de premier plan (FG), et les 8 dernières sous-palettes (ID de sous-palette 8-16 / $ 08- 10 $, enregistre les palettes ID 64-127 ou 40 $ - 80 $) - pour les objets sprite. La première couleur de la sous-palette est rendue transparente pour les tuiles / sprites utilisant cette sous-palette
  • Format de couleur BGR 15 bits. Chaque entrée de couleur dans CGRAM a un format de 2 octets («mot») et la forme 0BBBBBGG GGGRRRRR (B = bits de bleu, G = bits de vert, R = bits de rouge). 16 bits, le premier bit n'est pas utilisé, il reste donc une plage de couleurs de 15 bits. Chaque composant de couleur (B, G, R) a une valeur comprise entre 0 et 31 (décimal) ou entre 00 et 1 $ (hexadécimal)


Répartition de la palette SNES (Super Mario World dans l'émulateur de visionneuse de palette sans $ sns)

Outils de débogage et graphiques recommandés


Trouver un bon logiciel pour créer des graphiques rétro, diviser le pixel art en carreaux et réduire le nombre de couleurs à traiter dans les différents modes vidéo SNES peut être un processus difficile. Vous trouverez ci-dessous une liste de logiciels recommandés pour travailler avec des graphiques rétro et des émulateurs spécialisés qui vous permettent d'explorer le contenu de la VRAM et de l'avion.

Logiciel graphique:

Yy-chr


Irfanview

  • Le programme de visualisation / édition à usage général, a des plugins et un large support pour de nombreux types de fichiers
  • Peut éditer, exporter et importer des palettes, ainsi qu'augmenter / diminuer le nombre de couleurs dans les images et afficher ce nombre
  • Logiciels libres et open source
  • Dispose d'un plugin PNG pour changer les changements de profondeur de couleur tout en préservant l'ordre des palettes
  • Page d'accueil

Émulateurs spécialisés recommandés pour le débogage de Super PPU

Pas de $ sns

  • Déboguer l'émulateur SNES
  • Peut émuler des prototypes homebrew SNES-CD Super Disc
  • Peut afficher l'état de la machine / du processeur
  • Affiche les couches BG à la volée
  • Peut afficher à la volée OAM
  • Peut afficher le contenu des tuiles VRAM dans différents modes de couleur
  • Peut afficher le contenu CGRAM
  • L'information

Higan

  • Emulateur de diverses consoles rétro
  • Possède une émulation très précise des cycles d' équipement SNES; utilisé pour émuler / déboguer les problèmes matériels SNES
  • L'information

Liens et lectures complémentaires



Source: https://habr.com/ru/post/fr478580/


All Articles