Project Icon

duckstation

专注游戏性与兼容性的高效PlayStation 1模拟器

DuckStation是一款高性能的PlayStation 1游戏模拟器,致力于平衡游戏性、速度和长期可维护性。它在保持低端设备适用性能的同时,力求最大程度的模拟准确性。该模拟器提供多种硬件渲染、上采样和纹理过滤等图形增强功能,以及存档和即时回放等实用特性。DuckStation支持Windows、Linux和macOS平台,并配备用户友好的Qt界面,为玩家提供全面的PlayStation 1游戏体验。

DuckStation - PlayStation 1,又称 PSX 模拟器

功能 | 下载和运行 | 构建 | 免责声明

Windows 10/11 (x64/ARM64)、Linux (AppImage/Flatpak) 和 macOS (11.0+ 通用版) 的最新构建: https://github.com/stenzek/duckstation/releases/tag/latest

游戏兼容性列表: https://docs.google.com/spreadsheets/d/e/2PACX-1vRE0jjiK_aldpICoy5kVQlpk2f81Vo6P4p9vfg4d7YoTOoDlH4PQHoXjTD2F7SdN8SSBLoEAItaIqQo/pubhtml

Discord 服务器: https://www.duckstation.org/discord.html

DuckStation 是一个索尼 PlayStation(TM) 游戏机的模拟器/仿真器,注重可玩性、速度和长期可维护性。其目标是在保持适合低端设备性能的同时尽可能准确。不鼓励使用"黑客"选项,默认配置应该支持所有可玩的游戏,只有一些增强功能可能存在兼容性问题。

启动模拟器并玩游戏需要一个"BIOS"ROM 镜像。您可以使用任何硬件版本或地区的镜像,尽管游戏地区和 BIOS 地区不匹配可能会出现兼容性问题。出于法律原因,模拟器不提供 ROM 镜像,您应该使用 Caetla 或其他方法从您自己的游戏机中提取。

功能

DuckStation 具有使用 Qt 构建的功能齐全的前端,以及基于 Dear ImGui 的全屏/电视用户界面。

主窗口截图 全屏用户界面截图

其他功能包括:

  • CPU 重编译器/JIT(x86-64、armv7/AArch32、AArch64、RISC-V/RV64)。
  • 硬件(D3D11、D3D12、OpenGL、Vulkan、Metal)和软件渲染。
  • 硬件渲染器中的上采样、纹理过滤和真彩色(24 位)。
  • 通过光栅化顺序视图/片段着色器互锁实现精确混合。
  • PGXP 用于几何精度、纹理校正和深度缓冲模拟。
  • 自适应运动去隔行。
  • 自适应下采样滤波器。
  • 后处理着色器链(GLSL 和 Reshade FX)。
  • "快速启动"以跳过 BIOS 启动画面/介绍。
  • 支持保存状态,具有预运行和倒带功能。
  • 支持 Windows、Linux、macOS。
  • 支持直接从 CD、bin/cue 镜像、原始 bin/img 文件、MAME CHD、单轨 ECM、MDS/MDF 和未加密的 PBP 格式读取。
  • 将光盘镜像预加载到 RAM 以避免磁盘休眠引起的卡顿。
  • 自动加载/应用 PPF 补丁。
  • 直接启动自制可执行文件。
  • 直接加载便携式声音格式(psf)文件。
  • 数字和模拟控制器输入(震动反馈传递给主机)。
  • 支持 GunCon 和 Justifier 光枪(用鼠标模拟)。
  • 支持 NeGcon。
  • Qt 和"大屏幕"用户界面。
  • 自动更新,包括预览和最新版本通道。
  • 自动内容扫描 - 游戏标题/哈希由 redump.org 提供。
  • 可选的每个游戏自动切换记忆卡。
  • 支持从现有列表加载作弊码。
  • 记忆卡编辑器和存档导入器。
  • 模拟 CPU 超频。
  • 集成和远程调试。
  • 多接口控制器(最多 8 个设备)。
  • RetroAchievements。
  • Discord Rich Presence。
  • 使用 Media Foundation(Windows)和 FFmpeg(所有平台)后端的视频捕获。

