Enjoy Play any game ROM with associated emulator in RetroArch on Linux

enjoy is a blazingly fast wrapper around “RetroArch” on Linux, to help running emulator cores on the commandline. A user configuration file can be setup, including rules and core aliases pointing to file extensions and emulator paths.

Usage Examples:

enjoy '~/Emulation/Roms/snes/Super Mario World (U) [!].smc'

enjoy --core psx 'Gran Turismo 2 - Epic Turismo 2 (v1.3.1).chd'

find . -maxdepth 2 | fzf | enjoy -w

The configuration file looks something like this:


retroarch = /usr/bin/retroarch
fullscreen = 1

snes = snes9x
gb gbc = sameboy_libretro.so

[.smc .sfc]
core = snes

core = gb

libretro = mednafen_psx_hw

The idea is to make it easier to play games without the need to explicitly specifying the core name in the commandline. The core will be looked up from a user configuration file based on the file extension of the Rom file. This also makes it possible to run games from the graphical filemanager, if the file extension is associated with this program.

If cargo is installed on your system, then you can just

cargo install enjoy

Otherwise download it from Releases page: https://github.com/thingsiplay/enjoy/releases

It was developed for myself mainly and that’s why I did not bother to make it run on other platforms than Linux.