Join Us and become a Member for a Verified Badge to access private areas with the latest PS4 PKGs.
Status
Not open for further replies.
Following the Dishonored 60 FPS Mod PS4 PKG, Deadpool 60 FPS Mod PS4 PKG, Bloodborne PS4 60 FPS Patch Demo and PS5 vs PS4 Pro 60 FPS Upgrade Comparison today Illusion0001 shared a The Last of Us Remastered Improved PS4 Load Times Patch alongside a demonstration video below from his YouTube Channel. ⚡

Here's further TLOU Remastered PS4 patch details for those interested by @illusion0001 from Illusion0001's Blog, to quote: Improved loading for The Last of Us Remastered

Long loading screens are things of the past.

TL;DR - if you are not interested in an in-depth overview of how the patch was made, scroll down to the Patch section for a download link.

Curiosity

It’s been a while since The Last of Us Remastered was released for the PlayStation 4 since then I have been wondering why is the loading so slow when using the 30FPS mode. So I decided to investigate.

Intro

Normally on Naughty Dog Titles, The developers used adaptive sync and allows the framerate to go completely unlocked and to stream assets faster.

However this is absent from this specific release. Finding what causes loading to go fast.

Finding out where this adaptive sync or “Allow Screen Tear” as it’s named in the developer menu came easy.

The Uncharted Collection developed by Bluepoint Games used “Allow Screen Tear” during it’s load screen so searching for Byte 0 and 1 got me to the address I needed.
The Last of Us Remastered Improved PS4 Load Times Patch by Illusion0001.png

Setting this byte to 1 during gameplay allows for Unlocked FPS!
The Last of Us Remastered Improved PS4 Load Times Patch by Illusion0001 2.png

Sweet. During the loading screen another option gets disabled. It’s called Main Draw.

Main Draw draws 3D scene. When Disabled it gives us a black screen. This is used during load screen to reduce rendering load.
The Last of Us Remastered Improved PS4 Load Times Patch by Illusion0001 3.png

300+ FPS! Not so exciting huh.

Making it tick.

Using Ghidra, I was able to find out where this main draw byte is disabled during load screen
The Last of Us Remastered Improved PS4 Load Times Patch by Illusion0001 4.png

Going to 0x647631 gives us what we need.
Code:
00647629 41 c6 87        MOV        byte ptr [R15 + 0x1d8],0x1
                 d8 01 00
                 00 01
        00647631 c6 80 df        MOV        byte ptr [RAX + 0x6df]=>DAT_0181ae4f,0x0
                 06 00 00 00
We can add our screen tear byte and set it to 1. But where?
Code:
006474eb 0f 8f 47        JG         LAB_00647638
                 01 00 00
~~~
        0064760f 74 27           JZ         LAB_00647638
~~~
        00647631 c6 80 df        MOV        byte ptr [RAX + 0x6df]=>DAT_0181ae4f,0x0
                 06 00 00 00
                             LAB_00647638
        00647638 44 89 f0        MOV        EAX,R14D
        0064763b 48 83 c4 08     ADD        RSP,0x8
        0064763f 5b              POP        RBX
        00647640 41 5e           POP        R14
        00647642 41 5f           POP        R15
        00647644 5d              POP        RBP
        00647645 c3              RET
We can add our code to 0x647638 and move the related instructions few bytes forward as well as changing jump address to our new location.
Code:
006474eb 0f 8f 4e        JG         LAB_0064763f
                 01 00 00
~~~
        0064760f 74 2e           JZ         LAB_0064763f
~~~
        00647631 c6 80 df        MOV        byte ptr [RAX + 0x6df]=>DAT_0181ae4f,0x0
                 06 00 00 00
        00647638 c6 80 30        MOV        byte ptr [RAX + 0x30],=>DAT_0181a7a0,0x1
                 00 00 00 01
                             LAB_0064763f
        0064763f 44 89 f0        MOV        EAX,R14D
        00647642 48 83 c4 08     ADD        RSP,0x8
        00647646 5b              POP        RBX
        00647647 41 5e           POP        R14
        00647649 41 5f           POP        R15
        0064764b 5d              POP        RBP
        0064764c c3              RET
Done! Let's test this change in game. The following video showcases this change as well as a timer on screen.

PS4 The Last of Us Remastered 1.10 - Improved Loading Times

Improved loading times by allowing screen to tear during load screen.

Normally other ND games would use adaptive sync during load screen but is absent from PS4 version. allowing it to use adaptive sync results in improved loading times by streaming assets faster.