系统要求

  • 比土豆快的 CPU。但需要是 x86_64(SSE4.1)、AArch32/armv7、AArch64/ARMv8 或 RISC-V/RV64。
  • 对于硬件渲染器,需要支持 OpenGL 3.1/OpenGL ES 3.1/Direct3D 11 功能级别 10.0(或 Vulkan 1.0)及以上的 GPU。基本上是过去 10 年左右生产的任何 GPU。
  • SDL、XInput 或 DInput 兼容的游戏控制器(如 XB360/XBOne/XBSeries)。Windows 上的 DualShock 3 用户需要安装 PlayStation Now 中包含的官方 DualShock 3 驱动程序。

下载和运行

DuckStation 的 Windows x64/ARM64、Linux x86_64(AppImage/Flatpak 格式)和 macOS 通用二进制文件可通过 GitHub Releases 获得,并在每次提交/推送时自动构建。通过其他来源分发的二进制文件或包可能已过时,开发者不提供支持,请向这些分发者寻求支持,而不是我们。

对于 x86 机器(大多数系统),您需要支持 SSE4.1 指令集的 CPU。这包括 2007 年后生产的所有 CPU。如果您想在较旧的 CPU 上使用 DuckStation,v0.1-6995 是最后一个不需要 SSE4.1 的版本。

Windows

DuckStation 要求 Windows 10/11,特别是 1809 版本或更新版本。如果您仍在使用 Windows 7/8/8.1,DuckStation 将无法在您的操作系统上运行。在 2023 年继续使用这些操作系统应被视为安全风险,我建议您更新到受供应商支持的系统。 如果您必须使用较旧的操作系统,v0.1-5624 是最后一个可以运行的版本。但不要期望得到任何帮助,这些构建不再受支持。 下载步骤:

下载并解压后,您可以通过运行 duckstation-qt-x64-ReleaseLTCG.exe 来启动模拟器。按照设置向导开始使用。

如果出现缺少 vcruntime140_1.dll 的错误,您需要更新 Visual C++ 运行时。 您可以从以下页面进行更新:https://support.microsoft.com/en-au/help/2977003/the-latest-supported-visual-c-downloads。具体来说,您需要 x64 运行时,可以从 https://aka.ms/vs/17/release/vc_redist.x64.exe 下载。

Linux

Linux 版本的 DuckStation 仅支持发布页面中的 AppImage 和 Flatpak。如果您从其他来源或发行版(例如 EmuDeck)安装了 DuckStation,请联系打包者寻求支持,我们无法控制这些版本。

Flathub 上的发布版本是官方的,与 GitHub 上的最新滚动/稳定版本同步。

不应该从非官方仓库(如 AUR)安装 DuckStation,这些版本已知存在问题

AppImage

AppImage 需要与 Ubuntu 22.04 或更新版本相当的发行版才能运行。

Flatpak

或者,如果您已设置 FlatHub:

  • 运行 flatpak install org.duckstation.DuckStation

使用 flatpak run org.duckstation.DuckStation 启动,或在桌面环境的启动器中选择 DuckStation。按照设置向导开始使用。

macOS

提供适用于 x64 和 ARM64(Apple Silicon)的通用 macOS 构建版本。

需要 macOS Big Sur(11.0)或更高版本,这也是 Qt 的最低要求。

下载步骤:

  • 前往 https://github.com/stenzek/duckstation/releases/tag/latest,下载 duckstation-mac-release.zip
  • 双击解压 zip 文件。
  • 打开 DuckStation.app,也可以先将其移动到您想要的位置。
  • 根据 GateKeeper 配置,首次运行时可能需要右键点击 -> 打开,因为对于一个没有收入的项目来说,代码签名证书是不可能的。

Android

