RetroArch

出自 ArchWiki


RetroArch 是 libretro API 的参考实现。它是一个模块化的前端,用于视频游戏系统模拟器、游戏引擎、视频游戏、媒体播放器和其他应用程序,提供多种不常见的技术特性,例如多通道着色器支持、实时回溯和视频录制(使用 FFmpeg),它还在功能齐全的命令行界面之上提供了一个手柄驱动的 UI。

安装

安装 retroarch 软件包,或者选择 retroarch-gitAUR 以获取开发版本。

提示
  • 安装 retroarch-assets-xmb 以获取 RetroArch GUI 的字体和图标。您可能还想安装 retroarch-assets-ozone 以获得更友好的桌面 GUI。
  • 安装 retroarch-standalone-serviceAUR 以获取独立游戏机的系统用户、系统服务和 RetroArch 配置。然后启动和/或启用 retroarch-standalone.service
  • 安装 retroarch-steam-launcherAUR 以将 PATH 中的 retroarch 映射到 Steam 安装的 retroarch。这对于将 Steam 功能(例如云存档)与 emulationstation-deAUR 等使用 PATH 中 retroarch 的应用程序一起使用非常有用。

使用

RetroArch 依赖于称为“核心”的独立库来实现其大部分功能。这些核心可以通过 RetroArch 本身(通过 libretro Buildbot)按用户下载,或者您可以使用 libretroAUR 在系统范围内 安装 它们。

默认情况下,RetroArch 配置为加载其下载的每个用户核心。如果您将它们安装在其他位置,请更改您的#配置

运行特定核心的命令是

$ retroarch --libretro /path/to/some_core_libretro.so /path/to/rom

配置

首次运行 RetroArch 时,它将创建用户配置文件 ~/.config/retroarch/retroarch.cfg

如果您在家目录中安装 RetroArch 组件,则应在全局配置文件中指定本地路径以下载核心。例如,

~/.config/retroarch/retroarch.cfg
libretro_directory = "~/.config/retroarch/cores"
libretro_info_path = "~/.config/retroarch/cores/info"

如果您使用 pacman 在系统范围内安装任何 RetroArch 组件,则应在全局配置文件中指定这些组件,并将它们包含在您的用户文件中。例如,

/etc/retroarch.cfg
# for retroarch-assets-xmb
assets_directory = "/usr/share/retroarch/assets"
# for libretro-core-info
libretro_info_path = "/usr/share/libretro/info"
# for libretro cores
libretro_directory = "/usr/lib/libretro"
~/.config/retroarch/retroarch.cfg
#include "/etc/retroarch.cfg"
注意: RetroArch 不支持这些组件的多个搜索路径。例如,如果您使用 pacman 安装核心使用 RetroArch 的 GUI 下载核心,则无法配置 RetroArch 一次显示所有核心,因为它们安装在不同的目录中。

如果您想覆盖您的配置(例如,在运行某些核心时),您可以使用 --appendconfig /path/to/config 命令行选项。

技巧与诀窍

启用“在线更新器”

如果您更喜欢使用内置更新器而不是 pacman 安装所有 RetroArch 组件,您可以使用配置文件启用它

~/.config/retroarch/retroarch.cfg
menu_show_core_updater = "true"
注意: 安装 libretro-core-info 以确保核心下载器正常工作。如果没有此软件包,它将不会获取核心列表以供选择。

启用“SaveRAM 自动保存间隔”

默认情况下,RetroArch 仅在无错误退出的情况下将 SRAM 写入磁盘,这意味着在使用容易崩溃的核心时存在丢失保存数据的风险。要更改此行为,请打开 ~/.config/retroarch/retroarch.cfg 并将 autosave_interval 设置为 n

~/.config/retroarch/retroarch.cfg
autosave_interval = "600"

使用上面的示例,RetroArch 将每 600 秒将 SRAM 更改写入磁盘。

