📌 项目地址par274/sharpemu | ⭐ 1,124 颗星 | 🔧 C# | 📜 未标注

先泼盆冷水:这个项目还远不能玩游戏

SharpEmu 是开发者从零开始用 C# 写的实验性 PS5 模拟器。1124 个 Star 多半来自大家对 PS5 模拟的期待,不代表它能跑出流畅画面。作者在 README 里说得很直接:当前目标是准确性和基础设施,不是让某个游戏直接可玩

项目目前主要针对 Windows 开发。Linux 和 macOS 虽然写在计划里,但没有交叉编译保证。你拿到的是个研究工具,不是娱乐工具。

技术细节:到底能干什么

基于 README 原文,SharpEmu 已经能做到的事(我按技术逻辑重新归类):

加载与执行
– 加载真实游戏的 eboot.bin 和普通 .elf 文件
– 执行原生 CPU 指令(至少部分指令能跑通)
– 读取游戏元数据(标题、版本号等)

系统模块与内核
– 加载 .prxsys_module(PS5 的系统模块格式)
– 部分内核函数调用已被处理
– 支持 FiberAMPR 导出:Fiber 是 PS5 的轻量级线程机制,AMPR 涉及内存保护和分区管理。模拟器能识别这些结构,说明对系统底层做了反向工程。

游戏内容流程
– PlayGo 场景处理:这是索尼的按需安装机制,允许游戏边下边玩。模拟器能解析这部分,说明对文件布局有理解。
– 初始加载游戏文件(包括 shader/resource 提交和 AGC 初始化)
– 部分游戏已经走到 sceVideoOut 和 AGC 阶段。sceVideoOut 是视频输出 API,AGC 是 AMD 图形驱动相关的缩写。能走到这一步,说明模拟器已经跑通了部分图形管道。

四个测试游戏的实际进度

游戏 README 描述的真实状态
恶魔之魂 重制版 已进入视频循环,着色器准备转成 SPIR-V/Vulkan,仍在继续
Poppy Playtime 第一章 仅提到“初步加载游戏文件”,有 Issue 链接
寂静岭:短信 同上,初步加载
Dreaming Sarah 有真实纹理渲染(原文:Real texture rendering for this game;)

Dreaming Sarah 是唯一一个能真正输出纹理画面的游戏。恶魔之魂走到了视频循环,但离渲染出可看画面还有距离。另外两个只是能加载进去,大概率黑屏或崩溃。

唯一正确的使用方式

README 给出了两种用法:

  1. GUI 模式:直接运行编译好的 exe,或从 Releases 下载。
  2. 命令行调试模式,把 stdout 和 stderr 同时输出到控制台并保存到文件:
    .SharpEmu "eboot.bin" 2>&1 | Tee-Object -FilePath "log.txt"
    这条命令用 PowerShell 的管道把错误流合并到标准输出,再通过 Tee-Object 同时写入 log.txt。适合盯着日志看崩溃原因。

构建与运行

README 的构建部分只写了“1. Ins”就断了,明显没写完。我看了下项目文件,没有 .csproj 细节。通常 C# 项目可以用 dotnet build 编译,但我不确定这个项目是否依赖特定 .NET 版本或 NuGet 包。建议直接去 GitHub Actions 里找构建配置,或者提 Issue 问作者。

谁应该关注这个项目

  • 对 PS5 系统架构(Zen 2 CPU + RDNA 2 GPU + 索尼定制组件)感兴趣的人。
  • 想研究用 C# 写硬件模拟器是否可行的人。大部分模拟器用 C++,SharpEmu 是个异类。
  • 喜欢看反编译日志、跟踪内核 API 调用的人。Issue #2(恶魔之魂)下面有几十条讨论,作者贴了不少日志截图。
  • 手里有自己合法 dump 的 PS5 游戏,愿意参与测试并提交反馈的玩家。注意作者明确反对盗版,测试必须用自己主机的 dump。

社区与反盗版声明

作者建了 Discord 用于开发讨论、兼容性报告和聊天。GitHub Issue 区每个测试游戏都有独立讨论帖:恶魔之魂 PPSA01341、Poppy Playtime PPSA20591、寂静岭短信 PPSA10112、Dreaming Sarah PPSA02929。如果你要参与测试,先看看已有 Issue 里的已知故障,别重复报同样的问题。

这个项目不支持和纵容盗版。所有游戏 dump 来自开发者自己合法拥有的主机。你也得用自己 dump 的游戏测试。

这篇文章对你有帮助吗?

发表回复