P.T. for Android (Dual Screen)
P.T.
About the project
P.T. es un videojuego en primera persona de tipo videojuego de terror desarrollado por el estudio nipón Kojima Productions y distribuido por Konami bajo la dirección del creador de videojuegos Hideo Kojima y del cineasta mexicano, ganador del Oscar, Guillermo del Toro. Salió a la venta el 12 de agosto de 2014 para PlayStation 4 en exclusividad.
Official project information
P.T. for Android (experimental)
An unofficial Android build of LoreanXavier's native PC port of P.T., for Snapdragon handhelds and phones. It runs the same native code as the PC port, not an emulator, and reads everything from your own copy of the game.
All of the real work is LoreanXavier's. They rebuilt P.T. in C++ and wrote the Vulkan renderer, and gave their blessing to this Android build. This fork only adds the Android layer: the APK, the Snapdragon driver setup, the setup from your .pkg, touch controls, the microphone, the AYN Thor's second screen and handheld tuning. If you enjoy this, please support the original project (Patreon). Their original README is in README_UPSTREAM.md.
This is an experimental build, made on an AYN Thor Max and tested by players on phones and tablets from Xiaomi, Motorola and others. Expect rough edges. It contains no game files, and nothing here helps you get them.
Will it run on my device?
| GPU | Qualcomm Adreno 6xx, 7xx or 8xx (Snapdragon). The right graphics driver is picked for you: tested on the Adreno 740 (Snapdragon 8 Gen 2, AYN Thor), 710 (7s Gen 2) and 810 (7s Gen 4). |
| Android | 10 or newer, 64-bit |
| Not supported | Mali, Immortalis, Samsung Xclipse, PowerVR, Google Tensor, MediaTek. The game needs a texture format those GPUs lack. |
| Controller | A built-in or connected gamepad, or the on-screen touch controls. |
On the AYN Thor it runs at about 60 fps in the start room and roughly 25 to 35 fps in the heavier later loops. A mid-range phone (Adreno 710) gets around 20 to 25 fps at 50% resolution.
What you need
Your own copy of P.T. (CUSA01127, the US release; the European and Japanese releases should work too) as one of:
- a fake PKG (
.pkg) made from your dump. The app takes the game files out of it by itself. If it came zipped (.rar,.zip,.7z), unpack it first with a file manager such as ZArchiver. - the three files from a dump folder:
chunk1.psarc,texture.qarandpathid_list_ps4.bin.
A store (PlayStation Store) PKG will not work: it is encrypted for the console that owns it, and this app does not touch that.
Installing
- Download the latest
PT-Android-*.apkfrom Releases and install it. - Start P.T. and choose Choose your P.T. .pkg, then pick your package in Android's file picker. Setting up takes a
minute or two and needs about 1.4 GB free. Afterwards you can let the app delete the
.pkgto get that space back. - That's it: from then on the game starts straight away.
Updating: from v0.2.1 on, a new APK installs right over the old one and keeps your game files and saves. Coming from v0.2.0 or older, uninstall that first (one time only) and pick your .pkg again.
If you have the three extracted files instead, choose I already have the extracted files, copy them into your Download
folder (loose or in a CUSA01127 folder), and allow All files access when asked.
Controls
Touch controls: without a controller, on-screen controls show up: drag on the left half to walk, on the right half to look, and the buttons for Use, Zoom, Back, Pause and Name (the voice part). They also appear whenever you touch the screen, and fade out after a few seconds without a touch or as soon as a controller is used. To turn them off for good: Display > Touch controls > Off.
Controller: The Xbox-layout controls of the PS4 original. Near the end the game asks you to say a name: say it out loud and the game hears it through the microphone, or hold both triggers instead.
The app asks for the microphone once, before the first start. The speech recognizer (whisper.cpp) runs on the device and only listens in that last part; nothing is recorded or sent anywhere, and the app has no internet permission. You can test the microphone in the game's settings.
When something goes wrong
The app writes its log to Download/PT-logs: pt.log for the latest run, pt-previous.log for the one before, plus
pt-crash.txt after a crash. Attach those when you report
a problem, with your device and chip. From a computer, adb pull /storage/emulated/0/Download/PT-logs grabs them.
These settings help when the game runs slowly or looks wrong (Settings > Display):
- Resolution: Auto picks a value for your GPU; 50% is the fastest. Settings > Graphics > Image clarity sharpens a lower resolution at almost no cost.
- Graphics driver: the bundled Mesa Turnip (default), your device's own driver, or one you imported, from the next start. If the chosen one cannot run your GPU, the game falls back to the others by itself.
- Import a driver: pick an AdrenoTools driver
.zip(for example a Turnip build from K11MCH1's releases) with the file picker.
If no driver works at all, the next start shows a screen to try again, import a driver or pick one before the game loads.
(The older render_scale.txt and driver.txt files in Download/PT-logs still work, but only if the app can read them:
Android often hides files made by a file manager from other apps.)
Dual-screen handhelds
On an AYN Thor (or a similar handheld with a second screen) the bottom screen shows the hallway's clock, frozen at 23:59 (or 00:00 when the hallway's turns), with the loop you're on, and the radio and other subtitle lines as they play (the whole broadcast, even the lines the main screen skips on repeat loops, with static marking where the voice drops out). Change it in the game's settings under Display > Second screen: clock and subtitles, clock only, dim clock, or off.
Known issues
- The speech recognizer is new on Android: if it doesn't hear you, hold both triggers.
- The PC extras that need a desktop (upscalers, ray tracing, VR, enhanced textures, loop previews) are off.
Maintaining
How releases, the signing key, logs and the known fixes work: docs/MAINTAINING.md.
Building
Every push to the android-port branch builds the APK on GitHub Actions (.github/workflows/android.yml). Locally:
tools/android/build_native.sh with ANDROID_NDK_HOME set, then ./gradlew assembleRelease in android/. More detail
in docs/android.md.
Credits
- P.T. PC port by LoreanXavier: the game itself, as native C++ and Vulkan.
- Mesa Turnip, the open-source Adreno Vulkan driver, in the KIMCHI AdrenoTools build.
- Turnip for Adreno 710/720/722 by Vauzi-17 (Mesa, MIT; source and patch in that repository), used automatically on those GPUs.
- libadrenotools by bylaws, which loads that driver in an app.
- SDL3 for the Android activity, input and audio.
- whisper.cpp (MIT) with OpenAI's Whisper base.en model (MIT) and the Silero VAD (MIT), which hear the name at the end.
- Special Elite by Astigmatic (Apache-2.0), the typewriter face of the icon and the second screen.
- LibertyRecompAndroid, whose GTA IV port showed the way for Turnip on Android handhelds.
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, or to LoreanXavier. The port's own code is under the MIT license (see LICENSE).