
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 met à disposition, soit en les installant nous-mêmes 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 mettre sur la Switch.
La première méthode, c’est celle de brancher la switch à l’ordinateur qui possède le jeu. Ça fonctionne, mais ça peut être assez relou de faire des allers-retours 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 accessibles vos jeux sur le réseau, il n’y a plus qu’à se connecter dessus pour y accéder.
Voici le lien vers lequel 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 du fait que les jeux soient toujours accessibles, c’est relativement simple de le configurer 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 y a bien une alternative, NUT ou son é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 vieillotte, je l’ai peut-être mal utilisée 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 57 Mo de RAM par rapport à NUT qui en consomme 1,5 Go…
De plus, il offre de meilleures fonctionnalités, pour le fork de NUT par exemple, il faut initialiser une écoute du dossier où les jeux sont stockés pour mettre à jour la liste des jeux toutes les 30 secondes par exemple.
Tinfoil-hat rafraîchit quant à 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éparés par des virgules pour chaque compte.
Si vous gardez 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 sera 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 stockés 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 parlerai 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 Tinfoil et appuyez sur la touche -.
Étape 2

Entrez les différentes informations que vous avez configurées 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 termes 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 !
