An experimental PlayStation 5 emulator for Windows, Linux and macOS.
Join our official Discord server for development updates, compatibility discussions, support, and community chat.
Important
Official channels: Only sharpemu.app and the links listed in this GitHub repository are affiliated with SharpEmu. Any other websites, accounts, or donation pages are unofficial and unauthorized.
Note
SharpEmu supports Windows x64, Linux x64, and macOS x64. Apple Silicon Macs can run the macOS x64 build through Rosetta 2, and Windows on ARM devices (e.g. Snapdragon) can run the Windows x64 build through Windows' built-in x64 emulation.
Warning
SharpEmu is an experimental PS5 emulator developed from scratch in C#. The current focus is on accuracy and infrastructure setup rather than game-specific compatibility.
SharpEmu is an emulator project currently in its early stages of development.
This project is developed purely for research and educational purposes. There are no commercial goals associated with it. We enjoy learning about system architecture and reverse engineering.
SharpEmu focuses exclusively on the PlayStation 5.
Our goal is not to emulate PS4 games, as there is already an excellent emulator dedicated to that platform: ShadPS4.
| Demon's Souls Remake | ASTRO BOT |
|---|---|
![]() |
![]() |
| ASTRO's PLAYROOM | Dead Cells |
|---|---|
![]() |
![]() |
| God of War: Sons of Sparta | Tomb Raider V Remastered |
|---|---|
![]() |
![]() |
The emulator can currently load the eboot.bin of real games, execute native CPU instructions, and partially handle gpu-related functionality. Included 3D games.
SharpEmu supports Windows, Linux, and macOS hosts. Video output uses Vulkan on Windows and Linux, and native Metal on macOS. Platform support is still experimental, so compatibility and performance vary by game, operating system, and GPU driver.
Download the release archive for your operating system, extract it, and launch
SharpEmu with the path to a legally obtained game's eboot.bin.
Or command line;
Windows PowerShell:
.\SharpEmu.exe "C:\path\to\game\eboot.bin" --log-to-fileLinux and macOS:
chmod +x ./SharpEmu
./SharpEmu "/path/to/game/eboot.bin" --log-to-fileSharpEmu supports environment variables that can be configured from the GUI. Undocumented variables are listed here: docs/sharpemu-gui-undocumented-env-vars.md
You can set them per game or globally in the GUI, or pass them directly through the CLI.
Windows and Linux require a Vulkan-capable GPU and current graphics driver.
macOS uses Metal directly; the macOS build runs as an x86-64 process, so Apple
Silicon Macs need Rosetta 2 (softwareupdate --install-rosetta).
Important
This project does not support or condone piracy.
All games used during development and testing are dumped from consoles that we personally own.
Users are expected to use legally obtained copies of their games.
- Install the .NET SDK version specified in
global.json. - Clone the repository:
git clone https://github.com/sharpemu/sharpemu.git - Open the solution file (
SharpEmu.slnx) in VSCode. - Build the project:
dotnet buildordotnet publish - Build artifacts will be located in the
artifactsdirectory.
This fork targets macOS natively with Metal. There is no MoltenVK and no Vulkan on the macOS path.
scripts/macos/build-app.sh # -> artifacts/macos/SharpEmu.app + a .zipThe script publishes osx-x64, assembles and ad-hoc signs SharpEmu.app, and
verifies it. Set SHARPEMU_CODESIGN_IDENTITY to sign with a real identity;
notarization runs only when SHARPEMU_NOTARY_APPLE_ID,
SHARPEMU_NOTARY_PASSWORD and SHARPEMU_NOTARY_TEAM_ID are all set. Local
builds never need it.
Rosetta 2 is required on Apple Silicon. The CPU backend executes guest
x86-64 instructions natively, so the host process has to be x86-64 — osx-x64
is the only macOS target, and osx-arm64 is rejected at build time. Install
Rosetta with softwareupdate --install-rosetta if arch -x86_64 /usr/bin/true
fails. Intel Macs run it natively.
Settings, logs, save data and caches live next to the executable as on every
other platform, except when running from SharpEmu.app: writing inside a
signed bundle would invalidate its signature, so the bundle uses
~/Library/Application Support/SharpEmu. Override it with SHARPEMU_DATA_ROOT,
or create a portable.txt next to SharpEmu.app to keep the data beside the
bundle instead.
The .app bundle cannot update itself in place; the GUI reports new releases
and opens the releases page. Upstream tracking is described in
docs/mac/upstream-sync.md.
SharpEmu is an experimental emulator intended for research and educational purposes.
This project does not contain any copyrighted system firmware, game data, or proprietary PlayStation assets.
The following projects were extremely helpful during development:
-
ShadPS4
Helped with understanding the basic architecture of the PlayStation 4. -
Kyty
One of the few PS5 emulator projects available and very useful for studying native code execution. -
Ryujinx
Provided valuable references for filesystem handling and low-level C# implementation patterns.
Support SharpEmu via GitHub Sponsors or cryptocurrency. Every contribution helps fund ongoing development and long-term maintenance. GitHub Sponsors is the preferred way to support the project, but cryptocurrency donations are also appreciated.
0xF315F5d986c790bB3A58DbE60F1B2760997dEd82
bc1qmr9k8899njys5ny63xsues4jgmkk96erslrkmv
Before opening an issue or pull request, please read our contribution guidelines:
The guide covers:
- Coding style and formatting
- AI-assisted contributions
- Pull request expectations
- Testing guidelines
- Legal and reverse engineering policy