您需要一台搭载 armv7(32 位 ARM)、AArch64(64 位 ARM)或 x86_64(64 位 x86)的设备。推荐使用 64 位,32 位的要求更高,您可能需要至少 1.5GHz 的 CPU。

从 Google Play 下载:https://play.google.com/store/apps/details?id=com.github.stenzek.duckstation APK 和测试版下载:https://www.duckstation.org/android/

不提供 Android 应用的支持,它是免费的,您的期望应该与此相符。请不要就相关问题给我发邮件或寻求帮助,您将被忽略。

使用方法:

  1. 安装并首次运行应用。
  2. 按照设置向导操作。

如果您有外部控制器,需要在设置中映射按钮和摇杆。

LibCrypt 保护和 SBI 文件

许多 PAL 地区游戏使用 LibCrypt 保护,需要额外的 CD 子通道信息才能正常运行。LibCrypt 不起作用通常表现为游戏卡住或崩溃,但有时也会影响游戏玩法,具体取决于游戏如何实现它。

对于这些游戏,请确保 CD 映像及其对应的 SBI(.sbi)文件具有相同的名称,并放在同一目录中。当 DuckStation 在 CD 映像旁找到 SBI 文件时,会自动加载它。

例如,如果您的光盘映像名为 Spyro3.cue,您应该将 SBI 文件放在同一目录下,并将其命名为 Spyro3.sbi

也支持带有内置子通道信息的 CHD 映像。

构建

Windows

要求:

  • Visual Studio 2022
  1. 克隆仓库:git clone https://github.com/stenzek/duckstation.git
  2. https://github.com/stenzek/duckstation-ext-qt-minimal/releases/download/latest/deps-x64.7z 下载依赖包,并解压到 dep\msvc
  3. 在根目录中打开 Visual Studio 解决方案 duckstation.sln,或使用"打开文件夹"进行 cmake 构建。
  4. 构建解决方案。
  5. 二进制文件位于 bin/x64 目录。
  6. 运行 duckstation-qt-x64-Release.exe 或您使用的其他配置。

Linux

必需依赖

Ubuntu/Debian 软件包名称:

build-essential clang cmake curl extra-cmake-modules git libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdecor-0-dev libegl-dev libevdev-dev libfontconfig-dev libfreetype-dev libgtk-3-dev libgudev-1.0-dev libharfbuzz-dev libinput-dev libopengl-dev libpipewire-0.3-dev libpulse-dev libssl-dev libudev-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-xkb-dev libxext-dev libxkbcommon-x11-dev libxrandr-dev lld llvm ninja-build pkg-config zlib1g-dev

Fedora 软件包名称:

alsa-lib-devel brotli-devel clang cmake dbus-devel egl-wayland-devel extra-cmake-modules fontconfig-devel gcc-c++ gtk3-devel libavcodec-free-devel libavformat-free-devel libavutil-free-devel libcurl-devel libdecor-devel libevdev-devel libICE-devel libinput-devel libSM-devel libswresample-free-devel libswscale-free-devel libX11-devel libXau-devel libxcb-devel libXcomposite-devel libXcursor-devel libXext-devel libXfixes-devel libXft-devel libXi-devel libxkbcommon-devel libxkbcommon-x11-devel libXpresent-devel libXrandr-devel libXrender-devel lld llvm make mesa-libEGL-devel mesa-libGL-devel ninja-build openssl-devel patch pcre2-devel perl-Digest-SHA pipewire-devel pulseaudio-libs-devel systemd-devel wayland-devel xcb-util-cursor-devel xcb-util-devel xcb-util-errors-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-wm-devel xcb-util-xrm-devel zlib-devel

