Skip to content

App reference

The main screen shows all available systems. Check a system to enable it, uncheck to disable. Each system shows its available emulators.

System picker showing available systems with emulator versions and install status

Some systems require BIOS or firmware files. The provisions panel shows which files are needed, whether they are found, and whether they pass hash verification. Kyaraben does not distribute these files.

Kyaraben configures each emulator with paths, controller bindings, and hotkeys. Not all emulators support all features. This table shows what Kyaraben configures for each emulator.

EmulatorSystemSyncsHotkeysResumeControllerPlayersProvisions
Snes9xSNESsaves, states, screenshotsfullfullconfigured4none
bsnesSNESsaves, states, screenshotsfullfullconfigured4none
MesenNESsaves, states, screenshotsfullfullconfigured4none
Genesis Plus GXGenesis, SMS, GGsaves, states, screenshotsfullfullconfigured4none
mGBAGB, GBC, GBAsaves, states, screenshotsfullfullconfigured4none
melonDSDSsaves, states, screenshotsfullfullconfigured4none
Citra3DSsaves, states, screenshotsfullfullconfigured4none
Azahar3DSsaves, states, screenshotsfullfullconfigured4none
Mupen64PlusN64saves, states, screenshotsfullfullconfigured4none
Beetle SaturnSaturnsaves, states, screenshotsfullfullconfigured4Saturn BIOS
Beetle PCEPC Enginesaves, states, screenshotsfullfullconfigured4CD System Card (for CD games)
Beetle NGPNeo Geo Pocketsaves, states, screenshotsfullfullconfigured4none
FBNeoArcadesaves, states, screenshotsfullfullconfigured4varies by game (optional)
FBNeoNeo Geosaves, states, screenshotsfullfullconfigured4Neo Geo BIOS (optional)
StellaAtari 2600saves, states, screenshotsfullfullconfigured4none
VICE x64scC64saves, states, screenshotsfullfullconfigured4none
DuckStationPSXsaves, states, screenshotsfullsaveconfigured4PSX BIOS
PCSX2PS2saves, states, screenshotsfullsaveconfigured4PS2 BIOS
PPSSPPPSPsaves, states, screenshotsfullloadconfigured1none
DolphinGC, Wiisaves, states, screenshotsfullnoneconfigured4Wii keys (optional)
FlycastDreamcastsaves, states, screenshotspartialfullconfigured1DC BIOS (optional)
CemuWii Usavesnonenoneconfigured1Wii U keys (optional)
EdenSwitchsaves, screenshotspartialnoneconfigured2Switch keys
xemuXboxstates, screenshotsnonenoneauto4Xbox Boot ROM, Flash ROM
Xenia EdgeXbox 360saves, screenshotsnonenoneauto-none
Vita3KPS Vitasaves, screenshotsnonenoneauto-PS Vita firmware
RPCS3PS3saves, states, screenshotsnonenoneauto-PS3 firmware

Definitions:

  • Synchronizes: data types stored in the collection and available for synchronization. saves = in-game saves, states = savestates, screenshots = captured screenshots.
  • Hotkeys: full = save/load state, fast forward, pause, screenshot, quit. partial = subset of these. none = no Kyaraben hotkey configuration.
  • Resume: auto-resume support. full = autosave on exit and autoload on launch. save = autosave only. load = autoload only. none = not supported.
  • Controller: configured = Kyaraben generates controller bindings. auto = emulator handles controller detection.
  • Players: number of controller slots Kyaraben configures. - = handled by emulator.
  • Provisions: BIOS, firmware, or encryption keys needed. Items marked “(optional)” enable extra features but aren’t required for games to run.

RetroArch cores (bsnes through VICE x64sc) share configuration. They use RetroArch’s hotkey system where Back (Select) enables hotkeys and a second button triggers the action.

Click apply. If there are conflicts with your existing configuration, Kyaraben shows a preflight check with the exact changes it will make: which config files are created, modified, or left unchanged, with line-by-line diffs.

When you confirm, Kyaraben:

  1. Fetches emulator packages (from a binary cache, so downloads are fast)
  2. Installs emulator binaries to Kyaraben-managed directories
  3. Generates or updates emulator configuration files
  4. Creates the folder structure in your Collection
  5. Creates .desktop entries for each emulator
  6. Updates the manifest tracking what was installed

If apply fails partway through, the previous state remains intact. The manifest is only updated after all steps succeed.

Kyaraben can install EmulationStation DE as a frontend for browsing and launching your games. Enable it in the settings. EmulationStation DE scans your ROM directories and provides a unified game launcher with metadata scraping, media art, and controller-friendly navigation.

Kyaraben installs emulators and tools into Kyaraben-managed directories:

  • Emulator binaries: ~/.local/state/kyaraben/
  • Desktop entries: ~/.local/share/applications/kyaraben/
  • CLI tools: ~/.local/bin/kyaraben, ~/.local/bin/kyaraben-ui

This means Kyaraben does not overwrite emulators you installed from other sources. You can install the same emulators from other sources, but they share config files at default paths (e.g. ~/.config/retroarch/retroarch.cfg).

Emulators themselves may create additional files (shader caches, input profiles, logs). Kyaraben does not manage these.

Kyaraben manages specific keys in emulator config files: paths that point to your Collection (ROM directories, BIOS paths, save directories, etc.). Some settings like shaders and auto-resume can be opted into; most others (resolution, audio) are yours to configure.

