Skip to content

cakehonolulu/SimpleStation

Repository files navigation

A simple, multiplatform, Sony Playstation 1 emulator written in C

PSX Bootlogo

PAL PSX

Image

NTSC PSX

Image

Experimental Vulkan Renderer

Image

PSX Menus

BIOS Menu

Image

Another BIOS Menu

Image

PSX Game Boot

Image

PSX Demos

Amidog CPU Tests

Image

Quads Demo

Image

Goraud Triangle Demo

Image

✨ Features

  • Targets C23 features (Fallbacks present if not available)
  • LLE Interpreter
  • Multiplatform
  • Multiarchitecture
  • Hardware Renderer (OpenGL 3.3, and an experimental Vulkan renderer)

🖥️ Current state

CPU Subsystem

  • All opcodes implemented (100%)
    • Regular, e(X)tended, Jump and Branch Opcodes
    • MIPS Coprocessor 0 Opcodes
    • MIPS 5-stage Instruction Pipeline Emulation
    • Readable-format disassembler with debugger and breakpoint support
    • Custom gdbstub implementation to debug PSX code with gdb
  • No cache emulation (Yet!)

GPU Subsystem

  • Sony's Propietary GPU
    • In the works
  • Sony's Coprocessor 2 "GTE" (Geometry Transformation Engine)
    • In the works

DMA Subsystem

  • DMA Unit
    • In the works

CDROM Subsystem

  • CDROM Unit
    • In the works

BIOS Compatibility

  • BIOS41A.bin | b9d9a0286c33dc6b7237bb13cd46fdee
    • Boots to badly-rendered shell
  • SCPH101.bin | 6e3735ff4c7dc899ee98981385f6f3d0
    • Boots to shell
  • SCPH1000.bin | 239665b1a3dade1b5a52c06338011044
    • Graphical glitches on boot logo, crashes due to missing CDROM commands
  • SCPH1001.bin | 924e392ed05558ffdb115408c263dccf
    • Preferred BIOS by the emulator developer, boots to shell
  • SCPH1002.bin | 54847e693405ffeb0359c6287434cbef
    • Infinite loop after boot logo (Right before shell)
  • SCPH3000.bin | 849515939161e62f6b866f6853006780
    • Graphical glitches on boot logo, boots to shell
  • SCPH3500.bin | cba733ceeff5aef5c32254f1d617fa62
    • Boots to shell
  • SCPH5000.bin | 57a06303dfa9cf9351222dfcbb4a29d9
    • Boots to shell
  • SCPH5500.bin | 8dd7d5296a650fac7319bce665a6a53c
    • Boots to shell
  • SCPH5502.bin | e56ec1b027e2fe8a49217d9678f7f6bb
    • Nothing displayed, Illegal Opcode 0x0053DE3E
  • SCPH5552.bin | 32736f17079d0b2b7024407c39bd3050
    • Infinite loop after boot logo (Right before shell)
  • SCPH7000.bin | 8e4c14f567745eff2f0408c8129f72a6
    • Boots to shell
  • SCPH7001.bin | 1e68c231d0896b7eadcad1d7d8e76129
    • Boots to shell
  • SCPH7003.bin | 490f666e1afb15b7362b406ed1cea246
    • Boots to shell
  • SCPH7502.bin | b9d9a0286c33dc6b7237bb13cd46fdee
    • Boots to badly-rendered shell

👷🏼‍♂️ Roadmap

  • MIPS I R3000A to x86_64 (AMD64) Dynamic Recompilation (JIT)

🪐 Special Thanks

  • @wheremyfoodat
  • @liuk7071

📃 Documentation