Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cruStation

cruStation

A PlayStation (PS1) emulator written in Rust.

🌟 Features

  • CPU Emulation: emulates the PlayStation's main R3000A-compatible CPU.
  • GPU Emulation: handles some graphics rendering. Rendering is done using the wgpu library (could it even run in a browser?).
  • Debugging: some debugging and stepping features are available.

It cannot currently run any games, since the CD-ROM drive is not emulated yet. However, the BIOS boot scene is completely displayed.

cruStation

🛠️ Getting Started

Prerequisites

  • Rust: Ensure you have a recent version of Rust installed. You can get it from rust-lang.org.
  • PlayStation BIOS: You will need a PlayStation BIOS ROM image (e.g., SCPH1001.BIN). Place it in a bios/ directory in the project root.

Building

  1. Clone the repository:
    git clone <your-repository-url>
    cd crustation
  2. Build the project using Cargo:
    cargo build --release

Running

  • To run the emulator (it will attempt to load the BIOS):
    cargo run --release
  • To run a specific PlayStation executable:
    cargo run --release path/to/your/executable.exe
    (The emulator loads the BIOS first, then the executable.)

⚙️ Dependencies

  • env_logger (or a similar logging facade)
  • pollster
  • crustationgui (the GUI crate for this project)
    • winit (for window creation and event handling)
    • wgpu (or a library wrapping it, for graphics rendering)
    • crossbeam-channel (for communication, between CPU and GPU threads)
  • ctrlc (for handling Ctrl-C interrupts)
  • Standard Rust libraries.

📜 License

This project is licensed under the MIT License.

About

Sony PlayStation Emulator written in Rust for fun and learning.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages