
字节笔记本
2026年8月28日
RetroArch:一个前端装下所有模拟器,十六年的老牌开源项目
想在电脑上玩老游戏,模拟器绕不开,但每个平台一个模拟器、每套界面学一遍,很快就乱。RetroArch 用一个思路解决这个问题:它自己是前端,负责界面、输入、视频音频输出和存档;具体的模拟器做成一个个可插拔的「core」,要玩什么装什么。这个项目 2010 年就开始了,十六年打磨,GitHub 上 13000 多 stars,GPLv3 协议,用 C 写成。
它是怎么组织的
RetroArch 是 libretro API 的参考实现。libretro 定义了一组通用的音频、视频、输入回调:core 只管把模拟出来的画面声音交出来,前端负责渲染、发声和手柄处理。因为接口干净,一个用可移植 C/C++ 写的 core 几乎不用改就能跑在几十个平台上。这个 API 是完全开放的,任何项目都能白用——RetroArch 之外也有别的 libretro 前端。
core 的生态很厚:从红白机、超任、世嘉MD、GBA、NDS、PSP 这些家用机和掌机,到 PlayStation 之后的 3D 主机,还有 Quake、Doom 这类直接以游戏引擎形态存在的 core。全装进同一个界面、同一套按键配置和 shader 体系里。
硬核功能才是它的招牌
RetroArch 有几个别处很难凑齐的技术特性:
- 实时倒带:像 Braid 那样随时往回倒,靠内存快照流实现
- run-ahead 输入延迟消除:提前模拟若干帧来抵消显示和输入延迟,动作游戏手感提升明显
- 多通道 shader:CRT 扫描线、液晶网格这些复古滤镜可以串成流水线,GLSL/Cg/slang 三套 shader 仓库单独维护
- 内置录像:用 FFmpeg 直接把游戏画面录成视频
- 网络对战和观战:基于回放系统的多人联机
四种菜单驱动(XMB、Ozone、RGUI、GLUI)覆盖从大屏到手柄导航再到低性能设备的全部场景,界面完全可以用手柄操作,这是它「沙发友好」设计哲学的一部分。
平台覆盖是夸张级别的
README 列的移植目标超过 40 个:主流的 Windows/macOS/Linux/Android/iOS 自然都在,游戏主机侧包括 Xbox 全系、PS2 到 PS4、PSP、Vita、Switch、Wii、3DS、GameCube,掌上设备有树莓派、Miyoo 一族,甚至还有 DOS、WebAssembly、SerenityOS、Redox OS、Solaris、Haiku 这些你没想到还能跑东西的系统。依赖也抠得极紧:Windows 上只要 Win32 就能跑,Linux 没有强制依赖。
上手
PC 二进制在官方 buildbot(buildbot.libretro.com)下载,各平台的商店(Steam 之外,App Store、Google Play 也都有)同样收录。装好后第一次建议先跑在线更新器把 core 索引刷新,再按需装几个模拟 core。游戏 ROM 需要自己准备——这是所有模拟器的通用前提,版权归属自己把握。
文档中心 docs.libretro.com 写得相当全,从用户配置到 core 开发都有;遇到问题论坛和 Discord 社区都很活跃。
注意事项
- GPL v3 传染性许可,拿它的代码做衍生项目要遵守同协议开源
- 功能多对应的设置项也多,初次上手建议跟着文档走,别一上来就调 shader 流水线
- core 和前端版本要匹配,个别老 core 在新版本上可能有兼容问题
- 某些平台(iOS、PS 系)的安装受系统限制,按官方各平台指南操作