Централизованная служба управления библиотекой/коллекцией игр с упором на эмуляцию. Настройте один раз, играйте где угодно.
Предупреждение
В ТЯЖЕЛОЙ РАЗРАБОТКЕ: ожидайте частых критических изменений, обновляйте установку с осторожностью.
Retrom — это централизованная служба управления игровой библиотекой, которая позволяет вам размещать свои игры на одном устройстве и подключать клиентов на любом количестве других устройств для (удаления) установки/загрузки и последующего запуска указанных игр локально.
Ретром
Подготовка
Сервер
Клиент
ИГДБ
Многофайловые игры (рекомендуется)
Однофайловые игры
Структура библиотеки
Поставщики метаданных
Докер (рекомендуется)
Настольный клиент
Веб-клиент
Обзор
Основные функции
Скриншоты и записи
Дорожная карта
Установка
Разместите собственную облачную службу библиотеки игр.
Сканируйте вашу файловую систему на наличие игр/платформ и автоматически добавляйте их в свою библиотеку.
Устанавливайте/удаляйте и играйте в игры из сервиса на любом количестве настольных клиентов.
Поддержка Windows, MacOS и Linux!
Получите доступ к своей библиотеке из любого места с помощью веб-клиента.
Управляйте профилями эмулятора для каждого клиента, хранящимися на сервере, чтобы можно было легко обмениваться конфигурациями между устройствами или восстанавливать их после переустановки.
Запускайте все свои игры на любом количестве эмуляторов и платформ через предварительно настроенные профили из единого интерфейса библиотеки.
Автоматически загружайте метаданные игры и изображения от поддерживаемых поставщиков, чтобы стильно продемонстрировать свою библиотеку!
Главный экран
Просмотр игры
Базовый функционал сервера
IGDB-провайдер
Поставщик SteamGridDB
Поставщик GamesDB (TGDB)
Сканировать файловую систему на наличие элементов библиотеки
Добавить/удалить элементы библиотеки
Редактировать элементы библиотеки
Скачать метаданные
Облачные сохранения игр/состояний/эмулятора NAND
(Многопользовательская) аутентификация
Публикация двоичных файлов сервера как альтернатива Docker
Базовый функционал клиента
переименовывать
удалить
установить по умолчанию (для запуска через эмуляторы)
Сканировать файловую систему на наличие новых записей
Загрузить/обновить метаданные для новых записей
Просмотр элементов библиотеки
Редактирование метаданных библиотеки и иллюстраций
Запуск заданий обновления библиотеки
Управление файлами игры
Представление в виде сетки (в отличие от представления списка по умолчанию)
Полноэкранный режим + поддержка контроллера
Функциональность веб-клиента (браузера) (в дополнение к базовой функциональности)
Скачать игры
Функциональность настольного клиента (в дополнение к базовой функциональности)
Установить/удалить игры
Настройка локально доступных эмуляторов
Настройка нескольких профилей для каждого эмулятора
Установите профили по умолчанию для каждой платформы
Запуск игр
Встроенные профили эмулятора для популярных эмуляторов.
Кончик
После установки обязательно ознакомьтесь с руководством по быстрому запуску, чтобы быстро приступить к работе.
Осторожность
Retrom разработан без учета каких-либо конкретных мер безопасности. Настоятельно рекомендуется запускать Retrom только в локальной сети, если вы не знаете, что делаете. Если вы хотите предоставить Retrom доступ к Интернету, вам следует сделать это через обратный прокси-сервер с соответствующими мерами безопасности . Эту функцию не планируется реализовать в самом Retrom, поскольку при размещении чего-либо необходимо учитывать множество переменных, и не существует универсального решения.
В настоящее время Retrom поддерживает библиотеки со следующими структурами:
Каждая игра должна быть представлена каталогом, содержащим файлы игры (даже для однофайловых игр/платформ). Каждая игра также должна содержаться в каталоге, представляющем платформу, на которой в нее играют, а каталоги платформы должны находиться в корне каталога вашей library
.
Пример:
Предположим, у вас есть игры:
сантехник чувак
Чувак-сантехник 2
Для платформы Game Guy и игр:
Сантехник Чувак Мир
Чувак-сантехник и брат чувака-сантехника
Для платформы Game Guy Advance. Ваша библиотека должна выглядеть так:
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
Вместо того, чтобы каждая игра была представлена каталогом, у вас может быть библиотека, в которой каждая игра представляет собой простой файл в соответствующем каталоге платформы.
Пример:
Предположим, те же игры и платформы, что и в примере «Многофайловые игры». Ваша библиотека должна выглядеть так:
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 использует поставщиков метаданных для загрузки метаданных для ваших игр. В настоящее время единственным поддерживаемым поставщиком является IGDB. Планируется поддержка большего количества провайдеров.
Чтобы использовать поставщика метаданных IGDB, вам необходимо создать учетную запись на веб-сайте IGDB и создать новое приложение, чтобы получить идентификатор и секрет вашего клиента. Вы можете сделать это, следуя инструкциям здесь.
Примечание
Требования
Докер
Docker Compose (необязательно, но рекомендуется)
База данных PostgreSQL (при желании можно использовать пример, приведенный ниже)
Библиотека игр, организованная так, чтобы Retrom мог ее понять.
Ключи API для поставщиков метаданных
Сервер настраивается через файл конфигурации. Вот пример файла конфигурации:
Кончик
Вы можете заменить db_url
URL-адресом своей собственной базы данных.
Осторожность
path
в content_directories
должен быть путем внутри контейнера . Если вы используете Docker, вам следует смонтировать каталоги вашей библиотеки по этим путям. Дополнительную информацию см. в разделе Docker.
{ "connection": {"port": 5101, "db_url": "postgres://minecraft_steve:super_secret_password@retrom-db/retrom" }, "каталоги_контента": [ { "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" } }
В настоящее время рекомендуемый способ запуска сервера — через Docker, в идеале — с помощью docker compose
.
Кончик
Если вы не знакомы с Docker Compose, вы можете прочитать документацию здесь.
Давайте изменим приведенный выше пример config.json
для нашего докер-контейнера и сохраним его в безопасном месте. В этом примере мы предполагаем, что он сохранен в /home/minecraft_steve/config_dir/config.json
. Обратите внимание, что нам нужен каталог конфигурации для монтирования в контейнер, а не только сам файл.
Предположим также, что у нас есть библиотеки в /home/minecraft_steve/library1/
и в /home/minecraft_steve/library2/
.
Вот пример файла конфигурации:
{ "connection": {"port": 5101, "db_url": "postgres://minecraft_steve:super_secret_password@retrom-db/retrom" }, "каталоги_контента": [ { "path": "/library1", "storage_type": "MultiFileGame"}, { "path": "/library2", "storage_type": "SingleFileGame"} ], "igdb": {"client_secret": "super_secret_client_secret!!!1","client_id": "my_IGDB_ID_1234" } }
Затем этот пример файла docker-compose.yml
поможет вам начать:
услуги: ретром: изображение: ghcr.io/jmberesford/retrom-service:latestports: - 5101:5101 - 3000:3000 # для доступа к томам веб-клиента: - /home/minecraft_steve/config_dir:/config/ # каталог, содержащий ваш файл конфигурации - /home/minecraft_steve/library1:/library1 # каталог, содержащий вашу первую библиотеку - /home/minecraft_steve/library2:/library2 # каталог, содержащий вашу вторую библиотеку # НЕОБЯЗАТЕЛЬНО: разверните контейнер postgres для использования в качестве базы данных, если вы # у меня его еще нет. # # прочитайте документацию здесь: https://hub.docker.com/_/postgres Retrom-db:container_name: Retrom-dbhostname: Retrom-db # это должно совпадать с db_url в вашем файле конфигурации. - /home/minecraft_steve/retrom_data/:/var/lib/postgresql/dataenvironment: POSTGRES_USER: minecraft_steve # пользователь db, используемый для подключения к базе данных, должен совпадать с db_user в вашем файле конфигурации POSTGRES_PASSWORD: super_secret_password # пароль db для указанного выше пользователя должен совпадать с db_password в вашем файле конфигурации POSTGRES_DB: Retrom # имя базы данных, должно совпадать с именем db_name в вашем файле конфигурации
Затем вы можете запустить docker-compose up
в каталоге, содержащем файл docker-compose.yml
чтобы запустить службу.
Веб-клиент будет доступен через порт 3000, а сама служба — через порт 5101, к которому могут получить доступ любые настольные клиенты.
Услуга Retrom также доступна через Cargo. При установке через Cargo двоичный файл будет собран в вашей системе, поэтому вам потребуется установить набор инструментов Rust.
Для установки набора инструментов Rust предлагается использовать Rustup. Вам также необходимо убедиться, что в вашей системе установлены некоторые зависимости:
libssl-dev
(или эквивалент для вашей системы)
libpq-dev
(или эквивалент для вашей системы)
Осторожность
В этом руководстве вы не найдете поддержки этих зависимостей, поскольку они зависят от системы. Пожалуйста, обратитесь к менеджеру пакетов вашей системы или в Интернет за помощью в установке этих зависимостей. Если вы не знаете, как установить эти зависимости, вместо этого вам следует использовать метод Docker.
Если предварительные условия соблюдены, вы можете установить Retrom через Cargo с помощью следующей команды:
монтаж грузов ретром-сервис
Затем вы можете запустить службу с помощью следующей команды:
RETROM_CONFIG=/путь/к/вашему/config.json ретром-сервису
Просто зайдите на страницу релизов и загрузите последнюю версию для своей платформы. Клиент доступен для Windows, MacOS (чипы Intel и серии M) и Linux.
Иногда в выпуске могут присутствовать отладочные сборки. Обычно вам следует предпочитать неотладочные сборки, если только разработчик не проинструктировал вас использовать отладочную сборку для целей отладки. Всегда будет неотладочная версия любого данного выпуска, просто найдите файл с таким же именем без суффикса -debug
.
Следующее может помочь вам различать разные версии:
Файлы *-setup.exe
предназначены для Windows (предпочитайте эту версию версии .msi, если у вас нет веских причин не делать этого)
Файлы *.msi
предназначены для Windows (предпочитайте версию .exe).
*-x64.dmg
предназначены для MacOS на чипах Intel.
*-aarch64.dmg
файлы предназначены для MacOS на чипах серии M.
*-x64.AppImage
файлы предназначены для Linux.
*-x64.deb
файлы предназначены для Linux (дистрибутивы на основе Debian).
*-x64.rpm
файлы предназначены для Linux (дистрибутивы на базе Red Hat).
Предупреждение
Изображение веб-клиента устарело. Вместо этого используйте веб-клиент, включенный в образ службы.