1 points par GN⁺ 2024-04-23 | 1 commentaires | Partager sur WhatsApp

Here is a summary of the key points from the article on Super Nintendo cartridges, translated into Korean and organized using Markdown syntax:

Structure interne des cartouches Super Nintendo

  • Les cartouches de jeux Super Nintendo peuvent contenir, au-delà de la puce ROM avec les instructions et les assets, des composants supplémentaires.
    • On peut trouver sur le PCB une puce de protection contre la copie CIC, de la SRAM, voire même un « processeur d’amélioration des performances ».

CIC (protection contre la copie)

  • Le mécanisme de protection contre la copie de la SNES fonctionne grâce à une communication synchronisée entre deux puces, l’une dans la console et l’autre dans la cartouche.
  • Si le CIC de la console détecte un comportement anormal, il réinitialise tous les processeurs.

ROM : instructions & assets

  • À l’époque, la taille des ROM de jeux était indiquée en bits plutôt qu’en octets (par exemple, The Legend of Zelda 3 faisait 8Mb).
  • Le jeu de plus grande capacité est Star Ocean (48Mb), tandis qu’un classique comme Super Mario World n’utilise qu’une seule ROM de 4Mb.
  • L’auteur a compilé dans un CSV qu’il a lui-même créé une estimation de l’utilisation ROM pour 3 378 titres.

SRAM (sauvegarde)

  • Certains jeux proposent une fonction de sauvegarde de la progression grâce à une puce SRAM et une batterie.
  • Quand la console est éteinte, la SRAM passe en mode basse consommation pour réduire l’usure de la batterie.

Processeur d’amélioration des performances (Enhancement Processor)

  • Le plus connu est le Super FX, utilisé dans Star Fox en 1993 (surnoms « MARIO », « GSU-1 »).
  • Wikipédia et snescentral.com proposent une liste complète des jeux SNES utilisant des puces d’amélioration.
    • Au total, 13 types de puces ont été utilisés dans 72 jeux.

SA-1

  • Le « Super Accelerator 1 » est le MVP des puces d’amélioration et a été utilisé dans 34 cartouches.
    • Il s’agit du même CPU 65C816 que la console, mais cadencé 4 fois plus vite, à 10.74Mhz.
    • Il embarque 2KB de SRAM ainsi qu’un CIC intégré.
  • Le SA-1 dispose de 3 modes de fonctionnement (accélération, traitement parallèle, traitement mixte). Dans sa configuration la plus puissante, il multiplie par 5 les performances globales du système.
  • Dans la communauté du rétro gaming, le SA-1 est utilisé pour améliorer la jouabilité d’anciens jeux souffrant de ralentissements (Super Mario World, Gradius 3, Contra 3, etc.).

CX4

  • Le CX4 est une création de Capcom, utilisée dans Mega Man X2 et X3.
    • Il fournit à la VRAM du rendu 3D filaire, divers calculs, ainsi que des fonctions de mise à l’échelle et de rotation des sprites.
  • Bien qu’il soit surtout connu pour ses effets filaires, il est utilisé pour le traitement de tous les sprites du jeu, ce qui permet d’en afficher davantage sans clignotement à l’écran.

Autres Enhancement Processor

  • CS-DD1 : puce de décompression de sprites. Utilisée dans 2 jeux.
  • Série DSP : utilisée dans 16 jeux. Fournit une multiplication 16 bits rapide, ainsi que des instructions comme sin/cos.
  • OBC-1 : utilisé dans 1 jeu. (il n’existe que des suppositions sur sa manipulation des sprites)
  • S-RTC : fournit une fonction d’horloge temps réel. Utilisé dans 1 jeu.
  • SPC7110 : puce de décompression de données. Utilisée dans 3 jeux.
  • ST-010, ST-011, ST-018 : puces de la société SETA visant à améliorer l’IA. Utilisées chacune dans 1 à 2 jeux.

SUPERFX (GSU-1, GSU-2)

  • Le GSU-1 est utilisé dans 5 jeux, dont Star Fox.
    • Il fonctionne à 10.74Mhz et, grâce à un cache d’instructions de 512 octets, peut tourner sans affamer le CPU de la SNES.
  • Alors que le PPU de la SNES est centré sur les tuiles et les sprites, le SuperFX est spécialisé dans le rendu pixel et la rastérisation de polygones.
    • En général, il effectue le rendu dans le framebuffer de la cartouche puis transfère le tout vers la VRAM au moment du VSYNC.
  • Le GSU-2 correspond à un GSU-1 fonctionnant à pleine vitesse, soit 21.47Mhz. Il a été utilisé dans 3 jeux, dont Yoshi’s Island et Doom.
  • Dans la communauté SNES, des projets sont en cours pour améliorer d’anciens jeux à l’aide des GSU-1 et GSU-2.

