Adding Emulators

How to add and manage emulators in RetroVoid.

RetroVoid doesn't emulate games itself. It acts as a launcher that connects to the emulators you already have installed. Emulators are entirely user-configured; there is no auto-detection. This guide covers how to add, configure, and manage emulators.

Adding an Emulator

To add an emulator to RetroVoid:

  1. Open Settings (press F1 twice) and select the Emulators tab.
  2. Click Add Emulator.
  3. Fill in the details:
    • Name: a display name (e.g., "PCSX2", "Dolphin")
    • Executable Path: browse to the emulator's binary with Browse. The field border turns green once the path checks out.
    • Launch Arguments: command-line arguments passed when launching a game. Defaults to {rom}.
    • Supported Platforms: tick every platform this emulator handles, grouped by manufacturer.
  4. Click Add Emulator to save.

To change one later, click the pencil icon on its row, edit, and click Update Emulator.

Launch Arguments

RetroVoid passes information to the emulator via placeholder tokens in the launch arguments string. Two placeholders are available:

PlaceholderDescription
{rom}Full path to the game's ROM file
{title}The game's display title

The argument template is split into separate arguments first, and each placeholder is then replaced inside the resulting argument. A ROM filename or game title containing quotes or spaces can never turn into extra command-line arguments.

Common Launch Argument Examples

Here are the recommended launch arguments for popular emulators. The same table is built into the add/edit form in RetroVoid, so you can copy from there.

EmulatorPlatformsLaunch Arguments
PCSX2PS2-batch "{rom}"
DuckStationPS1-batch -- "{rom}"
RPCS3PS3--no-gui "{rom}"
PPSSPPPSP"{rom}"
DolphinGameCube, Wii-b -e "{rom}"
CemuWii U-g "{rom}"
RyujinxSwitch"{rom}"
Citra3DS"{rom}"
melonDSNDS"{rom}"
mGBAGBA, GBC, GB-f "{rom}"
XemuXbox-dvd_path "{rom}"
RetroArchMulti-L /path/to/core "{rom}"

These flags mostly exist to boot straight into the game instead of opening the emulator's own interface first.

Note: For RetroArch, the core path must appear in the launch arguments. There is no {core} placeholder. The RetroArch tab writes this for you when you enable a core; see RetroArch Integration below.

Default Emulator per Platform

Open Settings > Platform Defaults to pick which emulator each platform uses. Every platform lists how many compatible emulators you have configured and offers a dropdown of those emulators. A platform with no default set cannot launch its games, except for Windows and Steam titles, which launch without an emulator.

Choosing an Emulator at Launch

If a game fails to launch because no emulator is configured for its platform, its detail view shows the error along with a Launch with Emulator row listing every emulator that supports that platform. Clicking one launches the game with it for that attempt. To make the choice stick, set the platform's default in Settings > Platform Defaults.

When launching a game, RetroVoid checks in this order:

  1. The platform's default emulator (if set)
  2. Special handling for Windows games (direct launch) and Steam games (steam:// URL)
  3. Error if no emulator is configured

RetroArch Integration

RetroVoid has a dedicated RetroArch tab that turns libretro cores into emulator entries for you.

Setting Up RetroArch

  1. Install RetroArch on your system.
  2. Open Settings > RetroArch and set RetroArch Application to the RetroArch executable.
  3. Set Cores Folder to RetroArch's cores directory. RetroVoid pre-fills this if it finds RetroArch in a standard location.

If a cores folder isn't set, RetroVoid checks these default locations:

OSDefault Core Paths
macOS~/Library/Application Support/RetroArch/cores
Windows%APPDATA%\RetroArch\cores, C:\RetroArch\cores
Linux~/.config/retroarch/cores

Core Scanning

Click Scan for Cores (choosing a cores folder also scans it immediately). RetroVoid looks for libretro core files:

  • macOS: *_libretro.dylib
  • Windows: *_libretro.dll
  • Linux: *_libretro.so

Display names are derived from the filename (e.g., snes9x_libretro.so becomes "Snes9x").

Tick the cores you want. Each ticked core expands to a Platforms row where you choose which systems it handles; RetroVoid pre-selects likely matches. Click Save Enabled Cores to apply. That does three things:

  • A newly ticked core becomes an emulator named RetroArch (Core Name), with its executable set to RetroArch and its arguments set to -L "<core path>" "{rom}".
  • Changing a saved core's platform list updates the existing entry.
  • Unticking a saved core deletes its emulator entry.

Saved cores then behave like any other emulator, so you can select them in Platform Defaults.

Special Platform Handling

Some platforms have unique launch behavior in RetroVoid:

PlatformBehavior
WindowsNative .exe games launch directly, no emulator needed
SteamLaunches via steam:// URL protocol
PS3Converts a PS3_DISC.SFB path to PS3_GAME/USRDIR/EBOOT.BIN for RPCS3
Wii UConverts a meta.xml path to the .rpx file in the code/ folder for Cemu
PS2Converts a .cue path to the data file the cue sheet points at, because PCSX2 cannot open cue sheets
PS VitaWith Vita3K, already-installed titles launch by their title ID instead of the archive path, so the game isn't reinstalled on every launch. Titles that aren't installed yet still launch from the file, which installs them
ScummVMThe Game ID is stored in place of a file path, so {rom} expands to the ID and ScummVM launches the registered game

Emulator Working Directory

When RetroVoid launches an emulator, it sets the working directory to the emulator's own directory. This ensures emulators can find their configuration files and dependencies, important for emulators like ShadPS4 that require relative paths.

Removing an Emulator

To remove an emulator from RetroVoid:

  1. Open Settings > Emulators.
  2. Click the trash icon on the emulator's row.
  3. Confirm the dialog.

Note: This only removes the emulator from RetroVoid's configuration. It does not uninstall the emulator itself.

Supported Emulators

RetroVoid works with any emulator that accepts a ROM path as a command-line argument. For a reference list of tested emulators and their launch arguments, see Supported Emulators.