Um serviço centralizado de gerenciamento de biblioteca/coleção de jogos com foco na emulação. Configure uma vez, jogue em qualquer lugar.
Aviso
SOB DESENVOLVIMENTO PESADO: Espere mudanças significativas com frequência, atualize sua instalação com cuidado.
Retrom é um serviço centralizado de gerenciamento de biblioteca de jogos que permite hospedar seus jogos em um único dispositivo e conectar clientes em qualquer quantidade de outros dispositivos para (des)instalar/baixar e posteriormente iniciar esses jogos localmente.
Retro
Preparação
Servidor
Cliente
IGDB
Jogos com vários arquivos (recomendado)
Jogos de arquivo único
Estrutura da Biblioteca
Provedores de metadados
Docker (recomendado)
Cliente de área de trabalho
Cliente Web
Visão geral
Recursos principais
Capturas de tela e gravações
Roteiro
Instalação
Hospede seu próprio serviço de biblioteca de jogos na nuvem
Faça uma varredura em seu sistema de arquivos em busca de jogos/plataformas e adicione-os automaticamente à sua biblioteca
Instale/desinstale e jogue jogos do serviço em qualquer quantidade de clientes de desktop.
Suporte para Windows, MacOS e Linux!
Acesse sua biblioteca de qualquer lugar com o cliente web.
Gerencie perfis de emulador por cliente, armazenados no servidor para compartilhar facilmente configurações entre dispositivos ou restaurá-los após uma reinstalação.
Inicie todos os seus jogos em qualquer quantidade de emuladores ou plataformas por meio de perfis pré-configurados em uma única interface de biblioteca.
Baixe automaticamente metadados e obras de arte de jogos de fornecedores compatíveis para exibir sua biblioteca com estilo!
Tela inicial
Visualização do jogo
Funcionalidade básica do servidor
Provedor IGDB
Provedor SteamGridDB
O provedor GamesDB (TGDB)
Varre o sistema de arquivos em busca de itens de biblioteca
Adicionar/remover itens da biblioteca
Editar itens da biblioteca
Baixar metadados
Jogos / estados / emuladores salvos na nuvem
Autenticação (multi-)usuário
Publique binários de servidor, como alternativa ao Docker
Funcionalidade básica do cliente
renomear
excluir
definir padrão (para iniciar via emuladores)
Varre o sistema de arquivos em busca de novas entradas
Baixar/atualizar metadados para novas entradas
Ver itens da biblioteca
Editar metadados e obras de arte da biblioteca
Acionar jobs de atualização da biblioteca
Gerenciar arquivos do jogo
Visualização em grade (em oposição à visualização de lista padrão)
Modo tela cheia + suporte ao controlador
Funcionalidade do cliente Web (navegador) (além da funcionalidade básica)
Baixar jogos
Funcionalidade do cliente de desktop (além da funcionalidade básica)
Instalar/desinstalar jogos
Configurar emuladores disponíveis localmente
Configure vários perfis por emulador
Defina perfis padrão por plataforma
Iniciar jogos
Perfis de emulador integrados para emuladores populares
Dica
Após a instalação, certifique-se de verificar o guia de início rápido para começar a trabalhar rapidamente.
Cuidado
Retrom foi projetado sem nenhuma medida de segurança específica em mente. É altamente recomendável que você execute o Retrom apenas em uma rede local, a menos que saiba o que está fazendo. Se desejar expor o Retrom à Internet, você deve fazê-lo por meio de um proxy reverso com medidas de segurança adequadas . Este não é um recurso planejado para ser implementado no próprio Retrom, pois há muitas variáveis a serem consideradas ao hospedar algo e não existe uma solução única para todos.
Retrom atualmente oferece suporte a bibliotecas com as seguintes estruturas:
Cada jogo deve ser representado por um diretório contendo os arquivos do jogo (mesmo para jogos/plataformas de arquivo único). Da mesma forma, cada jogo deve estar contido em um diretório que representa a plataforma em que é jogado, e os diretórios da plataforma devem estar na raiz do diretório da sua library
.
Exemplo:
Suponha que você tenha os jogos:
Cara encanador
Encanador Cara 2
Para a plataforma Game Guy e os jogos:
Encanador Cara Mundo
Cara do encanador e irmão do cara do encanador
Para a plataforma Game Guy Advance. Sua biblioteca deve ficar assim:
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
Em vez de cada jogo ser representado por um diretório, você pode ter uma biblioteca na qual cada jogo é simplesmente um único arquivo no respectivo diretório da plataforma.
Exemplo:
Suponha os mesmos jogos e plataformas do exemplo em Jogos com vários arquivos. Sua biblioteca deve ficar assim:
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 usa provedores de metadados para baixar metadados para seus jogos. Atualmente, o único provedor suportado é o IGDB. Está planejado suporte para mais provedores.
Para usar o provedor de metadados IGDB, você precisará criar uma conta no site do IGDB e criar um novo aplicativo para obter seu ID de cliente e segredo. Você pode fazer isso seguindo as instruções aqui.
Observação
Requisitos
Docker
Docker Compose (opcional, mas recomendado)
Um banco de dados PostgreSQL (opcionalmente, pode usar o exemplo fornecido abaixo)
Uma biblioteca de jogos organizada de uma forma que Retrom possa entender
Chaves de API para provedores de metadados
O servidor é configurado por meio de um arquivo de configuração. Aqui está um exemplo de arquivo de configuração:
Dica
Você pode substituir o db_url
pelo URL do seu próprio banco de dados
Cuidado
O path
em content_directories
deve ser o caminho dentro do contêiner . Se você estiver usando o Docker, você deve montar os diretórios da sua biblioteca nesses caminhos. Consulte a seção Docker para obter mais informações.
{ "conexão": {"porta": 5101,"db_url": "postgres://minecraft_steve:super_secret_password@retrom-db/retrom" }, "content_directories": [ { "caminho": "caminho/para/minha/biblioteca/", "storage_type": "MultiFileGame"}, { "caminho": "caminho/para/minha/biblioteca/com/single_file_games/", "storage_type": "SingleFileGame"} ], "igdb": {"client_secret": "super_secret_client_secret!!!1","client_id": "my_IGDB_ID_1234" } }
A maneira atualmente recomendada de executar o servidor é via Docker, de preferência com docker compose
.
Dica
Se você não está familiarizado com o Docker Compose, pode ler a documentação aqui.
Vamos ajustar o exemplo acima config.json
para nosso contêiner docker e salvá-lo em algum lugar seguro. Neste exemplo, assumiremos que ele foi salvo em /home/minecraft_steve/config_dir/config.json
. Observe que precisamos de um diretório de configuração para montar no contêiner, não apenas do arquivo em si.
Vamos supor também que temos bibliotecas em /home/minecraft_steve/library1/
e em /home/minecraft_steve/library2/
.
Aqui está o arquivo de configuração de exemplo:
{ "conexão": {"porta": 5101,"db_url": "postgres://minecraft_steve:super_secret_password@retrom-db/retrom" }, "content_directories": [ { "caminho": "/library1", "storage_type": "MultiFileGame"}, { "caminho": "/library2", "storage_type": "SingleFileGame"} ], "igdb": {"client_secret": "super_secret_client_secret!!!1","client_id": "my_IGDB_ID_1234" } }
Então, este arquivo de exemplo docker-compose.yml
irá ajudá-lo a começar:
serviços: retrom:image: ghcr.io/jmberesford/retrom-service:latestports: - 5101:5101 - 3000:3000 # para acessar os volumes do cliente web: - /home/minecraft_steve/config_dir:/config/ # diretório contendo seu arquivo de configuração - /home/minecraft_steve/library1:/library1 # diretório contendo sua primeira biblioteca - /home/minecraft_steve/library2:/library2 # diretório contendo sua segunda biblioteca # OPCIONAL: crie um contêiner postgres para usar como banco de dados, se você # ainda não tenho um. # # leia os documentos aqui: https://hub.docker.com/_/postgres retrom-db:container_name: retrom-dbhostname: retrom-db # isso deve corresponder ao db_url em sua imagem do arquivo de configuração: postgres:16restart: except-stoppedvolumes: # para armazenar os dados do banco de dados no host, altere este caminho para qualquer diretório que desejar - /home/minecraft_steve/retrom_data/:/var/lib/postgresql/dataenvironment: POSTGRES_USER: minecraft_steve # usuário do banco de dados, usado para conectar ao banco de dados, deve corresponder ao db_user no seu arquivo de configuração POSTGRES_PASSWORD: super_secret_password # senha do banco de dados para o usuário acima, deve corresponder ao db_password no seu arquivo de configuração POSTGRES_DB: retrom # nome do banco de dados, deve corresponder ao nome do banco de dados no seu arquivo de configuração
Você pode então executar docker-compose up
no diretório que contém seu arquivo docker-compose.yml
para iniciar o serviço.
O cliente web estará acessível na porta 3000 e o próprio serviço na porta 5101 – que pode ser acessado por qualquer cliente desktop.
O Serviço Retrom também está disponível via Cargo. A instalação via cargo construirá o binário em seu sistema, então você precisará ter o conjunto de ferramentas Rust instalado.
Sugere-se usar o Rustup para instalar o conjunto de ferramentas Rust. Você também precisará certificar-se de ter algumas dependências instaladas em seu sistema:
libssl-dev
(ou equivalente para o seu sistema)
libpq-dev
(ou equivalente para o seu sistema)
Cuidado
Você não encontrará suporte para essas dependências neste guia, pois elas são específicas do sistema. Consulte o gerenciador de pacotes do seu sistema ou a Internet para obter ajuda com a instalação dessas dependências. Se você não sabe como instalar essas dependências, você deve usar o método Docker.
Se os pré-requisitos forem atendidos, você pode instalar o Retrom via Cargo com o seguinte comando:
instalação de carga retrom-service
Você pode então executar o serviço com o seguinte comando:
RETROM_CONFIG=/caminho/para/seu/config.json retrom-service
Basta acessar a página de lançamentos e baixar a versão mais recente para sua plataforma. O cliente está disponível para Windows, MacOS (chips da série Intel e M) e Linux.
Ocasionalmente, pode haver compilações de depuração presentes em uma versão. Geralmente, você deve preferir as compilações sem depuração, a menos que tenha sido instruído a usar uma compilação de depuração por um desenvolvedor para fins de depuração. Sempre haverá uma versão sem depuração de qualquer versão, basta procurar um arquivo com nome idêntico sem o sufixo -debug
.
O seguinte pode ajudá-lo a diferenciar entre as diferentes versões:
Os arquivos *-setup.exe
são para Windows (prefira isso à versão .msi, a menos que você tenha um bom motivo para não fazê-lo)
Os arquivos *.msi
são para Windows (prefira a versão .exe)
*-x64.dmg
arquivos são para MacOS em chips Intel
Os arquivos *-aarch64.dmg
são para MacOS em chips da série M
*-x64.AppImage
arquivos são para Linux
*-x64.deb
arquivos são para Linux (distros baseadas em Debian)
Os arquivos *-x64.rpm
são para Linux (distros baseadas em Red Hat)
Aviso
A imagem do cliente web foi descontinuada. Em vez disso, use o cliente Web fornecido com a imagem de serviço.