RPCS3 自动更新怎么用:3 种模式、1 键检查,附更新失败排查指南
【免费下载链接】rpcs3PlayStation 3 emulator and debugger项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3
RPCS3 是 PlayStation 3 模拟器,它的自动更新负责帮你把模拟器本体升级到位:从"检查有没有新版",到"下载、验身、替换、重启",全程不用你手动拷文件。这篇文章按你会遇到的真实问题讲:更新怎么配、点下"检查更新"后系统实际在干什么、卡住了先查哪里,以及"跳过某个版本"这类进阶操作。看完你能把更新行为调到最省心的状态。
更新总是打断我,还是从不更新?先说清三种模式
RPCS3 的更新入口有两处:主菜单"系统"下的"检查更新"(手动),以及每次启动时的自动检查。自动检查的行为由一个配置项checkUpdateStart控制,你在"设置 → 设置"里那个"检查更新"下拉框改的就是它。它有四个选项,对应四种脾气:
- Yes(是):启动时弹进度条检查,发现新版就问你"要不要更新"。默认就是它。
- Background(后台):启动时静默检查,不弹框打断你;发现新版时只在菜单里亮一个"更新可用"的提示。
- Automatic(自动):发现新版直接下载、直接装、自动重启,全程不问你。
- No(否):启动时完全不查,想更新只能手动点。
所以你现在应该:嫌打扰就选 Background,图省事就选 Automatic,装游戏时不想动模拟器就临时切 No。选项存在 gui_settings.h 里,改动实时写盘,重启生效。
点下"检查更新"之后,幕后发生了什么
用一句话概括:RPCS3 先拿自己当前版本的哈希去更新服务器问"有没有新版",服务器回一份 JSON 告诉你新版下载地址、大小和 SHA256 校验值;确认后下载整包,验哈希,替换文件,重启。
具体分四步,逻辑都在 update_manager.cpp 里:
- 问服务器。请求形如
https://update.rpcs3.net/?api=v3&c=<你的版本哈希>&os_type=...&os_version=...,带上你的系统类型和版本,服务器据此判断你该拿哪个包。 - 验信息。服务器回传的 JSON 里,新版必须有下载地址、文件大小、SHA256 校验值三样齐全,缺一直接中止。同时下载 URL 必须是官方域名开头,防止被篡改。
- 验下载。整包下完后先比大小,再算 SHA256 和服务器给的值对。任何一步不一致就报错退出,绝不让坏包落盘。
- 替换重启。三个平台手法不同:
- Windows:把整包当 7z 解压,新文件逐个盖到安装目录上,被占用的文件先挪到
rpcs3_old/临时目录,然后重启进程。 - Linux:直接拿新 AppImage 换掉旧的(旧文件改名为
_old),再 execv 起新进程。 - macOS:新包解压到临时目录,再运行应用包里的辅助脚本 update_helper.sh 完成替换——直接覆盖运行中的 app 会破坏代码签名,所以必须"换新的"而不是"盖旧的"。
- Windows:把整包当 7z 解压,新文件逐个盖到安装目录上,被占用的文件先挪到
成功后,配置目录里的update_history.log会追加一行"从 X 更新到 Y"的记录,这是你的更新档案。
更新失败先看这三件事
日志里搜UPDATER频道,错误原因基本都能对上号。按出现频率排:
1. 提示"Hash not found(Custom/PR build)"说明你装的是本地编译版或社区修改版,官方服务器不认识这个版本。这不是故障:手动点"检查更新"时它会再问一次"要不要直接升到官方最新版",答是即可。自动检查则直接跳过,不会骚扰你。
2. 弹窗说"请先停止模拟"更新要覆盖正在运行的可执行文件,游戏没退出时它拒绝动手。关掉正在跑的游戏再点一次就行。
3. 下载或写入报错(Hash mismatch / Failed to write 等)多半是网络把包下坏了,或磁盘权限不够。建议先确认:
- 临时目录可写、磁盘空间够(整包大小 + 解压后空间,至少留一倍余量);
- 用官方发行版而不是自己改过的目录结构;
- 再点一次"检查更新"重试——多数"Hash mismatch"重下一次就好了。
服务器端的错误(维护、接口异常)会以负数 return code 形式出现在日志里,比如 -2 是服务器维护中,稍后再试即可,本地没任何问题。
进阶:跳过版本、控制更新频率
有两个不显眼但很好用的点:
跳过某个版本。更新确认框里有个"本版本不再提示"复选框,勾掉它点"否",RPCS3 会把该版本号记到配置项infoBoxSkipVersion。下次启动自动检查再发现同一版本时直接静默跳过,不再弹窗。等你想升了,手动点一次"检查更新"就能越过这个记录。适合"这版我知道有问题,晚点再说"的场景。
本地编译版想测自动更新。update_manager.cpp 顶部有行allow_local_auto_update = false的开关,默认关闭本地构建的自动更新,防止开发版被官方包覆盖。你从源码编译的话,想测更新流程可以把它改 true 再重新构建;普通用户不用碰。
Linux 的额外门槛。只有以 AppImage 方式启动(环境变量APPIMAGE存在)时,启动自动检查才会执行;用包管理器装的普通二进制版本启动时不查,手动检查不受此限制。所以如果你用 Linux 且选了"启动时检查"却没反应,先确认自己是不是 AppImage 启动的。
一份速查表
| 你的情况 | 建议设置 |
|---|---|
| 普通玩家,要省心 | 更新模式选Automatic,让模拟器永远保持最新 |
| 想自己把关每次更新 | 选Yes,配合"本版本不再提示"按需跳过 |
| 游戏咖啡馆等公共设备 | 选Background,菜单亮提示由管理员决定是否更新 |
| 本地编译版 / 调试用 | 选No,避免官方包覆盖开发版 |
记住三条:更新前停掉游戏、日志搜UPDATER、update_history.log里留着你每次升级的记录。配置改哪里、流程卡在哪,这篇应该够你自助处理了。
【免费下载链接】rpcs3PlayStation 3 emulator and debugger项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考