Journal Petite histoire de la SD2SNES, et par là même du MSU1

Posté par  . Licence CC By‑SA.
42
3
mai
2020

Bonjour Nal,

Les temps actuels étant propices à rester devant mon écran, j'en profite pour te narrer une belle histoire d'application du libre au hardware, et au software, à travers le projet SD2SNES.

Le but de ce projet est de pouvoir exécuter tout développement produit pour la super nintendo sur le matériel d'origine, mais également de pouvoir étendre certaines de ses capacités techniques.

Mais avant tout, il va falloir rappeler quelques points concernant la Super Nintendo :

  • la console avait un port d'extension, destiné originellement à l'adjonction d'un lecteur cdrom développé par Sony (pour la petite histoire, après un différent commercial entre les deux entreprises nippones, Nintendo a abandonné ce projet, mais Sony a décidé de le continuer de son côté, donnant naissance à la Playstation).
  • ce port d'extension a été utilisé par un périphérique spécifique au Japon, le Satellaview, qui permettait le téléchargement d'épisodes de jeux dématérialisés via une chaine sattelite.
  • les jeux étaient sur support cartouche, dans laquelle on pouvait trouve la rom proprement dite, mais aussi éventuellement des chips spécialisés qui permettaient d'étendre les capacités techniques de la console, en terme de calcul, de compression de données, d'extension de l'espace mémoire adressable, etc.

Quelques liens :
https://fr.wikipedia.org/wiki/Super_Nintendo
https://fr.wikipedia.org/wiki/Satellaview
https://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips

Tout a commencé avec Byuu, un passionné de l'histoire de la SNES : son but est d'archiver et de préserver toute la connaissance sur cette console, à travers la constitution de bases de données, scans, dumps de tous les jeux commercialisés sur ce support. Ce colossal et couteux projet, le SNES preservation project, est en passe d'être finalisé, il fait appel aux bonnes âmes pour l'aider à trouver les dernières pièces qui ne seraient pas passées entre ses mains.
Il est également à l'origine des émulateurs opensource bsnes, higan, dont le but principal est d'être au plus proche d'une expérience sur le matériel original.
Vous vous souvenez en début d'article que la console devait accueillir un périphérique incluant un CDRom qui n'a jamais vu le jour ? Il a décidé d'écrire les specifications de ce qu'aurait pu être ce périphérique. Ce chip doit permettre la lecture de musique qualité CD, de laisser quelques pistes pour les effets sonores du jeu gérés par le chip audio de la SNES, le SPC700, et d'étendre la capacité d'adressage de la rom à 4GB. Il a nommé le chip MSU-1 (pour Media Streaming Unit 1), l'affichage est géré par le GSU-1 (Graphics Support Unit 1), un dérivé du SuperFX.

Ok les specs sont faites, ça tourne dans l'émulateur Higan, mais est-ce que ça peut tourner sur le matériel original ?

Byuu fait alors appel à un électronicien de talent également passionné par la SNES, Ikari.
Il est déjà reconnu pour la création de diverses modifications hardware permettant la prise en charge du 50/60Hz, du reset en jeu via les manettes, et enfin du SuperCIC qui permet de lire sur une seule et même console tous les jeux originaux, quelque soient leur région d'origine.
Il créé alors à la demande de Byuu le SD2SNES, qui est en fait un fpga arm qu'on vient brancher sur le port cartouche de la console d'origine. L'implémentation du MSU-1 est un succès, la console fonctionne comme attendu, et de nombreux développements maison viennent démontrer les capacités nouvelles de cette vieille console de 25 ans.

Ikari a mis les specs et plan de sa carte en open source, ainsi que les sources de son firmware, en GPL v2.0. Plusieurs fabriquants proposent d'ailleurs cette carte.

