Un servicio centralizado de gestión de colecciones/biblioteca de juegos centrado en la emulación. Configura una vez, juega en cualquier lugar.
Advertencia
BAJO DESARROLLO PESADO: Espere cambios importantes con frecuencia, actualice su instalación con cuidado.
Retrom es un servicio de administración de biblioteca de juegos centralizado que le permite alojar sus juegos en un solo dispositivo y conectar clientes en cualquier cantidad de otros dispositivos para (des)instalar/descargar y posteriormente iniciar dichos juegos localmente.
Pantalla de inicio
Vista de juego
Consejo
Después de la instalación, asegúrese de consultar la guía de inicio rápido para comenzar a utilizarlo rápidamente.
Precaución
Retrom está diseñado sin ninguna medida de seguridad específica en mente. Se recomienda encarecidamente que ejecute Retrom sólo en una red local a menos que sepa lo que está haciendo. Si desea exponer Retrom a Internet, debe hacerlo detrás de un proxy inverso con las medidas de seguridad adecuadas . Esta no es una característica que se planee implementar en Retrom, ya que hay muchas variables a considerar al alojar algo y no existe una solución única para todos.
Retrom actualmente admite bibliotecas con las siguientes estructuras:
Cada juego debe estar representado por un directorio que contenga los archivos del juego (incluso para juegos/plataformas de un solo archivo). De manera similar, cada juego debe estar contenido dentro de un directorio que represente la plataforma en la que se juega, y los directorios de la plataforma deben estar en la raíz del directorio de su library
.
Ejemplo:
Supongamos que tienes los juegos:
Para la plataforma Game Guy y los juegos:
Para la plataforma Game Guy Advance. Tu biblioteca debería verse así:
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
En lugar de que cada juego esté representado por un directorio, es posible que tengas una biblioteca en la que cada juego sea un simple archivo en el directorio de la plataforma respectiva.
Ejemplo:
Supongamos los mismos juegos y plataformas que en el ejemplo de Juegos de archivos múltiples. Tu biblioteca debería verse así:
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 utiliza proveedores de metadatos para descargar metadatos para tus juegos. Actualmente, el único proveedor admitido es IGDB. Está previsto apoyar a más proveedores.
Para utilizar el proveedor de metadatos de IGDB, deberá crear una cuenta en el sitio web de IGDB y crear una nueva aplicación para obtener su ID de cliente y su secreto. Puedes hacerlo siguiendo las instrucciones aquí.
Nota
Requisitos
El servidor se configura mediante un archivo de configuración. Aquí hay un archivo de configuración de ejemplo:
Consejo
Puede reemplazar db_url
con la URL de su propia base de datos
Precaución
La path
en content_directories
debe ser la ruta dentro del contenedor . Si está utilizando Docker, debe montar los directorios de su biblioteca en estas rutas. Consulte la sección Docker para obtener más información.
{
"connection" : {
"port" : 5101 ,
"db_url" : " postgres://minecraft_steve:super_secret_password@retrom-db/retrom "
},
"content_directories" : [
{
"path" : " path/to/my/library/ " ,
"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 forma recomendada actualmente de ejecutar el servidor es a través de Docker, idealmente con docker compose
.
Consejo
Si no está familiarizado con Docker Compose, puede leer la documentación aquí.
Ajustemos el ejemplo anterior config.json
para nuestro contenedor acoplable y guárdelo en un lugar seguro. En este ejemplo, asumiremos que está guardado en /home/minecraft_steve/config_dir/config.json
. Tenga en cuenta que necesitamos un directorio de configuración para montar en el contenedor, no solo el archivo en sí.
Supongamos también que tenemos bibliotecas en /home/minecraft_steve/library1/
y en /home/minecraft_steve/library2/
.
Aquí está el archivo de configuración de ejemplo:
{
"connection" : {
"port" : 5101 ,
"db_url" : " postgres://minecraft_steve:super_secret_password@retrom-db/retrom "
},
"content_directories" : [
{
"path" : " /library1 " ,
"storage_type" : " MultiFileGame "
},
{
"path" : " /library2 " ,
"storage_type" : " SingleFileGame "
}
],
"igdb" : {
"client_secret" : " super_secret_client_secret!!!1 " ,
"client_id" : " my_IGDB_ID_1234 "
}
}
Luego, este archivo docker-compose.yml
de ejemplo le ayudará a empezar:
services :
retrom :
image : ghcr.io/jmberesford/retrom-service:latest
ports :
- 5101:5101
- 3000:3000 # to access the web client
volumes :
- /home/minecraft_steve/config_dir:/config/ # directory containing your config file
- /home/minecraft_steve/library1:/library1 # directory containing your first library
- /home/minecraft_steve/library2:/library2 # directory containing your second library
# OPTIONAL: spin up a postgres container to use as the database, if you
# don't have one already.
#
# read the docs here: https://hub.docker.com/_/postgres
retrom-db :
container_name : retrom-db
hostname : retrom-db # this should match the db_url in your config file
image : postgres:16
restart : unless-stopped
volumes :
# to store the DB data on the host, change this path to any directory you like
- /home/minecraft_steve/retrom_data/:/var/lib/postgresql/data
environment :
POSTGRES_USER : minecraft_steve # db user, used to connect to the db, should match the db_user in your config file
POSTGRES_PASSWORD : super_secret_password # db password for above user, should match the db_password in your config file
POSTGRES_DB : retrom # db name, should match the db_name in your config file
Luego puede ejecutar docker-compose up
en el directorio que contiene su archivo docker-compose.yml
para iniciar el servicio.
Se podrá acceder al cliente web en el puerto 3000 y al servicio en sí en el puerto 5101, al que puede acceder cualquier cliente de escritorio.
El Servicio Retrom también está disponible a través de Cargo. La instalación mediante carga creará el binario en su sistema, por lo que necesitará tener instalada la cadena de herramientas Rust.
Se sugiere utilizar Rustup para instalar la cadena de herramientas Rust. También deberá asegurarse de tener algunas dependencias instaladas en su sistema:
libssl-dev
(o equivalente para su sistema)libpq-dev
(o equivalente para su sistema) Precaución
No encontrará soporte para estas dependencias en esta guía, ya que son específicas del sistema. Consulte el administrador de paquetes de su sistema o Internet para obtener ayuda con la instalación de estas dependencias. Si no sabe cómo instalar estas dependencias, debería utilizar el método Docker.
Si se cumplen los requisitos previos, puede instalar Retrom a través de Cargo con el siguiente comando:
cargo install retrom-service
Luego puede ejecutar el servicio con el siguiente comando:
RETROM_CONFIG=/path/to/your/config.json retrom-service
Simplemente dirígete a la página de lanzamientos y descarga la última versión para tu plataforma. El cliente está disponible para Windows, MacOS (chips Intel y de la serie M) y Linux.
Ocasionalmente, puede haber versiones de depuración presentes en una versión. Por lo general, debería preferir las compilaciones que no son de depuración, a menos que un desarrollador le haya indicado que utilice una compilación de depuración con fines de depuración. Siempre habrá una versión sin depuración de cualquier versión determinada, simplemente busque un archivo con el mismo nombre sin el sufijo -debug
.
Lo siguiente puede ayudarle a diferenciar entre las diferentes versiones:
*-setup.exe
son para Windows (prefiera esta versión a la versión .msi, a menos que tenga una buena razón para no hacerlo)*.msi
son para Windows (prefiera la versión .exe a esta)*-x64.dmg
son para MacOS en chips Intel*-aarch64.dmg
son para MacOS en chips de la serie M*-x64.AppImage
son para Linux*-x64.deb
son para Linux (distros basadas en Debian)*-x64.rpm
son para Linux (distros basadas en Red Hat) Advertencia
La imagen del cliente web ha quedado obsoleta. Utilice en su lugar el cliente web incluido con la imagen del servicio.