pt-pc README

The project's README from github.com/LoreanXavier/pt-pc. As one markdown file: README.md.

P.T. for PC

Lisa in the hallway

If the port is worth something to you, you can support me on Patreon: patreon.com/loreanxavier. It keeps the testing hardware and the releases coming.

This is a native PC port of P.T., the 2014 PS4 teaser by Kojima Productions. It is not an emulator. The game logic was rebuilt in C++ from the original's behaviour and the renderer is written on Vulkan; every level, model, texture, sound, script and cutscene is read at run time from your own copy of the PS4 game. There is no game data in this repository and none in the installer.

I made this on my own, in my spare time, because P.T. deserved to keep existing somewhere other than on consoles that still have it installed. It plays the whole teaser from the first wake-up to the street, with the voice part included.

What you need

Installing

Download the installer from the Releases page: P.T.PC.Port.Setup.exe on Windows, the Linux setup binary on Linux. Point it at your dump folder or fake PKG and at a destination folder (the default on Windows is %LocalAppData%\Programs\P.T. PC Port). It copies the three game archives it needs (chunk1.psarc, texture.qar, pathid_list_ps4.bin) next to the port and makes a shortcut if you want one. The eboot, modules and system files are not used.

Linux: chmod +x the setup and run it from a terminal. The game needs only glibc and the system's Vulkan driver. On a Steam Deck install from desktop mode and add pt as a non-Steam game; it runs on SteamOS as it is.

There is also a portable zip on the Releases page if you prefer to put the game files in place yourself: unpack it, then start pt.exe --game <your CUSA01127 folder> once, or put the folder next to the executable as game/CUSA01127.

Settings go to %APPDATA%\pt-port\pt\pt.ini on Windows and ~/.local/share/pt-port/pt/ on Linux, together with the save, the log (pt.log) and crash dumps. The game checks the Releases page for a newer version once at start; [network] check_updates = 0 turns that off.

Playing

Mouse and WASD, right mouse button to zoom, left button, Enter or E to interact, Esc for the pause menu, Alt+Enter for fullscreen, F10 for the PC settings. Any gamepad works as the PS4 pad; the button prompts follow whatever you used last (keyboard, PlayStation, Xbox or Switch). Vibration follows the original's patterns. The in-game options (brightness, subtitles, camera inversion) are the original ones, and as on the PS4 the option screen and the preface only play on a first start.

What the port adds

Everything below is off or set to the original's behaviour by default. The PS4 look is the baseline; the extras are there if you want them.

Display and image

Extras

Languages

Mods

Building from source

Windows: Visual Studio 2022 Build Tools, LLVM (clang-cl), the Vulkan SDK, CMake 3.28 and Ninja. Then

tools\build_pt.bat release

gives build\release\pt.exe. CMake fetches the dependencies (SDL3, zlib, volk, VMA, glm, Dear ImGui, stb, Lua 5.1, libogg, libvorbis, whisper.cpp) and downloads the Whisper and Silero models and the upscaler SDK files, each checked by SHA-256. A failed SDK download leaves that upscaler out; -DPT_UPSCALERS=OFF builds without any. python tools\package.py turns the build into the portable folder and zip.

Linux: cmake -G Ninja -B build/linux -DCMAKE_BUILD_TYPE=RelWithDebInfo && cmake --build build/linux --target pt. GCC 13 or clang 17, the Vulkan headers and glslc. The upscalers are Windows-only SDKs and are left out there. tools/linux/ has the cross build I use from Windows. More in docs/linux.md.

The unit tests are CMake targets (pt_tests, pt_mods_test and the others in CMakeLists.txt). python tools/walkthrough.py --exe build/release/pt.exe --game <folder> plays the whole game without a window through the scripted routes in tests/walkthrough/ and checks the log; it is how I make sure a change did not break a loop.

The installer is installer/: a native C++ setup (pt_setup, built when a payload exists) and a small LGPL extraction helper in C# that reads fake PKGs with LibOrbisPkg. docs/installer.md describes how it decides what it accepts.

Other docs: docs/upscaling.md, docs/vr.md, docs/updates.md, and the file format notes in docs/formats/ that came out of reverse engineering the game data, with the tools in tools/ that read those formats.

