Skip to content
RompEmuPublic

Repository files navigation

RomP

Latest release Nightly build CI

Platforms: macOS, Windows and Linux Needs RomM 5.0 or newer License: GPL-3.0-or-later Translation progress on Crowdin

Play retro games from your RomM library, with each game running in its own sandboxed process.

rompemu.github.io

Download the latest release or the nightly build for macOS, Windows and Linux. On a Mac you can also install it with Homebrew: brew install --cask rompemu/tap/romp. The macOS download of each release is signed and notarized by Apple. Nightly macOS builds aren't: the first time, right-click RomP and choose Open. Windows builds aren't signed yet: the first time, choose More info, then Run anyway.

The RomP library, showing Amiga games

Game page Playing Nintendo DS
A game's page with its details and cover A game running in its own window A Nintendo DS game with its two screens in separate windows

Features

  • Your RomM library: platforms, favorites, collections and recently played, with search, sorting and box art shaped like each console's.
  • One click to play: RomP installs the right emulator and BIOS files. Downloaded games play offline.
  • Saves that follow you: in-game saves and save states sync with RomM before and after you play. If both sides changed, you choose which to keep.
  • Sandboxed emulators: emulators are native code downloaded from the internet, and games are files from anywhere. Each game runs in its own locked-down process that can only write to that game's saves and its own temporary files, so a buggy or malicious emulator or ROM can't touch your other files or take RomP down with it. xemu and RPCS3 run outside the sandbox.
  • RetroAchievements: earn achievements as you play, with popups, leaderboards, and an achievement list in the game menu and on each game's page. Hardcore mode comes once RetroAchievements approves RomP, which it considers after an emulator has been public for six months. Only the app talks to RetroAchievements, never the sandboxed emulator.
  • Many systems: from the Atari 2600 to the PS3 and original Xbox, plus arcade and home computers. See supported systems.
  • Controllers and multiplayer: gamepads join as the next player, any key or button can be remapped, and the whole app works with a controller.
  • Light guns, mice and keyboards: for the systems that use them.
  • In-game menu: pause, restart, save slots, volume and full screen, from the Guide button or Esc.
  • Two-screen Nintendo DS: a window per screen, with the mouse as the touch pen.
  • Picks up where you left off: the last console, game and scroll position, and the size and position of every window.
  • Interface sizes: 1x, 1.5x or 2x.

Supported systems

RomP downloads the emulator for each system the first time you play one of its games.

System Emulator
Arcade, including Neo Geo and CPS 1–3 FinalBurn Neo
Atari 2600 Stella
Atari Jaguar Virtual Jaguar
Atari Lynx Beetle Lynx
Bandai WonderSwan and WonderSwan Color Beetle WonderSwan
ColecoVision Gearcoleco
Commodore 64 VICE x64sc
Commodore Amiga PUAE
DOS DOSBox Pure
Intellivision FreeIntv
Magnavox Odyssey 2 O2EM
MSX, MSX2 and MSX2+ blueMSX
NEC PC Engine / TurboGrafx-16 Beetle PCE Fast
NEC PC Engine CD / TurboGrafx-CD Beetle PCE
NEC SuperGrafx Beetle SuperGrafx
Nintendo Entertainment System, Famicom and Famicom Disk System Nestopia UE
Super Nintendo and Super Famicom Snes9x
Nintendo 64 Mupen64Plus-Next
Game Boy, Game Boy Color and Game Boy Advance mGBA
Nintendo DS melonDS DS
Nintendo GameCube and Wii Dolphin
Nintendo Virtual Boy Beetle VB
Philips CD-i SAME CDi
3DO Opera
Sega Master System, Genesis / Mega Drive, Game Gear, Sega CD and SG-1000 Genesis Plus GX
Sega 32X PicoDrive
Sega Saturn Beetle Saturn
Sega Dreamcast Flycast
SNK Neo Geo Pocket and Pocket Color Beetle NeoPop
Sony PlayStation Beetle PSX HW
Sony PlayStation 2 PCSX2 on Windows and Linux, ARMSX2 on macOS
Sony PlayStation 3 RPCS3
Sony PSP PPSSPP
Vectrex Vecx
Microsoft Xbox xemu
ZX Spectrum Fuse

