https://github.com/zapturk/go-romm-sync
A Desktop client for RomM to sync saves and play games with Retroachement support.
https://github.com/zapturk/go-romm-sync
open-source retrogaming rommapp
Last synced: 13 days ago
JSON representation
A Desktop client for RomM to sync saves and play games with Retroachement support.
- Host: GitHub
- URL: https://github.com/zapturk/go-romm-sync
- Owner: zapturk
- License: gpl-3.0
- Created: 2026-02-18T02:21:02.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-11T19:25:44.000Z (3 months ago)
- Last Synced: 2026-03-11T23:34:44.738Z (3 months ago)
- Topics: open-source, retrogaming, rommapp
- Language: Go
- Homepage:
- Size: 12.5 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A seamless bridge between RomM and RetroArch for a console-like gaming experience.
# Go-RomM-Sync
> [!IMPORTANT]
> This application is a client for synchronizing and playing games from your RomM library locally on your device. It is **not** intended for managing or adding new games to your self-hosted RomM instance. Please use the RomM web interface for administrative tasks.
>
> **Note:** This project is not affiliated with, endorsed by, or in any way officially connected with the [RomM project](https://github.com/rommapp/romm).
>
> **Supported RomM Version:** [4.8.1](https://github.com/rommapp/romm/releases/tag/4.8.1)
>
> 📖 **[Project Wiki](https://github.com/zapturk/Go-RomM-Sync/wiki)**: Check out our wiki for setup guides, platform compatibility, and more!
Go-RomM-Sync is a desktop application built with Wails and React that synchronizes your RomM library with a local RetroArch installation. It provides a gaming-console-like experience with full controller navigation support, making it perfect for use with gamepads on a home theater setup.
## Features
- **Enhanced Metadata**: Fetches detailed game summaries, genres, and cover art directly from your RomM instance.
- **Library Management**: One-click download of ROMs to your local storage, organized by platform.
- **RetroArch Integration**: Launch games directly into RetroArch with automatic core detection and RetroAchievements support.
- **Spatial Navigation**: Full support for gamepad and keyboard navigation, with "sticky" focus that remembers your position as you browse.
- **Cross-Platform**: Designed to work on macOS, Linux, and Windows.
## Screenshots
Platform Selection Screen
Game Selection for Game Boy Advance
Game Detail Page with Server and Local Saves
## Technology Stack
- **Backend**: Go with [Wails v2](https://wails.io/) for native OS integration.
- **Frontend**: React + TypeScript + Vite.
- **Styling**: Vanilla CSS for a lightweight, performant UI.
- **Navigation**: Norigin Spatial Navigation for console-like input handling.
## Development
### Developer Prerequisites
- Go 1.23+ installed on your system.
- Node.js 18+ installed on your system.
- NPM installed on your system.
- Wails cli installed on your system.
### Running Locally
To run the application in development mode with hot reloading:
```bash
wails dev
```
### Building
To build a production-ready package for your current platform:
```bash
wails build
```
#### Linux Specifics
For modern Linux distributions (like Ubuntu 22.04+), you may need to install additional dependencies and use specific build tags:
```bash
# Install dependencies (Ubuntu/Debian)
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.1-dev
# Build with WebKit 4.1 tags
wails build -tags webkit2_41
```
## Installation
### macOS (Homebrew)
The easiest way to install Go-RomM-Sync on macOS is via Homebrew:
```bash
brew tap zapturk/homebrew-tap
brew install --cask go-romm-sync
```
### Windows (Scoop)
If you use [Scoop](https://scoop.sh/), you can install Go-RomM-Sync directly from the manifest in this repository:
```powershell
scoop install https://raw.githubusercontent.com/zapturk/Go-RomM-Sync/main/scoop/go-romm-sync.json
```
### Linux (Native Packages)
We provide native packages for major Linux distributions on our [Releases page](https://github.com/zapturk/Go-RomM-Sync/releases):
- **Debian / Ubuntu / Mint**: Download and install the `.deb` package.
```bash
sudo apt install ./go-romm-sync__amd64.deb
```
- **Fedora / RHEL / openSUSE**: Download and install the `.rpm` package.
```bash
sudo dnf install ./go-romm-sync--1.x86_64.rpm
```
- **Arch Linux**: Download the `go-romm-sync-arch-PKGBUILD`, rename it to `PKGBUILD`, and run:
```bash
makepkg -si
```
### Manual Installation
Alternatively, you can download the latest release for your platform from the [Releases page](https://github.com/zapturk/Go-RomM-Sync/releases) and move the executable to your applications/bin directory.
## Setup and Usage
Please refer to the **[Setup and Usage Guide](https://github.com/zapturk/Go-RomM-Sync/wiki/Setup)** in the project wiki for detailed instructions on:
- First-time authentication and configuration.
- Selecting your RetroArch executable.
- Downloading and playing games from your RomM library.
- Synchronizing saves and states.
For a list of all supported emulators and platforms, see the **[Supported Platforms & Cores](https://github.com/zapturk/Go-RomM-Sync/wiki/Platforms)** page.
## Roadmap
- [x] **Save Syncing Management**: Bidirectional synchronization of saves and states between local storage and RomM.
- [x] **Add Pico-8 Support**: Add support for Pico-8 games.
- [ ] **Detailed Achievements**: View RetroAchievements progress and badges directly on the game page.
- [ ] **Advanced Filtering**: Filter games by genre, platform, or download status.