If any ND devs is watching. any idea behind this change?

Patch + writeup: Illusion0001's Blog

Please do not add me for support or mod requests.
Discord: illusion# 3185

Steam: Illusion0001


Download

To install the patch, place eboot.bin file into your patch folder (CUSA00557-patch in my case) build and install the patch onto the console. (Only for Patch 1.10)
Already have your own executable? You can apply the patch yourself. Opening eboot.bin with a hex editor and do a search and replace.
Code:
from

0F 8F 47 01 00 00 41 C6

to

0F 8F 4E 01 00 00 41 C6
~~~
from

74 27 48 8D 3D 48 24

to

74 2E 48 8D 3D 48 24
~~~
from

C6 80 DF 06 00 00 00 44 89 F0 48 83 C4 08 5B 41 5E 41 5F 5D C3 90 90 90 90 90 90 90

to

C6 80 DF 06 00 00 00 C6 80 30 00 00 00 01 44 89 F0 48 83 C4 08 5B 41 5E 41 5F 5D C3

Download: LOUQLP.rar (352.06 MB - EP9000-CUSA00557_00-THELASTOFUS00000-A0110-V0100-quick.load.patch.pkg) / The.Last.of.Us.Remastered.110+fast.load-CUSA00552.pkg (352.06 MB)

From @dlxmax: It's worth noting that the eboot.bin hosted on that blog also enables the unsightly debug text on screen. If you search for 75 3A 84 C0 75 36 and replace it with 75 3A 84 C0 74 36 then it turns it off in that pre-patched file. (y)

And from Github.com for PlayStation 4: The Last of Us Patches

Improved Loading

Code:
1.00

from

C6 80 D5 06 00 00 00

to

E8 DB E3 B2 FF 90 90

from

BE A0 A0 00 FF B0 07 E8 CC 90 F9 FF 4C 8D A4

to

C6 80 D5 06 00 00 00 C6 80 30 00 00 00 01 C3

####

1.10

from

0F 8F 47 01 00 00 41 C6

to

0F 8F 4E 01 00 00 41 C6
~~~
from

74 27 48 8D 3D 48 24

to

74 2E 48 8D 3D 48 24
~~~
from

C6 80 DF 06 00 00 00 44 89 F0 48 83 C4 08 5B 41 5E 41 5F 5D C3 90 90 90 90 90 90 90

to

C6 80 DF 06 00 00 00 C6 80 30 00 00 00 01 44 89 F0 48 83 C4 08 5B 41 5E 41 5F 5D C3
Infected's Severed Head Crash Bug Fix (Illusion0001's Blog Article with thanks to ZEROx for improving his initial patch)
Code:
1.00

48 8B 43 40 48 89 85 D0 F3 FF FF 4C 89 EF

to

E8 10 46 50 00 90 90 90 90 90 90 4C 89 EF

~~~

89 4C 24 34 C5 FA 2A C1 C5 FA 11 44 24 68 C5 FA 2A C8 C5 DA 5A E4 48 8D 15 70 AB 6E 00

to

48 89 85 D0 F3 FF FF 48 83 FB 00 0F 84 04 00 00 00 48 8B 43 40 C3 48 8D 15 70 AB 6E 00

####

1.10

48 8B 43 40 48 89 85 E0 F3 FF FF

to

E8 D0 53 56 00 90 90 90 90 90 90

~~~

BE A0 A0 00 FF 4C 89 EF C5 E2 5E DE 8B 48 3C 44 8B 70 48 48 8D 05

to

