Un service centralisé de gestion de ludothèque/collection axé sur l’émulation. Configurez une fois, jouez n'importe où.
Avertissement
EN DÉVELOPPEMENT LOURD : attendez-vous à des changements fréquents, mettez à jour votre installation avec soin.
Retrom est un service centralisé de gestion de bibliothèque de jeux qui vous permet d'héberger vos jeux sur un seul appareil et de connecter des clients sur n'importe quel nombre d'autres appareils pour (dés)installer/télécharger et ensuite lancer lesdits jeux localement.
Rétro
Préparation
Serveur
Client
IGDB
Jeux multi-fichiers (recommandé)
Jeux à fichier unique
Structure de la bibliothèque
Fournisseurs de métadonnées
Docker (recommandé)
Client de bureau
Client Web
Aperçu
Fonctionnalités principales
Captures d'écran et enregistrements
Feuille de route
Installation
Hébergez votre propre service de bibliothèque de jeux cloud
Analysez votre système de fichiers à la recherche de jeux/plateformes et ajoutez-les automatiquement à votre bibliothèque
Installez/désinstallez et jouez à des jeux du service sur n'importe quel nombre de clients de bureau.
Prise en charge de Windows, MacOS et Linux !
Accédez à votre bibliothèque de n'importe où avec le client Web.
Gérez les profils d'émulateur client par client, stockés sur le serveur pour partager facilement les configurations entre les appareils ou les restaurer après une réinstallation.
Lancez tous vos jeux sur n'importe quel nombre d'émulateurs ou de plates-formes via vos profils préconfigurés à partir d'une seule interface de bibliothèque.
Téléchargez automatiquement les métadonnées de jeu et les illustrations des fournisseurs pris en charge pour présenter votre bibliothèque avec style !
Écran d'accueil
Vue du jeu
Fonctionnalité de base du serveur
Fournisseur IGDB
Fournisseur SteamGridDB
Le fournisseur GamesDB (TGDB)
Analyser le système de fichiers pour les éléments de bibliothèque
Ajouter/supprimer des éléments de bibliothèque
Modifier les éléments de la bibliothèque
Télécharger les métadonnées
Sauvegarder des jeux/états/émulateurs NAND dans le cloud
Authentification (multi-)utilisateur
Publier les binaires du serveur, comme alternative à Docker
Fonctionnalité client de base
rebaptiser
supprimer
définir par défaut (pour le lancement via des émulateurs)
Analyser le système de fichiers pour de nouvelles entrées
Télécharger/mettre à jour les métadonnées pour les nouvelles entrées
Afficher les éléments de la bibliothèque
Modifier les métadonnées et les illustrations de la bibliothèque
Déclencher des tâches de mise à jour de la bibliothèque
Gérer les fichiers du jeu
Vue grille (par opposition à la vue liste par défaut)
Mode plein écran + prise en charge du contrôleur
Fonctionnalité client Web (navigateur) (en plus des fonctionnalités de base)
Télécharger des jeux
Fonctionnalité client de bureau (en plus de la fonctionnalité de base)
Installer/désinstaller des jeux
Configurer les émulateurs disponibles localement
Configurer plusieurs profils par émulateur
Définir des profils par défaut par plateforme
Lancer des jeux
Profils d'émulateur intégrés pour les émulateurs populaires
Conseil
Après l'installation, assurez-vous de consulter le guide de démarrage rapide pour être opérationnel rapidement.
Prudence
Retrom est conçu sans aucune mesure de sécurité spécifique. Il est fortement recommandé d'exécuter Retrom sur un réseau local uniquement, à moins que vous ne sachiez ce que vous faites. Si vous souhaitez exposer Retrom à Internet, vous devez le faire derrière un proxy inverse avec des mesures de sécurité appropriées en place . Il ne s'agit pas d'une fonctionnalité dont l'implémentation est prévue dans Retrom lui-même, car il existe de nombreuses variables à prendre en compte lors de l'hébergement de quelque chose et il n'existe pas de solution universelle.
Retrom prend actuellement en charge les bibliothèques avec les structures suivantes :
Chaque jeu doit être représenté par un répertoire contenant les fichiers du jeu (même pour les jeux/plateformes à fichier unique). De la même manière, chaque jeu doit être contenu dans un répertoire représentant la plate-forme sur laquelle il est joué, et les répertoires de plate-forme doivent se trouver à la racine du répertoire de votre library
.
Exemple:
Supposons que vous ayez les jeux :
Mec plombier
Plombier Mec 2
Pour la plateforme Game Guy, et les jeux :
Monde des plombiers
Mec plombier et frère du mec plombier
Pour la plateforme Game Guy Advance. Votre bibliothèque devrait ressembler à ceci :
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
Plutôt que chaque jeu soit représenté par un répertoire, vous pouvez avoir une bibliothèque dans laquelle chaque jeu est simplement un seul fichier dans le répertoire de la plateforme respective.
Exemple:
Supposons les mêmes jeux et plates-formes que dans l'exemple des jeux multi-fichiers. Votre bibliothèque devrait ressembler à ceci :
library/
game_guy/
plumber_dude.gg
plumber_dude_2.gg
game_guy_advance/
plumber_dude_world.gga
plumber_dude_and_plumber_dudes_brother.gga
Retrom utilise des fournisseurs de métadonnées pour télécharger les métadonnées de vos jeux. Actuellement, le seul fournisseur pris en charge est IGDB. La prise en charge d’un plus grand nombre de fournisseurs est prévue.
Pour utiliser le fournisseur de métadonnées IGDB, vous devrez créer un compte sur le site Web IGDB et créer une nouvelle application pour obtenir votre identifiant client et votre secret. Vous pouvez le faire en suivant les instructions ici.
Note
Exigences
Docker
Docker Compose (facultatif, mais recommandé)
Une base de données PostgreSQL (peut éventuellement utiliser l'exemple fourni ci-dessous)
Une ludothèque organisée de manière à ce que Retrom puisse comprendre
Clés API pour les fournisseurs de métadonnées
Le serveur est configuré via un fichier de configuration. Voici un exemple de fichier de configuration :
Conseil
Vous pouvez remplacer le db_url
par votre propre URL de base de données
Prudence
Le path
dans content_directories
doit être le chemin à l'intérieur du conteneur . Si vous utilisez Docker, vous devez monter les répertoires de votre bibliothèque sur ces chemins. Consultez la section Docker pour plus d'informations.
{ "connection": {"port": 5101,"db_url": "postgres://minecraft_steve:super_secret_password@retrom-db/retrom" }, "content_directories": [ { "path": "chemin/vers/ma/bibliothèque/", "storage_type": "MultiFileGame"}, { "path": "path/to/my/library/with/single_file_games/", "storage_type": "SingleFileGame"} ], "igdb": {"client_secret": "super_secret_client_secret!!!1", "client_id": "my_IGDB_ID_1234" } }
La méthode actuellement recommandée pour exécuter le serveur est via Docker, idéalement avec docker compose
.
Conseil
Si vous n'êtes pas familier avec Docker Compose, vous pouvez lire la documentation ici.
Ajustons l'exemple config.json
ci-dessus pour notre conteneur Docker et sauvegardons-le dans un endroit sûr. Dans cet exemple, nous supposerons qu'il est enregistré dans /home/minecraft_steve/config_dir/config.json
. Notez que nous avons besoin d'un répertoire de configuration à monter dans le conteneur, pas seulement du fichier lui-même.
Supposons également que nous ayons des bibliothèques sur /home/minecraft_steve/library1/
et sur /home/minecraft_steve/library2/
.
Voici l'exemple de fichier de configuration :
{ "connection": {"port": 5101,"db_url": "postgres://minecraft_steve:super_secret_password@retrom-db/retrom" }, "content_directories": [ { "path": "/library1", "storage_type": "MultiFileGame"}, { "chemin": "/library2", "storage_type": "SingleFileGame"} ], "igdb": {"client_secret": "super_secret_client_secret!!!1", "client_id": "my_IGDB_ID_1234" } }
Ensuite, cet exemple de fichier docker-compose.yml
vous aidera à démarrer :
services : retrom:image: ghcr.io/jmberesford/retrom-service:latestports : - 5101:5101 - 3000:3000 # pour accéder aux volumes du client web : - /home/minecraft_steve/config_dir:/config/ # répertoire contenant votre fichier de configuration - /home/minecraft_steve/library1:/library1 # répertoire contenant votre première bibliothèque - /home/minecraft_steve/library2:/library2 # répertoire contenant votre deuxième bibliothèque # FACULTATIF : lancez un conteneur Postgres à utiliser comme base de données, si vous # Je n'en ai pas déjà un. # # lisez la documentation ici : https://hub.docker.com/_/postgres retrom-db:container_name: retrom-dbhostname: retrom-db # cela doit correspondre à l'url_db dans votre image de fichier de configuration : postgres:16restart : à moins que-stoppedvolumes : # pour stocker les données de base de données sur l'hôte, remplacez ce chemin par le répertoire de votre choix - /home/minecraft_steve/retrom_data/:/var/lib/postgresql/dataenvironment : POSTGRES_USER : minecraft_steve # L'utilisateur de la base de données, utilisé pour se connecter à la base de données, doit correspondre au db_user dans votre fichier de configuration POSTGRES_PASSWORD : super_secret_password # Le mot de passe de la base de données pour l'utilisateur ci-dessus doit correspondre au db_password dans votre fichier de configuration POSTGRES_DB : retrom # Le nom de la base de données, doit correspondre au nom de la base de données dans ton fichier de configuration
Vous pouvez ensuite exécuter docker-compose up
dans le répertoire contenant votre fichier docker-compose.yml
pour démarrer le service.
Le client Web sera accessible sur le port 3000 et le service lui-même sur le port 5101, accessible à tous les clients de bureau.
Le Service Retrom est également disponible via Cargo. L'installation via cargo construira le binaire sur votre système, vous devrez donc installer la chaîne d'outils Rust.
Il est suggéré d'utiliser rustup pour installer la chaîne d'outils Rust. Vous devrez également vous assurer que certaines dépendances sont installées sur votre système :
libssl-dev
(ou équivalent pour votre système)
libpq-dev
(ou équivalent pour votre système)
Prudence
Vous ne trouverez pas de support pour ces dépendances dans ce guide, car elles sont spécifiques au système. Veuillez vous référer au gestionnaire de packages de votre système ou à Internet pour obtenir de l'aide sur l'installation de ces dépendances. Si vous ne savez pas comment installer ces dépendances, vous devez plutôt utiliser la méthode Docker.
Si les pré-requis sont remplis, vous pouvez installer Retrom via Cargo avec la commande suivante :
cargo installer retrom-service
Vous pouvez ensuite exécuter le service avec la commande suivante :
RETROM_CONFIG=/path/to/your/config.json retrom-service
Rendez-vous simplement sur la page des versions et téléchargez la dernière version pour votre plate-forme. Le client est disponible pour Windows, MacOS (puces Intel et série M) et Linux.
Parfois, des versions de débogage peuvent être présentes dans une version. Vous devriez généralement préférer les versions sans débogage, à moins qu'un développeur ne vous ait demandé d'utiliser une version de débogage à des fins de débogage. Il y aura toujours une version sans débogage d'une version donnée, recherchez simplement un fichier portant le même nom sans le suffixe -debug
.
Les éléments suivants peuvent vous aider à différencier les différentes versions :
*-setup.exe
sont pour Windows (préférez-le à la version .msi, sauf si vous avez de bonnes raisons de ne pas le faire)
*.msi
sont pour Windows (préférez la version .exe à celle-ci)
*-x64.dmg
sont destinés à MacOS sur puces Intel
Les fichiers *-aarch64.dmg
sont destinés à MacOS sur les puces de la série M.
*-x64.AppImage
les fichiers sont pour Linux
*-x64.deb
sont pour Linux (distributions basées sur Debian)
*-x64.rpm
sont pour Linux (distributions basées sur Red Hat)
Avertissement
L'image du client Web est obsolète. Utilisez plutôt le client Web fourni avec l’image de service.