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.
Setting this byte to 1 during gameplay allows for Unlocked FPS!
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.
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
Going to 0x647631 gives us what we need.
We can add our screen tear byte and set it to 1. But where?
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.
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)
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.
And from Github.com for PlayStation 4: The Last of Us Patches
Improved Loading
Infected's Severed Head Crash Bug Fix (Illusion0001's Blog Article with thanks to ZEROx for improving his initial patch)
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)
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)
Cheers to @dlxmax for the heads-up on this PS4Scene news earlier today, and @jwooh for the pre-patched PS4 PKG mirror above!
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.
Setting this byte to 1 during gameplay allows for Unlocked FPS!
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.
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
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
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
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
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)
- t1r-screentear-shipping.7z (7.0 MB)
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.
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
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
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
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