cakehonolulu / SimpleStation

PlayStation 1 (PSX) Emulator Written in C (SDL2)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

PlayStation 1 (PSX) Emulator Written in C (SDL2)

License:The Unlicense


Languages

Language:C 97.4%Language:GLSL 1.5%Language:CMake 1.1%