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 是一个围绕 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 游戏
- 结合来自
grep
、find
、fzf
或dmenu
的输出以选择文件 - 快速启动
- 易于配置
- 很多快乐的时刻
快速开始
首先安装和设置 RetroArch,如果尚未完成的话: RetroArch
如果您有 cargo
-
从 crates.io 构建 和 安装
cargo install enjoy
或从 GitHub 手动获取二进制文件
配置用户设置
- 执行
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" 核心的自定义别名。左侧是核心的名称。它可以是名称列表(例如snes
或gb gbc
),用空格分隔。右侧是模拟器核心的文件名或完整路径(例如snes9x
或snes9x_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
)特别有用,这样它们可以通过文件夹进行识别。也支持基本通配符。星号*
,用于匹配任意数量的字符,问号,用于匹配单个字符。如果找到匹配项,则将查找其关联的core
或libretro
选项。
已知错误、限制和怪癖
-
并非所有来自
retroarch
主程序的命令行选项都受支持。作为解决方案,可以使用命令行上的--
选项或 enjoy 配置文件中的retroarch_arguments =
选项直接将参数传递给retroarch
。 -
每次运行游戏时都会加载 RetroArch GUI。默认情况下,可以连续两次按下
ESC
键来快速结束当前播放会话,关闭 RetroArch 和 GUI。 -
Flatpak 或 Snap 版本的 "RetroArch" 可能无法与该程序一起使用,因为尚未进行测试(欢迎报告)。
依赖项
~2–3MB
~51K SLoC