ESC
开源 2 分钟阅读

《P.T.》原生PC开源移植版发布:需自备PS4游戏文件,支持DLSS、光追与VR

开发者loreanxavier发布《P.T.》原生PC开源移植版:用C++重建游戏逻辑,Vulkan渲染,运行时读取用户自己的PS4游戏文件,仓库与安装包不含任何游戏数据。支持Windows、Linux与Steam Deck,新增DLSS/FSR/XeSS、光线追踪、照片模式、VR、模组系统与简体中文等多语言,代码采用MIT许可证。

来源:GitHub

P.T. PC 版

走廊中的Lisa

如果这个移植版对你有价值,欢迎在 Patreon 上支持我:patreon.com/loreanxavier。你的支持能帮助我维持测试硬件并持续发布版本。

这是 Kojima Productions 2014 年 PS4 预告片《P.T.》的原生 PC 移植版。它不是模拟器:游戏逻辑是依据原作行为用 C++ 重建的,渲染器基于 Vulkan 编写;每一关、每个模型、贴图、音效、脚本和过场动画都在运行时从你自己的 PS4 游戏副本中读取。本仓库及安装包中不包含任何游戏数据。

这是我在业余时间独自完成的,因为《P.T.》理应继续存在下去,而不是只留在那些恰好还装着它的主机上。它完整呈现了整个预告片——从第一次醒来直到走上街道,语音部分也包含在内。

你需要什么

  • 你自己的《P.T.》副本。移植版基于美版(CUSA01127)构建和测试,文件来源可以是主机导出的 dump 文件夹,或由该 dump 制作的 fake PKG。欧版和日版也能安装(会附带提示),但我没有亲自见过它们的数据。商店版 PKG 无法使用:它是为拥有它的主机加密的,本项目中没有任何解密功能。
  • Windows 10 或 11(x64),或 glibc 2.38 及以上版本的 Linux x86-64(Ubuntu 24.04、Debian 13、Fedora 39、最新 Arch 和 SteamOS)。
  • 支持 Vulkan 1.3 的 GPU 和驱动。可选的光线追踪阴影、环境光遮蔽和反射需要支持 Vulkan ray queries 的 GPU。DLSS 需要 GeForce RTX 显卡;FSR 和 XeSS 可在任何较新的 GPU 上运行。设置页面会将你的机器无法运行的选项置灰并说明原因。
  • 游戏中有一段需要麦克风,与 PS4 原版一致。如果没有麦克风,可在 pt.ini 的 [voice] 下设置 key = J,用一个按键代替说出的话。

安装

从 Releases 页面下载安装程序:Windows 上是 P.T.PC.Port.Setup.exe,Linux 上是 setup 二进制文件。将它指向你的 dump 文件夹或 fake PKG,以及一个目标文件夹(Windows 上默认为 %LocalAppData%\Programs\P.T. PC Port)。它会把它需要的三个游戏归档文件(chunk1.psarc、texture.qar、pathid_list_ps4.bin)复制到移植版旁边,并可根据需要创建快捷方式。eboot、模块和系统文件不会被使用。

Linux:对 setup 执行 chmod +x 并在终端中运行。游戏只需要 glibc 和系统的 Vulkan 驱动。在 Steam Deck 上,从桌面模式安装并将 pt 添加为非 Steam 游戏;它在 SteamOS 上开箱即用。

Releases 页面还提供便携版 zip,如果你更喜欢自己放置游戏文件:解压后运行一次 pt.exe --game <your CUSA01127 folder>,或将该文件夹以 game/CUSA01127 的形式放在可执行文件旁边。

设置保存在 Windows 的 %APPDATA%\pt-port\pt\pt.ini 和 Linux 的 ~/.local/share/pt-port/pt/ 下,存档、日志(pt.log)和崩溃转储也在那里。游戏启动时会检查一次 Releases 页面是否有新版本;[network] check_updates = 0 可关闭该功能。

游玩操作

鼠标和 WASD,右键缩放,左键、Enter 或 E 互动,Esc 打开暂停菜单,Alt+Enter 切换全屏,F10 打开 PC 设置。任何手柄都可作为 PS4 手柄使用;按键提示会跟随你最后使用的输入设备(键盘、PlayStation、Xbox 或 Switch)。振动遵循原版的模式。游戏内选项(亮度、字幕、镜头反转)与原版相同,并且与 PS4 一样,选项界面和序言只在首次启动时播放。

移植版新增内容

以下所有功能默认关闭或设定为原版行为。PS4 的画面表现是基准;这些附加功能随你选用。

显示与画面

  • 窗口、无边框或全屏,任意分辨率,垂直同步可开关。
  • 升频技术:AMD FSR 3.1、NVIDIA DLSS 4.5(可选择模型)和 Intel XeSS,提供常规质量档位或自定义缩放,另加原生分辨率抗锯齿(FSR native AA、DLAA)。
  • 帧生成:AMD FSR 3 支持 Radeon RX 5000 或更新显卡,NVIDIA DLSS Frame Generation 支持 RTX 40 或更新显卡。
  • 图形预设:Low、Medium、Original(PS4)、High、Ultra 和 Custom。单独的选项涵盖阴影贴图尺寸、光线追踪阴影(与原版一致的锐利版或柔和版)、接触阴影、光线追踪环境光遮蔽、光线追踪地面反射、各向异性过滤、增强纹理(用 Real-ESRGAN 从你自己的文件一次性 2x 升频,并缓存在磁盘上)、胶片颗粒、运动模糊、景深、原版的镜头光斑重影以及带色边的弧形透镜效果。每一项都可以单独恢复为 PS4 设置。

