Skip to content

unknowall/ScePSX

Repository files navigation

ScePSX - A Lightweight PS1 emulator Fully Developed in C#

License GitHub Release Language Build Status downloads Gitee Repo

🌐 English Version

Key Features 🎮

  • Save States: Save and load game progress at any time.
  • PGXP: Supported by both software and hardware backends, with all adjustments taking effect instantly without requiring a restart.
  • Multi-Renderer Support: Dynamically switch between D2D, D3D, OpenGL, and Vulkan renderers to adapt to different hardware configurations.
  • ReShade Integration: ReShade post-processing effects supported on D3D, OpenGL, and Vulkan for enhanced graphics.
  • Resolution Scaling: Hardware backend supports up to 4K native resolution output, while the software backend improves visuals through xBR and JINC scaling.
  • Memory Tools: Memory editing and search functionality for advanced users to modify game behavior.
  • Cheat Support: Enable cheat codes to unlock hidden content or adjust game difficulty.
  • Online Multiplayer: Supports networked gameplay to relive classic gaming experiences.
  • Save Management: Easily manage multiple save files.

Short demo video: Bilibili

Performance Overview 🚀

Rendering Mode Memory Usage Recommended Hardware Backend Mode
D2D ~32MB Older Machines Software
D3D ~52MB Older Devices Software
OpenGL ~86MB / ~138MB Modern Devices Software / OpenGL
Vulkan ~120MB / ~143MB Modern Devices Software / Vulkan

PGXP is supported across software, OpenGL, and Vulkan backends; older systems should enable it with caution.

Smooth Performance Test: Runs at 60 FPS on an Intel Celeron i3 3215u. No gamedb, no reshade,PGXP off.

Hardware Backend: Better native graphics quality, lower CPU usage
OpenGL requires a GPU supporting OpenGL 3.3+
Vulkan requires a GPU supporting Vulkan 1.1+

Figure 1: Main Interface(UI text follows system language)
psx 1 eng

Figure 2:ReShade(UI text follows system language)
psx 3

How to Use 🛠️

1. Setting Up BIOS 🔑

Note: Due to legal restrictions, the emulator does not include BIOS files. Please obtain a legal BIOS file.

  • Extract the BIOS file (e.g., SCPH1001.BIN) from your PlayStation console.
  • Place the file in the emulator's bios folder: /ScePSx
    ├── bios/
    │ └── SCPH1001.bin
    ├── saves/
    └── ScePSX.exe

2. Using ReShade 🎨

  • ReShade is available in OpenGL and Vulkan rendering modes.
  • For D3D, ReShade needs to be installed separately.

  • Press Home to open the ReShade settings interface.
  • Load pre-configured Shader files (several presets are available).

3. Multi-Disc Games 📀

  • Memory Card 1: Each disc uses its own memory card.
  • Memory Card 2: Shared across all discs, recommended for multi-disc games.

4. Controller Settings ⌨️🎮

  • Keyboard settings can be configured in the File menu.
  • Controllers are plug-and-play, no additional setup required.

Frequently Asked Questions ❓

Q: Why can't I start the game?

A: Ensure the following:

  1. The BIOS file is correctly set up.
  2. The game image file format is correct (e.g., .bin/.cue, .img/.cue, or .iso).

Q: How do I get more ReShade Shaders?

A: Visit the ReShade Official Website to download Shader files and place them in the reshade/ folder:

Q: What games are supported by the emulator?

A: Most common games are supported.

Q: What should I do if CPU usage is too high?

A: If CPU usage is high, try using the D2D renderer or reduce the internal resolution.

Q: How can I improve native graphics quality?

A: Press F11 multiple times and use the Home key to select ReShade for enhanced graphics.

Q: How do I fix audio desynchronization issues?

A: Try adjusting the audio buffer size or switching the audio output device.

Q: Does it support all PS1 region versions?

A: Yes, it supports NTSC-J, NTSC-U, and PAL formats.

