Dopo quasi 10 anni di lavoro alla fine è stata rilasciata al pubblico la prima versione funzionante di un emulatore per PlayStation 3: RPCS3!
Attenzione: un articolo più aggiornato sull’argomento è disponibile qui!
RPCS3 non è altro che una versione ancora in fase embrionale di un emulatore/debugger per PlayStation 3 scritto in C++, ma il risultato è sorprendente, infatti nonostante la fase ancora sperimentale l’emulatore è già in grado di avviare giochi commerciali!
Anche se lo sviluppatore preferisce volare basso dichiarando che l’avvio di giochi commerciali non è al momento supportato, l’emulatore fa passi da gigante ed è già in grado di avviare giochi tramite HLE (high level emulation) piena, per cui attraverso un interpreter e speed hacks vari si è in grado di di far girare un gioco ad una velocità accettabile senza richiedere un computer della NASA. Naturalmente trattandosi di una versione ancora embrionale, c’è da aspettarsi che le cose cambino radicalmente.
Per adesso è necessario sapere che i requisiti minimi in assoluto (che potrebbero comunque cambiare) sono un Sistema Operativo a 64 bit, una CPU x86 che supporta SSE2 (o SSE 4 per il recompiler) ed una GPU (scheda video) compatibile con OpenGL 3.3, per cui non aspettatevi di avviare l’emulatore con una scheda grafica Intel integrata.
Si segnala comunque che, per adesso, l’utilizzo principale di questo software è quello di debugger, ma non si esclude che in un futuro prossimo si potrà giocare stabilmente ai titoli PS3 su PC. Di seguito la roadmap ufficiale, ovvero le features che verranno implementate nel progetto a breve (o più in là, a seconda della priorità).
Short term goals
- Rewriting VP/FP recompiler and work in a Xbyak-based PPU recompiler: [DH] (?)
- Improved memory manager and PPU interpreter: Hykem (Crypto Engine, EDATA loader and cellSpurs paused)
- cellSync: Nekotekina
Medium term goals
- sys_fs: Implement SDATA loader, that is, read the contents of the SDATA file on the fly.
- Work in RSX and add unimplemented GCM commands.
- Implement loading SPU code from encrypted file.
- Improve RSX Debugger: Add frame stepping (pause the emulator and advance just one frame).
- Fix the errors when trying opening files in folders with special characters like ‘™’.
- Reverse cache files in /dev_hdd1/. Ask BlackDaemon to get them.
- Improve PSF Loader in order to make PARAM.SFO files given the parameters.
- Implement new module functions. Specifically (ordered from more to less important):
- cellGameCreateGameData: Handle game data installations (required byBLUS30735.
- cellJpgDec: Allow to downscale JPG images while decoding them.
- Implement more lv2 SysCalls. Specifically (ordered from more to less important):
- 150, 154, 151 used by games like NBA Unrivaled [NPUB30146].
- 84, 88 used by games like NBA Unrivaled [NPUB30146].
- 177 used by games like Puzzle Chronicles [NPUB30076].
- 631 used by games like Prince of Persia Classic [NPUB30031]. (Is this function really relevant?)
- 834 which is cellFsChmod. (Is this function really relevant?)
- Find bugs, wrong autotests or read the current issues and fix them.
- Implement core dumps.
- Fix infinite loop: cellCameraReadEx -> … -> cellGemUpdateFinish in games likeNPEA00282. NOTE: This is probably the way game requests info from the camera and processes it.
Long term goals
- Add a User Manager to manage folders like:
dev_hdd0/home/00000001
.- Improve the Restart function: Some games still change their behaviour after restarting.
Di seguito alcune informazioni basilari per eventuali sviluppatori che volessero cimentarsi nel contribuire al progetto.
RPCS3
An open-source PlayStation 3 emulator/debugger written in C++.
You can find some basic information in the FAQ. For discussion about this emulator and PS3 emulation please visit the official forums.
Development
If you want to contribute please take a took at the Coding Style, Roadmap and Developer Informationpages. You should as well contact any of the developers in the forum in order to know about the current situation of the emulator.
Dependencies
Windows
Linux
- Debian & Ubuntu:
sudo apt-get install libopenal-dev libwxgtk3.0-dev build-essential libglew-dev
Mac OSX
- Install with Homebrew:
brew install glew wxwidgets
- Remove ‘-framework QuickTime’ from ‘_ldflags’ in /usr/local/bin/wx-config
Building
To initialize the repository don’t forget to execute
git submodule update --init
to pull the wxWidgets source.
- Windows: Install Visual Studio 2013, Cmake, Python and select Add in the PATH variable for both. Then open the .SLN file, and press Build > Rebuild Solution.
- Linux & Mac OSX:
cd rpcs3 && cmake CMakeLists.txt && make && cd ../
Then run withcd bin && ./rpcs3
Support
Ecco infine il download, il cui mirror vi è offerto da Tech Scene. Per tenere d’occhio i rilasci ufficiali basterà controllare la pagina ufficiale del progetto.