ITADN
libretro/RetroArch
libretro/RetroArch · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Crowdin

RetroArch

RetroArch 是 libretro API 的参考前端。 该 API 的流行实现示例包括视频游戏系统模拟器和游戏引擎,以及 更通用的 3D 程序。 这些程序被实例化为动态库。我们将其称为“libretro cores”。

XMB menu driver

rgui menu driver

glui menu driver

ozone menu driver

libretro

libretro 是一个暴露通用音频/视频/输入回调的 API。 libretro 的前端(例如 RetroArch)负责视频输出、音频输出、输入以及应用程序生命周期。 用可移植的 C 或 C++ 编写的 libretro 核心可以在许多平台上无缝运行,几乎无需移植工作。

虽然 RetroArch 是 libretro 的参考前端,但其他几个项目也使用 libretro 接口来包含对模拟器和/或游戏引擎的支持。libretro 完全开放,任何人都可以免费使用。

libretro API 头文件

Binaries

最新的二进制文件目前托管在 buildbot 上。

Support

要联系开发者,请在此 GitHub 上创建 issue,在 forum 上创建帖子,或在 Discord 上聊天。您可以在 Reddit 上创建带有 Technical Support 标签的帖子。

Documentation

请参阅我们的 Documentation Center。在 Unix 上,提供了 man-pages。 更多面向开发者的内容可以在 here 找到。

Philosophy

RetroArch 力求保持小巧精简, 同时仍具备模拟器所期望的所有实用核心功能。 它被设计为具有极高的可移植性,并采用以游戏手柄为中心且支持触摸屏的用户界面。 它还提供了一个功能齐全的命令行界面。

在某些方面,RetroArch 更进一步,强调了一些不太常见的技术特性,例如多通道着色器支持、 实时回退(Braid 风格)、视频录制(使用 FFmpeg)、提前运行以消除输入延迟等。

RetroArch 还强调易于集成到各种启动器前端中。

平台

RetroArch 已被移植到以下平台:

  • Android(2.x 至最新版本)
  • Apple iOS
  • Apple macOS(PPC、x86-32 和 x86-64)
  • Apple tvOS
  • Blackberry
  • DOS
  • Emscripten(WebAssembly 和 JavaScript)
  • FreeBSD
  • Haiku
  • LG webOS
  • Linux
  • 原始 Microsoft Xbox
  • Microsoft Xbox 360(Libxenon/XeXDK)
  • Microsoft Xbox One
  • Microsoft Xbox Series S/X
  • Miyoo
  • NetBSD
  • Nintendo NES/SNES Classic Edition
  • Nintendo GameCube
  • Nintendo Wii
  • Nintendo Switch
  • Nintendo Wii U
  • Nintendo 3DS/2DS
  • OpenBSD
  • OpenDingux
  • PlayStation2
  • PlayStation3
  • PlayStation4
  • PlayStation Portable
  • PlayStation Vita
  • Raspberry Pi
  • ReactOS
  • Redox OS
  • RetroFW
  • RS90
  • SerenityOS
  • Solaris
  • Windows NT 3.5
  • Windows 95
  • Windows 98
  • Windows 2000
  • Windows XP
  • Windows Millennium
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10
  • Windows 11

依赖项(PC)

严格来说,没有真正的硬性依赖项。

在 Windows 上,RetroArch 仅以 Win32 作为依赖项即可运行。

在 Linux 上,没有真正的依赖项。为了获得最佳使用体验, 以下依赖项作为推荐项提供:

  • GL 头文件 / Vulkan 头文件
  • X11 头文件和库,或 EGL/KMS/GBM

RetroArch 的 OSX 移植版需要最新版本的 Xcode 才能构建。

如果启用,RetroArch 可以利用这些库:

  • nvidia-cg-toolkit
    • libfreetype2 (屏幕上的 TTF 字体渲染)

RetroArch 需要至少一个以下音频驱动库:

  • ALSA
  • OSS
  • RoarAudio
  • RSound
  • OpenAL
  • JACK
  • SDL
  • PulseAudio
  • PipeWire
  • XAudio2 (Win32, Xbox 360)
  • DirectSound (Win32, Xbox 1)
  • CoreAudio (OSX, iOS)

为了正常运行,RetroArch 需要存在一个 libretro 实现;然而,由于它通常是在运行时动态加载的,因此在构建时并非必需。

