命令列工具
libretro/RetroArch avatar
libretro/RetroArch

RetroArch:libretro 参考前端与跨平台模拟器壳

libretro API 的跨平台、複雜的前端。已獲得 GPLv3 許可。

14,009 個 Star2,224 個 ForkCGPL-3.0

秒懂

它是什麼?
libretro/RetroArch 是 libretro 接口的参考前端,通过动态加载 libretro core 執行模拟器与引擎,采用 GPL-3.0 授權。
適合誰用?
适合需要统一前端管理多种 libretro core、并愿意自行維護 core 与 BIOS 檔案的玩家或開發者。不适合只玩单一平台且不想处理 core 版本与設定的人。
可以商用嗎?
可以,但有條件。GPL-3.0 是 copyleft 授權:如果你散布包含它的軟體,就必須以同一授權公開該軟體的原始碼。只在內部執行、不對外散布,則不會觸發這項義務。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 C(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

libretro API 与 core 动态加载模型

RetroArch 是 libretro 接口的参考前端。README 說明 libretro 暴露通用音频、视频与輸入回调,前端负责视频輸出、音频輸出、輸入与应用生命周期。用可移植 C 或 C++ 编写的 libretro core 以动态库形式实例化,可在多平台執行而几乎无需移植。

虽然 RetroArch 是参考實作,README 指出还有其他專案使用 libretro 接口。接口完全开放免费。libretro API 头檔案位于 libretro-common/include/libretro.h。对使用者而言,这意味着模拟器逻辑在 core 内,UI、設定、着色器与录制在前端内,升级 core 与升级前端可以分开进行。

(核对 libretro-retroarch-deep-analysis 第1节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「libretro API 与 core 动态加载模型」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「libretro API 与 core 动态加载模型」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

功能边界:着色器、倒带与 run-ahead

README 称 RetroArch 力求小巧,同时保留模拟器应有的核心功能,设计为可移植,界面以手柄与触屏为中心,也有完整命令行界面。

部分技术特性在 README 中单独强调:多通道着色器支援、即時倒带、基于 FFmpeg 的视频录制、run-ahead 輸入延迟消除等。RetroArch 还强调易于集成到各类启动器前端。相关着色器倉庫包括 common-shaders、slang-shaders、glsl-shaders,构建脚本在 libretro-super。若你关心延迟,应在目标 core 上分别开关 run-ahead 与倒带,用輸入到画面的主观延迟做对比,而不是只看 README 列表。

(核对 libretro-retroarch-deep-analysis 第2节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「功能边界:着色器、倒带与 run-ahead」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「功能边界:着色器、倒带与 run-ahead」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

平台列表与 buildbot 二进制来源

README 列出 RetroArch 已移植平台,涵盖 Android、iOS、macOS、Linux、Windows 各版本、多种游戏主机与掌机、Raspberry Pi、WebAssembly 等。平台跨度大意味着同一設定项在不同端口的行为可能不同。

最新二进制托管在 buildbot.libretro.com。GitHub 發布标签 v1.22.2 日期为 2025-11-20。文档中心在 docs.libretro.com,Unix 提供 man 页面,開發者材料在 development/libretro-overview。试用 RetroArch 时应从 buildbot 或 GitHub Releases 固定版本,避免 core 与前端版本错配导致崩溃或存档不兼容。

(核对 libretro-retroarch-deep-analysis 第3节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「平台列表与 buildbot 二进制来源」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「平台列表与 buildbot 二进制来源」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

OpenGL 与 Vulkan 驱动的着色器差异

README 按图形 API 分级說明需求。OpenGL 1.1 仅保证基础菜单驱动 MaterialUI、XMB、Ozone、RGUI 可用,XMB 无着色器管线效果。OpenGL 2.1 可选 NVIDIA Cg 或 GLSL 着色器。OpenGL 3.2 core 与 Direct3D 11、Vulkan 1.0 可使用现代 Slang 着色器。

这意味着同一套 slang-shaders 在不同 video driver 下可用性不同。設定 RetroArch 时应在 Settings > Driver 中选定 video driver,再加载与驱动匹配的 shader 集合。若显卡只支援 OpenGL 2.1,就不应假设 Slang 预设全部可用。PC 端 Linux 推荐依赖包括 GL 或 Vulkan 头檔案与 X11 或 EGL/KMS/GBM。

(核对 libretro-retroarch-deep-analysis 第4节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「OpenGL 与 Vulkan 驱动的着色器差异」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「OpenGL 与 Vulkan 驱动的着色器差异」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

retroarch.cfg 与 config.def.h 預設值

預設設定定义在 config.def.h,README 不建议随意修改该檔案。執行时可使用設定檔案覆盖,系统级样例安装到 /etc/retroarch.cfg。RetroArch 启动时若不存在则在 $XDG_CONFIG_HOME/retroarch/retroarch.cfg 建立設定。

使用者只需在期望值与 config.def.h 不同时写入設定。手柄可在内置菜单或 retroarch.cfg 中設定。编译安装說明在 Libretro/RetroArch Documentation。驗證設定时,删除使用者目錄下 retroarch.cfg 后重启,观察是否按 README 描述自动重建,再逐项覆盖 input 与 video 设置并确认生效。

(核对 libretro-retroarch-deep-analysis 第5节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「retroarch.cfg 与 config.def.h 預設值」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「retroarch.cfg 与 config.def.h 預設值」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

依赖、音频驱动与 v1.22.2 社区支援

PC 端 README 称没有真正硬依赖;Windows 可仅依赖 Win32。Linux 推荐 GL/Vulkan 头檔案与显示栈。音频至少需要 ALSA、OSS、PulseAudio、PipeWire、JACK、SDL、OpenAL 等之一。執行 RetroArch 需要 libretro core 存在,但 core 动态加载,编译时不必链接。

支援渠道包括 GitHub issue、libretro 论坛、Discord 与 Reddit Technical Support。相关專案 mirror 在 libretro-mirrors。RetroArch 采用 GPL-3.0。若你分发包含 core 的打包镜像,需遵守 GPL 源码提供义务。试用路径:安装 v1.22.2,从 libretro-super 或 buildbot 获取目标 core,放置于 RetroArch 設定的 core 目錄,加载 ROM 并檢查音频驱动与 video driver 日志。

(核对 libretro-retroarch-deep-analysis 第6节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「依赖、音频驱动与 v1.22.2 社区支援」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「依赖、音频驱动与 v1.22.2 社区支援」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

libretro-super 打包与 v1.22.2 存档兼容

libretro-super 脚本可批量编译 cores,适合离线镜像。Philosophy 强调 launcher 集成,HTPC 场景常见。

试用 RetroArch v1.22.2:用 buildbot 安装前端,libretro-super 获取 core,Settings > Directory 设 cores 路径,加载 ROM 后保存 state,小版本升级 frontend 再加载同一 state 驗證兼容性。记录 retroarch.cfg 中 video_driver 与 audio_driver。

(核对 libretro-retroarch-deep-analysis 第7节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「libretro-super 打包与 v1.22.2 存档兼容」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「libretro-super 打包与 v1.22.2 存档兼容」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

RetroArch 着色器倉庫与 Crowdin 翻译

common-shaders、slang-shaders、glsl-shaders 服務不同 GL 世代。Crowdin 链接表明 UI 社区翻译。

在 OpenGL 3.2 或 Vulkan driver 下加载 Slang preset,切换 preset 观察 XMB 菜单性能。报告 bug 时附 retroarch.cfg、core 名与 buildbot 包日期。

(核对 libretro-retroarch-deep-analysis 第8节时请以倉庫 README 同版本原文为准。)

第1轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「RetroArch 着色器倉庫与 Crowdin 翻译」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

第2轮阅读 libretro-retroarch-deep-analysis README 时,请打开 GitHub 上该倉庫与「RetroArch 着色器倉庫与 Crowdin 翻译」相关的段落,记录本地执行的命令、設定檔案路径与终端輸出,便于与同版本文档对照。

針對 libretro/RetroArch,素材記錄的主要語言是 C,預設分支是 master。這些欄位只能用來定位程式碼與閱讀入口,不能推導出執行環境或維運承諾。實際採用前,可從 README 指出的專案名稱與命令開始,觀察 RetroArch 產生的錯誤訊息、檔案變更和退出狀態,再決定是否符合目前工作流程。 本段聚焦第 8 個觀察面向,避免把其他專案的經驗套用到 RetroArch。

編輯結論

适合需要统一前端管理多种 libretro core、并愿意自行維護 core 与 BIOS 檔案的玩家或開發者。不适合只玩单一平台且不想处理 core 版本与設定的人。先从 buildbot.libretro.com 安装 v1.22.2,加载一个 core 執行 ROM,檢查 retroarch.cfg 与 $XDG_CONFIG_HOME/retroarch/ 下的設定是否按预期写入。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記