RPCS3 自动更新完全指南:3步搞定查版本、下载与替换,不用再手动折腾
【免费下载链接】rpcs3PlayStation 3 emulator and debugger项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3
还在手动下载新版本、解压、挨个替换文件?新版本发布后,RPCS3 的自动更新功能可以替你查版本、下包、替换,全程只需要你点一次"是"。这篇讲清楚它的 RPCS3 自动更新流程、不同安装方式的差异,以及更新失败时的排查顺序。
它替你干的三件事:查版本 → 下载 → 替换
整个流程集中在 update_manager.cpp 里,拆开看就是三步。
- 查版本:向官方更新服务发一个请求,带上你的构建哈希、系统类型、架构和版本号。服务端返回一段 JSON,里面包含最新版本号、下载地址、文件大小和校验和。版本号一致,直接提示"已是最新"。
- 下载:你点了更新(或者选了全自动),它开始下载 7z 压缩包,带进度条。
- 替换:先核对文件大小,再算 SHA256 与官方公布的校验和比对,对不上就报错终止;对得上才写盘、重启。
触发方式由设置项决定,对应 gui_settings.h 里的m_check_upd_start,有三个档位:
- Yes:启动时检查,弹窗问你更不更;
- Automatic:启动时检查,直接更新,不再询问;
- No:不检查,只能手动触发。
另外,菜单里点"检查更新"属于手动检查,不受安装方式限制,后面会讲。
替换阶段最关键的一步是校验,核心逻辑就这几行:
if (const std::string res_hash_string = sha256_get_hash(data.data(), data.size(), false); m_expected_hash != res_hash_string) { update_log.error("Hash mismatch: %s expected: %s", res_hash_string, m_expected_hash); return false; }也就是说,包下得再快,只要内容对不上官方哈希,更新就直接作废,不会碰你的文件。
你的安装方式,决定它怎么更新
官方 Windows / macOS 二进制包
启动时检查默认开启。更新包下到临时目录后,用内置的 7z 库解包;正在被占用的文件会被先改名挪走,再写入新文件。macOS 则走 App 包更新逻辑,靠内置的update_helper.sh脚本完成替换。替换完自动重启,你无感。
Linux AppImage 包
这是唯一支持"启动时自动检查 + 自动更新"的 Linux 分发形式。源码里有一道硬门槛:读不到APPIMAGE环境变量就跳过自动检查,日志记一句 "this is not an AppImage"。更新时直接把旧 AppImage 改名备份,写入新文件、补上执行权限,然后自重启。所以 RPCS3 AppImage 更新的前提很简单:你是从 AppImage 启动的。
源码编译的版本
本地构建默认不跑自动更新。update_manager.cpp里allow_local_auto_update被写死为false,非官方构建还会在服务端查不到构建哈希,自动检查直接跳过。不过菜单里的"检查更新"仍然可用,它会提示你当前用的是自定义构建,确认后可以切到最新官方版本。
更新卡住了?RPCS3 更新失败按顺序查这三处
网络与代理
- 日志里搜
UPDATER通道,看是查版本失败还是下包失败; - 公司网络、代理环境下,确认代理放行了更新服务的域名;
- 服务端维护时会返回维护模式错误码,属于对方问题,稍后再试即可。
- 日志里搜
磁盘与写入权限
- 磁盘剩余空间至少要大于更新包体积;
- 确认安装目录可写。Windows 装到 Program Files 下被占用文件改不动时,会看到 rename 失败日志;
- Linux 下 AppImage 所在目录不可写,新包就写不进去,换到可写目录再跑。
版本来源
- 自定义构建 / PR 构建查不到构建哈希,自动检查会被跳过,这属于设计行为;
- 手动检查时弹窗会明确告诉你用的是自定义构建,确认后才给官方最新版的下载地址;
- 想确认自己更过什么,翻配置目录下的
update_history.log,每次成功更新都会记一条旧版本→新版本。
交给它自动更新之前,先设好这几项
| 设置项 | 位置 | 说明 |
|---|---|---|
| 启动时检查更新 | 设置 → 更新(m_check_upd_start) | Yes / Automatic / No 三档,按需选 |
| 跳过指定版本 | 更新弹窗勾选"此版本不再提示" | 存到ib_skip_version,该版本不会再弹窗 |
| SHA256 完整性校验 | 自动,无需设置 | 大小和哈希双校验,不过校验不写盘 |
| 存档与配置保护 | 自动,无需设置 | 更新只替换程序文件,配置目录里的存档、补丁、输入映射不动,更新历史记在update_history.log |
| 更新前停游戏 | 注意 | 模拟正在运行时更新会中止,先停游戏再点更新 |
写在最后
RPCS3 自动更新就三件事:查、下、换,加上 SHA256 校验兜底,你把安装方式和检查档位选对,基本不用管它。更新失败时按"网络 → 磁盘 → 版本来源"的顺序查,九成问题能定位。如果你想自己动手改更新逻辑,可以直接从 update_manager.cpp 读起,配合 BUILDING.md 把源码编译一遍,改起来更有底。
【免费下载链接】rpcs3PlayStation 3 emulator and debugger项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考