When you apply, Kyaraben compares what it last wrote with what’s currently on disk. If you changed something Kyaraben doesn’t manage, your change is preserved. If you changed a managed key, Kyaraben warns you before overwriting.

Kyaraben expects to be the sole manager of these config files. Using another tool that writes to the same files will cause conflicts.

See collection reference for the folder structure, what syncs, and file versioning behavior.

Kyaraben makes the following guarantees about installation and uninstallation behavior.

  • Installations are reproducible. Same config, same result, on any Linux machine.
  • No root access needed, no system packages modified. Kyaraben’s binaries and state live under ~/.local/state/kyaraben/ and ~/.config/kyaraben/. Emulator configs are written to their default paths (e.g. ~/.config/retroarch/).
  • kyaraben and kyaraben-ui are added to your PATH via ~/.local/bin/. .desktop entries are created for kyaraben and each installed emulator. These entries are configured to use kyaraben’s managed paths.
  • Apply is atomic. If it fails, the manifest is not updated. The previous state remains intact.
  • Apply is idempotent. Running it twice with the same config produces the same result.
  • Uninstall is clean. kyaraben uninstall removes only Kyaraben-managed files. Your collection (ROMs, saves, BIOS) is never touched.

Kyaraben checks for updates automatically shortly after startup. When a new version is available, a banner appears offering to download and install it. You can also check for updates manually via the settings icon in the sidebar.

After updating, Kyaraben prompts you to run Apply to get any new emulator configurations included in the update. This is optional but recommended.

Kyaraben configures controller hotkeys for emulators that support them. The default bindings use a modifier button (Back/Select on most controllers) plus an action button.

ActionRetroArch coresDuckStationPCSX2
Save stateSelect + R1Select + R1Select + R1
Load stateSelect + L1Select + L1Select + L1
Next slotSelect + D-Pad RightSelect + D-Pad RightSelect + D-Pad Right
Previous slotSelect + D-Pad LeftSelect + D-Pad LeftSelect + D-Pad Left
Fast forwardSelect + R2Select + R2Select + R2
PauseSelect + A/CrossSelect + A/CrossSelect + A/Cross
ScreenshotSelect + B/CircleSelect + B/CircleSelect + B/Circle
QuitSelect + StartSelect + StartSelect + Start
Open menuSelect + Y/SquareSelect + Y/Square-

Emulators marked as none for hotkeys in the emulator support table do not have Kyaraben-configured hotkeys. Use their native keyboard shortcuts or configure hotkeys manually.

If a game fails to launch or shows a black screen:

  1. Check BIOS files. Run kyaraben doctor or check the provisions panel in the UI. Many systems require specific BIOS versions.
  2. Verify the ROM format. Some emulators only support certain formats. For example, PCSX2 works best with .iso or .chd files, not .bin/.cue.
  3. Check the emulator logs. Emulators write logs to their config directories (e.g. ~/.config/duckstation/).

Kyaraben uses SDL2 for controller input. If your controller is not detected:

  1. Check that the controller works in other applications
  2. For Bluetooth controllers, ensure the controller is paired and connected before launching the emulator
  3. On Steam Deck, if running from Desktop Mode, Steam’s controller handling may interfere. Try disabling Steam Input for the emulator.
  • Windows, macOS, iOS, or Android support
  • ROM management or scraping (use EmulationStation DE)
  • Netplay configuration

Kyaraben makes network requests in these situations:

  • Update checks: on startup, Kyaraben fetches https://api.github.com/repos/fnune/kyaraben/releases/latest to check for new versions. This discloses your IP address and a kyaraben-updater user agent to GitHub.
  • Emulator downloads: when you apply, Kyaraben downloads emulator packages from their official sources (GitHub releases, GitLab, libretro buildbot).
  • Synchronization: if you enable sync, Kyaraben connects to a relay server during device pairing and uses Syncthing for peer-to-peer file transfer.

Kyaraben does not collect telemetry or analytics. The relay server stores pairing codes temporarily (until redeemed or expired) but does not log device identifiers or IP addresses beyond what is necessary for the pairing handshake.

Kyaraben synchronizes your saves, states, screenshots, and scraped metadata across all your devices. Start a game on your desktop, pick up where you left off on your Steam Deck.

Synchronization is peer-to-peer with no cloud accounts. Kyaraben uses Syncthing under the hood, which is installed automatically when you enable synchronization. Data transfers directly between your devices when they are online, and changes queue up when devices are offline.

Synchronization requires systemd. Service management uses systemctl --user.

  1. Go to Settings > Synchronization
  2. Click “Enable synchronization”

Pairing connects two devices so they can synchronize.

On the first device:

  1. Go to Settings > Synchronization
  2. Click “Generate pairing code”
  3. A 6-character code appears (e.g. K7X9M2)
Pairing mode showing a 6-character code and the list of folders to sync

On the second device:

  1. Go to Settings > Synchronization
  2. Enter the code from the first device
  3. Click “Connect”

The code works from any network. Devices do not need to be on the same local network.

See collection reference for what syncs and file versioning behavior.

To add a new device, see Pairing devices.

To remove a device, click the trash icon next to the device in the synchronization settings.

See CLI reference for command-line management including status checks, device removal, and configuration options.