SharpEmu:用 C# 从零构建的实验性 PlayStation 5 模拟器

你是否曾好奇 PlayStation 5 的原生代码、系统模块和图形管线究竟如何协同工作?SharpEmu 的出现,旨在为开发者和研究者提供一个从零用 C# 编写的实验性 PS5 模拟器,帮助理解 PS5 系统架构、原生代码执行与图形输出路径。本文将带你全面了解这个潜力新星。

截至收录:
SharpEmu stars数:5369
SharpEmu forks数:489

SharpEmu项目目录截图

SharpEmu项目核心亮点

🧪 从零构建的 C# 模拟器实验场:SharpEmu 不是对现有模拟器的简单封装,而是从零开始用 C# 开发的实验性 PS5 模拟器。它当前更关注准确性、基础设施和可研究性,而不是追求某个游戏的专属兼容。

🖥️ 跨平台覆盖 Windows、Linux 与 macOS:SharpEmu 支持 Windows x64、Linux x64 和 macOS x64。Apple Silicon Mac 可以通过 Rosetta 2 运行 macOS x64 构建,Windows on ARM 设备则可以通过 Windows 内置的 x64 模拟运行 Windows x64 构建。

⚙️ 逐步打通 PS5 加载与执行链路:目前项目已经能够加载 eboot.bin.elf 文件,执行原生 CPU 指令,读取基本游戏元数据,加载 prx / sys_module 系统模块,并部分支持一些内核功能。此外还实现了 Fiber、AMPR exports、PlayGo 场景、初始游戏文件加载等能力。

🎮 图形输出走向 Vulkan 生态:Windows 和 Linux 使用 Vulkan,macOS 使用 MoltenVK。部分游戏已经推进到 shader/resource submits、AGC 初始化以及 sceVideoOut 阶段,甚至能在某些游戏中出现视频输出。

🧪 已进入真实游戏加载阶段:README 列出的测试游戏包括 Demon s Souls Remake、Dreaming Sarah、Void Terrarium、Dead Cells 等。不过需要强调,这些测试并不代表游戏已经完整可玩,项目仍处于早期开发阶段。

📚 研究、教育与合法合规导向:SharpEmu 明确以研究和教育为目的,不包含任何受版权保护的系统固件、游戏数据或专有 PlayStation 资产。项目不支持盗版,开发与测试使用的游戏均来自开发者个人拥有的主机 dump。

🧩 借鉴优秀开源项目经验:SharpEmu 的开发受到 ShadPS4、Kyty、Ryujinx 等项目的帮助。ShadPS4 帮助理解 PS4 基础架构,Kyty 对研究原生代码执行很有价值,Ryujinx 则提供了文件系统处理和 C# 底层实现模式的参考。

SharpEmu快速开始

只需几步,你就能在本地构建并运行 SharpEmu。请准备合法获得的游戏 eboot.bin,并确保系统具备支持 Vulkan 的 GPU 和较新的显卡驱动。

  1. 安装 .NET SDK:安装 global.json 中指定版本的 .NET SDK。
  2. 克隆仓库
git clone https://github.com/sharpemu/sharpemu.git
cd sharpemu
  1. 构建项目
dotnet build
# 或发布构建
dotnet publish

构建产物会位于 artifacts 目录。

  1. 运行你的第一个游戏入口
    Windows PowerShell:
.\SharpEmu.exe "C:\path\to\game\eboot.bin" 2>&1 |
  Tee-Object -FilePath "SharpEmu.log"

Linux 和 macOS:

chmod +x ./SharpEmu

./SharpEmu "/path/to/game/eboot.bin" 2>&1 |
  tee SharpEmu.log

你也可以从 Releases 下载对应系统的发布包,解压后直接启动。macOS 发布包已经包含 MoltenVK。再次提醒:请使用自己合法获得的游戏副本。

SharpEmu应用场景

场景一:模拟器架构研究与教学:开发者可以通过 SharpEmu 观察 PS5 引导、系统模块加载、内核函数处理和 CPU 指令执行,适合作为操作系统、编译器和逆向工程课程的实验素材。

场景二:原生代码执行与逆向工程学习:项目已经支持原生 CPU 指令、Fiber 和 AMPR exports 等机制,研究者可以借此理解 PS5 程序如何启动和运行。

场景三:图形与资源管线分析:当游戏推进到 shader/resource submits、AGC 初始化和 sceVideoOut 阶段时,开发者可以研究 PS5 图形 API 的抽象方式,以及 Vulkan / MoltenVK 的映射策略。

场景四:跨平台模拟器基础设施开发:SharpEmu 展示了如何用 C# / .NET 构建可运行在 Windows、Linux 和 macOS 上的底层模拟器,对跨平台系统编程和模拟器工程有参考价值。

场景五:社区兼容性测试与协作:测试者可以使用自己合法 dump 的游戏,将日志、兼容性结果反馈到官方 Discord 和仓库 issue 中,帮助项目完善基础设施与准确性。

用户案例:目前 SharpEmu 仍处于早期开发阶段,主要用户是模拟器开发者、逆向工程学习者和 PS5 系统架构研究者。它的开发也受益于 ShadPS4、Kyty、Ryujinx 等开源项目的经验,并向这些项目致谢。

SharpEmu项目链接

  • GitHub 仓库:https://github.com/sharpemu/sharpemu
  • 贡献指南:见仓库中的 CONTRIBUTING.md
  • 许可证:GPL-2.0
  • 社区:README 中提供官方 Discord 服务器入口
  • 支持项目:可通过 GitHub Sponsors 或加密货币捐赠支持,详见 README
    sharpemu / sharpemu项目地址:https://github.com/sharpemu/sharpemu本文地址:https://www.tgoos.com/46448
声明:本站资源均整理自互联网,版权归原作者所有,仅供学习交流使用,请勿直接商用,若需商用请购买正版授权。因违规使用产生的版权及法律责任由使用者自负。部分资源可能包含水印或引流信息,请自行甄别。若链接失效可联系站长尝试补链。若侵犯您的权益,请邮件(将 # 替换为 @)至 feedback#tgoos.com,我们将及时处理删除。转载请保留原文链接,感谢支持原创。