エミュレーションを中心としたゲームライブラリ/コレクションの一元管理サービス。一度設定すれば、どこでもプレイできます。
警告
激しい開発中: 重大な変更が頻繁に発生することが予想されるため、インストールの更新は注意してください。
Retrom は、単一のデバイスでゲームをホストし、任意の数の他のデバイスでクライアントを接続して、そのゲームをローカルで (アン) インストール/ダウンロードし、その後起動できるようにする集中ゲーム ライブラリ管理サービスです。
ホーム画面
ゲームビュー
ヒント
インストール後、すぐに起動して実行できるように、必ずクイックスタート ガイドを確認してください。
注意
Retrom は、特別なセキュリティ対策を念頭に置かずに設計されています。何をしているのかわからない場合は、ローカル ネットワーク上でのみRetrom を実行することを強くお勧めします。 Retrom をインターネットに公開したい場合は、適切なセキュリティ対策を講じたリバース プロキシの背後で行う必要があります。これは、Retrom 自体に実装される予定の機能ではありません。何かをホストする際には考慮すべき変数が多数あり、万能のソリューションはないからです。
Retrom は現在、次の構造のライブラリをサポートしています。
各ゲームは、ゲーム ファイルを含むディレクトリで表す必要があります (単一ファイルのゲーム/プラットフォームの場合でも)。同様に、各ゲームは、プレイするプラットフォームを表すディレクトリ内に含める必要があり、プラットフォーム ディレクトリはlibrary
ディレクトリのルートに存在する必要があります。
例:
ゲームを持っていると仮定します。
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 Web サイトでアカウントを作成し、クライアント ID とシークレットを取得するための新しいアプリケーションを作成する必要があります。こちらの手順に従ってこれを行うことができます。
注記
要件
サーバーは構成ファイルを介して構成されます。構成ファイルの例を次に示します。
ヒント
db_url
独自のデータベース URL に置き換えることができます
注意
content_directories
内のpath
は、コンテナー内のパスである必要があります。 Docker を使用している場合は、ライブラリ ディレクトリをこれらのパスにマウントする必要があります。詳細については、「Docker」セクションを参照してください。
{
"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 "
}
}
現在推奨されているサーバーの実行方法は Docker 経由で、理想的にはdocker compose
を使用します。
ヒント
Docker Compose に詳しくない場合は、ここでドキュメントを読むことができます。
上記のサンプルconfig.json
Docker コンテナー用に調整し、安全な場所に保存しましょう。この例では、 /home/minecraft_steve/config_dir/config.json
に保存されていると仮定します。ファイル自体だけでなく、コンテナにマウントするには configディレクトリが必要であることに注意してください。
また、 /home/minecraft_steve/library1/
と/home/minecraft_steve/library2/
にライブラリがあると仮定しましょう。
構成ファイルの例は次のとおりです。
{
"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 "
}
}
次に、このdocker-compose.yml
ファイルの例を使用して作業を開始します。
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
その後、 docker-compose.yml
ファイルが含まれるディレクトリでdocker-compose up
実行して、サービスを開始できます。
Web クライアントにはポート 3000 でアクセスでき、サービス自体にはポート 5101 でアクセスできます。これには任意のデスクトップ クライアントからアクセスできます。
Retrom サービスは Cargo 経由でもご利用いただけます。カーゴ経由でインストールするとシステム上にバイナリがビルドされるため、Rust ツールチェーンをインストールする必要があります。
Rust ツールチェーンをインストールするには、rustup を使用することをお勧めします。また、システムにいくつかの依存関係がインストールされていることを確認する必要もあります。
libssl-dev
(またはシステムの同等のもの)libpq-dev
(またはシステムの同等のもの) 注意
これらの依存関係はシステム固有であるため、このガイドではサポートされていません。これらの依存関係のインストールについては、システムのパッケージ マネージャーまたはインターネットを参照してください。これらの依存関係をインストールする方法がわからない場合は、代わりに Docker メソッドを使用する必要があります。
前提条件が満たされている場合は、次のコマンドを使用して Cargo 経由で Retrom をインストールできます。
cargo install retrom-service
その後、次のコマンドを使用してサービスを実行できます。
RETROM_CONFIG=/path/to/your/config.json retrom-service
リリース ページにアクセスし、お使いのプラットフォーム用の最新バージョンをダウンロードするだけです。クライアントは、Windows、MacOS (Intel および M シリーズ チップの両方)、および Linux で使用できます。
場合によっては、リリースにデバッグ ビルドが存在する場合があります。デバッグ目的で開発者からデバッグ ビルドを使用するように指示された場合を除き、通常は非デバッグ ビルドを選択する必要があります。特定のリリースには常に非デバッグ バージョンが存在します。 -debug
サフィックスのない同じ名前のファイルを探してください。
以下は、異なるバージョンを区別するのに役立ちます。
*-setup.exe
ファイルは Windows 用です (そうしない正当な理由がない限り、.msi バージョンよりもこれを推奨します)。*.msi
ファイルは Windows 用です (これよりも .exe バージョンを推奨します)*-x64.dmg
ファイルは、Intel チップ上の MacOS 用です。*-aarch64.dmg
ファイルは、M シリーズ チップ上の MacOS 用です。*-x64.AppImage
ファイルは Linux 用です*-x64.deb
ファイルは Linux (Debian ベースのディストリビューション) 用です。*-x64.rpm
ファイルは Linux (Red Hat ベースのディストリビューション) 用です。 警告
Web クライアント イメージは非推奨になりました。代わりに、サービス イメージにバンドルされている Web クライアントを使用してください。