附加功能

  • 照片模式(F7):暂停、自由移动镜头、设置视野、滚转、光圈和手电筒,保存到 Pictures/PT Photos。
  • 自由镜头(F6)。
  • 循环浏览器:通关后可跳转到房子中的任意循环。
  • 博物馆:游戏的潜意识图像、电台和语音台词(含文字稿)、照片碎片、过场动画、模型和未使用内容,随你在游玩中解锁。
  • Game+:通关后解锁的内容。
  • 速通计时器:每个循环设置一个分段,提供真实时间和游戏时间、个人最佳成绩,以及 LiveSplit 服务器连接(在 LiveSplit 中选择 Control > Start TCP Server)。
  • 第三人称视角(实验性)。
  • 通过 OpenXR 实现 VR(实验性:我没有头显,因此只在模拟运行环境中测试过)。尝试前请先阅读 docs/vr.md。

语言

  • 原版自带的英语、法语、德语、西班牙语、意大利语、葡萄牙语和日语,以及移植版新增的土耳其语、简体中文、阿拉伯语、俄语和乌克兰语:涵盖菜单、PC 设置和所有字幕。语音仍是原版英语,麦克风识别的词始终是 “Jack”。

模组

  • 可执行文件旁边的 mods 文件夹可以替换游戏文件、贴图和音效,并运行响应游戏事件的 Lua 脚本。参见 docs/modding.md 和 docs/lua_api.md。

从源码构建

Windows:需要 Visual Studio 2022 Build Tools、LLVM(clang-cl)、Vulkan SDK、CMake 3.28 和 Ninja。然后运行

tools\build_pt.bat release

即可得到 build\release\pt.exe。CMake 会拉取依赖(SDL3、zlib、volk、VMA、glm、Dear ImGui、stb、Lua 5.1、libogg、libvorbis、whisper.cpp),并下载 Whisper 和 Silero 模型以及升频 SDK 文件,每项均通过 SHA-256 校验。某个 SDK 下载失败会导致对应的升频技术被排除;-DPT_UPSCALERS=OFF 可在不带任何升频技术的情况下构建。python tools\package.py 将构建结果打包为便携版文件夹和 zip。

Linux:cmake -G Ninja -B build/linux -DCMAKE_BUILD_TYPE=RelWithDebInfo && cmake --build build/linux --target pt。需要 GCC 13 或 clang 17、Vulkan 头文件和 glslc。各升频技术是 Windows 专用 SDK,在 Linux 上被排除。tools/linux/ 中有我从 Windows 使用的交叉构建配置。更多信息见 docs/linux.md。

单元测试是 CMake 目标(pt_tests、pt_mods_test 以及 CMakeLists.txt 中的其他目标)。python tools/walkthrough.py --exe build/release/pt.exe --game <folder> 通过 tests/walkthrough/ 中的脚本化路线无窗口地完整通关游戏并检查日志;我用它来确保改动不会破坏某个循环。

安装程序位于 installer/:一个原生 C++ 安装程序(pt_setup,存在 payload 时构建)和一个用 C# 编写的小型 LGPL 解压辅助程序,后者通过 LibOrbisPkg 读取 fake PKG。docs/installer.md 说明了它如何决定接受哪些文件。

其他文档:docs/upscaling.md、docs/vr.md、docs/updates.md,以及 docs/formats/ 中出自对游戏数据逆向工程的文件格式笔记,还有读取这些格式的工具(位于 tools/)。

致谢

《P.T.》是 Kojima Productions 的作品,所有权归 Konami。本项目与两者无任何关联、未获其认可,也不与之相连。它不包含他们的任何资产,并且没有你自己的游戏副本就无法做任何事。

shadPS4 模拟器是我了解原作在 PS4 上运行行为的参考,也用于对照检查移植版的画面帧。感谢其开发者。

移植版基于 SDL3、Vulkan(volk、VMA)、glm、Dear ImGui、stb、Lua 5.1、libogg 和 libvorbis,语音部分使用 whisper.cpp 配合 OpenAI 的 Whisper 模型和 Silero VAD,增强纹理使用 Real-ESRGAN 与 ncnn,升频技术使用 AMD FidelityFX、NVIDIA DLSS 和 Intel XeSS,VR 使用 Khronos OpenXR 加载器,Linux 上使用 HarfBuzz 和 Noto 字体以支持新增语言,安装程序使用 LibOrbisPkg。它们的声明文件随程序一起发布在可执行文件旁边的 licenses/ 中。

许可证

移植版自身代码采用 MIT 许可证(见 LICENSE)。上文列出的第三方组件保留其各自的许可证。