All emulators except xemu and RPCS3 are libretro cores. Dolphin, PPSSPP, Flycast, Beetle PSX HW, Mupen64Plus-Next and the PS2 emulators draw through Vulkan when the computer has a working Vulkan driver, and through OpenGL otherwise. On macOS, Vulkan comes from the bundled MoltenVK. Some systems need BIOS files, which RomP takes from your RomM server's firmware. PS3 games need the PS3 system software (PS3UPDAT.PUP) in RomM's PS3 firmware, and play from a game folder or an ISO, or a zip or 7z of one.

Running

Requires rustup and CMake.

cargo build --release
./target/release/romp

make dist packages the app into dist/: RomP.app and a zip on macOS, a zip on Windows, an AppImage and a tarball on Linux (Make downloads a pinned appimagetool and checks it). On Windows, run it from Git Bash with Make and 7-Zip installed.

make check runs the same checks as CI: formatting, Clippy, tests, cargo-deny, cargo-machete, typos, actionlint and zizmor.

romp --core <core library> --rom <file> plays a file without a RomM server, which helps when testing. ROMP_PLATFORM=snes (or any RomM platform name) gives it that console's look. With --smoke <folder> it plays briefly as a check, saving a frame there, and exits with an error if the game doesn't play; the Smoke test workflow runs this on each packaged build before a release.

make update-rcheevos replaces the bundled rcheevos with its latest release, or a given one with RCHEEVOS=v12.5.0.

Enter your RomM server address (RomM 5.0 or newer). Approve RomP in RomM by scanning the code or opening the link.

Open a game from your library to download and play it. RomP installs the emulator core it needs, and fetches BIOS files from your server's firmware. Downloaded games stay playable when the server is offline.

In-game saves and save states sync with RomM before and after you play, so you can continue on another device. If a save changed in both places, RomP asks which to keep and backs up the other.

Controls

  • Gamepads are picked up automatically: the first one joins the keyboard as player 1, and each new one becomes the next player.
  • Change players or remap any key or button in Settings → Players.
  • The Guide button, or Select and Start together, opens the game menu.
  • In Amiga, DOS, C64 and ZX Spectrum games the keyboard types into the game and F12 opens the menu. Click in the game to use your mouse; F12 releases it.
  • Accessories such as the SNES Mouse, Super Scope, Zapper or GunCon are chosen per port in the game menu. A light gun aims where you point and fires with the left button; the right button reloads.

Default keyboard layout:

Key Action
Arrow keys D-pad
X, Z, S, A A, B, X, Y
Q, W, D, F L, R, L2, R2
Enter, Backspace Start, Select
F5, F7 Save, load state
F6 Next save slot
P Pause
F11 Full screen
F12 Screenshot
Esc Game menu

Every key except Esc can be changed in Settings → Players, and shortcuts can be combinations such as Ctrl+S.

Your games, saves and library cache are stored in ~/Library/Application Support/Romp on macOS, %LOCALAPPDATA%\Romp on Windows and ~/.local/share/Romp on Linux.

Free, with no catches

RomP is free and always will be: no paid features, subscriptions, ads, tracking or accounts of its own. Every build has every feature. PRIVACY.md lists what RomP sends and where, and the Licenses tab under About RomP lists every emulator it downloads with its license.

Translations

RomP is translated by the people who use it, on Crowdin. You don't need to know any programming, and a free Crowdin account is enough:

  1. Open the RomP project on Crowdin and choose your language.
  2. Translate strings, or vote for the best suggestions others made.
  3. New translations reach the app within a day and ship in the next release.

RomP is being translated into French, Spanish, German and Arabic so far. To add another language, open an issue.

A few things to keep in mind:

  • Keep placeholders such as {name} or {0} exactly as they are. You can move them anywhere in the sentence.
  • Leave names as they are: RomP, RomM, RetroAchievements and console names.
  • To see your language in RomP, choose it in Settings → General → Language. RomP follows your system's language once it has translations for it.

License

RomP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 or (at your option) any later version.

Releases

Packages

Used by

Contributors

Languages