psOff_public/readme.md

88 lines
2.9 KiB
Markdown
Raw Normal View History

# psOff - PlayStation 4 Emulation (Windows)
2024-02-28 16:16:22 +00:00
[<img src="https://img.shields.io/discord/1215784508708749322?color=5865F2&label=ps_off&logo=discord&logoColor=white"/>](https://discord.gg/Jd2AuBN6eW)
2024-03-09 13:48:24 +00:00
**In development. Does it run ...? No!**
2024-03-06 22:52:54 +00:00
Runtime and rendering part is private currently.
Target is to have a standalone framework for shader reconstruction, command buffer translation and managing the GPU memory, for others to use. This project uses it to run "Linux" binaries on windows.
2024-02-28 16:16:22 +00:00
2024-03-29 16:41:24 +00:00
<img width="400" alt="tombRaiderRemaster" src="https://github.com/SysRay/psOff_public/assets/48695846/c4d25350-9e19-4a50-b065-a86e5d756f69">
2024-03-22 19:57:32 +00:00
<img width="400" alt="sonic" src="https://github.com/SysRay/psOff_public/assets/48695846/d3c646b9-bb14-4c9f-a2f2-80bc5a184d74">
2024-03-29 16:41:24 +00:00
<img width="400" src="https://github.com/SysRay/psOff_public/assets/48695846/6156412e-569d-4f2a-b8d2-061d6942e107">
<img width="400" alt="blackhole" src="https://github.com/SysRay/psOff_public/assets/48695846/86767eae-b5f2-4094-bd54-3ab94c043a68">
2024-03-06 22:52:54 +00:00
2024-02-28 16:16:22 +00:00
## Description
Yet another compatibility layer! I solely focused on the rendering part and recently started to implement the system functions to run some binaries.
2024-03-06 22:52:54 +00:00
It renders decently fast, the planned changes will make it almost perfect. Had to reverse engineer and try out a lot, before.
2024-02-28 16:16:22 +00:00
It currently doesn't support:
+ multiple command buffer submits
+ for loops in shader
+ missing opcodes
2024-03-22 19:52:42 +00:00
+ missing symbols
2024-02-28 16:16:22 +00:00
Im happy for any help. Just hop in, system part isn't complicated. \
I don't serve spaghetti only bugs.
2024-02-28 16:16:22 +00:00
2024-03-22 19:52:42 +00:00
2024-02-28 16:16:22 +00:00
## Getting Started
2024-03-25 09:56:01 +00:00
[wiki: Building psoff](https://github.com/SysRay/psOff_public/wiki/Building-psOff-from-scratch)
2024-02-28 16:16:22 +00:00
### Dependencies
+ Vulkan SDK 1.3.268.0, minimum
2024-03-11 04:34:42 +00:00
+ Up to date graphic drivers
2024-02-28 16:16:22 +00:00
2024-03-11 04:34:42 +00:00
(May add the Vulkan libs in Future Releases, if needed.)
2024-02-28 16:16:22 +00:00
For development:
+ Ninja
2024-03-09 13:48:24 +00:00
+ CMake 3.24+
2024-03-14 15:31:26 +00:00
+ Visual Studio 2022, it's just for the build environment (uses clang-cl,c++20)
+ Windows SDK 10.0.22621.0 or newer
2024-02-28 16:16:22 +00:00
2024-03-25 09:56:01 +00:00
2024-03-22 19:52:42 +00:00
2024-02-28 16:16:22 +00:00
### Installing
2024-03-22 19:52:42 +00:00
For testing, just download the latest release and install the Vulkan SDK.
2024-02-28 16:16:22 +00:00
2024-03-25 09:56:01 +00:00
### Executing a program
2024-02-28 16:16:22 +00:00
```
.\emulator.exe --h
.\emulator.exe --file="C:/****/eboot.bin"
```
2024-02-28 21:10:27 +00:00
If no --root is defined, it uses the folder from --file \
2024-03-29 16:41:24 +00:00
For testing/benchmark, use --vsync=0
2024-02-28 21:10:27 +00:00
2024-03-29 16:41:24 +00:00
Update (app1): _--update_
```
.\emulator.exe --file="C:/****/eboot.bin" --update="C:/FolderWithUpdate"
```
2024-02-28 16:16:22 +00:00
It expects the undecrypted Target to be in the following format:
2024-02-28 16:16:22 +00:00
```
sce_module
sce_sys
eboot.bin
```
2024-03-25 09:56:01 +00:00
Try out [input_ps4](https://github.com/igor725/input_ps4) to see if the emulator and your controller work correctly
2024-02-28 20:43:12 +00:00
## Development
2024-03-11 04:34:42 +00:00
Use boosts thread, mutex and conditions. The waits have to be alertable in order to receive fake signals from "kernel".
2024-02-28 20:43:12 +00:00
Project uses p7 for tracing -> Baical server.
2024-03-06 22:52:54 +00:00
* modules: the ps4 libraries
* core: kernel, memory etc.
* emulator.exe: (From Releases) contains the runtime and rendering
2024-03-09 13:48:24 +00:00
2024-03-22 19:57:32 +00:00
I'm using vscode, '.vscode\tasks.json' contains the config & build tasks.