GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - sharpemu/sharpemu-mac: An experimental PlayStation 5 emulator for Mac devices.

BranchesTags
Open more actions menu

Latest commit

 

History

1,381 Commits
1,381 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
LICENSES
LICENSES
 
 
assets/images
assets/images
 
 
build/platforms/macos
build/platforms/macos
 
 
docs
docs
 
 
scripts
scripts
 
 
src
src
 
 
tests
tests
 
 
tools
tools
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Directory.Build.props
Directory.Build.props
 
 
Directory.Build.targets
Directory.Build.targets
 
 
Directory.Packages.props
Directory.Packages.props
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 
REUSE.toml
REUSE.toml
 
 
SharpEmu.slnx
SharpEmu.slnx
 
 
global.json
global.json
 
 
nuget.config
nuget.config
 
 

Repository files navigation

SharpEmu for macOS

An experimental PlayStation 5 emulator for macOS, rendering natively with Metal.

Build and Release License: GPL-2.0-or-later


Join our Discord

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.

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. Compatibility and performance vary by game and by Mac.

About

SharpEmu-mac is the macOS edition of SharpEmu, an experimental PlayStation 5 emulator written in C#. It runs on macOS with a native Metal renderer ("Metal V2", in src/graphics/SharpEmu.Gpu.Metal/V2) that translates the console's GPU work to Metal directly, with no MoltenVK and no Vulkan on the macOS path. Guest x86-64 code runs directly on the host CPU, which is why the shipped build is osx-x64 and runs under Rosetta 2 on Apple Silicon.

SharpEmu is developed purely for research and educational purposes, with no commercial goals. It focuses exclusively on the PlayStation 5; for PS4 games, see ShadPS4.

This fork tracks upstream SharpEmu, which targets Windows and Linux with Vulkan. All credit for the emulator core belongs to the upstream project and its contributors.

Requirements

  • macOS 15 or later.
  • An Apple Silicon Mac with Rosetta 2, or an Intel Mac. The CPU backend runs the guest's x86-64 code natively, so the host process must be x86-64; osx-x64 is the only macOS build, and osx-arm64 is not supported.
  • A GPU that supports Metal. Games that draw with primitive (NGG) shaders need a Metal 3 device, because the backend runs them as Metal mesh pipelines.
  • Game dumps from a console you own. Titles can use a lot of memory, so a Mac with little free memory may page heavily.

On Apple Silicon, install Rosetta 2 once if you have not already:

softwareupdate --install-rosetta

See Building on macOS for the details behind these requirements.

Download and install

Download a build from the Releases page. Each release publishes two assets, both for osx-x64:

Asset Contents
sharpemu-<version>-osx-x64-app.zip SharpEmu.app, the macOS app bundle. This is the one to use for the GUI.
sharpemu-<version>-osx-x64.tar.gz The plain self-contained directory with the SharpEmu executable, for command-line use.

Unzip the app, move SharpEmu.app where you like (for example /Applications) and open it.

First launch and Gatekeeper. Release bundles are ad-hoc signed and are not notarized, so macOS may refuse to open a downloaded copy. Either allow it in System Settings, Privacy and Security, or remove the quarantine attribute:

xattr -dr com.apple.quarantine SharpEmu.app

The app cannot update itself in place. The GUI reports new releases and opens the releases page. If something does not start, see macOS troubleshooting.

Quick start

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.

GUI. Open SharpEmu.app (or run the SharpEmu executable with no arguments), add your game folders in the library settings, select a game and press Play. Environment variables can be set globally or per game in the GUI.

Command line. Pass the game's eboot.bin (or a .zar archive):

SharpEmu.app/Contents/MacOS/SharpEmu "/path/to/game/eboot.bin" --log-file

Supported game formats:

  • A dumped application folder: the folder that contains eboot.bin, normally with sce_sys/param.json and the game's data and modules beside it.
  • A .zar archive of a whole game folder, with eboot.bin at its root. The GUI can pack a game folder into a .zar.

Settings, save data and shader caches live under one data root. Inside SharpEmu.app that is ~/Library/Application Support/SharpEmu. Every log, trace, crash dump and shader or frame dump goes under user/logs/ in that data root; SHARPEMU_LOG_DIR moves it. See Running games on macOS for the full usage line, the data folder, controls, and the performance display. Game patches are described in Game patches, and environment variables in macOS configuration.

The first run of a game compiles its shaders, so it starts slowly; later runs reuse the caches.

Games

Captured on SharpEmu-mac with the Metal backend.

Black Myth: Wukong Grand Theft Auto V
Black Myth: Wukong Grand Theft Auto V
Demon's Souls SILENT HILL: The Short Message
Demon's Souls SILENT HILL: The Short Message
Superliminal Poppy Playtime Chapter 1
Superliminal Poppy Playtime Chapter 1
Quake The Oregon Trail
Quake The Oregon Trail
void tRrLM(); //Void Terrarium++ Dreaming Sarah
void tRrLM(); //Void Terrarium++ Dreaming Sarah

Building from source

You need the .NET SDK named in global.json, the Xcode command line tools (xcode-select --install) and Python 3. Full Xcode is not required.

git clone https://github.com/sharpemu/sharpemu-mac.git
cd sharpemu-mac
dotnet build SharpEmu.slnx -c Release
dotnet test SharpEmu.slnx -c Release
scripts/macos/build-app.sh        # -> artifacts/macos/SharpEmu.app and a .zip

build-app.sh publishes osx-x64, assembles and ad-hoc signs SharpEmu.app, and verifies it. Signing with a Developer ID and notarization are optional. See Building on macOS for requirements, build options, signing and entitlements.

Documentation

  • Documentation index
  • macOS guides: Building, Running games, Configuration, Metal backend, Testing, Troubleshooting

Contributing

Before opening an issue or pull request, please read our contribution guidelines:

CONTRIBUTING.md

The guide covers:

  • Coding style and formatting
  • AI-assisted contributions
  • Pull request expectations
  • Testing guidelines
  • Legal and reverse engineering policy

Upstream sync

This repository is a fork of sharpemu/sharpemu. Upstream changes arrive in main through merge pull requests from a pristine upstream mirror branch, never by rewriting history. A scheduled workflow (.github/workflows/upstream-sync.yml) keeps that mirror current and opens the pull request; scripts/mac/sync-upstream.sh does the same by hand when a merge has conflicts. The workflow needs the repository secret UPSTREAM_SYNC_TOKEN whenever upstream changes a workflow file; the comment at the top of the workflow says which permissions the token needs.

Disclaimer

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.

Special Thanks

The following projects were extremely helpful during development of SharpEmu:

  • 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.

  • OpenGNM Used as a reference for the general GCN architecture.

License

SharpEmu is licensed under the GPL-2.0-or-later license; see the LICENSES folder for the license texts of bundled components.

Support

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.

ETH/USDT

0xF315F5d986c790bB3A58DbE60F1B2760997dEd82

BTC

bc1qmr9k8899njys5ny63xsues4jgmkk96erslrkmv

About

An experimental PlayStation 5 emulator for Mac devices.

Resources

Readme
GPL-2.0 license

Contributing

Contributing
Activity
Custom properties

Stars

25 stars

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.