Avoir un serveur local de jeux Switch grâce à Tinfoil-Hat !

Contexte

Lorsque nous avons une Switch crackée, il est possible de télécharger des jeux gratuitement et d’y jouer comme bon nous semble.
Pour ça, on utilise généralement « Tinfoil ».

Il y a plusieurs façons d’avoir les jeux, soit en passant par le serveur d’une personne qui les mets à disposition, soit en les installant nous même en passant par certains sites de téléchargement.

Dans le premier cas, le serveur en question n’a pas forcément les jeux que l’on veut et ce n’est pas sûr au sens où le serveur en question peut fermer, on perd donc l’accès.
Dans le second cas, une fois que nous avons les jeux, il y a plusieurs méthodes pour les mettres sur la Switch.

La première méthode, c’est celle de brancher la switch à l’ordinateur qui possède le jeu. Ça fonctione, mais ça peut être assez relou de faire des allez retour vers le PC à chaque fois et puis.. si vous n’êtes pas chez vous, vous ne pouvez pas. Sans parler du fait qu’après avoir mis le jeu sur la Switch, il faut passer par Awoo Installer par exemple pour qu’il soit utilisable.
La seconde méthode, c’est par le Wifi. Il y a par exemple ns-usbloader qui permet de créer un serveur sur votre ordinateur pour rendre accessible vos jeux sur le réseau, il n’y a plus qu’à se connecter dessus pour y accéder.

Voici le lien vers le quel vous pouvez le télécharger facilement sur votre ordinateur :
https://github.com/developersu/ns-usbloader/releases

Problème

Le « problème » avec la méthode par Wifi dont je viens de parler, c’est qu’il faut laisser le serveur allumé pour que ça fonctionne, ce qui est normal.
Le plus pratique, ce serait de mettre ce serveur sur un serveur qui reste allumé H24, un NAS par exemple et non pas forcément sur l’ordinateur que l’on utilise.
L’avantage de passer par un NAS à la place de son PC, c’est qu’en plus que les jeux soient toujours accessibles, c’est relativement simple de le configuré pour le rendre accessible sur internet en toute sécurité. Non pas pour donner les jeux au reste du monde (qui est illégal bien que l’article en lui même ne respire de toute façon pas forcément la légalité non plus…), mais simplement pour pouvoir accéder à vos jeux même en dehors de chez vous.

Quand je déploie un outil sur mon NAS, j’aime passer par Docker. Ça simplifie le déploiement et c’est plus fiable que de simplement installer l’outil directement sur la machine.

Problème, ns-usbloader n’a pas été développé pour fonctionner comme ça. Il a bien une alternative, NUT ou sons équivalent, un fork de NUT qui possède une interface web, sa propre image Docker prète à l’emploi et une doc relativement complète. NUT est d’ailleurs conseillé par Tinfoil.

Mais… L’interface est assez viellote, je l’ai peut-être mal utilisé mais ça ne fonctionnait pas très bien pour moi et… j’ai trouvé LE projet.

Solution

Je suis tombé par hasard sur le projet tinfoil-hat, un projet ultra optimisé, selon le README du repo Github, il ne consomme que 57Mo de RAM par rapport à NUT qui en consomme 1.5Go..

De plus, il offre de meilleurs fonctionnalités, pour le fork de NUT par exemple, il faut initialiser une écoute du dossier où les jeux sont stocker pour mettre à jour la liste des jeux toutes les 30 secondes par exemple.
Tinfoil-hat rafraîchis quand à lui la liste dès qu’un jeu est ajouté au dossier.

Aussi, Tinfoil-hat peut gérer la connexion de plusieurs utilisateurs et gère aussi la possibilité de faire des sauvegardes automatiques de la progression en jeu.
Il a été développé en Node.JS, un outil pour faire des serveurs web donc facile à déployer sur Docker et.. il a lui aussi sa propre image Docker sans parler du Readme qui est relativement détaillé lui aussi.. que demander de plus !
Dans cet article, je ne vais pas parler de la gestion des sauvegardes.

Vous avez un exemple de docker-compose.yml donné dans le Readme du projet, je vous conseille d’aller regarder.

Je vous donne ici un exemple basique de docker-compose.yml à utiliser qui fait très bien le café :

version: "3"
services:
  tinfoil-hat:
    container_name: tinfoil-hat
    build: .
    image: vinicioslc/tinfoil-hat:latest
    environment:
      - DEBUG=*
      - AUTH_USERS=tinfoiler:password,othertinfoiler:otherpassword
      - UNAUTHORIZED_MSG='No tricks and treats for you!!'
      - WELCOME_MSG='The Server Just Works!!'
      - NX_PORTS=5000 # ftp port used to sync saves

    ports:
      # Change to any port of your machine (99 in that case) (dont change the :80 !!!)
      - 99:80
      # you can now access on your browser http://localhost:99/shop.json and see your games
    volumes:
      - ./switch/games/:/games/

AUTH_USERS : Comme vous pouvez le voir dans « environment », c’est ici que vous pouvez mettre les différents comptes utilisateurs, utilisateur:mot_de_passe séparer par des virgules pour chaques comptes.
Si vous garder le docker-compose.yml que je vous ai donné, pour vous connecter ce sera donc « tinfoiler » pour l’utilisateur et « password » pour le mot de passe.

ports : C’est ici que vous pouvez spécifier le port HTTP que vous voulez utiliser pour votre serveur.
Vous pouvez très bien remplacer le « 99:80 » par « 9200:80 » par exemple, votre serveur sera donc accessible sur « 192.168.x.x:9200 » et non « 192.168.x.x:99 » par exemple.
La liste de vos jeux seront accessible en « 192.168.x.x:votre_port/shop.json ».
C’est donc le chemin que vous devrez donner sur votre Switch pour accéder à votre serveur.
Bien évidemment, il faut remplacer « 192.168.x.x » par l’ip de votre machine.

volumes : C’est ce qui permet à votre conteneur Docker d’accéder aux jeux stocker sur votre machine.
Si vous voulez stocker vos jeux sur un endroit spécifique de votre machine, il faut simplement modifier le chemin « ./switch/games/ » par le chemin que vous voulez sur votre appareil.

Dans cet article, je ne parlerais pas de comment rendre accessible sur internet le serveur de jeu, ni comment rendre la connexion HTTP en HTTPS.
Si c’est quelque chose qui vous intéresse, vous devriez vous intéresser aux « reverse proxys », avec des outils comme SWAG, Nginx Proxy Manager ou Traefik par exemple (il en existe d’autres).

Maintenant que le serveur est lancé et que vous avez vos jeux, voici comment accéder à votre serveur sur la Switch via Tinfoil !

Étape 1

Allez dans « File Browser » sur Tinefoil et appuyez sur la touche -.

Étape 2

Entrez les différentes informations que vous avez configuré précédemment dans le « docker-compose.yml ».
Puis appuyez sur X pour sauvegarder.

J’ai caché mon Host et mon Port bien que ce ne soit pas ultra important dans ce cas en terme de sécurité, mais je préfère quand même.

Étape 3

Plus qu’à entrer sur votre serveur en appuyant sur A !

Bon jeu !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *