Il continuo sviluppo di emulatori per la console PlayStation 4 sta attirando un numero crescente di sviluppatori. Dopo fpPS4 e RPCSX, che sono attualmente i progetti più avanzati, ora si aggiunge anche psOff.
psOff è un nuovo progetto di emulazione per PlayStation 4 in fase di sviluppo, destinato a funzionare su PC Windows. Attualmente testato solo con GPU AMD, potrebbe non essere compatibile con schede NVidia al momento.
La parte di esecuzione e rendering è attualmente privata, ma l’obiettivo è quello di creare un framework autonomo per la ricostruzione degli shader, la traduzione dei buffer di comando e la gestione della memoria GPU, per consentire ad altri di utilizzarlo.
Descrizione
Come per tutti gli emulatori in sviluppo, anche psOff esegue un livello di compatibilità che consente al software scritto per un sistema operativo di funzionare su un sistema operativo ben diverso, traducendone le API e le chiamate di sistema.
Lo sviluppatore si è concentrato esclusivamente sulla parte di rendering iniziando solo di recente a implementare le funzioni di sistema per eseguire alcuni binari.
Rende abbastanza velocemente, ma i cambiamenti pianificati lo renderanno quasi perfetto. Ho dovuto fare molto reverse engineering e sperimentare prima.
Attualmente non supporta:
- Invii multipli di buffer di comando.
- Cicli for negli shader.
- Opcode mancanti
Dipendenze
- Vulkan SDK 1.3.268.0, minimo.
- Driver grafici aggiornati (verranno aggiunte librerie Vulkan nelle future versioni, se necessario).
Per lo sviluppo
- Ninja.
- CMake.
- Visual Studio 2019, per l’ambiente di compilazione (clang-cl, c++20).
Installazione
Per i test, basta scaricare l’ultima versione e installare le Vulkan SDK.
Per lo sviluppo, impostare CMAKE_INSTALL_PREFIX
nella cartella degli emulatori scaricata.
Esecuzione del programma
.\emulator.exe --h
.\emulator.exe --file="C:/****/eboot.bin"
Se non viene definito --root
, utilizzare la cartella da --file
. Per test/benchmark, aggiungere anche --vsync=0
.
Si aspetta che il target sia nel seguente formato:
sce_module
sce_sys
eboot.bin
Sviluppo
Utilizzare thread, mutex e condizioni di Boost. Le attese devono essere attentibili per ricevere segnali falsi dal “kernel”.
Il progetto usa p7 per il tracciamento -> server Baical.
- Moduli: Le librerie PS4.
- Core: kernel, memoria, ecc..
Emulator.exe
: (dalle release) contiene l’esecuzione e il rendering.
Changelog
Emulator.exe
ora contiene solo la parte di runtime e rendering.- Esegue alcuni giochi semplici come Worms W.M.D, Sonic Mania Plus o Blackhole.
Download: psOff v0.2-beta
Download: Source code psOff v0.2-beta
Fonte: github.com