构建

  1. 克隆仓库:git clone https://github.com/stenzek/duckstation.gitcd duckstation
  2. 构建依赖项。如果你愿意,可以将它们保存在树外。这将需要一段时间。scripts/deps/build-dependencies-linux.sh deps
  3. 运行 CMake 配置构建系统。假设构建子目录为 build-release,运行 cmake -B build-release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS_INIT="-fuse-ld=lld" -DCMAKE_PREFIX_PATH="$PWD/deps" -G Ninja。如果你想要发布(优化)版本,请包含 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
  4. 编译源代码。对于上面的示例,运行 ninja -C build-release
  5. 运行二进制文件,位于构建目录下的 ./build-release/bin/duckstation-qt

macOS

要求:

  • CMake
  • Xcode
  1. 克隆仓库:git clone https://github.com/stenzek/duckstation.git
  2. 构建依赖项。这将需要一段时间。scripts/deps/build-dependencies-mac.sh deps
  3. 运行 CMake 配置构建系统:cmake -Bbuild-release -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_PREFIX_PATH="$PWD/deps"
  4. 编译源代码:cmake --build build-release --parallel
  5. 运行二进制文件,位于构建目录下的 bin/DuckStation.app

用户目录

"用户目录"是你应该放置 BIOS 映像的地方,设置会保存在这里,默认情况下也会在这里保存记忆卡和保存状态。 可选的 SDL 游戏控制器数据库文件 也可以放在这里。

根据你使用的平台,这个目录位于以下位置:

  • Windows:我的文档\DuckStation
  • Linux:$XDG_DATA_HOME/duckstation,或 ~/.local/share/duckstation
  • macOS:~/Library/Application Support/DuckStation

因此,如果你使用 Linux,你应该将 BIOS 映像放在 ~/.local/share/duckstation/bios 中。首次运行 DuckStation 时会创建这个目录。

如果你希望使用"便携式"构建,即用户目录与可执行文件位于同一位置,请在 DuckStation 可执行文件所在的目录中创建一个名为 portable.txt 的空文件。

Qt 前端的按键绑定

你的键盘或游戏控制器可以用来模拟各种 PlayStation 控制器。控制器输入支持通过 DInput、XInput 和 SDL 后端,可以在 设置 -> 常规设置 中更改。

要绑定你的输入设备,请转到 设置 -> 控制器。模拟控制器的每个按钮/轴都会列出,旁边是当前绑定的设备上对应的键/按钮。要重新绑定,点击按钮/轴名称旁边的框,然后按下你想要绑定的输入设备上的键或按钮。绑定震动时,只需按下你希望发送震动的控制器上的任意按钮。

SDL 游戏控制器数据库

DuckStation 发布版本附带了 SDL 控制器后端的游戏控制器映射数据库,由 https://github.com/mdqinc/SDL_GameControllerDB 提供。包含的 gamecontrollerdb.txt 文件可以在 DuckStation 程序目录的 resources 子目录中找到。

如果你在使用 SDL 控制器后端绑定控制器时遇到问题,可能需要在数据库文件中添加自定义映射。复制 gamecontrollerdb.txt 并将其放在你的用户目录中(或者如果在便携模式下运行,直接放在程序目录中),然后按照 SDL_GameControllerDB 仓库中的说明创建新的映射。将此映射添加到新的 gamecontrollerdb.txt 副本中,然后你的控制器应该就能被正确识别了。

默认按键设置

控制器1:

  • 左摇杆: W/A/S/D
  • 右摇杆: T/F/G/H
  • 方向键: 上/左/下/右
  • 三角形/方形/圆形/叉号: I/J/L/K
  • L1/R1: Q/E
  • L2/R2: 1/3
  • L3/R3: 2/4
  • 开始键: 回车
  • 选择键: 退格

快捷键:

  • Esc键: 打开暂停菜单
  • F11: 切换全屏模式
  • Tab键: 临时禁用速度限制器
  • 空格键: 暂停/恢复模拟

免责声明

图标来自icons8: https://icons8.com/icon/74847/platforms.undefined.short-title

"PlayStation"和"PSX"是Sony Interactive Entertainment Europe Limited的注册商标。本项目与Sony Interactive Entertainment没有任何关联。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号