mirror of
https://github.com/par274/sharpemu.git
synced 2026-07-15 23:46:15 +08:00
92 lines
7.2 KiB
Markdown
92 lines
7.2 KiB
Markdown
<!--
|
|
Copyright (C) 2026 SharpEmu Emulator Project
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
-->
|
|
|
|
# SharpEmu
|
|
|
|
An experimental PlayStation 5 emulator for Windows, Linux and macOS.
|
|
Currently the primary development target is Windows.
|
|
|
|
> [!WARNING]
|
|
> This project is in a very early alpha stage. No commercial games are currently playable.
|
|
|
|
## Info
|
|
|
|
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**.
|
|
|
|
## Status
|
|
|
|
The emulator can currently load the `eboot.bin` of real games, execute native CPU instructions, and partially handle kernel-related functionality. However, several critical components are still missing. For example, functions such as `sceKernelGetTscFrequency` are not yet properly implemented or resolved.
|
|
|
|
Current capabilities include:
|
|
|
|
* Loading `eboot.bin` and `.elf` files
|
|
* Executing native CPU instructions
|
|
* Reading basic game metadata (title, version, etc.)
|
|
* Loading system modules (`prx` / `sys_module`)
|
|
* Partial support for some kernel functions
|
|
* Examples: `sceKernelGetDirectMemorySize`, `sceKernelMapDirectMemory`
|
|
|
|
At the moment, none of the tested titles have progressed far enough to reach the `sceVideoOut` stage.
|
|
|
|
Currently the project primarily targets Windows. Cross-platform support (Linux and macOS) is planned, but development is currently focused on Windows to simplify early-stage debugging and iteration.
|
|
|
|
## Using
|
|
|
|
* Build or Publish project or download in release tab.
|
|
* Open Powershell.
|
|
* Run: `.\SharpEmu "eboot.bin" 2>&1 | Tee-Object -FilePath "log.txt"`
|
|
|
|
## Games Tested
|
|
|
|
* **Demon's Souls Remake**
|
|
* [Demon's Souls [PPSA01341]](https://github.com/par274/sharpemu/issues/2)
|
|
|
|
* **Poppy Playtime Chapter 1**
|
|
* [Poppy Playtime Chapter 1 [PPSA20591]](https://github.com/par274/sharpemu/issues/3)
|
|
|
|
* **SILENT HILL: The Short Message**
|
|
* [SILENT HILL: The Short Message [PPSA10112]](https://github.com/par274/sharpemu/issues/4)
|
|
|
|
> [!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.
|
|
|
|
## Build
|
|
|
|
1. Install the **.NET SDK**.
|
|
2. Clone the repository: `git clone https://github.com/par274/sharpemu.git`
|
|
3. Open the solution file (`SharpEmu.slnx`) in **VSCode**.
|
|
4. Build the project: `dotnet build` or `dotnet publish`
|
|
5. Build artifacts will be located in the `artifacts` directory.
|
|
|
|
## 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:
|
|
|
|
* **[ShadPS4](https://github.com/shadps4-emu/shadPS4)**
|
|
Helped with understanding the basic architecture of the PlayStation 4.
|
|
|
|
* **[Kyty](https://github.com/InoriRus/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.
|
|
|
|
# License
|
|
|
|
- [**GPL-2.0 license**](https://github.com/par274/sharpemu/blob/main/LICENSE)
|