依赖项 (主机移植版,移动端)

主机移植版有其自身的依赖项,但通常不需要 除了各自 SDK 提供的东西之外的其他内容。

要求

OpenGL1

您的显卡至少需要支持 OpenGL 1.1 规范。

着色器: 不适用

菜单驱动支持: MaterialUI、XMB、Ozone 和 RGUI 都应该能正常工作。 由于上述缺乏着色器支持,XMB 将没有着色器管线效果。

OpenGL2

您的显卡至少需要支持 OpenGL 2.1 规范。

着色器: 您可以选择使用 NVIDIA Cg 着色器(已弃用,需要在您的系统上单独安装运行时)或 GLSL 着色器。

菜单驱动支持: MaterialUI、XMB、Ozone 和 RGUI 都应该能正常工作。

OpenGL3

您的显卡至少需要支持 OpenGL 3.2 核心功能规范。

着色器: 使用此驱动,您将能够使用现代 Slang 着色器。

菜单驱动支持: MaterialUI、XMB、Ozone 和 RGUI 均应正常工作。

Direct3D 11

您的显卡至少需要支持 Direct3D11 11.0 规范。该显卡 还必须至少支持 Shader Model 4.0。

着色器: 您可以使用此驱动使用现代 Slang 着色器。

菜单驱动支持: MaterialUI、XMB、Ozone 和 RGUI 均应正常工作。

Vulkan

您的显卡至少需要支持 Vulkan 1.0 规范。

着色器: 您可以使用此驱动使用现代 Slang 着色器。

菜单驱动支持: MaterialUI、XMB、Ozone 和 RGUI 均应正常工作。

配置

默认配置定义在 config.def.h 中。 除非您知道自己在做什么,否则不建议更改此配置。 这些配置可以通过使用配置文件稍后进行调整。 一个示例配置文件已安装到 /etc/retroarch.cfg。这是系统范围的配置文件。

RetroArch 在启动时,如果 $XDG\_CONFIG\_HOME/retroarch/retroarch.cfg 中不存在配置文件,则会创建一个配置文件。 用户只需在期望的值与 config.def.h 中定义的值不一致时,才需要配置特定选项。

要配置手柄,请使用内置菜单或在 retroarch.cfg 中手动配置。

编译和安装

编译和安装 RetroArch 的说明可在 Libretro/RetroArch 文档中心 中找到。

CRT 15Khz 分辨率切换

CRT SwitchRes 将即时开启。但是,您需要重启 RetroArch 才能将其禁用。启用 CRT SwitchRes 后,RetroArch 将以 2560 x 480 @ 60 启动。

如果您正在使用 Windows,在启用 CRT SwitchRes 选项之前,请确保已安装 CRTEmudriver 并安装了一些 modelines。所有游戏正确切换所需的最小 modelines 为:

  • 2560 x 192 @ 60.000000
  • 2560 x 200 @ 60.000000
  • 2560 x 240 @ 60.000000
  • 2560 x 224 @ 60.000000
  • 2560 x 237 @ 60.000000
  • 2560 x 256 @ 50.000000
  • 2560 x 254 @ 55.000000
  • 2560 x 448 @ 60.000000
  • 2560 x 480 @ 60.000000

安装这些 modelines,将 2560 替换为您期望的超分辨率。上述分辨率仅适用于 NTSC,因此如果您要播放任何 PAL 内容,请添加 PAL modelines:

  • 2560 x 192 @ 50.000000
  • 2560 x 200 @ 50.000000
  • 2560 x 240 @ 50.000000
  • 2560 x 224 @ 50.000000
  • 2560 x 288 @ 50.000000
  • 2560 x 237 @ 50.000000
  • 2560 x 254 @ 55.000000
  • 2560 x 448 @ 50.000000
  • 2560 x 480 @ 50.000000

某些游戏需要更高的 PAL 分辨率,这些分辨率也应安装:

  • 2560 x 512 @ 50.000000
  • 2560 x 576 @ 50.000000

理想情况下,安装所有这些 modelines,一切都会运行良好。

超级分辨率

默认的超级分辨率为 2560。它显示在 CRT 切换选项下方,该选项可在视频设置中找到。这可以在 retroarch.cfg 中更改。唯一兼容的分辨率为 1920、2560 和 3840。任何其他分辨率都将被忽略,并激活原生切换。