Q: Why isn't the controller vibrating?

A: For games that support vibration feedback, you need to press F10 to switch to analog mode

Q: Why does Vulkan use the most memory?

A: Because it requires extra memory to store:

  • 3 out-of-order command buffers
  • 5 unsigned synchronization protocols
  • 11 validation layer jokes
  • Developer's precious hair samples

Q: Is cross-platform support available?

A: Currently, only Windows is supported. Future plans include Linux/macOS support via .NET MAUI or Avalonia.

How to Build

  1. The project is built on the .NET 8.0 framework with no third-party dependencies.
  2. SDL declarations are included in the code. Place the SDL2 DLL in the build directory.
  3. If using a framework below .NET 8.0, modify the project file manually.
  4. Some core code is based on https://github.com/BluestormDNA/ProjectPSX.

How to Contribute 🤝

We welcome contributions to ScePSX, including code submissions, issue reporting, or documentation improvements. Here’s how you can participate:

  • Submit Issues: Report problems or suggestions on the Issues page.
  • Submit PRs: Fork the project and submit Pull Requests.
  • Translation Support: If you’re fluent in other languages, help translate README or UI text.

Downloads 📥

  • Lightweight Version (1.05 MB): Core features only, ideal for quick testing.
  • Full Version (5.63 MB): Includes all features (e.g., ReShade integration).
  • GameDB Database: Optional download for automatic game configuration recognition.
  • ControllerDB Database: Optional download for extended controller support.

Click here to download the latest version

Legal Disclaimer ⚖️

ScePSX is an open-source project intended solely for learning and research purposes. Ensure you have legal game ROMs and BIOS files and comply with relevant laws and regulations.

主要功能 🎮

  • 即时存档/读档: 随时保存和加载游戏进度。
  • PGXP: 软件及硬件后端同样支持,各项调整即时生效,无需重启。
  • 多渲染器支持: 动态切换 D2D、D3D、OpenGL、Vulkan 渲染器,适配不同硬件配置。
  • ReShade 集成: D3D、OpenGL、Vulkan 支持 ReShade 后处理效果,增强画质。
  • 分辨率调节: 硬件后端可输出4K原生分辨率,软件后端可通过xBR,JINC提升视觉体验。
  • 内存工具: 提供内存编辑和搜索功能,适合高级用户修改游戏行为。
  • 金手指支持: 开启作弊功能,解锁隐藏内容或调整游戏难度。
  • 网络对战: 支持联机对战,重温经典游戏乐趣。
  • 存档管理: 方便管理多个游戏存档。

简短演示视频:BiliBili链接

性能表现 🚀

渲染模式 内存占用 推荐硬件 后端模式
D2D ~32MB 老机器 software
D3D ~52MB 较老设备 software
OpenGL ~86MB / ~138MB 现代设备 software / OpenGL
Vulkan ~120MB / ~143MB 现代设备 software / Vulkan

PGXP功能在 软件、OpenGL、Vulkan 后端均生效,老机器酌情启用

流畅运行测试: 在 Intel 赛扬 i3 3215u 上以 60 FPS 流畅运行。不使用gamedb, reshade, 不开启PGXP

硬件后端: 更好的原生画质,更低的CPU使用率
OpenGL 需支持OpenGL 3.3以上的显卡
Vulkan 需支持Vulkan 1.1以上的显卡

图1:主界面 (UI文本跟随系统语言)
psx 1

图2:ReShade界面 (UI文本跟随系统语言)
psx 3

如何使用 🛠️

1. 设置 BIOS 🔑

注意: 由于法律限制,模拟器不附带 BIOS 文件,请自行获取合法 BIOS。

  • 比如从你的 PlayStation 主机中提取 BIOS 文件(如 SCPH1001.BIN)
  • 将文件放入模拟器的 bios 文件夹中:
  • /ScePSx
  • ├── bios/
  • │ └── SCPH1001.bin
  • ├── saves/
  • └── ScePSX.exe