警告: 将此值设置得太低会导致各种问题,最明显的是硬件退化。请参阅 [1]

滤镜和着色器

RetroArch 可以加载 CG 着色器(被认为是旧的且已弃用)以及 GLSL 和 Slang 着色器。[2] 着色器可以使用在线更新器直接在 RetroArch 内部获取和更新。

注意: retroarch-gitAUR 需要 nvidia-cg-toolkit 才能使用CG 着色器

将设置重置为默认值

要通过 GUI 将设置或按键绑定重置为其默认值,请突出显示它并按 Start。要从按键绑定中删除按钮,请突出显示按键绑定并按 Y

故障排除

未找到核心

默认情况下,RetroArch 在 ~/.config/retroarch/cores 中搜索核心,这是在线更新器安装它们的位置。使用 pacman 安装的核心位于 /usr/lib/libretro 中,因此不会显示在 RetroArch 的 GUI 中。您应该选择一种安装核心的方法(pacman 或在线更新器)并更改您的配置以匹配。

输入设备无法操作

此文章或章节的事实准确性存在争议。

原因: 我们可能需要更新此部分以指向 Udev#允许普通用户使用设备?(在 Talk:RetroArch 中讨论)

如果在 CLI 或 Xorg 以外的显示服务器上运行,或者如果您使用 udev 输入驱动程序,您可能会遇到问题,因为 /dev/input 节点仅限于 root 用户访问。尝试将您的用户添加到 input 用户组,然后重新登录。

或者,在 /etc/udev/rules.d/99-evdev.rules 中手动添加规则,内容为 KERNEL=="event*", NAME="input/%k", MODE="666"。通过运行以下命令重新加载 udev 规则

# udevadm control --reload-rules

如果重启系统或重新插拔设备不是选项,则可以使用以下命令强制执行权限

# chmod 666 /dev/input/event*

视频性能不佳

如果遇到视频性能不佳的情况,可以通过在 ~/.config/retroarch/retroarch.cfg 中设置 video_threaded = true 在单独的线程上运行 RetroArch。

然而,如果调整 RetroArch 的视频分辨率/刷新率可以解决问题,则不应使用此解决方案,因为它会使完美的 V-Sync 变得不可能,并略微增加延迟。

ALSA 的音频问题

使用 ALSA 时,audio_out_rate 必须与系统的默认输出速率匹配,通常为 48000

每当 RetroArch 崩溃时,保存数据都会丢失

请参阅 #启用“SaveRAM 自动保存间隔”

从播放列表启动游戏但报告“无项目”

如果 RetroArch 报告 libretro core requires contents, but nothing provided,请尝试从主菜单 > 加载内容手动选择 ROM 的路径来加载游戏。从播放列表启动游戏似乎不可靠。

有必要强制在 Xwayland 中启动 RetroArch。

$ WAYLAND_DISPLAY="" retroarch

您可以使用 --verbose 选项检查日志,应该有 Found vulkan context: "vk_x" 而不是 "vk_wayland"

BIOS 文件丢失或不被接受

Retroarch 核心在 retroarch.cfg 中使用 system_directory 选项设置的位置查找 BIOS 文件。

GUI 菜单设置 > 目录 > 系统/BIOS 也显示该目录。

一些核心要求文件直接位于此目录中。其他核心需要此目录中的子目录,子目录具有特定的名称,用于存放其特定的 BIOS 文件。有些核心甚至在其尝试运行的 ROM 文件所在的目录中查找其文件。

每个安装的核心都提供有关所需文件、其 MD5 校验和以及需要放置在哪个目录中的信息。您可以在 GUI 菜单中的设置 > 核心 > 管理核心下找到此信息。在此处选择一个核心以获取有关此特定核心所需的 BIOS 文件的信息。RetroArch 在核心信息页面上将它们描述为“固件”文件。

有关许多受支持核心的 BIOS 文件的更深入信息,请参阅官方文档。[3]

参见