Thanks to visit codestin.com
Credit goes to Github.com

Skip to content
/ starpsx Public

A WIP PlayStation 1 emulator written in Rust.

License

Notifications You must be signed in to change notification settings

kaezrr/starpsx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

381 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StarPSX

StarPSX is a free, open-source PlayStation 1 emulator written in Rust. It features a native cross-platform GUI (eframe/egui) with a built-in debugger.

Warning

This project is currently highly work in progress and is not yet suitable for playing games end-to-end. Many features are incomplete or missing.

Mortal Kombat 2 Earthworm Jim 2 Crash Bandicoot Ridge Racer

See the Compatibility Wiki for a list of working games

Installation

Download the latest binaries from the official releases or if you are using an Arch Linux based system, its available on the AUR as the starpsx-bin package.

Building

StarPSX is designed to be lightweight. On Windows and macOS, no additional dependencies are required.

cargo build --release

On Linux, ensure the following development packages are installed:

sudo apt install libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libasound2-dev

Usage

StarPSX defaults to a GUI but also supports CLI-based usage.

Usage: starpsx [OPTIONS] [FILE]

Arguments:
  [FILE]  File to start the emulator with

Options:
  -s, --show-vram      Display full VRAM
  -a, --auto-run       Skip GUI and auto-start the emulator
  -d, --debugger-view  Show debugger_view on startup
  -h, --help           Print help
  -V, --version        Print version

Project Structure

Project Architecture
  • core: Frontend-agnostic library containing the main emulator logic.
  • renderer: Software rasterizer written from scratch (hardware backend planned).
  • frontend: The main user interface crate implemented using eframe / egui.

Component Status

Component Status Notes
CPU 🟢 Done passes most test ROMs
GPU 🟢 Done works well with some bugs
DMA 🟡 Partial burst and linked-list DMA supported
Timers 🟢 Done functional but may contain inaccuracies
CDROM 🟡 Partial boots a few games
GTE 🟢 Done passes all tests
SPU 🔴 Not started
Gamepad 🟢 Done full analog pad support
Memory Card 🔴 Not started
MDEC 🔴 Not started

Acknowledgements

  • psx-spx for PlayStation documentation
  • jsgroth’s PSX emulator blog posts
  • duckstation for behavior comparison
  • The folks over at the EmuDev Discord
  • Lionel Flandrin's Rustation for GTE reference

About

A WIP PlayStation 1 emulator written in Rust.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Languages