ChonkyStation3 is a work-in-progress emulator for the PlayStation 3 system.
It can currently boot a few simple commercial games.
This is a hobby project I'm developing for fun and to learn.
You should not use this to actually play games. At least not for now.
Windows SDL | Download | |
Linux SDL | Download | |
MacOS SDL | Download |
Windows Qt | Download |
Qt builds for Linux and MacOS will be available soon.
Run the emulator once. It will create a "Filesystem" folder next to the executable (in the future the path will be configurable).
This folder contains all the virtual devices of the emulated PS3. The ones you'll be looking at are dev_flash and dev_hdd0.
ChonkyStation3 currently lacks a native way to install game packages (.pkg).
You will need to use third party tools to unpack them.
The easiest way to do it is through RPCS3. Install the game in the emulator, then copy over the game contents located in dev_hdd0/game/[TITLE ID] to the same folder in ChonkyStation3's filesystem. The title ID is next to the game's name in RPCS3's game list. Alternatively, if you don't want to keep 2 copies of the game, you could create a symlink to point ChonkyStation3's dev_hdd0 folder to RPCS3's.
By this point, if you open ChonkyStation3, you should be able to see the game in the game list. However, attempting to launch it will give you an error complaining about a missing "EBOOT.elf" file. This happens because PS3 game executables are encrypted, and ChonkyStation3 currently can't decrypt games on its own. You'll need to use a third party tool again. As it was for step 1, you can easily do this through RPCS3.
Open RPCS3, navigate to "Utilities > Decrypt PS3 binaries". Select the file "EBOOT.BIN" located under the "USRDIR" folder in the game contents. You can find the path of the game contents folder by right clicking it and pressing "Open Folder > Open HDD Game Folder".
Some games (a lot of them) contain *.edat files in their content folder. You need to manually decrypt these files just like you did with the game executable - however, you need to make sure the decrypted files have the same name as the encrypted ones (ending in ".edat"). Just rename the old encrypted file to something else instead of deleting it entirely, so you have a backup in case things break.
Installing the PlayStation 3 system software is required for games to work.
You can follow RPCS3's quickstart guide to install it in their emulator. You should then decrypt (using the same method as step 2 and 3 in "Installing a game") the required .sprx files located inside dev_flash/sys/external and copy over the entire dev_flash folder to ChonkyStation3's filesystem. Make sure you copy the whole folder and not just the decrypted .prx files, because the folder contains other necessary system files.
This is the list of the required PRX files as of the latest commit:
- liblv2.prx
- libsre.prx
- libspurs_jq.prx
- libkey2char.prx
- libl10n.prx
- libfiber.prx
- libresc.prx
Building ChonkyStation3 under any of the supported platforms should be as simple as building any cmake project.
# Clone the repository recursively
git clone https://github.com/liuk7071/ChonkyStation3.git --recursive
# Create build directory
cd ChonkyStation3
mkdir build && cd build
# Setup cmake project
cmake .. -DCMAKE_BUILD_TYPE=Release -G"[Type your preferred generator here]"
[Invoke make or Visual Studio or whatever you chose]
You can optionally specify 2 cmake flags:
- -DENABLE_USER_BUILD=ON: Enables a user build. This suppresses most logs and disables some debugging options.
- -DENABLE_QT_BUILD=ON: Enables a Qt6 build. This requires you to install Qt6 as a dependency.
- RPCS3: None of this would have been possible without the extensive research done by the RPCS3 team over the past decade. A lot of information I couldn't gather through my own testing comes from their work.
- PSL1GHT: An open source PS3 SDK. It has been very useful to learn how parts of CellOS work and to write my own tests.
- psdevwiki: A useful website containing a lot of misc information about the PS3, as well as other PlayStation consoles.
- Panda3DS: An HLE Nintendo 3DS emulator for Windows, Linux, MacOS and Android by wheremyfoodat (aka Peach).
- felix86: A new x86-64 → RISC-V Linux userspace emulator.