Skip to content

JMBeresford/retrom

Repository files navigation

Banner

A centralized game library/collection management service with a focus on emulation. Configure once, play anywhere.


Join the Discord server:

discord-badge

Table of Contents

Overview

Retrom is a centralized game library management service that allows you to host your games on a single device, and connect clients on any amount of other devices to (un)install/download and play them when and where you want to! Think of it as a sort of self-hosted Steam for your DRM-free game library.

Core Features

  • Host your own cloud game library service
  • Scan your filesystem for games/platforms and automatically add them to your library
  • Install/uninstall and play games from the service on any amount of desktop clients.
    • Support for Windows, MacOS, and Linux!
  • Access your library from anywhere with the web client.
  • Manage emulator profiles on a per-client basis, stored on the server for easily sharing configurations between devices or restoring them after a reinstall.
  • Launch all your games across any amount of emulators or platforms via your pre-configured profiles from a single library interface.
  • Automatically download game metadata and artworks from supported providers to showcase your library with style!

Screenshots

Home Screen

Screenshot 2024-10-10 at 10 49 08 AM

Game View

Screenshot 2024-10-10 at 12 03 15 PM

Fullscreen Mode

image

image

image

Roadmap

  • Basic server functionality
    • Scan filesystem for library items
    • Add/remove library items
    • Edit library items
    • Download metadata
      • IGDB provider
      • SteamGridDB provider
    • Cloud save games / states / emulator NANDs
    • (Multi-)User authentication
    • Publish server binaries, as an alternative to Docker
  • Basic client functionality
    • View library items
    • Edit library metadata and artworks
    • Trigger library update jobs
      • Scan filesystem for new entries
      • Download/update metadata for new entries
    • Manage game files
      • rename
      • delete
      • set default (for launching via emulators)
    • Grid view (as opposed to default list view)
    • Fullscreen mode + controller support
  • Web (browser) client functionality (in addition to Basic functionality)
    • Download games
    • In-browser emulation via EmulatorJS
  • Desktop client functionality (in addition to Basic functionality)
    • Install/uninstall games
    • Configure locally available emulators
    • Configure multiple profiles per-emulator
    • Set default profiles per-platform
    • Launch games
    • Built-in emulator profiles for popular emulators