Playstation 4 Emulator for Windows
Go to file
Martin Baliet bbf3d661df + imgui
2024-05-04 20:18:48 +02:00
.github/workflows Update build.yml 2024-04-29 13:03:24 +02:00
.vscode cmake| debug again, +tasks install+build 2024-04-29 12:49:41 +02:00
asm move main| dump 2024-04-28 21:04:17 +02:00
core + imgui 2024-05-04 20:18:48 +02:00
docs Merge remote-tracking branch 'origin/features' into work 2024-04-29 12:36:42 +02:00
misc Initial commit 2024-04-25 16:47:48 +03:00
modules libScePng| use numChannels 2024-05-04 15:27:30 +02:00
modules_include Stub some funcs 2024-04-14 16:04:54 +03:00
out/docs/uml/modules videoout| handle swapchain with imageHandler 2024-03-29 16:00:25 +01:00
tests dump 2024-04-17 21:39:03 +02:00
tools Merge remote-tracking branch 'origin/features' into work 2024-04-29 12:36:42 +02:00
utility dump 2024-04-17 21:39:03 +02:00
.clang-format Missing symbol + .clang-format cleanup 2024-04-20 12:10:10 +03:00
.clang-format-ignore Fix formatting 2024-04-19 23:14:40 +03:00
.gitignore Cleanup 2024-03-12 09:28:44 +03:00
.gitmodules - third_party 2024-04-14 12:03:43 +02:00
CMakeLists.txt + imgui 2024-05-04 20:18:48 +02:00
index.html + index.html 2024-03-06 15:37:15 +01:00
LICENSE Initial commit 2024-02-27 15:05:21 +01:00
main.cpp Merge pull request #140 from SysRay/work 2024-04-29 22:32:12 +02:00
readme.md emulator.exe -> psoff.exe for docs 2024-04-29 12:34:01 +02:00

psOff - PlayStation 4 Emulation (Windows)

In development. Does it run ...? No!

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.

tombRaiderRemaster sonic blackhole

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
  • missing symbols

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

Getting Started

wiki: Building psoff

Dependencies

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

(May add the Vulkan libs in Future Releases, if needed.)

For development:

  • Ninja
  • CMake 3.24+
  • Visual Studio 2022, it's just for the build environment (uses clang-cl,c++20)
  • Windows SDK 10.0.22621.0 or newer

Installing

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

Executing a program

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

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

Update (app1): --update

.\psoff.exe --file="C:/****/eboot.bin" --update="C:/FolderWithUpdate"

It expects the undecrypted Target to be in the following format:

sce_module
sce_sys
eboot.bin

Try out input_ps4 to see if the emulator and your controller work correctly

Development

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

Project uses p7 for tracing -> Baical server.

  • modules: the ps4 libraries
  • core: kernel, memory etc.
  • psoff.exe: (From Releases) contains the runtime and rendering

I'm using vscode, '.vscode\tasks.json' contains the config & build tasks.