niakw/ProsperoEden-Encore · 上手攻略
- 仓库:niakw/ProsperoEden-Encore
- 链接:https://github.com/niakw/ProsperoEden-Encore
- 分类:engineering / emulation / ps5
- 作者:spark
- 更新:2026-11-03
一、它是什么
Prospero.Eden Encore 是 ProsperoEden(一个把 PS5 模拟器 Eden 移植到 PS5 真机上原生运行的项目)的社区分支 fork,主打"客厅友好"(console-native emulation, made for the living room):把模拟器做成一堆可以在电视上用手柄操作的原生 PS5 应用,而不是只能在 PC 上跑。
它围绕三件事展开:TV-first 启动器(首页 / 游戏库 / 最近游玩、封面与横幅、手柄导航、Quick Settings、29 种语言的启动器目录)、内容格式覆盖(NSP、XCI、NSZ、XCZ、NRO、NSO、NCA、NAX、KIP 九种容器与直载格式,加上 LZ4 与 ZBIC/zstd 两种内部可执行压缩解码)、恢复能力(单次会话的 Safe Launch、确认式重置、守护式数据迁移,不静默覆盖存档)。
技术上是 Python 为主 + C/C++ 内核(仓库卡标注主语言 Python)的复合项目,底层沿用 Eden 模拟器核心与 Dynarmic JIT 编译器,图形走 Vulkan/RADV 和 OpenGL 两条独立路径,许可为 GPL-3.0-or-later。
截至 2026-11-03,最新 release 是 encore-R1-56293953(2026-10-30 发布,"Eden Encore R1 - PS5 FTP"),资产为一个 35.6 MB 的 Eden-Encore-56293953-FTP-PPSA99008.zip 加 SHA256SUMS。
先说清楚这是什么、不是什么:它不提供商业游戏、固件、密钥(keys)或 DLC,也不授予第三方分发权。它是社区非官方 fork,原上游作者保留全部署名。
二、解决什么问题
在 PS5 上跑 PS5 模拟器(俗称"真机套娃")的原始体验很糟糕:启动器是给开发者看的、不是给客厅电视看的;格式支持有限;一旦设置搞砸了就没有回头路;性能问题说不清是"游戏卡"还是"合成器还在转"。
Encore 针对的是这几件事:
- 能不能从沙发上操作。 重做启动器为电视优先:3D 旋转游戏封面(真实扫描件,缺失的前后封面用缓存素材、截图、标题与描述由原生 OpenGL 渲染器重建,不做图像生成)、手柄全导航、Quick Settings 里直接改单款游戏的画质。
- 设置搞砸了怎么回来。 Safe Launch:单次会话内强制保守 OpenGL、1× 内部分辨率、1080p、bilinear、手柄模式、60 Hz、关 mods——不擦存档、不永久覆盖偏好设置。
- 格式杂怎么办。 统一处理九种容器/直载格式 + LZ4/ZBIC/zstd;
roms/<title>/下有真实main和main.npdm的 ExeFS 目录也会被识别为 EXEFS 游戏。 - 性能怎么讲清楚。 诊断不只报 FPS,而是给出帧时间窗口、guest/JIT 活动、内存压力、缓存锁与 IPC;明确区分"合成器还在转"和"guest 真的在推进"。
它的方法论写在 README 里:保留可用的原生基础 → 选择性吸收上游改进 → 把 source → native package → 真实硬件三条线独立验证。
三、快速安装
安装路径 A:ZIP / FTP(官方主推)
- 从 Releases 选一个完整的 Encore release 包,读该 release 具体的固件/游戏验证说明,核对 SHA256 校验和。
- 备份
/data/homebrew/PPSA99008/、/data/prosperoeden/以及任何外置存储根目录。 - 按 INSTALL.md 操作。要复制完整的
PPSA99008/应用树,包含ui/lang/,不能只拷eboot.bin。 - 打开 Encore,检查 Settings → Storage / Language、游戏库和已有存档。有问题看 TROUBLESHOOTING.md。
安装路径 B:FFPFSC 镜像 + ShadowMountPlus
README 提到可选 FFPFSC 镜像路径(release 里也有对应的 FFPFSC 镜像)。注意 FFPFSC 的更新要走 FFPFSC 流程,不能把镜像解开铺进普通目录。
关键路径约定
应用目录:/data/homebrew/PPSA99008/
持久数据根:/data/prosperoeden/
├── keys/ firmware/ roms/
├── updates/ mods/ save-import/ save-export/
└── ryujinx/
固件与密钥可以按代际灵活放置,例如 firmware/ns1/、firmware/ns2/、keys/ns1/prod.keys、keys/ns2/prod.keys,别名如 firmware/switch1、switch2/firmware 也认。扁平放置的 firmware/*.nca 按 NS1 处理。NCM keys 只是索引记录,不能替代加密 NCA 所需的密码学 prod.keys。
改用外置存储只改根目录,子目录结构不变。升级时绝不要删持久数据根——它是持久数据,不是缓存。
从源码构建:见 docs/BUILDING.md。构建通过 CI 不等于在 PS5 上测过。
四、核心用法
启动器基本操作:Home / Library / Recents 三页,手柄友好导航,游戏元数据、封面横幅富化,离线回退(离线时用本地缓存素材重建封面)。Quick Settings 里不改调试菜单就能调单款游戏的画质。视频档位分 Minimum → Recommended → High → Ultra,手动改过之后才出现 Custom。
Safe Launch:单次启动的保守配置,用于"这个设置是不是把游戏搞崩了"的诊断场景。README 明确保证它不擦存档、不永久覆盖偏好。
单标题画质档位作用在具体游戏上;图形侧可调分辨率、滤镜、升采样(upscaling)、锐化、抗锯齿。
存储与固件布局:Settings → Storage 里选根目录。固件可以是 NCA、导出的系统 dump 或 ZIP。主机端 ZIP 固件导入:把原 ZIP 拷进带代际标签的固件目录(如 firmware/ns1.zip / firmware/ns2.zip),Encore 会自动识别并暂存内容,保留原 ZIP,不需要跑 Mac/PC 辅助工具。
压缩游戏的空间账要算清(这是最容易被低估的一点):
| 块压缩(常见 XCZ) | 整包压缩(常见 NSZ) | |
|---|---|---|
| 读取方式 | 直接从压缩文件随机读 | 连续 zstd 流;读到较后偏移可能要解前面的数据 |
| 游戏时空间 | 不需要完整解压副本 | 可能需要游戏的完整未压缩大小 |
| 缓存 | 小块解压缓存 | 只保留当前运行游戏的解包副本 + 有界元数据片段 |
| 取消 | 常规标题取消 | 触摸板 + L1 在标题加载时取消解包 |
解包缓存在 /data/prosperoeden/user/cache/nsz/。游戏未运行时这些可再生文件可被删除来回收空间,但不要删 user/ 本身、存档、已安装文件、密钥或固件。空间不足时 fallback 会在压缩流里 seek,可能慢到无法实时游玩——空间紧张的大游戏优先用块压缩。
控制:原生启动器映射档位、震动与死区。这里有个必须分清的区分:启动器的物理手柄映射 ≠ 游戏自己保存的自定义操作。README 承认后者"in-match persistence unresolved"。
诊断:帧时间窗口、guest/JIT 活动、内存压力、缓存锁、IPC。详细捕获有成本,不会自动在安静游玩中开启。
五、典型适用场景
- 有 PS5 真机 + 想在电视上玩自己备份的 PS5 游戏(不涉及任何商业内容的分发)。
- 需要一个客厅友好的启动器 而不是开发者面板:手柄导航、封面展示、快速画质档位。
- 研究原生移植与 JIT/内存调优:仓库把 source、host、native package、device 四道验证关卡完全分开,CI 徽章直接展示这个流程。
- NS2 兼容性研究:仓库有独立的
research/ns2-ps5-compatibility分支和技术报告(2026-10-30),但不属于 PS5 release。 - 给上游做选型/适配贡献:
docs/UPSTREAM_GAP_REGISTER_2026-10-14.md记录了上游差距审计。
六、坑与注意
- 固件 13.60 是唯一在真机上测过的目标。 更早固件"可能能用"但未验证,且尚未确立最低固件版本;更新版本同样未测。README 特别加了一句:"这不是建议你更新主机的固件。"
- 即使在 13.60 上,卡顿和游戏冻结仍在调查中。 最后一次可用的完整对局录像(commit
2efd8b3c)记录了 858 帧间隔超过 50 ms、10 帧超过 500 ms,以及一次长时间 guest 推进停滞而画面仍在呈现。之后的改动通过了若干源码/native 检查,但没有新的真机录像证明这些改动提升了 FPS 或消除了冻结。 - "30 FPS 合成器计数"不等于游戏在推进。 README 用警告框强调:30 FPS 的合成器计数器不是游戏在前进的证据。Encore 不承诺普适的标题兼容性、60 FPS、无 glitch 的 HUD 更新,也不承诺自动转换自定义游戏按键。
- CI 通过 ≠ 在 PS5 上测过。 徽章绿的开发 job 并不代表通过了真机测试。要下载 与你要测的 commit 匹配的 成功构建产物,不要拿上一次绿的构建。
- 它是 in-place 替换,不是第二个安装。 原生 ProsperoEden 和 Encore 共用同一个 PS5 标题 ID
PPSA99008和同一个应用目录/data/homebrew/PPSA99008/,所以两者不是可并存的独立应用。把原版 native ProsperoEden release 盖在 Encore 上,不是升级,会把不兼容的可执行文件还原回去。 升级只能用 Encore Releases。 - 备份必须先做。 迁移前要离线备份整个
/data/homebrew/PPSA99008/(含旧assets/)、/data/prosperoeden/和外置存储根目录。安装时要覆盖完整的 EncorePPSA99008/树,但不要预先删掉旧目录——旧assets/可能还要被守护式迁移消费。overlay 复制会留下过时应用文件,只能在首次成功启动并检查过 release 的清理说明之后才清理,绝不凭猜测删持久数据。 - 拷贝方式有具体禁忌:不要只拷
eboot.bin;不要造出PPSA99008/PPSA99008/嵌套;不要拷 Actions 分发包装目录。解出来的包里应当只有一个PPSA99008/目录,含eboot.bin、sce_sys/param.json、完整ui/树。 - 文件访问不是提权后沙箱。 README 原话:Encore 强化了单次文件系统访问、拒绝不安全迁移,但"文件系统访问不是 post-elevation sandbox"。有界日志、固定的源和自动化检查降低特定风险,但不会让环境万无一失。
- NSZ/XCZ 支持仍是实验性。 仓库卡说这是"Experimental NCZ reader",README 也说该特性"处于 native-build 和 PS5 资格验证之下,不是对当前已发布 release 的声明"。含该特性的开发构建 ≠ 真机测过的 release。
- 直载格式不保证能启动。 NRO/NSO/NCA/NAX/KIP 只是"可选",能否成功执行取决于内容是否完整兼容;缺内容核心会报 loader 错误。ExeFS 目录形式不要用符号链接,缺模块或缺元数据照样起不来。
- JIT 的实验特性被关着。 Dynarmic 是生产 JIT;跨核共享 JIT 和预编译(anticipatory compilation)在稳定档位里是关闭的,因为并发/生命周期行为未通过资格验证。
- 内存优化未经真机验证。 当前 native PS5 release 选用了 demand-backed sparse RX/RW JIT 别名,物理内存在完全缓存失效静默后才回收。README 明说:宿主检查存在,但运行时内存节省与固件 13.60 上的稳定性仍未取得资格验证,而且物理内存不是无限的。
- Shader cache 分配量不等于命中率。 冷管线创建、长时间 CPU 等待和 shader cache 复用必须分开测量。
- NS2 还没有第一帧 guest 渲染。 README 重要提示框:NS2 游戏尚未产生一个确认的首个 guest 渲染的 PS5 帧;源码/宿主测试和 native 构建都不构成主机兼容性证明;原生 PS5 构建目前被维护者阻塞,直到 host 和 source 关卡完成。
- R21 应用内更新器还没上线。 README 明确标注 "planned, not currently shipped";上游更新是选择性适配而非自动同步,可追溯的 Encore 基线是 ProsperoEden v1.000.040。
- 分支很多,别混。
main是当前 PS5 引擎工作的 source of truth;feat/graphics-network-achievements是隔离的功能开发分支(FSR、帧生成、高级 AA、主题、网络、奖杯、R21 更新器);research/ns2-ps5-compatibility是研究分支。README 反复强调:"planned or experimental does not mean shipped." - 密钥和存档是私密的。 INSTALL.md 明确提醒:keys 和 saves 属私人材料,放在自己掌控之下,不要在支持请求里分享。
- 存储是单一根目录。 可以在 Settings → Storage 换根,但那是换一个根,不是允许根之外的任意路径。
七、与同类对比
Encore vs 原生 ProsperoEden(README 自带对照表):
| 维度 | 原版基础 | Encore 的侧重 |
|---|---|---|
| 硬件目标 | 上游广泛开发 | 聚焦固件 13.60 的资格验证 |
| 启动器 | 原生前端 | TV-first 首页、游戏库、最近、快速设置 |
| 内容加载 | 早期格式 | NSP/XCI/NSZ/XCZ/NRO/NSO/NCA/NAX/KIP;LZ4 + ZBIC/zstd |
| 恢复 | 基础默认值 | 临时 Safe Launch 与确认式重置 |
| 存储 | 原版路径行为 | 统一的内外置根目录结构与守护式迁移 |
| 手柄设置 | 基础映射 | 启动器优先的映射档位(游戏自有操作仍在调查) |
| 图形 | 上游渲染 | 固定的 native 适配与编译后源码证据 |
| 验证 | 上游测试覆盖 | 宿主回归、native 打包、真机测试三者分开 |
Encore 不是官方上游 release,也不承诺已包含每个更新的上游 commit。
放在更广的 PS5 模拟生态里看,它的差异化不在"能不能跑",而在验证纪律:README 全篇贯彻"source → native package → real hardware"三级独立验证、"CI 绿 ≠ 真机测过"、"审计一个函数不等于优化了它"、"源码审阅总数不等于剩余优化数"。这是它相对多数社区 fork 更可信的地方,也是它相对原版更重的地方——所有这些文档和关卡本身就是维护成本。
一个诚实的对照参照是 RPCS3 / shadPS4 / Ryujinx 生态:那些是 PC 主机模拟,硬件门槛低、社区大、生态活跃;Encore 是真机原生移植,性能上限受 PS5 本身约束,但换来的是在自家客厅电视上用手柄玩的体验。两者不是替代关系。
八、一句话推荐结论
如果你是 PS5 主机玩家、想在自家电视上原生玩自己备份的游戏,Encore 值得试——但请把它当成"有真机验证的实验性工程"而不是"可用的模拟器":只上固件 13.60、先备份 PPSA99008 和 /data/prosperoeden、按 release 走完整流程,并接受它自己都承认的那件事——858 帧超 50 ms、10 帧超 500 ms 的卡顿和冻结尚未解决;如果你的需求是"能跑起来就行、最好还能自研 JIT 和图形栈",它的分关卡验证流程本身就是一个很好的学习样本。
本文基于 2026-11-03 抓取的仓库 README(main 分支)、INSTALL.md、GitHub API 确认的 release encore-R1-56293953(2026-10-30)及资产清单撰写。所有性能与状态数据(858 帧超 50 ms、固件 13.60 为唯一真机测试目标、NS2 尚无首帧 guest 渲染等)均逐字取自 README 的兼容性表与警告框;仓库卡标注主语言为 Python,但 README 未给出语言构成比例,此处按卡片标注。