This is an implementation of the libretro API for the Rustation PlayStation emulator.
If you want to submit an issue please do so in the main Rustation repository. I'm going to try to gather everything there.
You'll need Rust and its package manager Cargo. Cargo will take care of downloading the various dependencies used by this crate.
The Rustation source code is a git submodule of this repository so you'll want to clone it with:
git clone --recursive https://github.com/simias/rustation-libretro.git
Then you should be able to build the libretro core from the
rustation-libretro
directory using:
cargo build --release
The core will be in the target/release/
directory. It should be
named librustation_retro.so
on unix.
To run the core you'll need a libretro frontend, I'm mostly using RetroArch but please do submit an issue if there's a compatibility problem with an other frontend.
You'll need to put a PlayStation BIOS in the "system directory" of the frontend you're using.
Rustation-libretro will search for files in this directory until it finds a valid BIOS for the game's region. Consult your frontend's documentation to figure out where it puts the system directory. Alternatively check the logs after loading a game to see where Rustation-libretro is looking for the BIOS, you should see a message similar to:
Looking for a BIOS for region <Region> in "/some/directory"
You'll need different BIOSes for the japanese, north-american, and european regions since PlayStation games are region-locked. You can just put all the BIOS files in the system directory and let Rustation-libretro figure out which one to use for the game you're using.
If for some reason Rustation-libretro doesn't seem to pick up on your
BIOS file check the logs to see why. The BIOS must match one of the
entries in Rustation's internal database (see src/bios/db.rs
in
Rustation's source code) otherwise it'll be ignored. If the BIOS
you're using is not part of the database chances are it's a bad dump.