Retrom è un semplice servizio di gestione centralizzata delle librerie di giochi che consente di ospitare i propri giochi su un singolo dispositivo e di connettere i client su un numero qualsiasi di altri dispositivi per (dis)installare/scaricare e successivamente lanciare i giochi in locale.
Il programma permette di scaricare automaticamente i metadati e le copertine dei giochi da fornitori supportati, con la possibilità di modificarli manualmente.
Si possono collegare vari client a Retrom per gestire, installare e giocare ai giochi da qualsiasi dispositivo, senza occupare spazio sul disco locale.
Il client desktop è disponibile per PC Windows, MacOS e Linux, mentre il client web funziona su qualsiasi browser moderno. Retrom supporta diversi emulatori, permettendo di configurare profili di lancio specifici per ciascun emulatore.
Le prossime funzionalità in programma includono autenticazione utente, una modalità standalone, supporto per salvataggi nel cloud e profili preconfigurati per emulatori popolari.
Caratteristiche principali
- Permette di ospitare un servizio di libreria di giochi in cloud personalizzato.
- Scansiona il filesystem per rilevare giochi e piattaforme, aggiungendoli automaticamente alla libreria.
- Consente di installare, disinstallare e giocare ai titoli su un numero illimitato di client desktop.
- Supporta Windows, MacOS e Linux.
- Offre accesso alla libreria da qualsiasi luogo tramite il client web.
- Gestisce i profili degli emulatori per ciascun client, con le configurazioni archiviate sul server, facilitando la condivisione tra dispositivi o il ripristino dopo una reinstallazione.
- Permette di avviare i giochi su diversi emulatori o piattaforme attraverso profili preconfigurati da un’unica interfaccia.
- Scarica automaticamente metadati e copertine dai fornitori supportati per presentare la libreria in modo elegante.
Roadmap
- Funzionalità di base del server:
- Scansione del filesystem per rilevare gli elementi della libreria.
- Aggiunta e rimozione di elementi dalla libreria.
- Modifica degli elementi della libreria.
- Download di metadati:
- Integrazione del fornitore IGDB.
- Integrazione del fornitore SteamGridDB.
- Integrazione del fornitore GamesDB (TGDB).
- Supporto per salvataggi nel cloud di giochi, stati e NAND degli emulatori.
- Autenticazione (multi-)utente.
- Pubblicazione dei binari del server come alternativa a Docker.
- Funzionalità di base del client:
- Visualizzazione degli elementi della libreria.
- Modifica dei metadati e delle opere d’arte della libreria.
- Attivazione dei lavori di aggiornamento della libreria.
- Scansione del filesystem per nuove voci.
- Download e aggiornamento dei metadati per nuove voci.
- Gestione dei file di gioco:
- Rinomina.
- Elimina.
- Imposta come predefiniti per il lancio tramite emulatori.
- Visualizzazione a griglia, in alternativa alla visualizzazione a lista predefinita.
- Modalità fullscreen con supporto per controller.
- Funzionalità del client web (browser), in aggiunta alle funzionalità di base:
- Download di giochi.
- Funzionalità del client desktop, in aggiunta alle funzionalità di base:
- Installazione e disinstallazione di giochi.
- Configurazione degli emulatori disponibili localmente.
- Configurazione di più profili per emulatori.
- Impostazione di profili predefiniti per piattaforma.
- Lancio di giochi.
- Profili di emulatori integrati per emulatori popolari.
Installazione
Suggerimento: Dopo l’installazione, è consigliato consultare la guida di avvio rapido per iniziare rapidamente.
Attenzione: Retrom è progettato senza misure di sicurezza specifiche. Si raccomanda di utilizzare Retrom solo su una rete locale. Se si desidera esporre Retrom a Internet, è opportuno farlo dietro un reverse proxy con misure di sicurezza adeguate. Non è prevista l’implementazione di questa funzionalità in Retrom stesso, poiché ci sono molte variabili da considerare quando si ospita un servizio, e non esiste una soluzione universale.
Preparazione
Retrom richiede che la libreria di giochi sia organizzata in un modo specifico. Ogni gioco dovrebbe essere rappresentato da una cartella contenente i file del gioco (anche per giochi o piattaforme con un solo file).
Ogni gioco dovrebbe essere contenuto in una cartella che rappresenta la piattaforma su cui viene giocato, e le cartelle delle piattaforme devono trovarsi nella radice della directory della libreria.
library/
game_guy/
plumber_dude/
plumber_dude.gg
plumber_dude_2/
plumber_dude_2_part_1.gg
plumber_dude_2_part_2.gg
game_guy_advance/
plumber_dude_world/
plumber_dude_world.gga
plumber_dude_and_plumber_dudes_brother/
plumber_dude_and_plumber_dudes_brother.gga
Fornitori di metadati
Retrom utilizza fornitori di metadati per scaricare le informazioni sui giochi. Attualmente, l’unico fornitore supportato è IGDB, ma è prevista l’integrazione di ulteriori fornitori.
IGDB
Per utilizzare il fornitore di metadati IGDB, è necessario creare un account sul sito IGDB e registrare una nuova applicazione per ottenere l’ID cliente e il segreto. Le istruzioni possono essere trovate sul sito.
Server
Requisiti
- Docker.
- Docker Compose (opzionale, ma consigliato).
- Un database PostgreSQL (può utilizzare l’esempio fornito).
- Una libreria di giochi organizzata in un modo comprensibile da Retrom.
- Chiavi API per i fornitori di metadati.
Docker (Consigliato)
Il modo consigliato per eseguire il server è tramite Docker, idealmente con Docker Compose.
Un esempio di file docker-compose.yml
aiuterà a iniziare:
retrom: image: ghcr.io/jmberesford/retrom-service:latest ports: - 5101:5101 environment: # IGDB API information, see the metadata-providers section above for more info IGDB_CLIENT_ID: ${IGDB_CLIENT_ID} IGDB_CLIENT_SECRET: ${IGDB_CLIENT_SECRET} # using the below example postgres container DATABASE_URL: postgres://minecraft_steve:super_secret_password@retrom-db/retrom # or, bring your own database: # DATABASE_URL: postgres://{db_user}:{db_password}@{db_host}/{db_name} volumes: - /path/to/library:/app/library # OPTIONAL: spin up a postgres container to use as the database. Or, # you can use your own postgres instance by setting DATABASE_URL above # # read the docs here: https://hub.docker.com/_/postgres retrom-db: container_name: retrom-db hostname: retrom-db image: postgres:16 restart: unless-stopped volumes: # to store the DB data on the host - /path/to/pg_data:/var/lib/postgresql/data environment: POSTGRES_USER: minecraft_steve # db user, used to connect to the db POSTGRES_PASSWORD: super_secret_password # db password for above user POSTGRES_DB: retrom # db name
Client
Client desktop
Per utilizzare il Client desktop è sufficiente scaricare l’eseguibile. Il client è disponibile per PC Windows, MacOS (sia per chip Intel che M) e Linux.
Occasionalmente, potrebbero essere presenti build di debug. In tal caso è consigliabile preferire le build non di debug, a meno che non si riceva indicazione di utilizzare una build di debug per motivi di risoluzione dei problemi.
Ci sarà sempre una versione non di debug per ogni release, basta cercare un file con lo stesso nome senza il suffisso -debug
.
Ecco come distinguere le diverse versioni:
*-setup.exe
sono per Windows (è consigliabile preferire questa versione rispetto a.msi
).*.msi
sono per Windows (preferire la versione.exe
).*-x64.dmg
sono per MacOS su chip Intel.*-aarch64.dmg
sono per MacOS su chip M.*-x64.AppImage
sono per Linux.*-x64.deb
sono per Linux (distro basate su Debian).*-x64.rpm
sono per Linux (distro basate su Red Hat).
Client web
Ci sono piani per bundlare il client web insieme al servizio in un unico container in futuro, per facilitare l’uso. Il client web è attualmente disponibile solo come container Docker. Può essere eseguito con il seguente esempio di file docker-compose.yml
:
retrom-web: image: ghcr.io/jmberesford/retrom-web:latest container_name: retrom-web hostname: retrom-web ports: - 3000:3000 environment: RETROM_HOST: http://retrom:5101 # the URL of your Retrom server
Changelog
Correzioni
- Corretto il parsing degli argomenti personalizzati.
- Corretta la larghezza del modulo del profilo dell’emulatore.
Download: retrom v0.0.80
Fonte: reddit.com