duckstation

duckstation

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

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

DuckStationPlayStation模拟器游戏兼容性跨平台Github开源项目

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 的全屏/电视用户界面。

<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/4170246a-d6a4-414b-819f-1a48ef29904e.png" alt="主窗口截图" /> <img src="https://yellow-cdn.veclightyear.com/835a84d5/6655f42f-0d19-4015-8e5a-e085993e9e68.png" alt="全屏用户界面截图" /> </p>

其他功能包括:

  • 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没有任何关联。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多