Liste de logiciels libres pour Nintendo Switch
- Il n'est ici question que des logiciels libres qui fonctionnent nativement sur le système de Nintendo pour sa Switch, ou plutôt pour les variantes non-officiels qui sont par anglicisme dits être des custom firmwares ou CFW pour les intimes. Par conséquent, les logiciels libres qu'il est possible d'y exécuter par émulation ne sont pas dans la liste et n'ont pas vocation à y être. De même, les systèmes entièrement alternatifs à celui officiel de Nintendo et de base sur la machine, comme Android et des distributions GNU/Linux (comme Ubuntu), ne sont pas pris en compte dans le présent document et donc il en est par voie de conséquence de même pour les logiciels libres qu'il est possible d'y exécuter sur une Nintendo Switch sous l'un d'eux. En revanche, sont listés les logiciels libres pour le recovery mode, communément abrégé en RCM, malgré que ça ne fasse pas parti du système d'exploitation de Nintendo et qu'il a été rendu inopérant pour les nouveaux modèles de Switch après que ce point d'entrée ait été découvert et qui permet de se passer du joug de Nintendo et donc de faire tourner sur le principe ce qu'on veut sur une Nintendo Switch qu'il l'a. Enfin, il y a aussi exception pour les émulateurs de Nintendo Switch et pour les outils de développement pour construire et déboguer des programmes quand c'est spécifiquement pour Nintendo Switch.
- Il se peut qu'il y ait une ou des erreurs sur le caractère libre (au sens de Richard Stallman, du projet GNU et de la Free Software Foundation). Mieux vaut que vous considériez cette liste comme indicative et que vous vérifiez que le ou les logiciels qui vous intéresserai(en)t est ou sont bien du logiciel libre, si toutefois c'est quelque chose à vous tenez et ce serait fort préférable pour vous-même et pour la collectivité.
- La liste ci-dessus a vocation à être exhaustive et à jour. Cependant, ce n'est qu'un idéal, et il est fort probable qu'il n'ait jamais été respecté et qu'il ne le sera jamais.
Recovery mode (RCM)
Le point d'entrée que représente RCM
a été bouché par Nintendo.
Mais il n'a pu le faire
que pour les nouveaux modèles de Nintendo Switch
et donc le tout premier modèle
(dit v1 unpatched
)
a nécessairement accès à RCM.
Numéro de série | Ok | Peut-être | Non |
---|---|---|---|
XAW1 | XAW10000000000 à XAW10073999999 | XAW10074000000 à XAW10120000000 | XAW10120000000 et plus |
XAW4 | XAW40000000000 à XAW40010999999 | XAW40011000000 à XAW40012000000 | XAW40012000000 et plus |
XAW7 | XAW70000000000 à XAW70017700000 | XAW70017800000 à XAW70030000000 | XAW70030000000 et plus |
XAJ1 | XAJ10000000000 à XAJ10019999999 | XAJ10020000000 à XAJ10030000000 | XAJ10030000000 et plus |
XAJ4 | XAJ40000000000 à XAJ40045999999 | XAJ40046000000 à XAJ40060000000 | XAJ40060000000 et plus |
XAJ7 | XAJ70000000000 à XAJ70039999999 | XAJ70040000000 à XAJ70050000000 | XAJ70050000000 et plus |
XAK1 | N/A | XAK10000000000 et plus | N/A |
Avec un bon modèle de Nintendo Switch, lancer RCM n'est pas très compliqué à partir du moment où on a de quoi faire ce qu'il faut dans le rail de droite (un jig est recommandé, mais il y a d'autres méthodes financièrement plus coûteuses et le trombone altéré mais qui abimer les connecteurs). Il faut d'abord éteindre la Nintendo Switch, ensuite connecter 2 connecteurs dans le rail de droite (par exemple avec un jig) et pas n'importe lesquels (vous pouvez griller la Nintendo Switch si vous en connecter 2 incompatibles), puis restez appuyer sur le bouton d'augmentation du volume et appuyez sur le bouton de démarrage avec en même temps le bouton d'augmentation du volume qui doit toujours être enfoncée. Si la Nintendo Switch a de la batterie et qu'elle semble ne pas avoir démarré, elle est alors probablement en RCM, mais cela ne signifie pas pour autant que vous pourrez en profiter, car il y a le RCM du tout premier modèle (ok) et le ou les RCM des modèles d'après (qui a ou ont été faits pour contrer ce que permet la version du tout premier modèle).
Logiciels à exécuter via RCM
- Hekate propose de multiples fonctions (lancement du système d'origine ou d'une version modifiée sur la mémoire interne ou sur carte microSD, création et gestion d'une emuMMC, lancement d'Android et GNU/Linux, transformation de la Nintendo Switch en lecteur de carte microSD par USB et en manette USB, et plus encore !) et en plus avec une jolie interface graphique. C'est un indispensable. D'ailleurs, si vous avez un RCM loader, il vous sert probablement à envoyer Hekate.
-
Lockpick_RCM
permet d'extraire sur la carte microSD
les clés de déchiffrement de la console
(
prod.keys
ettitle.keys
). Pour des raisons légales, ça n'est généralement pas inclus dans les émulateurs Nintendo Switch et vous en aurez donc besoin si vous voulez émuler la Nintendo Switch sans devoir récupérer ces fichiers d'une tierce personne (ce qui peut être illégal dans votre juridiction). Et il en est de même pour les outils de manipulation de NCA/NCZ, NSP/NSZ et XCI/XCZ, qui sont des formats pour les jeux Nintendo Switch, leurs mises à jour et contenus supplémentaires (dits DLC). - TegraExplorer permet d'intéragir avec le stockage interne de la console et l'éventuelle carte microSD.
- Incognito_RCM permet de supprimer des données personnelles et ainsi moins risquer de se faire bannir du en ligne. Toutefois, si vous utilisez le custom firmwares (CFW) Atmosphere (et c'est probablement le cas), vous ne devriez pas en avoir besoin.
Logiciels pour envoyer sur RCM
- fusee-interfacee-tk / Fusée Launcher Interfacée est un programme avec interface graphique qui fait juste injecteur RCM pour GNU/Linux et le privateur (donc non-recommandable) Apple macOS.
- fusee-nano est un programme en ligne de commande qui fait injecteur RCM d'une manière minimaliste. Il a été pensé pour des systèmes Linux avec très peu de ressources.
- Rekado est une application Android qui fait juste injecteur RCM.
- NXLoader est une application Android qui fait juste injecteur RCM.
- NS-USBloader est un programe Java classique avec interface graphique qui permet entre autres d'injecter un binaire via RCM (mais aussi d'envoyer un fichier à installer par USB, pour par exemple GoldLeaf et Awoo Installer, mais également de divisier un fichier en plusieurs morceaux pour que ça passe sur système de fichiers FAT32 et de faire l'opération inverse qu'est la fusion). Puisque sa version de base tourne via une machine virtuelle Java (JVM) conventionelle, cela lui permet de fonctionner sur au moins GNU/Linux, ainsi que les privateurs Microsoft Windows et Apple macOS. Il existe une version Android de NS-USBloader (qu'on peut retrouver sur F-Droid).
- TegraRcmGUI est un programme avec interface graphique qui fait juste injecteur RCM pour Microsoft Windows.
- TegraRcmSmash est un programme en ligne de commande qui fait juste injecteur RCM pour Microsoft Windows.
Gestion de la mémoire permanente
La mémoire permanente est celle interne à la machine et l'éventuelle carte microSD. En revanche, la mémoire vive, aussi dite RAM, n'est pas permanente, puisque son contenu est perdu à chaque extinction (ou plutôt usuellement considéré comme tel, car il peut en réalité en être autrement et c'est donc à prendre en compte si vous avez besoin d'un haut niveau de sécurité, mais ce n'est fort vraisemblablement pas le cas avec une Nintendo Switch sous le système de base altéré pour être plus permissif).
Logiciels libres
- GoldLeaf permet principalement de gérer la mémoire permanente, dont notamment sa consultation et son écriture par l'installation de NSP, mais aussi la navigation web en s'appuyant sur le module web du système d'exploitation. Et il est capable de faire consulter à la Switch le contenu d'un système tiers avec son propre système à condition toutefois d'avoir un client adapté (qui était anciennement GoldTree, ayant laissé sa place à Quark écrit en langage Java, à ne pas confondre avec JavaScript, et qui peut donc fonctionner sur les principaux systèmes d'exploitation qui sont à la fois génériques et classiques, car par exemple Android est bien générique mais pas classique dans sa manière de gérer les programmes et cela fait qu'il n'a pas une machine virtuelle Java conventionnelle ou alors d'une manière non-officielle).
- NX Shell est un gestionnaire de fichiers.
Installation de jeux, mises à jour de DLC
- Awoo Installer permet d'installer sans prise de tête des NSP et NSZ (son équivalent compressé), XCI et XCZ (son équivalent compressé). On pourra regretter sa meuf aux gros nichons (mais qu'on peut enlever via les paramètres) et et certains de ses messages qu'on peut trouver déplacés.
- TinWoo est une suite d'Awoo. Il s'en démarque par sa possibilité de lire un support USB comme GoldLeaf
Pour installer via USB
par un système d'exploitation générique et classique
(GNU/Linux, *BSD, Windows, macOS)
sans avoir à tranférer le fichier
sur le système de fichiers de la carte microSD,
ce qui est bien pratique
pour les fichiers de 4Go ou plus
si elle est en FAT32
(ce qui est conseillé
pour éviter de la corruption de données),
il faut un logiciel qui parle correctement.
En général, celui qui est recommandé à cette fin est
NS-USBloader
(et pour qu'il fonctionne sans droits root sous GNU/Linux,
il faut d'abord faire
mkdir -p /etc/udev/rules.d
,
puis echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"' > '/etc/udev/rules.d/99-nswitch-classic.rules'
et pour le mode RCM
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7321", MODE="0666"' > '/etc/udev/rules.d/99-nswitch-rcm.rules'
,
puis faire appliquer la configuration avec
udevadm control --reload-rules && udevadm trigger
).
Gestion des sauvegardes de jeux natifs
Par jeux natifs, nous entendons ici tous les jeux que vous pouvez lancer sur une Nintendo Switch sous le joug Nintendo. Cela inclut des jeux émulés. Ce que nous excluons ici ce sont les jeux émulés via un émulateur non-officiel, comme RetroArch ou mGBA, ainsi que les jeux natifs mais qui n'ont pas été approuvés par Nintendo et qui ne respectent pas la manière standard sur Nintendo Switch de gérer les sauvegardes.
- JKSV est un gestionnaire générique de sauvegardes (qui a un équivalent pour Nintendo 2DS/3DS).
- EdiZon comprend à la fois un gestionnaire générique de sauvegardes et un éditeur générique de sauvegardes, ainsi qu'un éditeur à la volée de la RAM (mais à cette fin, il vaudrait mieux utiliser EdiZon-SE).
- Checkpoint est un gestionnaire générique de sauvegardes (qui gère aussi la Nintendo 2DS/3DS).
- Animal Crossing: New Horizons save editor fait ce que son nom indique.
Logiciels privateurs
Les logiciels ci-dessous sont privateurs. Mais ils ont ou ont eu une certaine popularité. Nous les listons donc là pour que vous soyez prévenu qu'ils sont privateurs et par conséquent que vous ne pouvez pas avoir confiance, à fortiori du fait qu'il n'y a pas de système de permissions et qu'ils peuvent donc faire tout et n'importe quoi. Il va donc s'en dire que nous ne pouvons que fortement vous déconseiller de les utiliser.
- Tinfoil était du logiciel libre avec Adubbz pour meneur. Mais ce qui en a pris le nom est privateur et il facilite beaucoup l'illégalisme.
- DBI peut laisser l'impression sur Microsoft GitHub que son code source est disponible, mais ce n'est en fait pas le cas.
Multimédia
Internet
Navigation web
- GoldLeaf permet d'utiliser le module de navigation web du système (qui est prévu par Nintendo pour ne servir qu'à passer la page de connexion de certains réseaux Wi-Fi, ce parce qu'un navigateur web avec JavaScript a trop possiblement une faille de sécurité qui pourrait permettre de briser le joug de Nintendo, donc le rendre plus compliqué à accéder permet de rendre plus chiant l'exploitation d'une potentielle faille).
Jeux
Émulation sur Nintendo Switch
Émulation de multiples plateformes
- RetroArch est un frontal, c'est-à-dire une interface graphique, pour plein d'émuleurs différents ou autres coeurs. Gérant plusieurs consoles (GB, GBC, GBA, DS, NES, SNES, N64, MegaDrive, Saturn, PS1, PSP, et plus encore !), mais avec une même interface, il en offre donc un accès unifié. Et avec RetroArch, il n'y a pas juste l'interface, il y a aussi les modules pour les différents émulateurs, donc vous n'avez besoin d'aller les récupérer séparément, en tout cas pour ceux officiellement gérés. De plus, vous pouvez retrouver RetroArch sur bien d'autres plateformes, dont GNU/Linux et Android, mais aussi d'autres consoles Nintendo que la Switch et des consoles PlayStation de Sony. Enfin, mentionnons qu'il a supplanté Mednafen, qui fonctionne sur le même principe, mais lui en ne fournissant qu'une interface en ligne de commande, mais il est évidemment possible d'en faire un enrobage graphique comme le fait notamment Mednaffe.
Émulation exclusivement de consoles Nintendo
Émulation exclusivement de consoles Nintendo portables
GameBoy Grey, Color et/ou Advance
- mGBA gère toute la lignée GameBoy. De plus, c'est en 2024 l'un des meilleurs pour cela. Enfin, vous pouvez le retrouver sur d'autres plateformes, dont GNU/Linux et *BSD, mais aussi Nintendo 3DS et Nintendo Wii.
Nintendo DS
- melonDS n'est pas officiellement disponible pour Nintendo Switch, du moins au moins jusqu'en avril 2024 compris. Cependant, une personne sous le pseudonyme de RSDuck propose un portage pour cette plateforme.
Émulation exclusivement de consoles Nintendo de salon
Super NES / Super Famicon
NES / Famicon
GameCube et Wii
Quelques rares jeux peuvent probablement bien être émulés sur Nintendo Switch via l'émulateur Dolphin qui a un coeur RetroArch. Cependant, il est peu probable que la situation change, l'émulation de la GameCube et la Wii demandant pas mal de puissance et la Nintendo Switch n'en a vraisemblablement pas assez pour émuler à bonne vitesse et correctement ces consoles, et le cas échéant (en admettant que ce soit possible) ça demanderait probablement un gros travail d'optimisation que probablement personne ne fera jamais et ce puisqu'une bonne partie de celui-ci serait probablement spécifique à la Nintendo Switch. En faisant aller la Nintendo Switch plus vite que prévu (on parle d'overclocking), c'est néanmoins peut-être possible pour un nombre pas dégueulasse de jeux, mais cela risque d'endommager la Nintendo Switch et ça la fera surconsommer de l'énergie, donc on ne peut pas le recommander.
Émulation exclusivement de consoles Sony
Sony PlayStation 1 (PS1)
- DuckStation n'est pas officiellement disponible pour Nintendo Switch, du moins au moins jusqu'en avril 2024 compris. Cependant, une personne sous le pseudonyme de RSDuck propose un portage pour cette plateforme.
Sony PlayStation 2 (PS2)
La PS2 a une architecture matérielle particulièrement complexe. Par conséquent, il est fort improbable qu'elle puisse, même théoriquement, être correctement géré sur Nintendo Switch. Sous au moins GNU/Linux et WINE (voire M$ Windows), vous pouvez en revanche l'émuler avec PCSX2.
Moteurs prêts à l'emploi
- ScummVM n'est pas à proprement parler un émulateur. C'est un ensemble de moteurs libres pour des jeux privateurs et qui permet donc d'y jouer à partir de leurs données.
Jeux natifs
Jeux natifs entièrement libres
- SuperTux n'est pas officiellement disponible pour Nintendo Switch, du moins au moins jusqu'en avril 2024 compris. Cependant, une personne sous le pseudonyme de headshot2017 propose un portage pour cette plateforme.
- SuperTuxKart est un jeu dans le même genre que Mario Kart.
- OpenTTD est un jeu de gestion et planification urbanistique dans le but est de faire de la thune en transport des gens et des marchandises. rsn8887 en propose un port pour Nintendo Switch.
- 2048 est un petit jeu simple et efficace où il faut faire glisser des tuiles sur une grille pour combiner les tuiles de mêmes valeurs et aller ainsi jusqu'à créer une tuile portant le nombre 2048. FlagBrew en propose un port pour Nintendo Switch
- Enigma est un jeu de réflexion en 2D inspiré d'Oxyd. rsn8887 en propose un port pour Nintendo Switch.
Jeux natifs au moins au code source libre
- Super Mario War est un jeu 2D de combat dans l'univers de Mario, ce qui fait que sa légalité est douteuse (mais en droit nord-américain, c'est peut-être couvert par le fair use) tant que les éléments hors code qu'il utilise ne passent pas dans le domaine public. supermariowar-nx en est un pour le système de base de la Nintendo Switch.
- Taisei est un bullet hell qui s'inscrit dans la série Touhou.
- BomberManNX est un clone 2D d'une célèbre licence commerciale. Son code source est libre, mais son nom, ses graphisme et sons ne le sont en revanche pas forcément.
- MarioBrosNX est un clone du célèbre Super Mario Bros sur NES (ou Famicon au Japon). Son code source est libre, mais la marque utilisée appartient à Nintendo, comme les graphismes et les sons.
Aide pour jeux
Aide pour jeux Zelda
- BotW Unexplored montre sur la carte du monde de Zelda Breath of the Wild ce qu'il vous reste à y trouver depuis la sauvegarde sur votre dérivé du système d'exploitation Horizon de Nintendo (probablement Atmosphere).
- TotK Unexplored montre sur la carte du monde de Zelda Tears of the Kingdom ce qu'il vous reste à y trouver depuis la sauvegarde sur votre dérivé du système d'exploitation Horizon de Nintendo (probablement Atmosphere).
Périphèriques
Usage de périphèriques sur Nintendo Switch
Usage de manettes sur Nintendo Switch
Le système de base de la Nintendo Switch gère déjà des manettes. Mais vous pourriez en avoir une ou plusieurs qui n'est ou ne sont malheureusement pas gérée(s). Cependant un logiciel à installer pourrait ajouter la gestion de votre ou vos manette(s) non-gérée(s) de base.
- sys-con permet d'utiliser via USB des manettes non-gérées de base. Sa version 0.6.4 du 23 septembre 2021, qui est la dernière en avril 2024, cesserait de fonctionner à partir de la version 18 du système de base.
- Mission Control permet d'utiliser via Bluetooth (donc sans fil) des manettes non-gérées de base.
Usage de la Nintendo Switch comme périphèrique
Usage de la Nintendo Switch comme manette
- Hekate, qui se charge par RCM (ReCovery Mode), donc avant le système sur la mémoire interne de la console ou l'éventuel système sur l'éventuelle carte microSD, permet de transformer la Nintendo Switch en manette USB à condition qui soit connectée 2 joy-cons.
- SwitchXBOXController permet de transformer sa Nintendo Switch en manette de type Xbox pour le système privateur Windows. Mais le client peut peut-être tourné via WINE et le cas échéant il devrait être possible d'en faire un pour GNU/Linux, *BSD, etc.
Divers
- Hekate, qui se charge par RCM (ReCovery Mode), donc avant le système sur la mémoire interne de la console ou l'éventuel système sur l'éventuelle carte microSD, permet de transformer la Nintendo Switch en lecteur de carte microSD par USB.
Émulation de la Nintendo Switch
- yuzu était un émulateur libre pour Nintendo Switch. Il fonctionne au moins sur GNU/Linux (Trisquel, PureOS, Hyperbola, Debian, etc.), ainsi que Microsoft Windows et Apple macOS que nous vous déconseillons tous 2 fortement car c'est du logiciel privateur.
- Ryujinx est un émulateur libre pour Nintendo Switch. Toutefois, il nécessite le SDK .NET de Microsoft, qui est lui probablement privateur (peut-être pas son code source, mais les binaires pourraient ne pas correspondre et la compilation est probablement ardue) à contrario de Mono, donc nous recommandons yuzu. Il fonctionne au moins sur GNU/Linux (Trisquel, PureOS, Hyperbola, Debian, etc.), ainsi que Microsoft Windows et Apple macOS que nous vous déconseillons tous 2 fortement car c'est du logiciel privateur.
Programmation pour la Nintendo Switch
- devkitPro est un projet qui fournit des compilateurs C et C++ pour des ordinateurs pensés en tant que console (dont la GBA, la première DS, la 2DS/3DS, la GameCube, la Wii 1 et la Wii U). Pour la Nintendo Switch, la suite de compilateurs se nomme devkitA64, car c'est pour de l'ARM 64 bits (à différencier de devkitARM qui est pour l'ARM 32 bits et qui gère donc les précédentes consoles portables de Nintendo jusqu'à la GBA incluse).
-
libnx
est une bibliothèque pour intéragir avec ce que propose la Nintendo Switch et son système d'exploitation de base (dit Horizon). -
Il y a des exemples de code
pour l'utilisation conjointe
de
libnx
avec compilation via devkitA64 et (le standard POSIX)make
. -
Pour pouvoir accéder en jeu à des modules systèmes
sans devoir repasser directement par le système,
une surcouche pour menus a été développée :
Tesla.
Pour programmer pour cette interface, il y a
libtesla
. De plus, signalons qu'il y a un code modèle pour l'utilisation. - deko3d est une bibliothèque qui vise à permettre de tirer le maximum de la carte graphique de la Nintendo Switch. Il est possible d'utiliser OpenGL sur le système de la Nintendo Switch, ce qui est très bien pour la portabilité, mais son abstraction forte fait qu'on ne peut exploiter à son plein potentiel le matériel. Dans le monde de l'abstraction pour cartes graphiques, il y a maintenant également une couche d'abstraction générique qui est plus bas niveau et qui peut donc permettre d'exploiter mieux les ressources (Vulkan), mais encore une fois (quoi que dans une moindre mesure) moins que deko3d.