#retro-arch #config-file #file-extension #emulation #launcher #libretro #run

app enjoy

在 RetroArch 中使用相关模拟器玩任何游戏 ROM

6 个版本 (破坏性更新)

0.5.0 2024年4月18日
0.4.0 2022年9月24日
0.3.0 2022年9月11日
0.2.0 2021年6月8日
0.1.0 2021年5月31日

#5 in 模拟器

每月32次下载

自定义许可协议

85KB
1.5K SLoC

enjoy for RetroArch

在 Linux 上的 RetroArch 中播放任何游戏 ROM

enjoy

简介

enjoy 是一个围绕 Linux 上的 "RetroArch" 的快速包装程序,用于帮助在命令行上运行模拟器核心。可以设置用户配置文件,包括规则和核心别名,指向文件扩展名和模拟器路径。

每次运行时,都会查找用户配置或命令行参数中的设置,以确定每个给定扩展名(如 .smc 将与 snes9x 或任何其他核心相关联)。或者通过双击 Rom 文件直接在您最喜欢的图形文件管理器中启动游戏。为此,需要将 enjoy 配置为文件管理器中指定文件扩展名的默认 "打开方式" 应用程序。

使用命令行选项 -h 获取简短的帮助,使用 --help 获取详细帮助。

一些使用示例

以井号符号 # 开头的行是注释,解释以下命令的目的。

# Core for this file extension will be looked up from config file.
enjoy '~/Emulation/Roms/snes/Super Mario World (U) [!].smc'

# Arguments after standalone `--` will be given over to RetroArch as they are.
enjoy '~/Emulation/Roms/snes/Super Mario World (U) [!].smc' -- --set-shader ''

# Do not run, but output matching core alias and RetroArch command instead.
enjoy '~/Emulation/Roms/snes/Super Mario World (U) [!].smc' -xnW

# Specified core alias will be looked up from config file.
enjoy --core psx 'Gran Turismo 2 - Epic Turismo 2 (v1.3.1).chd'

# Or choose a core directly by it's RetroArch file name of the core.
enjoy -L mednafen_psx_hw 'Gran Turismo 2 - Epic Turismo 2 (v1.3.1).chd'

# Combine list of Roms from other programs output. First entry from a list is
# selected to play.
find ~/Emulation/Roms/gb | enjoy

# Use the filter to narrow down the input list even further.
find ~/Emulation/Roms/gb | enjoy --filter 'mario'

# Create custom menus with a fuzzy finder and choose the game interactively.
find . -maxdepth 2 | fzf | enjoy -w

根据您的 shell,您可能需要转义示例中的 "!"。当提供多个 ROM 的列表作为输入时,则将加载第一个。

功能

  • 直接从终端或文件管理器运行 RetroArch 游戏
  • 结合来自 grepfindfzfdmenu 的输出以选择文件
  • 快速启动
  • 易于配置
  • 很多快乐的时刻

快速开始

首先安装和设置 RetroArch,如果尚未完成的话: RetroArch

如果您有 cargo

  • crates.io 构建 和 安装

    cargo install enjoy
    

或从 GitHub 手动获取二进制文件

  • Releases 下载并解压。
  • 可选,将文件 "enjoy" 复制到 $PATH 目录下的一个目录中并设置可执行位。在 Wiki 中阅读关于安装过程的更详细描述: 安装

配置用户设置

  • 执行 enjoy --open-config 以打开默认配置文件,如果不存在则创建一个,位于: "~/.config/enjoy/default.ini" 。查看 "example-config.ini" 了解文件结构。有关配置的更多信息,请参阅 用户配置文件
  • 可选,将 enjoy 注册为默认应用程序。右键单击 Rom 文件,打开其属性并为此文件扩展名设置默认程序(例如,在 ".smc" 文件上)为 enjoy 。下次双击文件将自动打开 RetroArch 并使用此游戏和正确的核心。无需终端。

享受。

用户配置文件

在 Wiki 中阅读关于文件的更详细描述: 用户配置文件

每次执行 enjoy 时,默认配置文件 "~/.config/enjoy/default.ini" 将自动加载。示例

[options]
retroarch = /usr/bin/retroarch
fullscreen = 1

[cores]
snes = snes9x
gb gbc = sameboy_libretro.so

[.smc .sfc]
core = snes

[.gb]
core = gb

[/home/user/Roms/psx*]
libretro = mednafen_psx_hw

有 4 种不同的部分类别。

  • [options] - 主要选项:这些是与程序命令行界面中找到的相同选项。使用 enjoy --h 获取简要概述或 enjoy --help 获取所有可能选项的详细描述。

  • [cores] - 核心规则:对 "RetroArch" 中的任何 "libretro" 核心的自定义别名。左侧是核心的名称。它可以是名称列表(例如 snesgb gbc),用空格分隔。右侧是模拟器核心的文件名或完整路径(例如 snes9xsnes9x_libretro.so/home/tuncay/.config/retroarch/cores/snes9x_libretro.so)。如果文件名没有目录部分,则核心将在 "libretro-directory" 中搜索(这是您的核心在 RetroArch 中配置和安装的路径)。文件名中的 "_libretro.so" 部分是可选的。

  • [.ext1 .ext2] - 扩展规则:当加载游戏ROM时,其文件扩展名将与这些规则进行比较。每个扩展规则由单个或一组(如 [.gb][.smc .sfc])空格分隔的扩展名组成。每个部分名称必须以点开头,才能被识别为“扩展规则”。规则的主体可以包含一个 core 别名设置(例如 core = snes),它将在 [cores] 部分中查找以确定libretro名称和路径。或者使用 libretro 设置指定核心的名称(例如 libretro = mednafen_psx_hw),它具有最高优先级并直接指向libretro路径。

  • [/path/to/directory] - 目录规则:任何名称中包含斜杠的部分(例如 /home/user/Roms/psx*)是“目录规则”。当加载游戏ROM时(例如 /home/tuncay/Emulation/Roms/psx/Metal Gear Solid (USA) (Disc 1) (v1.1).chd),其目录部分(不包括文件名,例如本例中的 /home/tuncay/Emulation/Roms/psx)将与这些规则进行比较。如果游戏路径的目录部分与任何目录规则匹配,则它将优先于任何其他扩展规则设置。

    这对于通用扩展(如 .chd)特别有用,这样它们可以通过文件夹进行识别。也支持基本通配符。星号 *,用于匹配任意数量的字符,问号,用于匹配单个字符。如果找到匹配项,则将查找其关联的 corelibretro 选项。

已知错误、限制和怪癖

  • 并非所有来自 retroarch 主程序的命令行选项都受支持。作为解决方案,可以使用命令行上的 -- 选项或 enjoy 配置文件中的 retroarch_arguments = 选项直接将参数传递给 retroarch

  • 每次运行游戏时都会加载 RetroArch GUI。默认情况下,可以连续两次按下 ESC 键来快速结束当前播放会话,关闭 RetroArch 和 GUI。

  • Flatpak 或 Snap 版本的 "RetroArch" 可能无法与该程序一起使用,因为尚未进行测试(欢迎报告)。

依赖项

~2–3MB
~51K SLoC