P.T. PC Port 1.0.4
Everything since 1.0.3. Run the setup over your existing installation to update: the game files are replaced, your
game archives, settings, saves and mods stay. From now on an update only writes the files that changed, and installs
made by the setup can update from inside the game (see Updates below).
DirectX 12
- Rendering API: the game now runs on DirectX 12 as well as Vulkan. On Windows the first start asks which one to use;
you can change it later in PC settings > Display > Rendering API (applies at the next start). DirectX 12 is only
offered where it can run, and if a DirectX 12 start fails the game goes back to Vulkan for the next start. - Everything runs on both: ray tracing and path tracing (DXR 1.1), HDR, VR, DLSS, FSR 3.1 and XeSS. On the comparison
shots the DirectX 12 picture matches Vulkan's. - DLSS, XeSS and FSR 3 frame generation all run on DirectX 12 (below). XeSS Frame Generation runs natively there, and the
optional DLSS 5 route and the frame generation unlock for RTX 20 and 30 need it. - Vulkan stays, and it is still the only API on Linux and macOS.
Path tracing and ray tracing
- Path traced: a new top ray quality. Every bit of light on screen comes from traced paths: the direct light of every
lamp and the flashlight, several bounces of indirect light, traced glass, the bathroom mirror and the floor's coat. No baked
light or fake fill is left in this mode. Original and the other ray qualities are unchanged. - DLSS Ray Reconstruction: with Path traced and DLSS on an NVIDIA RTX GPU, Ray Reconstruction denoises and upscales the
path traced light in one step, so fine shadows and reflections stay sharper. It is on by default; the Ray
Reconstruction row under Ray quality switches back to the port's own denoiser. It costs more: on an RTX 3090 at 1440p
with DLSS Quality about 17 ms a frame against 10 ms with the port's denoiser. With FSR, XeSS, no upscaler or other GPUs,
Path traced keeps its own denoiser. - The Ultra preset is now path traced on GPUs that trace rays, with Ray Reconstruction where DLSS offers it.
- Ray quality, four choices: Balanced, High, Ultra and Path traced. Ultra is what was called Full: traced soft shadows
from every light, one bounce of light and glossy reflections on walls and props. A pt.ini with the earlier Ultra or Full gets
the new Ultra. The earlier Ultra is still there asray_quality = 5in pt.ini, for comparisons. - Under Path traced the shadow, contact shadow, ambient occlusion and reflection rows are greyed with a note, since path
tracing includes them. Their values are kept. - Fixes for the traced modes:
- Ultra: no more single-frame white dots on small props (the f050 telephone table clutter, the cans and paper under the
f005 plant). - Ultra: leaves, the banana peel and the street tree no longer flicker, shadows no longer pop when you turn, and the wall
next to the f040 clock dresser no longer brightens on turns. - Ultra: the lit end wall and window no longer smear into a long streak down the floor's reflection.
- Path traced: the dark streaks on the stairwell walls are gone, Lisa's hair no longer shimmers, picture glass is calmer,
and the floor reflects as a near mirror as in the original. - Path traced window glass: the multicoloured blotches in the f005 window are gone; the glass shows a proper mirror
reflection, also over the night outside. - Floor reflections: walls, doors and windows behind a lamp's glow or behind glass no longer go missing when they are off
screen. (#71) - Soft shadows: a prop next to a wall no longer draws a sharp outline over its soft shadow. (#71)
- Ray traced shadows and ambient occlusion could fault the GPU on some cards (RTX 5070 report) when a ray came out
invalid; such rays are skipped now.
- Ultra: no more single-frame white dots on small props (the f050 telephone table clutter, the cans and paper under the
Frame generation
- DLSS Frame Generation on DirectX 12, through Streamline, beside XeSS and FSR 3 frame generation. The UI and the film
grain are laid over every shown frame instead of being interpolated. Tested on an RTX 3090 with the community unlock (two
frames shown for each rendered one); an RTX 40 or 50 could not be tested here. - Intel XeSS Frame Generation (new) with Intel's low latency mode: native on DirectX 12, and on Vulkan through a DirectX 12
bridge (experimental). - FSR 3 frame generation on DirectX 12.
- Film grain and UI go over the generated frames instead of being interpolated with FSR 3 and XeSS frame generation, so
the grain no longer smears and pulses, and the generators get depth and motion where the lens distortion actually shows
the picture (third person turns no longer drag the body's motion beside the body). - HDR with DLSS Frame Generation (Vulkan) uses HDR10, which DLSS-G supports, and falls back to SDR without it.
- Crash fixes: FSR 3 frame generation lost the graphics device after a resolution or window mode change (seen in 7
player crash reports), and could hang on a display mode change. Both are fixed. - The frame limit's description now explains that it caps shown frames with DLSS Frame Generation and rendered frames
otherwise.
Optional: DLSS 5 and frame generation on RTX 20 and 30
These are community projects, not NVIDIA's and not part of the game. Nothing is downloaded unless you press the button
and say yes, and Remove takes out exactly what was installed. NVIDIA does not support either of them; use them at your
own risk. Both need DirectX 12 as the Rendering API.
- DLSS 5 Neural Rendering: a neural network redraws the finished picture (materials, skin, light) before the UI and the
film grain. In PC settings > Upscaling, the DLSS 5 row offers Unlock DLSS 5 on an RTX 20, 30 or 40 and Download
DLSS 5 on an RTX 50. Either one downloads the community tool
DLSS5-Autopilot from GitHub (pinned and checked by SHA-256) and installs
it between two game sessions: a modified runtime on RTX 20/30/40, NVIDIA's own runtime on RTX 50. It runs through the
RenoDX DLSS 5 add-on and the port's own build of ReShade, with no overlay, no hotkeys and no update check. Then pick
Default, Natural or Cinematic, set the strength, and switch it on and off in play. It needs DLSS as the upscaler.- The cost on RTX 20 and 30 is very high. On an RTX 3090 it takes about 45 ms a frame at 1440p: around 150 fps without
it, about 19 fps with it. At 720p it is about 12 ms (260 fps down to about 62). It is something to look at, not a way to
play on these cards. Only the RTX 3090 was tested; RTX 40 and RTX 50 were not. - If a run with DLSS 5 crashes or loses the graphics device, the next start keeps it off and says why, so it can never
loop on a crash. Reinstall gets a newer community build.
- The cost on RTX 20 and 30 is very high. On an RTX 3090 it takes about 45 ms a frame at 1440p: around 150 fps without
- DLSS Frame Generation on RTX 20 and 30: Unlock DLSS Frame Generation in PC settings > Upscaling downloads the
community package dlssg_for_sm86 (about 80 MB, pinned and checked by SHA-256)
and installs it into the game folder at the next start. Afterwards the Frame generation row works as on an RTX 40.- On the RTX 3090 tested here it shows two frames for each rendered one on DirectX 12; on Vulkan it does not work, so the
row stays greyed there. Frame generation takes some GPU time of its own, so the rendered frame rate drops a little before
the generated frames are added, and it does not make the game respond faster. - The same crash guard as DLSS 5 applies. Without internet the button says so and becomes Retry; an installed unlock keeps
working offline. The two unlocks never share a file, and each Remove only deletes its own.
- On the RTX 3090 tested here it shows two frames for each rendered one on DirectX 12; on Vulkan it does not work, so the
HDR
- Real HDR (#75): lamps, the flashlight and their glow now go past paper white, up to your display's peak, with the
picture's own colour and grading. Two new rows under HDR: HDR paper white (80 to 500 nits, default 200: the picture's
white and the menus) and HDR peak brightness (400 to 4000 nits, Auto by default: what the display reports, 1000 if it
reports nothing). The peak is sent to the display as HDR metadata. Everything below paper white, the UI and the SDR output
are as before. pt.ini:hdr_paper_whiteandhdr_peakunder[display]. - HDR also works on DirectX 12.
Updates and installing
- In-game updates: installs made by the setup get Update the game on the PC settings page when a new version is out.
The game closes, pt-updater downloads the update from GitHub only, checks it against a signed manifest, applies it and
starts the game again. It rolls back if anything fails, and an update cut off by a crash or power loss is undone at the
next start. - Only what changed: the setup and the in-game updater compare every file with your install. Identical files are left
alone, changed and missing ones are written, and program files the new version no longer ships are removed (never your
own files or the DLSS 5 unlock's). The updater fetches only the changed files from the package, and the notice shows the
download size. After an update the install is the same as a new install. - First start without game files, on every package: the portable zips and the macOS app now show the same screen as the
setup: choose the PKG and the game extracts it with a progress window, or choose an already extracted folder. On macOS the
old folder dialog had no visible text, greyed every file and opened behind the game. - The setup's progress bar moves evenly instead of standing still and jumping.
- Setup updates now also add the PS4 title picture to installs that never got it, without picking the PKG again.
- The Linux in-game update always failed; fixed.
- Unicode and long folders: photos, Museum thumbnails, loop previews, Enhanced Textures, the setup and the updater work
in folders with Turkish, Cyrillic, Japanese or other non-ASCII names and in folders past the old 260 character limit. - Old settings and saves move: each file is copied and checked before the original is deleted, you are asked only once
across installs, and a second copy of the game started at the same time no longer shows a save error.
Settings menu
- Tabs: PC settings is one screen with a tab strip: Display, Upscaling, Graphics, Sound, Controls, Accessibility, Extras
(with Progress and Support) and Mods (when a mod is installed). L1/R1, Q/E, Tab/Shift+Tab or a click switch tabs, and the
menu remembers the last tab while it is open. Arabic runs the tabs right to left. - Dialogs with buttons: Reset progress, Lock the loop browser, Lock the museum, the DLSS 5 and frame generation unlocks,
Update the game, Send pt.log, Quit and the other questions open a dialog with Yes and No buttons, instead of a row that
turned into "Confirm". The ones that delete or lock something start on No. The restart notice's OK is a real button too. - Donate on Patreon at the bottom of every tab (P, the View/Share/Create/minus button or the touchpad, or a click) opens
patreon.com/loreanxavier in your browser. - Button prompts: PC settings > Controls > Button prompts: Automatic, PlayStation, Xbox, Nintendo or Steam, for
controllers that report themselves wrongly or if you prefer other glyphs. pt.ini:prompt_styleunder[input]. - Hint lines everywhere (settings pages, loop browser, Museum, photo panel) show the buttons of the device you are using,
and switch live. - Gamepad look sensitivity had no effect. It works now.
- Sensitivity values show exactly (1.25 showed as 1.2), thin letters no longer drop out at very low resolutions, and the PC
settings page no longer stays in the old language right after you change it. - Send pt.log has its own Support section, apart from Reset progress.
Accessibility
PC settings has a new Accessibility page. Its options are off by default and not in the original.
- Sound captions: short captions for the sounds you need to hear that have no subtitle: a baby laughing in the final
loop, the pulse that asks you to stand still, a ringing phone, Lisa's breath and steps, the baby crying in the fridge,
knocks, doors, a breaking window and more. Sounds with a place get a side word (left, right, behind you, ahead), and a
short rumble goes with the ones that have no vibration of their own. - Gyro: uses the motion sensor of a DualSense, DualShock 4 or Switch Pro controller. Camera adds the controller's
turning to the look; Flashlight aims the flashlight apart from the view and brings it back to the middle when the pad
rests or L3 is pressed. A sensitivity row scales it. Tested only with virtual controllers so far. - Field of view: Original (exactly today's picture), -10, +10, +20 or +30 degrees on the vertical angle. Zoom, cutscenes,
the peephole, photo mode, third person and VR keep their own view. What the game counts as seen (the HELLO letters, the X
mark, the bag's talk) still uses the original's view, so a wider picture is no advantage. - Skip the ending (not on the page): hold Esc or Options for 1.5 s during the ending cutscene. The finish still counts for Game+, the loop
browser and the Museum.
Museum
- Halls: Subliminal images, Fake crash screens, Radio broadcasts, Voices, Photo pieces, Cutscenes, Models, Music and
Unused content. - Names and hints: every exhibit has a proper name (the protagonist's model is Norman Reedus). A locked one shows "???"
and a hint of where it comes from, with loops named by the loop browser's numbers. Exhibits that only come by chance
(subliminal texts 5 to 10, the crash screens) or only from Game+ (radio voices 6 to 8) say so. Before, every locked exhibit
of a finished game said "finish the game once". (#74) - Counters: each hall shows found / total, and the halls page the whole Museum's share.
- Retroactive unlock: a save that has finished the game gets every exhibit a finished game is sure to have seen. Chance,
look, zoom, death, photo pieces and Game+ content still have to be found. - Music hall: ten tracks from the game's own sound banks, among them the red maze music, the ending, and three tracks the
original never plays (these open with the finish). Play, pause, seek, loop and a clickable progress bar. - Lisa's hidden animations in the Models hall, under the free camera: her walk to the bathroom door, her backward steps
at the window and her catch, with the same animation and timing as in the game. - Fake crash screens: the fake crash's bug pictures are exhibits, each opened when it has been on screen in play. The
fake crash picks one at random each time, so collecting them all takes several playthroughs, as on PS4. - Unused content: original recordings that the game never plays are there after the first finish. Their locks could
never be opened before. - Radio riddle 1 no longer unlocks when you look through the peephole (both recordings share one subtitle in the original
data).
Game+
- Game+ On/Off: after your first finish a Game+ row appears on the Extras page. Off plays every run as the original game;
your finishes and tier stay saved, and On continues from them. A change applies from the next loop. - Something in the hallway rings now and then from the second finish on. It is in the original's files, unused.
- The extra Game+ radio lines now play after the broadcast, and wait for you if you walked away from the radio.
- Game+ Lisa: her shoulder is one creature skin surface (no pale blocks or stretched patch), and the creature arm hangs
from her own shoulder at her reach, so her hand no longer comes through the f030 bathroom door she pulls shut.
Closer to the PS4
- Eye adaptation meters the light the way the PS4 does (a shifted log mean of a small 32x32 picture, not a plain average
of the full frame). The red maze's dark entrance and its pictures now get the PS4's exposure. - The corridor sconce's lens flare: its glass glows up close as on PS4 instead of fading within 2 m.
- Maze pictures: the ghost pictures on the maze walls are lit by the pulsing red halo lights as on PS4. Before they stayed
dark, which showed as black portraits in the red loop. - f050 flashlight reflection: the floor patch beside the ajar bathroom door no longer brightens and drops as the beam
moves between the door and the bathroom. - Wake-up camera: above 60 fps the get-up no longer turns in uneven steps.
- Lisa during the wake-up: her feet and her huge shadow no longer show at your side while you get up, and after quitting
and resuming she no longer slides across the floor. (#72, #78) - Top notices show once: a line that was on screen for 2 s and was taken away by a cutscene no longer comes back in the
loop. - Original preset: no port dithering, since the PS4 has none. Low, High and Ultra keep it, and the rings around the
ceiling lamp's glow are gone there. - Load and save icon is drawn over the film grain, as on PS4.
- Stairs (#76): no wooden floor creak on the stairs, and no step falls through to the wood sound between the treads.
- Lisa's footstep plays during the door cutscene in the f050 chase loops, and her breath comes at the PS4's time.
- Dust (#68): dust stays in the world when you turn instead of following the camera.
- Option screen photo piece: the clean picture shows white as on PS4, and closing the menu during the zoom keeps the
release. - Quick mouse clicks shorter than a frame now reach the game, so the pause menu photo piece takes a quick click like a
PS4 R3 tap. - Blood decals on f080 and f090 (and the unused monitor screen) take the PS4's material values.
- Fake crash on ultrawide (#73): the sides are filled with the bug picture's colour from its first frame (in 1.0.3 the fill
never reached the screen). - Street walk motion blur no longer dims the lights while you turn.
Fixes
- Ending road blood (#82): with Path traced, the street lamps' and the flashlight's reflections on the wet road, the puddles and the blood were dimmed where a reflection ray found nothing; they now keep their light as on PS4. The other presets already matched the PS4.
- Door freeze: on a first start after a reboot the game could freeze for up to 30 s after the start room's door while the
speech files loaded from a cold disk. The main thread no longer waits for it. - Ending on 4 GB GPUs: the ending ran out of video memory; unused hallway models are now freed, and an allocation that
fails lowers quality instead of crashing. - AMD: a crash from the effects' buffer growing during play is fixed.
- Washed out or posterized picture with black blotches: one invalid pixel could blow the exposure; such pixels are kept
out of the scene and the eye adaptation. - Loop browser: starting on the first hallway no longer walks you through the closed start room door, and the street
walk or ending picked from it no longer keeps f160's lens (rainbow patterns on the wet street). - Enhanced Textures (#71): they now also sharpen the surface relief and shine (normal and specular maps) and the hair and
stain maps, which stayed at their original size before, so the option was hard to see. With less than 6 GB of video memory
only the colour maps are enhanced, as before. The first start after the update makes the new maps in the background. - Failed texture and mesh allocations are handled instead of being used.
Performance and loading
- Faster boot: controllers and audio start off the main thread, so the window shows at once. One player's start had
waited 98 s in device setup before any window appeared. - Lighting: lights skip the pixels they cannot reach. The light pass is 16 to 22 % faster in the hallways and mazes and
1 to 6 % elsewhere, with an identical picture. - Stutters: loading a texture during play no longer waits for the GPU; most of the 20 to 140 ms hitches logged as
vfx: prepare tookare gone. - First-time hitches: effect pipelines are made behind the loading screen, the shader cache is saved during play (not
only at exit), and the game archives are read into the file cache at start, so the first floors no longer hitch after a
reboot. A "Preparing shaders" screen shows when the cache is cold. - Enhanced Textures are made about 5.5 times faster (1468 s to about 260 s on an RTX 3090) with the same result, the ones
of the stage you are in come first, they show as they are made, and generation pauses while you play. A screen with a skip
shows at start when new maps are needed.
Linux
- Native upscalers: DLSS Super Resolution, DLAA and Ray Reconstruction (NVIDIA RTX with the proprietary driver), and FSR
3.1 built from AMD's sources. Before, Linux players had upscalers only through Proton with the Windows build. XeSS and frame
generation stay greyed with the reason (Windows only). These were built and checked without a Linux GPU here, so reports
from Linux players are very welcome.
macOS
- The Intel Mac build failed on the macOS 15 SDK; fixed.
- The first start's game folder screen (see Updates and installing).
VR (experimental)
- World size (#66): the world takes its size from your headset: the protagonist's eye is placed at your own standing eye
height, so no setting is needed. World scale is now a size on top of that (100 % as measured). An olderworld_scale
value is not carried over. - Controls (#69): zoom is on both triggers, and on Quest/Touch also on both grips; hold it on photo pieces as with R3. The
left grip no longer opens PC settings over the pause menu: the pause menu is on the menu button only, and PC settings opens
from it with A. - Right eye (#69): the right eye drew the next frame's noise for ray traced soft shadows and ambient occlusion, so those
shimmered in one eye only. Both eyes now draw the same frame. - VR runs on DirectX 12 too. Path traced draws as Ultra in VR.
Sound
- Windows spatial sound: PC settings > Sound > Surround has a third value: the game's 7.1 mix goes through Windows Sonic,
Dolby Atmos or DTS:X, whichever you turned on in Windows. Without one it plays as before. - DualShock 4 speaker (#72): the controller speaker option now finds a DualShock 4 over USB, also behind DS4Windows. The
PS4 game itself plays nothing on the pad speaker, so it stays off by default.
Discord and credits
- Discord Rich Presence: your Discord profile shows the loop you are in (by the loop browser's name), your Game+ tier or
photo mode, and the time played. It only talks to the Discord app on your PC; turn it off withdiscord_presence = 0under
[network]in pt.ini. - The port's engine is now named Hallway Engine in the credits, the version line and the log.
Diagnostics
- pt.log's status line shows where each frame's time goes (game, rendering, waiting for the GPU, v-sync or frame
generation), the worst frame and GPU time per pass, and leaves out time the game was paused in the background. Frames over
50 ms log aframe spikeline. - pt.log records every boot phase, the ray tracing modes in use, and the graphics preset.
Checked against PS4, no change
- f160 progress (#80): quitting on f160 resumes on f120, on PS4 as well: the original saves nothing there.
- Silent ceiling lamp (#76): after a very short bathroom visit the lamp's swing sound stays muted in the following loops.
The original does the same. - Start room lens flare: the original has none there.
- Lisa in the garage after a restart (#72): the original shows her there too.
Known issues
- HDR's new range, DLSS 5 on RTX 40 and 50, DLSS Frame Generation on a real RTX 40 or 50, the Linux upscalers on a Linux PC
and the gyro on real controllers could not be checked here. Please report how they work for you. - The Quest right eye glitch could not be reproduced without a headset; the eye fix above is the only right-eye difference
found. If it is still there, please attach pt.log to #69.