Please note that you are required to have a exploited PlayStation 4 console to run the patches mentioned in this article.

Cursitory

Would it be possible to run P.T. The scariest game of the genaration on the PS4?

Frame rate unlocking may not be the only piece of the puzzle. Resolution comes into play and perhaps other graphical settings as well because Metal Gear Solid V: Ground Zeros can render a huge open level at 60FPS at 1080p but P.T. can’t maintain a stable framerate rendering just a hallway at 1080p.

Framerate Limit Research

From my experince looking at other games on the PS3 and Xbox 360, frame rate limit is usually set by a interval setting. For example 1 for 60Hz and 2 for 30Hz. I’ll refer to it as vsync flip rate from now on.

Let’s do a search for function fliprate within the P.T. executable.

**************************************************************
*                          FUNCTION                          *
**************************************************************
FUN_0103f910                                    XREF[3]:     FUN_00d8a670:00d8a718(c), 
                                                               019b7a8c(*), 01a29438  
0103f910 55              PUSH       RBP
0103f911 48 89 e5        MOV        RBP,RSP
0103f914 41 56           PUSH       R14
0103f916 53              PUSH       RBX
0103f917 41 89 f6        MOV        R14D,param_2 // move param 2 into register 14
---
0103f95b 44 89 f6        MOV        param_2,R14D
0103f95e e8 2d 0a        CALL       sceVideoOutSetFlipRate // call flip rate function
         37 00

You may have already noticed that there is a couple of refernces to this function (XREF)

FUN_00d8a670:00d8a718(c) this call looks interesting, let’s see what’s going on here.

00d8a713 be 01 00        MOV        param_2,0x1 // move 1 into param 2
         00 00
00d8a718 e8 f3 51        CALL       FUN_0103f910 // calls function we saw earlier with param 2 loaded with 1
         2b 00

Pretty self explanatory here. Just moves 1 into param 2 and then 2 gets loaded in R14 inside of the function we saw earlier. Could this be the framerate limit we have been looking for?

Footage provided by Patreon Supporter: smasher248.

Turns out it is! Although performance is too unstable and bounces around from 30 to 60FPS wildly. It may also be using double buffered vsync as well.

Resolution Hacking

Resolution values are also stored in 4 bytes.

006381be 48 b8 80        MOV        RAX,0x43800000780
         07 00 00 
         38 04 00 00

Simply changing this to 1280x720 will allow the game to boot but has some visual issues.

Native 1080p

Upscaled 720p

If anyone would like to help out and Improve on this inital release of the resolution patch, Pull Requests are very much welcome! Or we can just run it on the PS5 in the future with no compermises to the resolution.

Results

Patch

Patch Codes

Patreon Supporters

Thanks to the following folks who supported me on Patreon.

You guys are awesome!

  • smasher248

  • ac2pic