psx
A simple and portable Sony PlayStation emulator and emulation library written in C
Screenshots
| Windows | Ubuntu |
|---|---|
Running
In order to run the emulator, you will need a BIOS file, SCPH1001.bin specifically, you can either get it from the internet or dump it from your own console. Just put it in the same directory where the executable is located. I will write a CLI parser really soon though, you will be able to just specify the location of the BIOS or a search folder.
Other BIOSes aren't currently supported, though I've only tested SCPH1000.bin so far.
Progress
Here's a list of what's currently implemented:
- All CPU instructions, excluding GTE
- CPU quirks (Branch, Load delay slots)
- Bus structure
- OTC DMA (Burst), GPU DMA (Request, Linked)
- Several GPU registers
- GPU commands used by the BIOS
- Some CDROM commands (
Test,Getstat)
Building
Building the emulator should be easy, just use the scripts provided in this repo.
On Windows, the build-deps.ps1 script downloads SDL2, unzips it, and copies SDL2.dll to the root folder, if you want to run the emulator standalone, you'll have to move the SDL2 DLL to the same folder where the executable is located.
If you already have SDL2 on your system, you can skip running build-deps.ps1. Though you will have to edit build-win.ps1 to point the SDL2_DIR variable to your installation path.
On Ubuntu, you'll also need to install libsdl2-dev, you can get it from apt like so:
sudo apt update
sudo apt upgrade
sudo apt install libsdl2-dev
Assuming you did everything described above, you should be able to build the emulator running the following commands.
Windows
git clone https://github.com/allkern/psx
cd psx
./build-deps
./build-win.ps1
If build-win.ps1 fails for whatever reason (cough Microsoft cough), you can try using the build-win.bat (notice the extension) script instead. If this also doesn't work for you, please open an issue on the Issues tab
Ubuntu
git clone https://github.com/allkern/psx
cd psx
make clean && make