48 89 85 E0 F3 FF FF 48 83 FB 00 0F 84 04 00 00 00 48 8B 43 40 C3
PS4 The Last of Us Remastered Head Crash Bug Fix
Disable Camera Shake (Illusion0001's Blog Article with thanks to ZEROx for porting to Uncharted 3 Game of The Year Edition v1.10)
Code:
1.10

Find

C6 83 EC 06 00 00 01 C6 83 EA 06 00 00 00

Replace

C6 83 EC 06 00 00 01 C6 05 1C 8A 51 01 01
UC3 TLOU Camera Shake Comparison
Improved Cheat Codes (Illusion0001's Blog Article with thanks to ZEROx for help comparing / porting code to the PS3 version and to hejran7 for help finding addresses in the PS4 version)
Code:
PS4 1.10

qmenu

E8 B5 A8 F9 FF BF A0 00 00 00 49 89 C7 E8 D8 1D C1 00 48 89 C3 48 8D 35 1C 36 02 01 31 C9 45 31 C0 4C 89 FA 48 89 DF E8 6E DB 9B 00 4C 89 F7 48 89 DE E8 63 EA 9B 00 BF A0 00 00 00

90 90 90 90 90 BF A0 00 00 00 E8 DB 1D C1 00 48 89 C3 48 8D 35 60 62 02 01 48 8D 15 D2 5A 4B 01 48 89 DF E8 E2 A5 9B 00 4C 89 F7 48 8B F3 E8 67 EA 9B 00 90 90 90 90 BF A0 00 00 00

flashlight

C4 C1 7A 11 95 D4 07 00 00 41 80

C4 81 7A 11 8D D4 07 00 00 41 80

call1

66 45 89 B4 5F F4 00 00 00 44 29

E8 59 8A B9 00 90 90 90 90 44 29

call2

47 F4 00 00 00 44 89 CE 29 D6 66 0F

47 F4 00 00 00 E8 1B 86 B9 00 66 0F

subr1 and 2

55 48 89 E5 41 57 41 56 41 55 41 54 53 48 83 EC 18 48 8D 05 88 DD B7 00 41 BD C8 00 00 00 48 89 F1 48 89 FB BE 00 20 F0 FF 48 89 CF 48 89 4D D0 8B 50 3C 44 03 68 40 B0 02 83 C2 28 C4 E1 FA 2A C2 48 89 55 C8 48 8D 15 0C EB 56 00 C4 C1 FA 2A CD E8 CA C2 F8 FF 41 BF 01 00 00 00 45 31 F6 45 31 E4 66 66 66 66 66 2E 0F 1F 84 00 00 00 00 00 4A 8B 84 F3 C8 29 00 00 89 C1 83 E1 01 48 85 C0

80 3D A1 32 90 00 00 74 0D 66 41 C7 84 5F F4 00 00 00 6F 09 EB 09 66 45 89 B4 5F F4 00 00 00 C3 F1 48 89 FB BE 00 20 F0 FF 48 89 CF 48 89 4D D0 8B 50 3C 44 03 68 40 B0 02 83 C2 28 C4 E1 FA 2A C2 48 89 55 C8 48 8D 15 0C EB 56 00 C4 C1 FA 2A CD E8 CA C2 F8 FF 41 BF 01 00 00 00 45 31 F6 45 31 E4 66 66 66 66 66 2E 0F 1F 84 00 00 00 00 00 44 89 CE 80 3D 2E 32 90 00 00 75 02 29 D6 C3 C0

call3 (tools pickup 5)

FF 84 BB 48 64 01 00 8B 5D 88

67 67 E8 19 FD FF FF 8B 5D 88

subr3

E8 70 DB 01 01 5D C3 90 90 90 90 90 90 90 90 90 90 90 90 90 90

E8 70 DB 01 01 5D C3 C7 84 BB 48 64 01 00 05 00 00 00 C3 90 90

Text

63 3A 2F 70 65 72 66 6F 72 63 65 2F 64 69 73 63 62 6F 74 30 32 2F 74 31 70 73 34 66 69 6E 61 6C 2D 31 2E 31 30 2F 74 31 70 73 34 2F 73 72 63 2F 67 61 6D 65 2F 67 61 6D 65 2D 69 6E 76 65 6E 74 6F 72 79 2E 63 70 70 00 49 6E 69 74

49 6E 66 69 6E 69 74 65 20 45 76 65 72 79 74 68 69 6E 67 20 28 41 6D 6D 6F 2C 20 49 74 65 6D 73 2C 20 53 6B 69 6C 6C 73 2C 20 50 61 72 74 73 29 00 61 6D 65 2F 67 61 6D 65 2D 69 6E 76 65 6E 74 6F 72 79 2E 63 70 70 00 49 6E 69 74
Cheers to @dlxmax for the heads-up on this PS4Scene news earlier today, and @jwooh for the pre-patched PS4 PKG mirror above! 🍻
The Last of Us Remastered Improved PS4 Load Times Patch by Illusion0001.jpg
 

Comments

@Thien Tran In the read me it says.
Code:
Place into TitleID-patch (CUSA0055X-patch) 1.10 folder and build fpkg as patch and install on console.
Not sure if a simple hex edit is needed but give it a try. I would backup your eboot.bin just in case it.
 
Status
Not open for further replies.
Back
Top