原生分辨率

如果激活了原生分辨率,你将需要一整套新的 modelines:

  • 256 x 240 @ 50.006977 SNESpal

  • 256 x 448 @ 50.006977 SNESpal

  • 512 x 224 @ 50.006977 SNESpal

  • 512 x 240 @ 50.006977 SNESpal

  • 512 x 448 @ 50.006977 SNESpal

  • 256 x 240 @ 60.098812 SNESntsc

  • 256 x 448 @ 60.098812 SNESntsc

  • 512 x 240 @ 60.098812 SNESntsc

  • 512 x 224 @ 60.098812 SNESntsc

  • 512 x 448 @ 60.098812 SNESntsc

  • 256 x 192 @ 59.922745 MDntsc

  • 256 x 224 @ 59.922745 MDntsc

  • 320 x 224 @ 59.922745 MDntsc

  • 320 x 240 @ 59.922745 MDntsc

  • 320 x 448 @ 59.922745 MDntsc

  • 320 x 480 @ 59.922745 MDntsc

  • 256 x 192 @ 49.701458 MDpal

  • 256 x 224 @ 49.701458 MDpal

  • 320 x 224 @ 49.701458 MDpal

  • 320 x 240 @ 49.701458 MDpal

  • 320 x 288 @ 49.701458 MDpal

  • 320 x 448 @ 49.701458 MDpal

  • 320 x 480 @ 49.701458 MDpal

  • 320 x 576 @ 49.701458 MDpal

  • 256 x 288 @ 49.701458 MSYSpal

  • 256 x 240 @ 60.098812 NESntsc

  • 256 x 240 @ 50.006977 NESpal

  • 640 x 237 @ 60.130001 N64ntsc

  • 640 x 240 @ 60.130001 N64ntsc

  • 640 x 480 @ 60.130001 N64ntsc

  • 640 x 288 @ 50.000000 N64pal

  • 640 x 480 @ 50.000000 N64pal

  • 640 x 576 @ 50.000000 N64pal

  • 256 x 252 @ 49.759998 PSXpal

  • 320 x 252 @ 49.759998 PSXpal

  • 384 x 252 @ 49.759998 PSXpal

  • 640 x 252 @ 49.759998 PSXpal

  • 640 x 540 @ 49.759998 PSXpal

  • 384 x 240 @ 59.941002 PSXntsc

  • 256 x 480 @ 59.941002 PSXntsc

  • 352 x 240 @ 59.820000 Saturn/SGFX_NTSCp

  • 704 x 240 @ 59.820000 SaturnNTSCp

  • 352 x 480 @ 59.820000 SaturnNTSCi

  • 704 x 480 @ 59.820000 SaturnNTSCi

  • 352 x 288 @ 49.701458 SaturnPALp

  • 704 x 288 @ 49.701458 SaturnPALp

  • 352 x 576 @ 49.701458 SaturnPALi

  • 704 x 576 @ 49.701458 SaturnPALi

  • 240 x 160 @ 59.730000 GBA

  • 320 x 200 @ 60.000000 Doom

// Arcade

  • 400 x 254 @ 54.706841 MK
  • 384 x 224 @ 59.637405 CPS1

这些模型行提供了更精确的 hz 值。然而,某些游戏可能会出现不理想的结果。这是由于原始硬件上的扫描线中间分辨率变化所致。为了获得最佳效果,建议使用超分辨率。

CRT 分辨率切换与 MAME

某些街机分辨率可能与消费级 CRT 显示器有很大不同。存在分辨率检测机制,以确保 MAME 游戏以最接近的可用分辨率显示,但在此分辨率内以原生分辨率绘制。这意味着 MAME 游戏看起来将与原始硬件完全一致。

在 MAME 中运行的具有垂直画幅的 ROM(例如 DoDonPachi)需要在 MAME 内部进行旋转,分辨率切换和画幅校正才能生效。请在启用 CRT SwitchRes 之前执行此操作,以便 RetroArch 以桌面分辨率运行。完成所有可能需要旋转的游戏的旋转后,再开启 CRT SwitchRes。

社交

以下链接属于我们的官方渠道。除此之外的链接可能由粉丝、独立成员或追随者创建。我们强烈建议使用我们的原始资源。