PCSX-Redux:从模拟器长成调试器,PS1 逆向工程的免费开源工具箱

摘要

PCSX-Redux 是 PCSX 的开源分支:去掉插件系统、统一单体代码库,内置 GDB 服务、Ghidra 对接、Lua 脚本与显存查看器,按滚动快照分发。

推荐
软件名称
PCSX-Redux
版本
20261021
收费
免费
开源
开源
操作系统
WindowsLinuxmacOS
更新时间
2026-10-21 15:58

PCSX-Redux 不满足于「又一个 PS1 模拟器」。它把模拟器的内部摊开在桌面上:反汇编、内存、显存、断点、脚本,凡是想看清一台 PlayStation 在做什么的人,都能在里面找到对应的窗口。

它没有版本号

先说一件在别的软件介绍里很少遇到的事:这个项目没有可以写进标题的版本号。仓库里既没有发布版,也没有打任何版本标签,Windows、Linux、macOS 的分发件都是滚动更新的开发快照。官方按平台给了五个包:Windows 64 位、Windows 64 位命令行版、Linux 64 位与 arm64 的两种包、以及 macOS 的 Apple Silicon 版。

滚动分发的代价是没有「稳定版」可依,好处是拿到手的永远是最近的代码。这类项目的活跃度只能从提交记录看,而它的主干几乎每天都在动。

它是 PCSX 的一个分支

仓库自述写得很直白:这是一个围绕 PS1 开发与逆向工程的集合,里面装着工具、研究资料、硬件设计与库;核心产品 PCSX-Redux 本身,是经典 PS1 模拟器 PCSX 的又一个分支。

项目用 GNU 通用公共许可证第 2 版发布,主语言是 C++,仓库星标一千余、派生一百五十余,从 2018 年底开始维护。放在模拟器这个圈子里,这个体量不算大,但它换来的是一套相当完整的调试设施。

五条目标,都指向「可读」

README 把目标列成五条,读下来会发现它们其实是一件事的不同侧面:把代码库带到更新的标准上;去掉插件系统,做成一个统一的单体代码库来处理模拟的全部环节;把一切写在 OpenGL3+ 与 ImGui 之上,换取可移植性与可读性;改善调试体验;改善渲染体验。

插件架构在上一个时代是主流做法,好处是各部件可以单独替换,代价是跨部件的状态永远对不齐:图形插件拿不到 CPU 那边的时序细节,调试器想同时看两条线就得自己搭桥。做成单体之后,调试器与模拟核心共享同一份内存视图,断点可以同时停住两条线——这才是「可读」的实际含义。

界面与渲染统一压到 OpenGL3+ 与 ImGui 上,则解释了它为什么长得不像一台游戏机,而像一个开发工具:窗口可以任意停靠、可以同时开好几个面板、面板之间的信息能互相引用。

菜单栏就是一块仪表盘

官方文档的菜单章节值得细看,因为它把「这台模拟器给谁用」写得毫不含糊。菜单栏常驻显示四组状态:CPU 模式、游戏 ID、ImGui 的帧率计数、以及访客帧率计数,外加以毫秒与帧计的音频缓冲大小。文档特意注明,那个 ImGui 帧率不是 PS1 内部的帧率,只是界面自己的刷新速度。

真正有意思的是「访客帧率」的定义:它统计的是被模拟软件每秒移动多少次显示起点,也就是游戏翻转缓冲区的方式。按一秒内的模拟垂直同步来计,视视频设置取 50 或 60;当同一块缓冲一直留在屏幕上时它读 0——隔行扫描、单缓冲的游戏、以及部分暂停画面都会这样。读 0 不等于卡死,这一点文档专门提醒过。

两个帧率与音频缓冲只在模拟运行时出现,否则菜单栏就显示「Idle」。一个把「空闲」与「运行」分得这么清楚的界面,显然不是给插上光盘就玩的人准备的。

调试这条线铺得很全

文档站把调试拆成了几块:与 PCSX-Redux 配合的 GDB 服务、把 Ghidra 接进来、断点、内联汇编、内存与寄存器的读写。也就是说,外面那些成熟的逆向工具可以直接连上来,把它当成一台可以被调试器附着的 PS1。

再往下一层是脚本。项目内置 Lua 接口,文档里开了一整支:加载库、基础的 Redux 接口、渲染、文件读写、构建光盘镜像、打 PPF 补丁、内存与寄存器、扩展卡、事件、断点、内联汇编、处理 PSX 二进制。连「构建光盘镜像」和「打补丁」都做进了脚本层,意味着改一张盘的流程可以写成可重复执行的脚本,而不是每次手工点。

另有两块是可视化:显存查看器与 GPU 日志。前者看的是那 1MB 显存里到底被写成了什么,后者记录绘制命令。对于要弄清某个画面为什么长成那样的人,这两块往往比断点更省时间。

OpenBIOS 与硬件目录

仓库里还有两样东西值得单独说。一是 OpenBIOS:一个 MIPS R3000A 的 BIOS 实现,可以在没有零售 BIOS 的情况下启动 PS1 软件——面向的是自制程序与开发场景。二是 hardware 目录,里面放着若干可用于 PS1 的硬件设计;另有 wiki 目录收纳与模拟器本身无直接关系的研究资料。

这两块说明项目的定位比「模拟器」宽:它同时是一个关于 PS1 的资料库与实验台。对做自制软件的人来说,能在一台真实硬件与一个可调试的模拟环境之间来回切换,是很实际的便利。

它适合谁

把它当普通模拟器用,会看到一堆用不上的面板;反过来,想弄清一段 PS1 代码在做什么、某张贴图是怎么拼出来的、某个画面为什么抖,它几乎是现成的一整套环境。免费、开源、跨三个平台,这几点让它成为学习与研究的低门槛入口。

需要提醒的是,模拟器本身只提供运行环境,游戏镜像与零售 BIOS 的取得应当遵守当地法律与版权规定;项目面向开发与逆向研究,官方给出的社区入口也分成「只谈这个模拟器」与「谈 PS1 开发与逆向工程」两个。

PCSX-Redux 的价值不在兼容性列表的长短,而在它愿不愿意把内部打开:从菜单栏那几行状态,到 GDB 与脚本接口,再到显存与绘制日志,每一处都假设使用者想看清楚而不是只想玩。这类工具平时不显眼,真要做点研究时,能省下的时间是以天计的。

PCSX-Redux下载地址
支持的操作系统: Windows Linux macOS