Mais Ikari était toujours seul sur la partie développement du firmware. Un bébé, un déménagement, un boulot prenant, il n'arrivait pas à trouver le temps nécessaire à l'implémentation de plusieurs chips qui faisaient cruellement défaut à son bébé : essentiellement le SA-1 et le SuperFX. Il faut dire que le code est très pointu, majoritairement en assembleur, en reverse engineering, et nécessite de surcroit de grandes connaissances sur le matériel d'origine et ses registres.
L'année 2018 marque la première contribution majeure d'un développeur externe, RedGuy, qui apporte la prise en charge du SuperFX, puis du SA-1. En 2019, Magno écrit l'implémentation du chip S-DD1.

Aujourd'hui, SD2SNES permet de prendre en charge l'intégralité du patrimoine de la console, y compris les choses exotiques comme le Satellaview, sert à implémenter de nouveaux chips développés par des passionnés, et à tester le matériel original des développements amateurs.

liens :
https://byuu.org
https://sd2snes.de/blog/
https://github.com/mrehkopf/sd2snes/

  • # Byuu, quel personnage !

    Posté par  . Évalué à 5.

    Il est connu pour son travail incroyable, sa persistance sans faille, et malheureusement ses soucis de dépression. Il a essayé de dumper lui même tous les jeux SNES/Super Famicom et il avait de mémoire réussi pour les versions américaines à avoir la collec complète, avant de la revendre.

    Et là, c'est la fin d'une ère, il arrête de travailler sur ses émulateurs, mais a su passer le relai, juste après avoir changé de pseudo. Il avait fait un post au sujet du changement de pseudo son site, mais il a depuis effacé la page, y compris de l'Internet Wayback Machine, faudra donc que vous me croyiez sur parole pour ça.
    C'est signe qu'il doit à nouveau avoir des soucis de santé. :-(

    • [^] # Re: Byuu, quel personnage !

      Posté par  . Évalué à 6.

      Oui, j'ai vu ça en écrivant l'article. Ce n'est pas la première fois, j'ai connu le reset total de sa page, mais c'est la première fois qu'il laisse les autres en lead sur ses projets.
      Dans les projets qu'il avait créé, j'ai d'ailleurs omis Bass, le compilateur cross platform pour 65C816 et SPC700.
      J'espère qu'on le reverra, mais dans tous les cas, il nous a laissé un sacré héritage.

    • [^] # Re: Byuu, quel personnage !

      Posté par  . Évalué à 5.

      Il a pas arrêté longtemps de travailler sur des émulateurs; il a changé de pseudos et il code comme un fou un émulateur N64, depuis le leak géant:

      https://twitter.com/ares_emu

  • # Console pleine d'histoire

    Posté par  . Évalué à 2.

    Merci pour les quelques détails que je ne connaissais pas sur cette console hautement historique, comme le Satellaview.
    Par contre, je ne vois pas trop l'intérêt de pouvoir faire tourner les musiques en "qualité CD", le charme de la SNES est qu'elle avait une puce sonore assez unique, au contraire de sa rivale de l'époque, la Sega MegaDrive, et des jeux avec des mélodies mémorables (Seiken Densetsu, Chrono Trigger, FFVI etc.) qui ont fait sa renommée. D'ailleurs comment marche ce son "qualité CD" ? Faut-il télécharger des sets audio, en plus de la rom du jeu ?

    • [^] # Re: Console pleine d'histoire

      Posté par  . Évalué à 5.

      Tu as raté le fait que ce lecteur CD n'a jamais été diffusé, donc ce n'est que du hacking postérieur le son de qualité CD!

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: Console pleine d'histoire

      Posté par  . Évalué à 2.

      le charme de la SNES est qu'elle avait une puce sonore assez unique, au contraire de sa rivale de l'époque, la Sega MegaDrive

      C'est vrai que la puce sonore Yamaha de la Megadrive était un pur produit des années 80 et que cette famille de puces à été utilisée dans plein d'ordis et de systèmes d'arcade (Sega, Taito).
      Mais il ne faut pas oublier que la SNES est sortie deux années après sa rivale (d'où le slogan américain "Genesis does what Nintendon't") et qu'elle était bien moins propice à des sonorités rock/métal ce qui fait qu'on ne retiendra que ses mélodies "symphoniques" ou folk de JRPG et de plateformer.

  • # Usb2snes

    Posté par  (site web personnel) . Évalué à 2.

    C'est probablement le truc le plus fun qu'a écrit/adapté Redguyy, c'est une version du firmware qui permet d'utiliser le port usb du Sd2Snes pour envoyer des fichiers, lire/écrire la mémoire.

    Des gens trés passionné ont crée des trucs très amusant comme des modes de jeu coopératif pour certain jeu en partageant son inventaire/énergie/munition avec d'autre joueur de Super Metroid.

    Plus d'info usb2snes.com

    A noter qu'Ikari était en train de merger ça dans le firmware officiel, mais qu'il n'a pas donné de nouvelles depuis 2-3 mois.

  • # Beaucoup trop de mauvaises informations.

    Posté par  . Évalué à 2.

    Beaucoup de bêtises, d’approximations, et de raccourcis dans cet article.
    La moindre des chose quand on se lance dans l’écriture d’un papier sur un sujet, c’est de le maîtriser, ce qui de tout évidence, n’a pas été le cas ici.

    Ce chip doit permettre la lecture de musique qualité CD, de laisser quelques pistes pour les effets sonores du jeu gérés par le chip audio de la SNES, le SPC700, et d'étendre la capacité d'adressage de la rom à 4GB.

    Déjà, ce n’est pas un «chip», mais une spécification. Ensuite, ça ne sert pas uniquement a l’audio, mais à n’importe quelle donnée. Une simple lecture des specs aurait perms de le déduire (https://helmet.kafuka.org/msu1.htm).
    Il ne faut pas non plus parler de capacité d’adressage, mais de taille maximale du fichier de données, limité à 4Go (sûrement pour aller de pair avec la limitation du FAT32).

    Il a nommé le chip MSU-1 (pour Media Streaming Unit 1), l'affichage est géré par le GSU-1 (Graphics Support Unit 1), un dérivé du SuperFX.

    Flagrant déli de copier-coller sans réflexion derrière.
    D’abord, byuu a sorti une première version du MSU1 qu’il a appelé «21fx» (https://www.neogaf.com/threads/so-the-snes-was-capable-of-full-motion-video-and-cd-quality-music.400445/, http://www.gametronik.com/forum/index.php?showtopic=17881, la page archive n’est plus disponible). À noter que le nom a été réutilisé pour une interface de dump.
    Ensuite, ça a été renommé MSU1 pour faire penser au GSU1 (le nom du Super FX, pas un «dérivé»). cf ici : https://forums.nesdev.com/viewtopic.php?t=11004#p125362
    L’affichage n’est pas du tout géré par le GSU-1, ça n’a aucun sens, vu que les deux n’ont rien à voir.

    Byuu fait alors appel à un électronicien de talent également passionné par la SNES, Ikari.

    Non, il a juste dit «ça serait bien que ça existe sur le SD2SNES». (http://forums.nesdev.com/viewtopic.php?p=64141#p64141)

    Il créé alors à la demande de Byuu le SD2SNES, qui est en fait un fpga arm qu'on vient brancher sur le port cartouche de la console d'origine.

    Non plus, il a commencé tout seul le développement de sa cartouche en 2009 (http://forums.nesdev.com/viewtopic.php?f=12&t=7361).
    De plus, «FPGA Arm» ne veut rien dire. Il y a un FPGA, et un microcontrôleur ARM LPC1754 qui gère surtout la carte SD et la RTC.

    Il faut dire que le code est très pointu, majoritairement en assembleur, en reverse engineering

    La phrase n’a aucun sens. Le code est «en reverse engineering» ?
    L’interface du menu est en assembleur 65816, mais le projet est surtout du C, et du Verilog.

    Il serait bien de réécrire cet article, Internet étant ce qu’il est, beaucoup de personnes vont croire ce qui est écrit ici.

    (d’autres infos ici : https://retrogamespace.forumgaming.fr/t135-dossier-media-streaming-unit-msu1-le-projet-cd-rom-sfc-sur-cartouche)

    • [^] # Re: Beaucoup trop de mauvaises informations.

      Posté par  (site web personnel) . Évalué à 10.

      Merci pour ces précisions, mais pas la peine d'être désagréable.

      La scène retro/emu n'est pas connue pour être très claire dans sa communication. On ne trouve souvent les infos qu'au fond d'un forum avec des liens morts. Si tu connais bien le sujet, n'hésite pas à faire un journal toi aussi :-)

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: Beaucoup trop de mauvaises informations.

        Posté par  . Évalué à 6.

        Oui, désolé du ton un peu agressif, mais je vois tellement de bêtises se propager à cause d’articles qui semblent être valables, que je m’agace de la baisse de qualité globale des-dits articles.
        C’est vrai que je suis tout ça depuis très longtemps, et que je ne devrais pas être aussi vindicatif quand je vois un tel journal.

        • [^] # Re: Beaucoup trop de mauvaises informations.

          Posté par  (Mastodon) . Évalué à 7.

          Oui tu aurais pu simplement te réjouir que quelqu'un en parle et proposer tes corrections amicalement.

          D'autant plus qu'on parle de hobby/console de jeu hein, c'est pas comme si l'avenir de l'humanité en dépendait :o)

        • [^] # Re: Beaucoup trop de mauvaises informations.

          Posté par  (site web personnel) . Évalué à 4. Dernière modification le 04 mai 2020 à 19:08.

          je m’agace de la baisse de qualité globale des-dits articles.

          Ça tombe bien ;-)
          En ces temps de réjouissance (humour), un peu de jeu peut apporter à tout un chacun et mettre en valeur des domaines compliqués (tu pourras voir que j'ai adhéré à openarena et je ne suis pas le seul du chan sur quakenet.

          Il y a justement l'espace de rédaction où parfois ce genre de journal (bien écrit, même si inexact) permet d'être mis en avant (et bien indexé) car proposé en dépêche en rédaction collective et où tout inscrit sur LinuxFr.org peut corriger les phôtes d'ortografes ainsi que compléter des parties trop légères.

          Il se trouve que les dépêches de LinuxFr.org remontent souvent plus haut dans les moteurs de recherche habituels (ddg, qwant…)

          Donc, autant ajouter un site de plus qui publie des infos sympathiques avec un beau retour d'expérience (et en plus plus précis en prenant en compte tes correctifs :p), dommage manque une visualisation git des ajouts de chacun, ah bah si on l'a aussitte sur LinuxFr.org mais peu mis en avant hormis dans le wiki que personne ne lit :/

          Bref il y a :

          Bref aucune raison de ne pas vouloir participer en amont pour éviter que des "erreurs" soient publiées dans un nourjal de très bonne qualité (ce que révèle ton commentaire). Cela mériterait une dépêche (même si le monde gamer est trop peu clair sur les licences : c'est le plus difficile à trouver)

    • [^] # Re: Beaucoup trop de mauvaises informations.

      Posté par  . Évalué à 8.

      Oui, merci pour tes précisions bienvenues, et désolé pour mes approximations bien involontaires.
      Je suis un simple possesseur de sd2snes, passionné par la snes, mais bien moins pointu que toi je l'avoue.
      J'ai retranscrit ici une somme d'informations que j'avais lues ici et là au cours de mes ballades sur les sites spécialisés.
      Si tu veux écrire sur le sujet, n'hésite pas, je lirai avec plaisir.

  • # SDK?

    Posté par  (site web personnel) . Évalué à 3.

    Est-ce qu'il existe un SDK pour développer en C pour la SNES ?

    Ou est-ce encore une victoire de la megadrive?

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: SDK?

      Posté par  . Évalué à 4.

      Il y a un SDK assez populaire : https://github.com/alekmaul/pvsneslib , par contre, ne t’attends pas à avoir des jeux avec des graphismes extraordinaires, ça donne du niveau d’une NES++.
      Le 65816 n’est pas très adapté à un compilateur C, et tu auras mieux fait de partir sur de l’assembleur, avec de bonnes librairies (https://github.com/Optiroc/libSFX).

    • [^] # Re: SDK?

      Posté par  (Mastodon) . Évalué à 3.

      Ce serait bien d'en faire un pour Rust

      Ok je ----> []

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.