Playstation 4 Emulator for Windows
Go to file
2024-03-02 14:48:41 +01:00
.vscode dump, build with priv_prj works 2024-03-02 14:48:41 +01:00
core dump, build with priv_prj works 2024-03-02 14:48:41 +01:00
docs build core.lib, + readme 2024-02-29 17:54:15 +01:00
modules dump, build with priv_prj works 2024-03-02 14:48:41 +01:00
modules_include initial setup 2024-02-27 19:51:39 +01:00
out/docs/uml/modules build core.lib, + readme 2024-02-29 17:54:15 +01:00
third_party + third_party| magic_enum 2024-03-01 19:31:43 +01:00
tools/logging dump, build with priv_prj works 2024-03-02 14:48:41 +01:00
utility + utility, initParams 2024-03-01 16:06:58 +01:00
.clang-format + eventqueue, libkernel 2024-02-29 17:00:13 +01:00
.gitignore rem out/ from gitignore 2024-02-28 21:50:48 +01:00
.gitmodules + third_party| magic_enum 2024-03-01 19:31:43 +01:00
CMakeLists.txt dump, build with priv_prj works 2024-03-02 14:48:41 +01:00
LICENSE Initial commit 2024-02-27 15:05:21 +01:00
readme.md readme + vsync 2024-02-28 22:10:27 +01:00

psOff - Emulation for playstation 4

Windows only. Tested only with AMD GPU. May not run with nvidia, currently.

Will add more of the "private" part later.

Target is to have a standalone framework for shader reconstruction, commandbuffer translation and managing the GPU memory, for others to use. Thats why the project is currently split.

Description

Yet another compatibility layer! I solely focused on the rendering part and recently started to implement the system functions to run some binaries. It renders decently fast. The planned changes will make it almost perfect. Had to reverse engineer and try out a lot, before.

It currently doesn't support:

  • multiple command buffer submits
  • for loops in shader
  • missing opcodes

Im happy for any help. Just hop in, system part isn't complicated.
I don't serve spaghetti only bugs.

Getting Started

Dependencies

  • Vulkan SDK 1.3.268.0, minimum
  • up to date graphic drivers

For development:

  • Ninja
  • CMake
  • Visual Studio 2019, for the build environment (clang-cl,c++20)

Installing

For testing, just download the latest release. And install the Vulkan SDK

For development, set CMAKE_INSTALL_PREFIX to the downloaded emulators folder.

Executing program

.\emulator.exe --h
.\emulator.exe --file="C:/****/eboot.bin"

If no --root is defined, it uses the folder from --file
For testing/benchmark, add --vsync=0

It expects the Target to be in the following format:

sce_module
sce_sys
eboot.bin

Development

Use boosts thread, mutex and conditions. The waits have to be alert able in order to receive fake signals from "kernel".