Skip to content

deadcore/playstation-emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

89 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Rust PlayStation Emulator

A PlayStation (PSX) emulator written in Rust, focusing on a clean, maintainable, and idiomatic codebase.

🚧 Status

This project is currently under active development.

  • CPU: Basic MIPS R3000A implementation (most instructions supported).
  • GPU: Initial WebGPU-based rendering setup (via wgpu).
  • Memory: Basic RAM and Interconnect implemented.

Roadmap

  • Basic MIPS CPU
  • GPU (Rasterization, Shaders)
  • SPU (Sound Processing Unit)
  • CD-ROM Controller
  • MDEC (Motion Decoder)
  • Memory Card support
  • Accurate Timing & Pipeline Emulation

πŸ› οΈ Key Dependencies

This project uses:

  • wgpu: Cross-platform, safe, pure-Rust graphics API.
  • winit: Window handling.
  • bytemuck: Casting between plain data types.

πŸš€ Getting Started

Prerequisites

  1. Rust: Ensure you have the latest stable version of Rust installed. Install Rust.
  2. BIOS: You will need a PlayStation BIOS image (e.g., SCPH1001.BIN). Note: These files are copyrighted and cannot be distributed with this emulator.

Building

Clone the repository and build the project:

git clone <repository_url>
cd playstation-emulator
cargo build --release

Running

To run the emulator, you need to provide the path to your BIOS file.

# Run the main emulator
cargo run --bin rust_playstation_emulator -- /path/to/your/SCPH1001.BIN

To run the graphics test example (Cube):

cargo run --bin cube_example

πŸ“‚ Project Structure

  • src/bin/: Executable entry points (emulator.rs, cube.rs).
  • src/cpu/: CPU core, registers, and instruction sets.
  • src/gpu/: GPU logic and rendering backend.
  • src/memory/: Memory mapping, RAM, and DMA.
  • src/bios/: BIOS loading and handling.

πŸ“š Credits

  • Simias: For the incredible PSX Guide which serves as a primary reference.

About

Playstation emulator written in Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published