Sono un appassionato di gaming. In effetti lo sono sempre stato. Ricordo già da piccolo l'attesa, quando mia madre mi faceva giocare soltanto un'ora a settimana, il sabato, alla mia console.

Sono passati molti anni, e ormai mia madre non può più darmi limiti sul tempo di gioco. Sono costretto a darmeli da solo, e non sempre ci riesco.

Sorvolando sulle ore che dedico alle console questo piccolo portfolio parlerà più che altro della passione che dedico alla scena hack delle console, più precisamente quella di Nintendo Switch che reputo una delle console più divertenti.

Dopo circa un anno dal suo rilascio ormai la Switch era già stata hackerata completamente fino a farci girare anche giochi non firmati. Un record mondiale. Non dei migliori ma comunque un record.

Fatto sta che tutti i tools per installare homebrew (parti di software sviluppati da sviluppatori indipendenti e nella maggior parte delle volte rilasciati al pubblico gratuitamente) richiedevano di rimuovere la micro SD dalla Switch, inserirla nel proprio PC (o come nel mio caso nel Mac, causando altri problemi), trasferire l'homebrew e dopodiché reinserire la micro SD nella Switch e riaccenderla tramite uno dei molti metodi del fusee gelee.

Questa procedura per me è estenuante, non uso quasi mai il Mac quando sono a casa. Ho una gatta che monta sopra qualsiasi cosa e finché non la tolgo non smette, quindi tirare fuori il mac, collegare l'adattatore per la micro SD (etc etc) diventa noioso. Potrei chiudere il gatto in una scatola per farlo diventare come quello di Schrödinger ma ho preferito sviluppare una piccola web app in React per creare un JSON supportato da Tinfoil (un homebrew installer famoso su Switch) per poter installare homebrew da remoto, ad esempio caricandoli su Google Drive.

Qui nasce Tinson 🤖

Inizialmente nato come un progetto in PHP con il front-end fatto con Materialize, si è evoluto dopo qualche mese in una web app fatta in React e Node.

L'evoluzione è stata naturale, la versione PHP aveva bisogno di essere installata in un server che lo supportasse da ogni utente che volesse utilizzarla.

Il mio obiettivo principale era rilasciare qualcosa che potesse essere utilizzata da tutti, ero convinto che potesse essere utile e quindi non volevo subito piazzare un muro del genere solo per iniziare a utilizzarla.

Così ho pensato di creare una vera e propria web app con React (front-end), Node (back-end), Express e MongoDB (database) gestito tramite Mongoose.
Autenticazione e sessione dell'utente gestito tramite JWT.
Il tutto hostato gratuitamente sulla super piattaforma: Heroku.

Il funzionamento del software

è molto semplice. Tinfoil ha bisogno di un file JSON ben preciso da elaborare.

Esempio di come è strutturato un JSON da passare a Tinfoil.

Creazione di un utente

Durante la creazione dell'utente viene creato un entry su MongoDB con:

  1. Nome utente
  2. Password criptata
  3. ID univoco dell'utente (generato automaticamente da MongoDB)

L'utente può quindi loggarsi successivamente e ripescare tutta la lista dei files caricati.

Dashboard

Nella dashboard l'utente può scegliere se caricare un singolo link oppure direttamente un'intera cartella di Google Drive.
Oltre questo l'utente può impostarsi anche il messaggio di benvenuto, anche se, per evitare problemi imposto sempre obbligatoriamente il messaggio di avviso contro la pirateria (uno strano doppio senso).

Collegamento con la Nintendo Switch

Nella dashboard viene subito stampato a schermo un link composto dalla versione delle API corrente e dopo l'id univoco dell'utente.

Ad esempio tinson.herokuapp.com/v1/ID_UNIVOCO_UTENTE

Basterà quindi copiare questo link su Tinfoil per visualizzare tutti gli homebrew sulla propria Nintendo Switch.

In seguito ad ogni aggiornamento della lista su Tinson verrà automaticamente aggiornata anche su Tinfoil senza dover reinserire l'url precedente.

È possibile replicare una propria istanza di Tinson senza alcun problema clonando la repository da Github per poi effettuare un push sul vostro account Heroku. Su Github trovate istruzioni più chiare su come farlo.

Nel frattempo vi lascio comunque il link da cui poter utilizzare la mia versione attualmente online.

🤖 Tinson - Heroku

Inserisco di seguito i link in cui parlano online di Tinson, per poter leggere pareri di altre persone del settore.

🔗 Gbatemp - Tinson A Website for install NSP directly on Switch with Tinfoil
🔗 r/SwitchHaxing - I developed a tool for create your own /hbg/ Shop
🔗 Github - A Tinfoil Title manager made with Node (and love)