2. 使用 ReShade 🎨

  • ReShade 在 OpenGL、Vulkan 渲染模式下可用
  • D3D需额外安装reShade。

  • Home 键 打开 ReShade 设置界面。
  • 可加载预设的 Shader 文件(已有多款可供选择)。

3. 多光盘游戏 📀

  • 存储卡1: 每张光盘独立使用。
  • 存储卡2: 所有光盘共用,推荐用于多光盘游戏。

4. 控制设置 ⌨️🎮

  • 键盘设置在文件菜单中完成。
  • 手柄无需额外设置,即插即用。

常见问题 ❓

Q: 为什么无法启动游戏?

A: 请确保:

  1. 已正确设置 BIOS 文件。
  2. 游戏镜像文件格式正确(如 .bin/.cue.img/.cue.iso)。

Q: 如何获取更多 ReShade Shader?

A: 访问 ReShade 官方网站 下载 Shader 文件,并将其放入 reshade/ 文件夹中。

  • /ScePSx
  • ├── reshade/
  • │ └── 放在这里
  • ├── saves/
  • └── ScePSX.exe

Q: 模拟器支持哪些游戏?

A: 绝大部分常见的游戏都已支持。

Q: CPU 占用较高怎么办?

A: 如果 CPU 占用过高,建议使用 D2D 渲染器或降低内部分辨率。

Q: 如何获得更好的画质

A: 多按几下F11,建议配合home键选择ReShade增强画质

Q: 如何解决音效不同步的问题?

A: 尝试调整音频缓冲区大小,或更换音频输出设备。

Q: 是否支持 PS1 的所有区域版本?

A: 是的,支持 NTSC-J、NTSC-U 和 PAL 格式的游戏。

Q: 为什么手柄不会震动?

A: 对于支持震动的游戏,您需要按下F10切换至模拟手柄。

Q: 为什么 Vulkan 的内存占用最高?

A: 因为它需要额外内存来存储:

  • 3个时间线错乱的命令缓冲
  • 5份未签署的同步协议
  • 11个验证层冷笑话
  • 开发者珍贵的头发样本

Q: 是否支持跨平台?

A: 目前仅支持 Windows,未来计划通过 .NET MAUI 或 Avalonia 实现 Linux/macOS 支持。

如何编译

  1. 项目是.net 8.0 框架,无第三方依赖
  2. SDL 声明文件已经在代码中包含,把SDL2的DLL放到生成目录中即可
  3. 如果使用低于 .net 8.0 框架,可手动修改项目文件
  4. Core的部分代码基于 https://github.com/BluestormDNA/ProjectPSX

如何贡献 🤝

欢迎为 ScePSX 提交代码、报告问题或改进文档!以下是参与方式:

  • 提交 Issue: 在 Issues 页面报告问题或提出建议。

  • 提交 PR: Fork 本项目并提交 Pull Request。

  • 翻译支持: 如果你熟悉其他语言,欢迎帮助翻译 README 或 UI 文本。

  • 国内的朋友可以在下面这里提出汉化ROM兼容性问题(感谢miku233, lzsgodmax转载)

  • 老男人 讨论贴 https://bbs.oldmantvg.net/thread-77207.htm

  • chinaemu 讨论贴 http://bbs.chinaemu.org/read-htm-tid-129832.html

下载 📥

  • 轻量版 (1.05 MB): 仅包含核心功能,适合快速体验。
  • 完整版 (5.63 MB): 包含所有功能(如 ReShade 集成)。
  • GameDB 数据库: 可选下载,自动识别和加载游戏配置。
  • ControllerDB 数据库: 可选下载,自动识别更多手柄外设。

点击这里下载最新版本

法律声明 ⚖️

ScePSX 是一个开源项目,仅用于学习和研究目的。请确保您拥有合法的游戏 ROM 和 BIOS 文件,遵守相关法律法规。

About

Lightweight PS1 emulator in C# for retro gaming.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages