推荐开源项目:déjàvu - PlayStation Vita SaveState 插件
dejavu déjàvu: Vita SaveState Plugin 项目地址: https://gitcode.com/gh_mirrors/dejavu2/dejavu
项目介绍
déjàvu 是一款专为 PlayStation Vita 开发的插件,它允许用户在任意时刻对 RAM 进行快照,并在之后恢复。这意味着你可以在那些官方不支持存档的游戏中保存进度。对于开发者而言,这款插件还可以用于临时降级或升级固件(在 RAM 中),以便进行测试(尽管这一功能尚未经过充分测试)。
项目技术分析
déjàvu 插件利用了软重置特性,进入一个所有资源都被挂起的状态。在此状态下,执行映射到地址 0x1C000000
的有效载荷。该有效载荷会刷新并禁用所有缓存以及 MMU。通过使用 FatFs 和一个逆向工程并重新实现的 Memory Card 驱动程序,将 RAM 及其他一些状态写入 Memory Card。为了减少快照的大小,只存储由页表引用的段和页。在加载状态时,执行相同的流程,但 instead of writing, all the memory is written back。该插件的一个重大挑战是在加载状态后刷新文件系统,文件可能不再存在,可能存储在不同的簇中,或者大小可能不同,所有这些都必须相应更新。此外,文件系统缓存必须被无效化。这一问题尚未得到妥善解决,因此可能会发生数据损坏和崩溃。
项目及技术应用场景
游戏玩家
- 在不支持存档的游戏中保存和加载游戏进度。
- 在关键时刻保存游戏状态,避免因意外失败而重玩。
开发者
- 临时降级或升级固件,以便测试特定功能。
- 快速恢复到特定的系统状态,提高开发效率。
项目特点
易于安装
只需下载 dejavu.skprx
文件,复制到指定路径,并修改配置文件即可。
简单操作
通过按下特定按钮组合即可保存或加载状态,支持六个插槽。
高效存储
快照大小约为 400-500MB,存储在 Memory Card 中,且会自动备份保存数据。
注意事项
- 加载状态功能尚不完全稳定,可能会造成数据丢失或系统崩溃。
- 该插件目前仅在 PS Vita Slim 3.65 固件上测试过。
安装步骤
-
下载 dejavu.skprx 并复制到
ux0:tai/dejavu.skprx
。 -
编辑
ux0:tai/config.txt
文件,添加以下路径到*KERNEL
:*KERNEL ux0:tai/dejavu.skprx
-
重启设备,享受这一新功能。
保存/加载状态操作
- 保存状态:按下 R 触发器。
- 加载状态:按下 L 触发器。
然后选择六个插槽中的一个:
- SELECT
- START
- TRIANGLE
- CIRCLE
- CROSS
- SQUARE
最后,按住前两个按钮的同时按下 PS 按钮,设备将进行软重置并保存或加载状态(屏幕将保持黑色)。保存状态大约需要 60 秒,加载状态大约需要 40 秒。完成后,设备将恢复到解锁屏幕。
捐赠支持
如果你喜欢这个项目并希望支持开发者,可以在 patreon 上进行捐赠。非常感谢!
致谢
- 感谢 xerpi 和 motoharu 对 Memory Card 的研究。
- 感谢 xerpi 的 vita-libbaremetal。
- 感谢 Team Molecule 的前期研究。
- 感谢 Dark_AleX 的 pspstates,启发了这个项目的开发。
立即体验 déjàvu,让你的 PlayStation Vita 游戏体验更上一层楼!🎮
dejavu déjàvu: Vita SaveState Plugin 项目地址: https://gitcode.com/gh_mirrors/dejavu2/dejavu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考