Play retro games from your RomM library, with each game running in its own sandboxed process.
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.
| Game page | Playing | Nintendo DS |
|---|---|---|
![]() |
![]() |
![]() |
- 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.
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.
Requires rustup and CMake.
cargo build --release
./target/release/rompmake 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.
- 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.
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.
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:
- Open the RomP project on Crowdin and choose your language.
- Translate strings, or vote for the best suggestions others made.
- 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.
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.