Thanks

P.T. is the work of Kojima Productions and is owned by Konami. This project is not affiliated with, endorsed by or connected to either of them. It contains none of their assets and does nothing without your own copy of the game.

The shadPS4 emulator was my reference for how the original behaves on the PS4 and for checking the port's frames against it. Thanks to its developers.

The port is built on SDL3, Vulkan (volk, VMA), glm, Dear ImGui, stb, Lua 5.1, libogg and libvorbis, whisper.cpp with OpenAI's Whisper model and the Silero VAD for the voice part, Real-ESRGAN with ncnn for the enhanced textures, AMD FidelityFX, NVIDIA DLSS and Intel XeSS for the upscalers, the Khronos OpenXR loader for VR, HarfBuzz on Linux and the Noto fonts for the added languages, and LibOrbisPkg in the installer. Their notices ship in licenses/ next to the executable.

License

The port's own code is under the MIT license (see LICENSE). The third-party pieces listed above keep their own licenses.

pt-pc (LoreanXavier/pt-pc)

Searching Database…

这是什么?小岛工作室 2014 年 PS4 预告作《P.T.》的原生 PC 移植版。它不是模拟器:游戏逻辑用 C++ 重建,渲染器用 Vulkan 编写,而所有资源(关卡、模型、纹理、音效、脚本、过场动画)都在运行时从你自己的 PS4 游戏副本中读取。
怎么安装和运行它?从 Releases 页面下载安装程序(Windows 上是 P.T.PC.Port.Setup.exe,Linux 上是 setup 二进制文件),将其指向你的转储文件夹或 fake PKG 以及一个目标文件夹;它会把所需的三个游戏档案复制到移植版旁边。如果你想自己放置游戏文件,也有便携版 zip 可用。
要玩它我到底需要什么?你自己的一份《P.T.》(以美版 CUSA01127 构建和测试,可以是转储文件夹或 fake PKG)、Windows 10/11 x64 或带 glibc 2.38+ 的 Linux x86-64,以及支持 Vulkan 1.3 的显卡/驱动。有一段语音识别环节会用到麦克风,但如果没有麦克风,你可以改用按键绑定。
可以用商店购买的《P.T.》数字版吗?不行。商店 PKG 是针对拥有它的主机加密的,本项目没有任何东西能解密它;你需要改用转储版或 fake PKG。作者亲自验证过的只有美版(CUSA01127),欧版和日版也能安装,但带有注意事项。
它能在 Steam Deck 上运行吗?可以,它在 SteamOS 上可直接运行。你在桌面模式下安装,然后把二进制文件添加为非 Steam 游戏。
超分辨率功能需要特定显卡吗?DLSS 需要 GeForce RTX 显卡,DLSS Frame Generation 需要 RTX 40 系或更新;FSR 和 XeSS 可在任何较新的 GPU 上运行,FSR 3 帧生成需要 Radeon RX 5000 起步。光线追踪阴影、环境光遮蔽和反射还需要支持 Vulkan ray queries 的 GPU。
我可以给游戏做 mod 吗?可以。可执行文件旁边的 mods 文件夹可以替换游戏文件、纹理和音效,还能运行响应游戏事件的 Lua 脚本,文档见 docs/modding.md 和 docs/luaapi.md。
它支持 VR 吗?有通过 OpenXR 提供的实验性 VR 支持,但作者说明由于自己没有头显,这只在模拟运行时上测试过。
相比原版 PS4 体验,这个移植版额外增加了哪些功能?照片模式、自由视角、完成后可跳转到任意房屋循环的循环浏览器、解锁内容博物馆、Game+、带 LiveSplit 集成的速通计时器、实验性第三人称视角、超分辨率(DLSS/FSR/XeSS)和帧生成,外加新增的几种字幕语言。
作者为什么要做这个?因为 Konami 已将《P.T.》从 PS Store 下架,作者希望它不只是存在于那些恰好还装着它的主机上,而是能在别处继续存在下去。
Size
26.8 MB
Stars
2K
Age
12d
Commits · 90 Days