Les puces d’amélioration et les émulateurs

  • Les puces d’amélioration ont fortement amélioré l’expérience de jeu tout en réduisant les coûts pour les éditeurs, mais elles sont ensuite devenues un casse-tête pour les développeurs d’émulateurs.
    • Certains jeux dépendaient de puces atypiques et n’ont été correctement émulés qu’en 2012.
  • Leur prise en charge a demandé un important travail de reverse engineering.
    • Pour les puces disposant d’une ROM interne (basées sur ARM), il faut fournir un fichier BIOS à l’émulateur.
  • Même en 2020, l’émulation de certaines puces rares n’était toujours pas terminée.

L’avis de GN⁺

  • Les puces d’amélioration constituent un cas fascinant dans l’histoire de la conception matérielle et du développement de jeux. Elles illustrent bien la diversité des idées et des efforts déployés pour tirer le maximum d’un matériel limité.
  • Du point de vue du développement d’émulateurs aujourd’hui, elles sont pénibles, mais à l’époque c’était une méthode efficace pour améliorer la qualité des jeux tout en réduisant les coûts de développement.
  • On trouve des cas similaires dans l’industrie, par exemple les différentes puces additionnelles de la Sega Mega Drive / Genesis (SVP, Sega Virtua Processor, etc.) ou le slot de carte mémoire de la Neo Geo.
  • Ce type de puce d’extension apparaît souvent en fin de cycle de vie d’une console, ce qui ressemble à une tentative de dépasser les limites des spécifications matérielles. C’est aussi une période de transition préparant l’arrivée d’une nouvelle console.
  • Il est frappant de voir la communauté du rétro gaming mener des projets pour améliorer les performances d’anciens jeux. On peut y voir une manière de réinterpréter ces œuvres avec un regard moderne tout en respectant l’intention des créateurs d’origine.

1 commentaires

 
GN⁺ 2024-04-23
Commentaires Hacker News
  • Les cartouches des anciennes consoles se connectaient directement au bus, à la manière des cartes d’extension PCI sur PC, ce qui permettait d’implémenter diverses fonctionnalités. Mais après la GBA, elles n’ont plus servi qu’au simple stockage de données.
  • Avec les technologies modernes, on pourrait intégrer à une cartouche une puce de ray tracing ou une puce d’extension MSU1, entre autres, afin d’améliorer fortement les performances de la console. La fabrication d’une véritable puce physique serait même théoriquement possible.
  • Le CPU de la SNES fonctionne normalement à 3,58 MHz, mais avec certaines cartouches SlowROM bon marché, sa vitesse tombe à 2,68 MHz. Il existe aussi une communauté de modding qui cherche à corriger cela par des patchs.
  • La protection contre la copie de la SNES reposait sur une synchronisation entre les puces CIC de la console et de la cartouche, mais elle pouvait être facilement contournée à l’aide d’appareils de sauvegarde.
  • Quand les anciens développeurs de jeux partagent des détails techniques approfondis sous forme de blog, la densité d’information est plus élevée que dans des vidéos YouTube.
  • Super Mario World est un chef-d’œuvre qui tient une grande variété de personnages, de sprites et de stages dans seulement 360 KB.
  • En combinant le système de puces d’extension de la SNES avec des technologies modernes, il serait sans doute possible d’obtenir un rendu graphique plus avancé. La puce SuperFX disposait de son propre framebuffer, qu’elle copiait ensuite dans la VRAM.
  • La personne qui a porté Doom sur SNES a tout développé par reverse engineering, sans documentation sur la puce GSU ni sur le code source de Doom.
  • Une part importante du prix des jeux d’autrefois venait du coût de fabrication des cartouches. Aujourd’hui, le coût de distribution des jeux est quasiment nul.
  • Dans Yoshi’s Island, on peut observer des baisses de framerate dans certaines situations.
  • La taille des jeux suivait des puissances de deux, en fonction de la taille des puces ROM. L’origine du nombre exact d’octets mentionné dans le document n’est pas claire.
  • Les puces d’extension de la SNES permettaient des jeux allant bien au-delà des performances de base de la console. La puce SA-1, en particulier, affichait des performances quatre fois supérieures à celles du CPU principal.
  • Les jeux non officiels employaient divers stratagèmes pour contourner la protection contre la copie, comme l’obligation d’insérer une cartouche authentique.
  • En analysant les corrélations entre la taille des jeux et d’autres facteurs, on pourrait tirer des enseignements intéressants sur le développement des jeux SNES.