(→Special Notes: Removed unnecessary anchors (accidentally pasted in Uncharted Debug Menu anchors when adding patches)) |
Illusion0001 (talk | contribs) |
||
(87 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
<!-- please read the wiki conventions page and documentation for templates before creating a new game page -->{{vginfobox | <!-- please read the wiki conventions page and documentation for templates before creating a new game page -->{{vginfobox | ||
|image = [[File:{{#setmainimage:TLOUcover.jpg}}|300px]] | |||
|developer = Naughty Dog | |developer = Naughty Dog | ||
|publisher = Sony Computer Entertainment | |publisher = Sony Computer Entertainment | ||
Line 6: | Line 7: | ||
|genre = Action, Adventure, Survival horror | |genre = Action, Adventure, Survival horror | ||
|modes = Single-player, Multiplayer <!-- Choose all relevant options: Single-player, Co-op, Multiplayer --> | |modes = Single-player, Multiplayer <!-- Choose all relevant options: Single-player, Co-op, Multiplayer --> | ||
|gameid = {{gameid|id=BCES01584, BCES01585, BCUS98174, NPEA00435|oid=BCAS20270 | |gameid = {{gameid|id=BCES01584, BCES01585, BCUS98174, BCJS37010, NPEA00435|oid=BCAS20270, NPJA00096, NPUA80960|ird=Yes}}<br>'''''Left Behind'''''<br>{{gameid|oid=NPEA00521, NPJA00129, NPUA81175, NPHA80279|ird=No}}<br>'''''Demo'''''<br>{{gameid|id=NPUA70257|ird=NA}} | ||
}} | }} | ||
Line 24: | Line 25: | ||
|preferred spu threads = <!-- Auto, Single digit between 1 to 6 (e.g. 3), Range between 1 to 6 (e.g. 1 - 3) --> | |preferred spu threads = <!-- Auto, Single digit between 1 to 6 (e.g. 3), Range between 1 to 6 (e.g. 1 - 3) --> | ||
|preferred spu threads notes = | |preferred spu threads notes = | ||
| | |thread scheduler = <!-- Operating System, RPCS3 Scheduler, RPCS3 Alternative Scheduler --> | ||
| | |thread scheduler notes = | ||
|lower spu thread priority = <!-- On, Off --> | |lower spu thread priority = <!-- On, Off --> | ||
|lower spu thread priority notes = | |lower spu thread priority notes = | ||
Line 39: | Line 40: | ||
|tsx instructions notes = | |tsx instructions notes = | ||
<!-- GPU configuration --> | <!-- GPU configuration --> | ||
|renderer = | |renderer = <!-- OpenGL, Vulkan, Disabled --> | ||
|renderer notes = | |renderer notes = | ||
|aspect ratio = <!-- 4:3, 16:9 --> | |aspect ratio = <!-- 4:3, 16:9 --> | ||
|aspect ratio notes = | |aspect ratio notes = | ||
Line 54: | Line 55: | ||
|resolution scale notes = Resolution scaling is only supported when the MLAA patch is enabled. | |resolution scale notes = Resolution scaling is only supported when the MLAA patch is enabled. | ||
|resolution scale threshold = 1x1 <!-- Value between 1 to 1024 in the format 16 x 16 --> | |resolution scale threshold = 1x1 <!-- Value between 1 to 1024 in the format 16 x 16 --> | ||
|resolution scale threshold notes = When using Resolution scaling above 100%, this must be set to 1x1 otherwise some effects like lens | |resolution scale threshold notes = When using Resolution scaling above 100%, this must be set to 1x1 otherwise some effects like lens flares will be missing. | ||
|shader mode = <!-- Legacy (singlethreaded), Async (multithreaded), Async with Shader Interpreter, Shader Interpreter only --> | |shader mode = <!-- Legacy (singlethreaded), Async (multithreaded), Async with Shader Interpreter, Shader Interpreter only --> | ||
|shader mode notes = | |shader mode notes = | ||
|write color buffers = On <!-- On, Off --> | |write color buffers = On <!-- On, Off --> | ||
|write color buffers notes = Fixes | |write color buffers notes = Only needed if you're not using MLAA patch. Fixes Green Rain and particle issues. Slightly reduces performance. | ||
|strict rendering mode = <!-- On, Off --> | |strict rendering mode = <!-- On, Off --> | ||
|strict rendering mode notes = | |strict rendering mode notes = | ||
Line 65: | Line 66: | ||
|stretch to display area = <!-- On, Off --> | |stretch to display area = <!-- On, Off --> | ||
|stretch to display area notes = | |stretch to display area notes = | ||
|enable 3d = <!-- On, Off --> | |||
|enable 3d notes = | |||
|disable vertex cache = <!-- On, Off --> | |disable vertex cache = <!-- On, Off --> | ||
|disable vertex cache notes = | |disable vertex cache notes = | ||
|multithreaded rsx = <!-- On, Off --> | |multithreaded rsx = <!-- On, Off --> | ||
|multithreaded rsx notes = | |multithreaded rsx notes = | ||
|asynchronous texture streaming = <!-- On, Off --> | |||
|asynchronous texture streaming notes = | |||
<!-- Audio configuration --> | <!-- Audio configuration --> | ||
|audio out windows = <!-- XAudio2, OpenAL, Disabled --> | |audio out windows = <!-- XAudio2, OpenAL, Disabled --> | ||
Line 74: | Line 79: | ||
|audio out linux = <!-- OpenAL, PulseAudio, ALSA, Disabled --> | |audio out linux = <!-- OpenAL, PulseAudio, ALSA, Disabled --> | ||
|audio out linux notes = | |audio out linux notes = | ||
|audio channels = <!-- Surround 7.1, Downmix to Stereo, Downmix to 5.1 --> | |||
|audio channels notes = | |||
|dump to file = <!-- On, Off --> | |dump to file = <!-- On, Off --> | ||
|dump to file notes = | |dump to file notes = | ||
|convert to 16-bit = <!-- On, Off --> | |convert to 16-bit = <!-- On, Off --> | ||
|convert to 16-bit notes = | |convert to 16-bit notes = | ||
|volume = <!-- Value between 0% to 200% --> | |volume = <!-- Value between 0% to 200% --> | ||
|volume notes = | |volume notes = | ||
Line 108: | Line 113: | ||
|accurate llvm dfma = <!-- On, Off --> | |accurate llvm dfma = <!-- On, Off --> | ||
|accurate llvm dfma notes = | |accurate llvm dfma notes = | ||
|accurate rsx reservation access = On <!-- On, Off --> | |||
|accurate rsx reservation access notes = To be enabled on systems that do not have TSX. | |||
|ppu llvm accurate vector nans = <!-- On, Off --> | |||
|ppu llvm accurate vector nans notes = | |||
|silence all logs = <!-- On, Off --> | |silence all logs = <!-- On, Off --> | ||
|silence all logs notes = | |silence all logs notes = | ||
Line 114: | Line 123: | ||
|maximum spurs threads = <!-- Unlimited, Single digit between 0 to 5 (e.g. 3) --> | |maximum spurs threads = <!-- Unlimited, Single digit between 0 to 5 (e.g. 3) --> | ||
|maximum spurs threads notes = | |maximum spurs threads notes = | ||
|firmware | |firmware libraries = <!-- Switch to LLE, Switch to HLE --> | ||
|firmware | |firmware libraries notes = <!-- Mention the libraries to be manually selected here --> | ||
|read depth buffers = <!-- On, Off --> | |read depth buffers = <!-- On, Off --> | ||
|read depth buffers notes = | |read depth buffers notes = | ||
Line 124: | Line 133: | ||
|disable on-disk shader cache = <!-- On, Off --> | |disable on-disk shader cache = <!-- On, Off --> | ||
|disable on-disk shader cache notes = | |disable on-disk shader cache notes = | ||
|disable native float16 support = <!-- On, Off --> | |||
|disable native float16 support notes = | |||
|relaxed zcull sync = <!-- On, Off --> | |relaxed zcull sync = <!-- On, Off --> | ||
|relaxed zcull sync notes = | |relaxed zcull sync notes = | ||
|driver wake-up delay = <!-- Value between 0 to 7000 --> | |driver wake-up delay = <!-- Value between 0 to 7000 --> | ||
|driver wake-up delay notes = | |driver wake-up delay notes = | ||
|vblank rate = | |vblank rate = <!-- Value between 1 to 500 --> | ||
|vblank rate notes = | |vblank rate notes = | ||
|clocks scale = <!-- Value between 10 to 1000 --> | |clocks scale = <!-- Value between 10 to 1000 --> | ||
|clocks scale notes = | |clocks scale notes = | ||
<!-- Debug configuration --> | <!-- Debug configuration --> | ||
|disable zcull occlusion queries = <!-- On, Off --> | |||
|disable zcull occlusion queries notes = | |||
|force cpu blit emulation = <!-- On, Off --> | |force cpu blit emulation = <!-- On, Off --> | ||
|force cpu blit emulation notes = | |force cpu blit emulation notes = | ||
Line 139: | Line 152: | ||
|accurate getllar = <!-- On, Off --> | |accurate getllar = <!-- On, Off --> | ||
|accurate getllar notes = | |accurate getllar notes = | ||
|hook static functions = <!-- On, Off --> | |hook static functions = <!-- On, Off --> | ||
|hook static functions notes = | |hook static functions notes = | ||
|accurate ppu 128 reservations = <!-- Always Enabled, Disabled, Value between 1 to 8 --> | |||
|accurate ppu 128 reservations notes = | |||
|ppu llvm java mode handling = <!-- True, False --> | |||
|ppu llvm java mode handling notes = | |||
}} | }} | ||
Line 152: | Line 166: | ||
==Special Notes== | ==Special Notes== | ||
The Last of Us can be played from start to finish, but requires a good CPU and using RPCS3's patches (especially MLAA patch) for playable performance. | |||
{{patch | {{patch | ||
|type = PPU | |type = PPU | ||
Line 158: | Line 172: | ||
|content = | |content = | ||
Anchors: | Anchors: | ||
# Since we only change store reg and branch, we don't need to patch last 2 bytes again. | |||
tlou100_mlaa: &tlou100_mlaa | tlou100_mlaa: &tlou100_mlaa | ||
- [ | - [ be16, 0x00a7a514, 0x9b83 ] # store 0 | ||
# - [ be16, 0x00a51a8c, 0x4800 ] # unconditonally branch to disable MLAA | |||
- [ be16, 0x0092ddac, 0x4800 ] # Skip memory check function | |||
- [ be32, 0x00ae5d4c, 0x38000000 ] # Green rain | |||
- [ be32, 0x00a2c4f0, 0x38000000 ] # Green rain | |||
- [ be32, 0x00a2c4fc, 0x38000000 ] # Green rain | |||
- [ be32, 0x00a58da8, 0x60000000 ] # skip assert: x + w <= width && y + h <= height | |||
- [ be32, 0x0093e30c, 0xc1890990 ] # Cargo fix | |||
- [ be32, 0x0093e394, 0xc0090990 ] # Reticle bloom | |||
# Dof patch | |||
- [ be32, 0x0093dd64, 0x48113d2d ] #Call1 | |||
- [ be32, 0x0093dd88, 0x48113d19 ] #Call2 | |||
- [ be32, 0x00a0ae2c, 0x48046c85 ] #Call3 | |||
# Func 1 Overall DoF 1 | |||
- [ be32, 0x00a51a90, 0xc09c0aa4 ] #Load f4 | |||
- [ be32, 0x00a51a94, 0xc27e04d4 ] #f19 = 0.3 | |||
- [ be32, 0x00a51a98, 0xec8404f2 ] #f4*f19 | |||
- [ be32, 0x00a51a9c, 0x4e800020 ] #Return | |||
# Func 2 Cutscene Dof | |||
- [ be32, 0x00a51aa0, 0xc01c0aac ] #Load f0 | |||
- [ be32, 0x00a51aa4, 0xc17e1d34 ] #f11 = 0.75 | |||
- [ be32, 0x00a51aa8, 0xec0002f2 ] #f0*f11 | |||
- [ be32, 0x00a51aac, 0x4e800020 ] #Return | |||
# Func 3 Overall Dof 2 | |||
- [ be32, 0x00a51ab0, 0x3d200146 ] #r9 = 1460000 | |||
- [ be32, 0x00a51ab4, 0x3929481c ] #r9 = 146481c | |||
- [ be32, 0x00a51ab8, 0x80080014 ] #Load pattern to r0 | |||
- [ be32, 0x00a51abc, 0x7f804800 ] #Compare r0 to r9 | |||
- [ be32, 0x00a51ac0, 0x409e0010 ] | |||
- [ be32, 0x00a51ac4, 0xc01e10a0 ] #f0 = 0.3 | |||
- [ be32, 0x00a51ac8, 0xd008000c ] #Store f0 | |||
- [ be32, 0x00a51acc, 0x48000008 ] | |||
- [ be32, 0x00a51ad0, 0xd3e8000c ] #Default store | |||
- [ be32, 0x00a51ad4, 0x4e800020 ] #Return | |||
# Bloom correction patch v2.2 | |||
- [ be32, 0x0093e308, 0x481137d1 ] #Call | |||
- [ be32, 0x00a51ad8, 0xc1a909a4 ] #Load f13 | |||
- [ be32, 0x00a51adc, 0xc19e064c ] #f12 = 0.69 | |||
- [ be32, 0x00a51ae0, 0x808909a8 ] #r4 unique value e198 | |||
- [ be32, 0x00a51ae4, 0x2f840000 ] #if r4 <= 0 | |||
- [ be32, 0x00a51ae8, 0x409d0058 ] #Skip to Main menu | |||
# Bills town Bloater and escape (2) | |||
- [ be32, 0x00a51aec, 0x3ca03ba4 ] #r5 = 3ba40000 | |||
- [ be32, 0x00a51af0, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51af4, 0x419c0074 ] #go to Patch if less | |||
# Bills town Cemetery (1) | |||
- [ be32, 0x00a51af8, 0x808909a4 ] #r4 unique value e194 | |||
- [ be32, 0x00a51afc, 0x3ca03e80 ] #r5 = 3e800000 | |||
- [ be32, 0x00a51b00, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51b04, 0x419c0068 ] #go to Patch if less | |||
# Bills town main street (2) | |||
- [ be32, 0x00a51b08, 0x3ca04026 ] #r5 = 40260000 | |||
- [ be32, 0x00a51b0c, 0x38a56666 ] #r5 = 40266666 | |||
- [ be32, 0x00a51b10, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51b14, 0x419e0054 ] #go to Patch if == | |||
# Bills town Trap (2) | |||
- [ be32, 0x00a51b18, 0x3ca0403d ] #r5 = 403d0000 | |||
- [ be32, 0x00a51b1c, 0x38a5e4e2 ] #r5 = 403ce4e2 | |||
- [ be32, 0x00a51b20, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51b24, 0x419e0044 ] #go to Patch if == | |||
# Bills Town intro check (2) | |||
- [ be32, 0x00a51b28, 0x808909bc ] #r4 unique value e1ac | |||
- [ be32, 0x00a51b2c, 0x3ca04007 ] #r5 = 40070000 | |||
- [ be32, 0x00a51b30, 0x38a50a3d ] #r5 = 40070a3d | |||
- [ be32, 0x00a51b34, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51b38, 0x419e0030 ] #go to Patch if == | |||
- [ be32, 0x00a51b3c, 0x4e800020 ] #Return | |||
# Patch Menu/Ending level | |||
- [ be32, 0x00a51b40, 0x808909a0 ] #r4 unique value e190 | |||
- [ be32, 0x00a51b44, 0x3ca03f8d ] #r5 = 3f8d0000 | |||
- [ be32, 0x00a51b48, 0x38a52f6f ] #r5 = 3f8d2f6f | |||
- [ be32, 0x00a51b4c, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51b50, 0x419e0010 ] #Patch menu | |||
- [ be32, 0x00a51b54, 0x80a909a4 ] #r5 unique value e194 | |||
- [ be32, 0x00a51b58, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a51b5c, 0x4c9e0020 ] #Return (bnelr) | |||
- [ be32, 0x00a51b60, 0xc19e03fc ] #f12 = 0.5 | |||
- [ be32, 0x00a51b64, 0x48000008 ] #go to Patch | |||
# Patch function | |||
- [ be32, 0x00a51b68, 0xedad0332 ] #f13=f13*f12 | |||
- [ be32, 0x00a51b6c, 0xec000332 ] #f0=f0*f12 | |||
- [ be32, 0x00a51b70, 0x4e800020 ] #Return | |||
# Special thanks to HdHereidme for debug menu, Smasher248 for inital memory addresses and Skye Mods for mesh trimming | # Special thanks to HdHereidme for debug menu, Smasher248 for inital memory addresses and Skye Mods for mesh trimming | ||
# address. Without them this patch wouldn't have been possible. | # address. Without them this patch wouldn't have been possible. | ||
Line 167: | Line 263: | ||
# 1 = Bloom | # 1 = Bloom | ||
# 2 = Depth of Field | # 2 = Depth of Field | ||
# 3 = | # 3 = Tonemapping // reversed from orbis version confirmed this exists | ||
# 4 = Bloom & Depth of Field | # 4 = Bloom & Depth of Field | ||
# 5 = Bloom & Depth of Field & Tonemapping (Default) | # 5 = Bloom & Depth of Field & Tonemapping (Default) | ||
tlou100_post: &tlou100_post | tlou100_post: &tlou100_post | ||
# - [ be32, 0x00a7991c, 0x38000003 ] # Post-processing modes (mem address: 0x14C79C7) | |||
- [ be32, 0x0093e300, 0xc0090990 ] # load e190 with 0 | |||
- [ be32, 0x0093e30c, 0xc1890990 ] # load e198 with 0f | |||
- [ be32, 0x0093e394, 0xc0090990 ] # load e1a0 with 0f | |||
tlou100_mesh: &tlou100_mesh | tlou100_mesh: &tlou100_mesh | ||
- [ | - [ be16, 0x00923a94, 0x9809 ] # Disable Mesh trimming (r3 => r0 ) (mem address: 0x142C584) | ||
# Many settings below are enabled/disabled in sub_A7A340. In this subroutine, | # Many settings below are enabled/disabled in sub_A7A340. In this subroutine, | ||
Line 185: | Line 284: | ||
tlou100_ssao: &tlou100_ssao | tlou100_ssao: &tlou100_ssao | ||
- [ | - [ be16, 0x00a7a470, 0x9b83 ] # Disable SSAO (r27 => r28) (mem address: 0x14C7C0F) | ||
tlou100_mb: &tlou100_mb | tlou100_mb: &tlou100_mb | ||
- [ | - [ be16, 0x00a7a4d4, 0x9b83 ] # Disable motion blur (r27 => r28) (mem address: 0x14C7C2E) | ||
tlou100_dof: &tlou100_dof | tlou100_dof: &tlou100_dof | ||
- [ | - [ be16, 0x00a7a4e0, 0x9b83 ] # Disable depth of field (r27 => r28) (mem address: 0x14C7C31) | ||
tlou100_dbv: &tlou100_dbv | tlou100_dbv: &tlou100_dbv | ||
- [ | - [ be16, 0x00a7a760, 0x9b63 ] # Depth buffer viewport (r28 => r27) (mem address: 0x14C7E9D) | ||
tlou100_dbf: &tlou100_dbf | tlou100_dbf: &tlou100_dbf | ||
- [ | - [ be16, 0x00a7a7ac, 0x9b83 ] # Depth border fix (r27 => r28) (mem address: 0x14C7EC1) | ||
tlou100_db: &tlou100_db | tlou100_db: &tlou100_db | ||
- [ | - [ be16, 0x00a7a7b8, 0x90e3 ] # Depth buffer (r27 => r6 ) (mem address: 0x14C7F93) | ||
- [ be16, 0x00a516ec, 0x4800 ] # Cabin resort crash fix | |||
tlou100_speed: &tlou100_speed | tlou100_speed: &tlou100_speed | ||
- [ | - [ be16, 0x00a7a6b8, 0x9383 ] # Speedboost (mem address: 0x14c7e5f) | ||
tlou111_mlaa: &tlou111_mlaa | tlou111_mlaa: &tlou111_mlaa | ||
- [ | # - [ be16, 0x00aaa040, 0x9b83 ] # store 0 | ||
- [ be16, 0x00a80350, 0x4800 ] # unconditonally branch to disable MLAA | |||
- [ be16, 0x0095b8f8, 0x4800 ] # Skip memory check function | |||
- [ be32, 0x00b0e140, 0x38000000 ] # Green rain | |||
- [ be32, 0x00a5bc38, 0x38000000 ] # Green rain | |||
- [ be32, 0x00a5bc44, 0x38000000 ] # Green rain | |||
- [ be32, 0x00a877e0, 0x60000000 ] # skip assert: x + w <= width && y + h <= height | |||
- [ be32, 0x0096be58, 0xc1890990 ] # Cargo fix | |||
# Dof correction patch | |||
- [ be32, 0x0096b8b0, 0x48114aa5 ] #Call1 | |||
- [ be32, 0x0096b8d4, 0x48114a91 ] #Call2 | |||
- [ be32, 0x00a3a584, 0x48045df1 ] #Call3 | |||
# Func 1 Overall DoF 1 | |||
- [ be32, 0x00a80354, 0xc09c0aa4 ] #Load f4 e294 | |||
- [ be32, 0x00a80358, 0xc27e0424 ] #f19 = 0.3 | |||
- [ be32, 0x00a8035c, 0xec8404f2 ] #f4*f19 | |||
- [ be32, 0x00a80360, 0x4e800020 ] #Return | |||
# Func 2 Cutscene Dof | |||
- [ be32, 0x00a80364, 0xc01c0aac ] #Load f0 e29c | |||
- [ be32, 0x00a80368, 0xc17e1b64 ] #f11 = 0.75 | |||
- [ be32, 0x00a8036c, 0xec0002f2 ] #f0*f11 | |||
- [ be32, 0x00a80370, 0x4e800020 ] #Return | |||
# Func 3 Overall Dof 2 | |||
- [ be32, 0x00a80374, 0x3d200151 ] #r9 = 1510000 | |||
- [ be32, 0x00a80378, 0x3929e29c ] #r9 = 150e29c | |||
- [ be32, 0x00a8037c, 0x80080014 ] #Load pattern to r0 | |||
- [ be32, 0x00a80380, 0x7f804800 ] #Compare r0 to r9 | |||
- [ be32, 0x00a80384, 0x409e0010 ] | |||
- [ be32, 0x00a80388, 0xc01e137c ] #f0 = 0.3 | |||
- [ be32, 0x00a8038c, 0xd008000c ] #Store f0 | |||
- [ be32, 0x00a80390, 0x48000008 ] | |||
- [ be32, 0x00a80394, 0xd3e8000c ] #Default store | |||
- [ be32, 0x00a80398, 0x4e800020 ] #Return | |||
# Bloom correction patch | |||
- [ be32, 0x0096be54, 0x48114549 ] #Call | |||
- [ be32, 0x00a8039c, 0xc1a909a4 ] #Load f13 | |||
- [ be32, 0x00a803a0, 0xc19e059c ] #f12 = 0.69 | |||
- [ be32, 0x00a803a4, 0x808909a8 ] #r4 unique value e198 | |||
- [ be32, 0x00a803a8, 0x2f840000 ] #if r4 <= 0 | |||
- [ be32, 0x00a803ac, 0x409d0058 ] #Skip to Main menu | |||
# Bills town Bloater and escape(2) | |||
- [ be32, 0x00a803b0, 0x3ca03ba4 ] #r5 = 3ba40000 | |||
- [ be32, 0x00a803b4, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a803b8, 0x419c0074 ] #go to Patch if less | |||
# Bills town Cemetery(1) | |||
- [ be32, 0x00a803bc, 0x808909a4 ] #r4 unique value e194 | |||
- [ be32, 0x00a803c0, 0x3ca03e80 ] #r5 = 3e800000 | |||
- [ be32, 0x00a803c4, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a803c8, 0x419c0068 ] #go to Patch if less | |||
# Bills town main street(2) | |||
- [ be32, 0x00a803cc, 0x3ca04026 ] #r5 = 40260000 | |||
- [ be32, 0x00a803d0, 0x38a56666 ] #r5 = 40266666 | |||
- [ be32, 0x00a803d4, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a803d8, 0x419e0054 ] #go to Patch if == | |||
# Bills town Trap(2) | |||
- [ be32, 0x00a803dc, 0x3ca0403d ] #r5 = 403d0000 | |||
- [ be32, 0x00a803e0, 0x38a5e4e2 ] #r5 = 403ce4e2 | |||
- [ be32, 0x00a803e4, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a803e8, 0x419e0044 ] #go to Patch if == | |||
# Bills Town intro check(2) | |||
- [ be32, 0x00a803ec, 0x808909bc ] #r4 unique value e1ac | |||
- [ be32, 0x00a803f0, 0x3ca04007 ] #r5 = 40070000 | |||
- [ be32, 0x00a803f4, 0x38a50a3d ] #r5 = 40070a3d | |||
- [ be32, 0x00a803f8, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a803fc, 0x419e0030 ] #go to Patch if == | |||
- [ be32, 0x00a80400, 0x4e800020 ] #Return | |||
# Patch Menu/Ending level | |||
- [ be32, 0x00a80404, 0x808909a0 ] #r4 unique value e190 | |||
- [ be32, 0x00a80408, 0x3ca03f8d ] #r5 = 3f8d0000 | |||
- [ be32, 0x00a8040c, 0x38a52f6f ] #r5 = 3f8d2f6f | |||
- [ be32, 0x00a80410, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a80414, 0x419e0010 ] #Patch menu | |||
- [ be32, 0x00a80418, 0x80a909a4 ] #r5 unique value e194 | |||
- [ be32, 0x00a8041c, 0x7f842800 ] #compare r4 to r5 | |||
- [ be32, 0x00a80420, 0x4c9e0020 ] #Return (bnelr) | |||
- [ be32, 0x00a80424, 0xc19e034c ] #f12 = 0.5 | |||
- [ be32, 0x00a80428, 0x48000008 ] #go to Patch | |||
# Patch function | |||
- [ be32, 0x00a8042c, 0xedad0332 ] #f13=f13*f12 | |||
- [ be32, 0x00a80430, 0xec000332 ] #f0=f0*f12 | |||
- [ be32, 0x00a80434, 0x4e800020 ] #Return | |||
# Special thanks to HdHereidme for debug menu, Smasher248 for inital memory addresses and Skye Mods for mesh trimming | # Special thanks to HdHereidme for debug menu, Smasher248 for inital memory addresses and Skye Mods for mesh trimming | ||
Line 217: | Line 394: | ||
# 1 = Bloom | # 1 = Bloom | ||
# 2 = Depth of Field | # 2 = Depth of Field | ||
# 3 = | # 3 = Tonemapping // reversed from orbis version confirmed this exists | ||
# 4 = Bloom & Depth of Field | # 4 = Bloom & Depth of Field | ||
# 5 = Bloom & Depth of Field & Tonemapping (Default) | # 5 = Bloom & Depth of Field & Tonemapping (Default) | ||
tlou111_post: &tlou111_post | tlou111_post: &tlou111_post | ||
# - [ be32, 0x00aa944c, 0x38000003 ] # Post-processing modes (mem address: 0x1571867) | |||
- [ be32, 0x0096be4c, 0xc0090990 ] # load e190 with 0 | |||
- [ be32, 0x0096BE58, 0xc1890990 ] # load e198 with 0 | |||
- [ be32, 0x0096BEE0, 0xc0090990 ] # load e1a0 with 0 | |||
tlou111_mesh: &tlou111_mesh | tlou111_mesh: &tlou111_mesh | ||
- [ | - [ be16, 0x009515d8, 0x9809 ] # Disable Mesh trimming (r3 => r0 ) (mem address: 0x14A9604) | ||
# Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, | # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, | ||
Line 235: | Line 415: | ||
tlou111_ssao: &tlou111_ssao | tlou111_ssao: &tlou111_ssao | ||
- [ | - [ be16, 0x00aa9f9c, 0x9b83 ] #Disable SSAO | ||
tlou111_mb: &tlou111_mb | tlou111_mb: &tlou111_mb | ||
- [ be32, | - [ be32, 0x0096aa94, 0x480000e0 ] # Disable motion blur | ||
tlou111_dof: &tlou111_dof | tlou111_dof: &tlou111_dof | ||
- [ | - [ be16, 0x00aaa00c, 0x9b83 ] # Disable depth of field (r27 => r28) (mem address: 0x1571AD1) | ||
tlou111_dbv: &tlou111_dbv | tlou111_dbv: &tlou111_dbv | ||
- [ | - [ be16, 0x00aaa290, 0x9b63 ] # Depth buffer viewport (r28 => r27) (mem address: 0x1571D41) | ||
tlou111_dbf: &tlou111_dbf | tlou111_dbf: &tlou111_dbf | ||
- [ | - [ be16, 0x00aaa2d8, 0x9b83 ] # Depth border fix (r27 => r28) (mem address: 0x1571D65) | ||
tlou111_db: &tlou111_db | tlou111_db: &tlou111_db | ||
- [ | - [ be16, 0x00aaa2e4, 0x90c3 ] # Depth buffer (r27 => r6 ) (mem address: 0x1571E37) | ||
- [ be16, 0x00a7ffac, 0x4800 ] # Cabin resort crash fix | |||
tlou111_speed: &tlou111_speed | tlou111_speed: &tlou111_speed | ||
- [ | - [ be16, 0x00aaa1e8, 0x9383 ] # Speedboost (mem address: 0x1571d03) | ||
tlou111_devplus: &tlou111_devplus | |||
- [ be32, 0x012850e8, 0x00e8c3e7 ] # str ptr | |||
- [ be32, 0x0128515c, 0x00e8c57f ] # str ptr | |||
- [ be16, 0x00e8c318, 0x202b ] # _+ | |||
- [ byte, 0x00e8c3e7, 42 ] # * in int | |||
- [ byte, 0x00e8c57f, 42 ] # * in int | |||
# useless memory option replace with rendering | |||
# point addr from [] to [], this offsets 002dcc40 store 00 and onwards. | |||
# i.e [] now becomes [] and so on | |||
- [ be32, 0x0129732c, 0x015715f0 ] # pointer | |||
- [ be32, 0x002dcc40, 0x38bc00be ] # disable vis | |||
- [ be32, 0x012973fc, 0x00ee0490 ] | |||
- [ be16, 0x00ee0498, 0x5669 ] # capitalise visibility for | |||
- [ be32, 0x002dcc74, 0x38bc06d9 ] # wireframe | |||
- [ be32, 0x01297400, 0x00ee01d8 ] | |||
- [ be32, 0x002dcca8, 0x38bc06da ] # see through | |||
- [ be32, 0x01297404, 0x00ee01f0 ] | |||
- [ be32, 0x002dccdc, 0x38bc06db ] # point mode | |||
- [ be32, 0x01297408, 0x00ee0210 ] | |||
- [ be32, 0x002dcd10, 0x38bc04f4 ] # post on spu | |||
- [ be32, 0x0129740c, 0x00f05a48 ] | |||
- [ be32, 0x002dcd44, 0x38bc04de ] # motion blur | |||
- [ be32, 0x01297410, 0x00f05618 ] | |||
- [ be32, 0x002dcd78, 0x38bc04e1 ] # dof | |||
- [ be32, 0x01297414, 0x00f05410 ] | |||
- [ be32, 0x012974e4, 0x0135bfe8 ] # ptr | |||
- [ be64, 0x00ea8ba0, 0x456e61626c652050 ] # rename string | |||
- [ be32, 0x00ea8ba8, 0x61757365 ] | |||
- [ byte, 0x00ea8bac, 0 ] # term str | |||
- [ be32, 0x01297418, 0x00e8d580 ] | |||
- [ byte, 0x00eeeef8, 0 ] | |||
- [ byte, 0x00eeef10, 0 ] | |||
- [ byte, 0x00eeef28, 0 ] | |||
- [ byte, 0x00eeef50, 0 ] | |||
- [ be32, 0x012bf4a4, 0x00e8d520 ] | |||
- [ be32, 0x012bf4a8, 0x00e8d550 ] | |||
# str, perhaps use utf8 here? | |||
- [ be64, 0x00e8d520, 0x437265646974733a ] | |||
- [ be64, 0x00e8d550, 0x4d61646520627920 ] | |||
- [ be64, 0x00e8d558, 0x696c6c7573696f6e ] | |||
- [ be64, 0x00e8d560, 0x2c20467265616b6f ] | |||
- [ be64, 0x00e8d568, 0x20616e6420536d61 ] | |||
- [ be64, 0x00e8d570, 0x7368657232343800 ] | |||
# vram stats | |||
- [ be64, 0x00e8d580, 0x53686f7720437265 ] | |||
- [ be32, 0x00e8d588, 0x64697473 ] | |||
# console exclusive code, we don't need this due to post on spu off | |||
- [ be32, 0x0129741c, 0x0157186e ] # ptr | |||
# - [ be32, 0x00aa9444, 0x38600001 ] # remove branch and set r3 to 1 | |||
# - [ be16, 0x00aa9464, 0x9869 ] # load from r3 | |||
tlou111_cparts: &tlou111_cparts | |||
- [ be64, 0x0e8d600, 0x496E66696E697465 ] # str Infinite Everything (Ammo, Items, Skills, Parts) | |||
- [ be64, 0x0e8d608, 0x2045766572797468 ] | |||
- [ be64, 0x0e8d610, 0x696E672028416D6D ] | |||
- [ be64, 0x0e8d618, 0x6F2C204974656D73 ] | |||
- [ be64, 0x0e8d620, 0x2C20536B696C6C73 ] | |||
- [ be64, 0x0e8d628, 0x2C20506172747329 ] | |||
- [ be32, 0x01286780, 0x00e8d600 ] # point addr to e8e490 | |||
- [ be32, 0x01286784, 0x014f3412 ] # point addr to 014f3412 | |||
# add | |||
- [ be32, 0x003495c, 0x48e58c35 ] # bl 00e8d590 | |||
- [ be32, 0x0e8d590, 0x3fa0014f ] # r29 14f0000 | |||
- [ be32, 0x0e8d594, 0x881d3412 ] # lbz r0, 0x3412, (r29) | |||
- [ be32, 0x0e8d598, 0x2f800000 ] # cmp r0, 0x0 | |||
- [ be32, 0x0e8d59c, 0x409e0008 ] # bne 0xe8d5a4 | |||
- [ be32, 0x0e8d5a0, 0x7f7fd22e ] # og lhzx | |||
- [ be32, 0x0e8d5a4, 0x4e800020 ] # ret | |||
- [ be32, 0x0034968, 0x2f9d096f ] # r29 to 512 | |||
- [ be32, 0x0034970, 0x3ba0096f ] # li r29 512 | |||
# sub | |||
- [ be32, 0x00336c0, 0x7e2802a6 ] # mflr r17,LR | |||
- [ be32, 0x00336c4, 0x48e59f01 ] # call 3 | |||
- [ be32, 0x00336c8, 0x7e2803a6 ] # mtlr LR,r17 | |||
- [ be32, 0x00336cc, 0x3a200000 ] # r17 = 0 | |||
- [ be32, 0x0e8d5c4, 0x7c0b4a2e ] # og lhzx | |||
- [ be32, 0x0e8d5c8, 0x5408043e ] # og rlwinm | |||
- [ be32, 0x0e8d5cc, 0x3e00014f ] # r16 = 14f0000 | |||
- [ be32, 0x0e8d5d0, 0x89f03412 ] # lbz r15,0x3412,r16 | |||
- [ be32, 0x0e8d5d4, 0x2f8f0000 ] # r15 vs 0 | |||
- [ be32, 0x0e8d5d8, 0x409e0008 ] # bne | |||
- [ be32, 0x0e8d5dc, 0x7c050050 ] # og sub | |||
- [ be32, 0x0e8d5e0, 0x7f882800 ] # og cmpw | |||
- [ be32, 0x0e8d5e4, 0x39e00000 ] # r15 = 0 | |||
- [ be32, 0x0e8d5e8, 0x3a000000 ] # r16 = 0 | |||
- [ be32, 0x0e8d5ec, 0x4e800020 ] # ret | |||
tlou111_nailbombsoftlockfix: &tlou111_nailbombsoftlockfix | |||
- [ be32, 0x0069f7b0, 0x4b9c0129 ] #bl SUB_0005f8d8 | |||
- [ be32, 0x0005f8d8, 0x3fe00142 ] # lis r31,0x142 | |||
- [ be32, 0x0005f8dc, 0x801f9ef4 ] # lwz r0,-0x610c(r31) | |||
- [ be32, 0x0005f8e0, 0x3c8040bd ] # lis param_2,0x40bd | |||
- [ be32, 0x0005f8e4, 0x38848ef0 ] # subiparam_2,param_2,0x7110 | |||
- [ be32, 0x0005f8e8, 0x7f802000 ] # cmpwcr7,r0,param_2 | |||
- [ be32, 0x0005f8ec, 0x419e0054 ] # beq cr7,LAB_0005f940 | |||
- [ be32, 0x0005f8f0, 0x38800000 ] # li param_2,0x0 | |||
- [ be32, 0x0005f8f4, 0x6484a467 ] # orisparam_2,param_2,0xa467 | |||
- [ be32, 0x0005f8f8, 0x3884f0cf ] # subiparam_2,param_2,0xf31 | |||
- [ be32, 0x0005f8fc, 0x7f802000 ] # cmpwcr7,r0,param_2 | |||
- [ be32, 0x0005f900, 0x419e0040 ] # beq cr7,LAB_0005f940 | |||
- [ be32, 0x0005f904, 0x38800000 ] # li param_2,0x0 | |||
- [ be32, 0x0005f908, 0x64849ab6 ] # orisparam_2,param_2,0x9ab6 | |||
- [ be32, 0x0005f90c, 0x3884066a ] # addiparam_2,param_2,0x66a | |||
- [ be32, 0x0005f910, 0x7f802000 ] # cmpwcr7,r0,param_2 | |||
- [ be32, 0x0005f914, 0x419e002c ] # beq cr7,LAB_0005f940 | |||
- [ be32, 0x0005f918, 0x3c801181 ] # lis param_2,0x1181 | |||
- [ be32, 0x0005f91c, 0x38845d5c ] # addiparam_2,param_2,0x5d5c | |||
- [ be32, 0x0005f920, 0x7f802000 ] # cmpwcr7,r0,param_2 | |||
- [ be32, 0x0005f924, 0x419e001c ] # beq cr7,LAB_0005f940 | |||
- [ be32, 0x0005f928, 0x3c804ad3 ] # lis param_2,0x4ad3 4ad35fc8 | |||
- [ be32, 0x0005f92c, 0x38845fc8 ] # addiparam_2,param_2,0x5fc8 | |||
- [ be32, 0x0005f930, 0x7f802000 ] # cmpwcr7,r0,param_2 | |||
- [ be32, 0x0005f934, 0x419e000c ] # beq cr7,LAB_0005f940 | |||
- [ be32, 0x0005f938, 0x78001fe2 ] # rldir0,r0,0x23,0x3f | |||
- [ be32, 0x0005f93c, 0x48000008 ] # b LAB_0005f944 | |||
- [ be32, 0x0005f940, 0x38000001 ] # li r0,0x1 | |||
- [ be32, 0x0005f944, 0x389b0070 ] # addiparam_2,r27,0x70 | |||
- [ be32, 0x0005f948, 0x4e800020 ] # blr | |||
gpulightingnotes: &gpulightingnotes "Uses GPU (RSX) path for lighting effects instead of SPU.\nFixes rendering of lightning effects that are being rendered broken via SPU path and greatly improves performance over it.\nThis path is incomplete and results in some missing effects such as Volumetric lighting." | |||
debugmenunotes: &debugmenunotes "L3 + Start = Dev Menu\nL3 + Select = Quick Menu\nL3 + Triangle = FPS Text\nL3 + R3 = Debug Fly" | |||
fpsnotes: &fpsnotes "Unlocks FPS without any special settings.\nGame may crash above 500FPS in loading screen." | |||
tloumlaanotes: &tloumlaanotes "Last modified: Dec 28 2020\n\nAllows for the use of Resolution Scaling and improves performance.\nVersion 2.0 - Fixes crashes introduced in the original patch.\nVersion 3.0 - Fixes the Green Rain in more areas.\nVersion 4.0 - Fixes high levels of Bloom in some areas.\n\nKnown issues: Listen mode does not work" | |||
tlou100_title: &tlou100_title | tlou100_title: &tlou100_title | ||
"The Last of Us": | "The Last of Us": | ||
Line 270: | Line 570: | ||
BCJS37010: [ 01.00 ] | BCJS37010: [ 01.00 ] | ||
BCAS20270: [ 01.00 ] | BCAS20270: [ 01.00 ] | ||
NPEA00435: [ 01.00 ] | |||
NPUA80960: [ 01.00 ] | |||
tlou111_title: &tlou111_title | tlou111_title: &tlou111_title | ||
"The Last of Us": | "The Last of Us": | ||
Line 280: | Line 580: | ||
BCJS37010: [ 01.11 ] | BCJS37010: [ 01.11 ] | ||
BCAS20270: [ 01.11 ] | BCAS20270: [ 01.11 ] | ||
NPEA00435: [ 01.11 ] | |||
NPUA80960: [ 01.11 ] | |||
PPU-9df60dc1aa5005a0c80e9066e4951dc0471553e6: | PPU-9df60dc1aa5005a0c80e9066e4951dc0471553e6: | ||
Line 287: | Line 587: | ||
Games: *tlou100_title | Games: *tlou100_title | ||
Author: Whatcookie | Author: Whatcookie | ||
Notes: | Notes: *tloumlaanotes | ||
Patch Version: | Patch Version: 4.0 | ||
Patch: | Patch: | ||
- [ load, *tlou100_mlaa ] | - [ load, *tlou100_mlaa ] | ||
Disable Bloom: | |||
Games: *tlou100_title | Games: *tlou100_title | ||
Author: JohnHolmesII, ZEROx, illusion, Juhn | Author: JohnHolmesII, ZEROx, illusion, Juhn | ||
Notes: | Notes: | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
Line 336: | Line 636: | ||
Games: *tlou100_title | Games: *tlou100_title | ||
Author: JohnHolmesII, ZEROx, illusion, Juhn | Author: JohnHolmesII, ZEROx, illusion, Juhn | ||
Notes: | Notes: | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ load, *tlou100_dbf ] | - [ load, *tlou100_dbf ] | ||
Enable GPU Lighting: | |||
Games: *tlou100_title | Games: *tlou100_title | ||
Author: JohnHolmesII, ZEROx, illusion, Juhn | Author: JohnHolmesII, ZEROx, illusion, Juhn | ||
Notes: * | Notes: *gpulightingnotes | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
Line 354: | Line 654: | ||
Patch: | Patch: | ||
- [ load, *tlou100_speed ] | - [ load, *tlou100_speed ] | ||
Debug Menu: | |||
Games: *tlou100_title | |||
Author: dron_3, HdHereidme, illusion | |||
Notes: *debugmenunotes | |||
Patch Version: 1.01 | |||
Patch: | |||
- [ be16, 0x0003b2a0, 0x419e ] | |||
- [ byte, 0x0003b2c3, 1 ] | |||
- [ be16, 0x009acbde, 0x2db6 ] | |||
- [ be16, 0x009acbe6, 0x2db6 ] | |||
"Bug Fix: Infected Severed Head Crash": | |||
Games: *tlou100_title | |||
Author: illusion, ZEROx | |||
Notes: "Last modified: 13 Feb 2020.\nFixed a bug where throwing an object at a Infected Severed Head causes a game crash." | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x006b06a8, 0x483a4b95 ] #Branch | |||
- [ be32, 0x00a5523c, 0x3d400001 ] #r10 = 0x10000 | |||
- [ be32, 0x00a55240, 0x7f9d5000 ] #r29 vs r10 | |||
- [ be32, 0x00a55244, 0x409d0008 ] #Skip if r29<=r10 // If r29 less or equal to r10 then do nothing | |||
- [ be32, 0x00a55248, 0x813d0040 ] #lwz r9,0x40(r29) // load as normal | |||
- [ be32, 0x00a5524c, 0x4e800020 ] #Return | |||
21:9 Aspect Ratio: | |||
Games: *tlou100_title | |||
Author: illusion | |||
Notes: HUD Elements will be stretched. Users need to enable the "Stretch to Display Area" option in RPCS3 for this patch to work. | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x000325B8, 0x60000000 ] # nop write for ar float | |||
- [ be32, 0x14AEBD0, 0x3ED70A3D ] # ar float | |||
- [ be32, 0x128F2F4, 0x3F400000 ] | |||
Unlock FPS: | |||
Games: *tlou100_title | |||
Author: illusion | |||
Notes: *fpsnotes | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x00036AB8, 0x38A00000 ] | |||
Infinite flashlight battery: | |||
Games: *tlou100_title | Games: *tlou100_title | ||
Author: | Author: bungholio, ZEROx | ||
Notes: | Notes: "This patch is usefull for people who play with something other than DualShock3/4.\nNormaly flashlight battery drains after ~3600 frames, patch disables battery drain, Infinite flashlight battery no controller shake." | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ | - [ be32, 0x0068eb38, 0x60000000 ] | ||
Disable Camera Shake: | |||
Games: *tlou100_title | Games: *tlou100_title | ||
Author: | Author: illusion | ||
Notes: | Notes: "Last modified: 1 Mar 2021\n\nDisables Camera Shake during Gameplay.\nIn-Game-Cinematics remain is unaffected." | ||
Patch Version: | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ | - [ be16, 0x00966784, 0x997d ] | ||
PPU-120fb71f7352d62521c639b0e99f960018c10a56: | PPU-120fb71f7352d62521c639b0e99f960018c10a56: | ||
Disable in-built MLAA: | Disable in-built MLAA: | ||
Games: *tlou111_title | Games: *tlou111_title | ||
Author: Whatcookie | Author: Whatcookie, illusion, ZEROx | ||
Notes: | Notes: *tloumlaanotes | ||
Patch Version: | Patch Version: 4.0 | ||
Patch: | Patch: | ||
- [ load, *tlou111_mlaa ] | - [ load, *tlou111_mlaa ] | ||
Disable Bloom: | |||
Games: *tlou111_title | Games: *tlou111_title | ||
Author: JohnHolmesII, ZEROx, illusion, Juhn | Author: JohnHolmesII, ZEROx, illusion, Juhn | ||
Notes: | Notes: | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
Line 396: | Line 733: | ||
Author: JohnHolmesII, ZEROx, illusion, Juhn | Author: JohnHolmesII, ZEROx, illusion, Juhn | ||
Notes: | Notes: | ||
Patch Version: 1. | Patch Version: 1.1 | ||
Patch: | Patch: | ||
- [ load, *tlou111_ssao ] | - [ load, *tlou111_ssao ] | ||
Line 427: | Line 764: | ||
Patch: | Patch: | ||
- [ load, *tlou111_dbf ] | - [ load, *tlou111_dbf ] | ||
Enable GPU Lighting: | |||
Games: *tlou111_title | Games: *tlou111_title | ||
Author: JohnHolmesII, ZEROx, illusion, Juhn | Author: JohnHolmesII, ZEROx, illusion, Juhn | ||
Notes: * | Notes: *gpulightingnotes | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
Line 441: | Line 778: | ||
Patch: | Patch: | ||
- [ load, *tlou111_speed ] | - [ load, *tlou111_speed ] | ||
Disable | Debug Menu: | ||
Games: *tlou111_title | |||
Author: dron_3, HdHereidme, illusion, ZEROx | |||
Notes: *debugmenunotes | |||
Patch Version: 1.01 | |||
Patch: | |||
- [ be16, 0x0003bf9c, 0x419e ] | |||
- [ byte, 0x0003bfbf, 1 ] | |||
- [ be16, 0x009da99a, 0x2db6 ] | |||
- [ be16, 0x009da9a2, 0x2db6 ] | |||
- [ be32, 0x00a1a200, 0x60000000 ] #Remove "!" model render | |||
Infinite flashlight battery: | |||
Games: *tlou111_title | |||
Author: bungholio, ZEROx | |||
Notes: "This patch is usefull for people who play with something other than DualShock3/4.\nNormaly flashlight battery drains after ~3600 frames, patch disables battery drain, Infinite flashlight battery no controller shake." | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x006acbc8, 0x60000000 ] | |||
"Bug Fix: Infected Severed Head Crash": | |||
Games: *tlou111_title | |||
Author: illusion, ZEROx | |||
Notes: "Fixed a bug where throwing an object at a Infected Severed Head causes a game crash." | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x006d9368, 0x483aa7ed ] #Call | |||
- [ be32, 0x00a83b54, 0x3d400001 ] #r10 = 0x10000 | |||
- [ be32, 0x00a83b58, 0x7f9d5000 ] #r29 vs r10 | |||
- [ be32, 0x00a83b5c, 0x409d0008 ] #Skip if r29<=r10 // If r29 less or equal to r10 then do nothing | |||
- [ be32, 0x00a83b60, 0x813d0040 ] #lwz r9,0x40(r29) // load as normal | |||
- [ be32, 0x00a83b64, 0x4e800020 ] #Return | |||
21:9 Aspect Ratio: | |||
Games: *tlou111_title | |||
Author: illusion | |||
Notes: HUD Elements will be stretched. Users need to enable the "Stretch to Display Area" option in RPCS3 for this patch to work. | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x0003556C, 0x60000000 ] # nop write for ar float | |||
- [ be32, 0x1558A50, 0x3ED70A3D ] # ar float | |||
- [ be32, 0x12C1964, 0x3F400000 ] | |||
Unlock FPS: | |||
Games: *tlou111_title | |||
Author: illusion | |||
Notes: *fpsnotes | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x00039D08, 0x38A00000 ] | |||
Dev Menu Plus: | |||
Games: *tlou111_title | |||
Author: illusion, Freako, Smasher248 | |||
Notes: "Replaces some useless options in Memory Tab with rendering features.\n\nWireframe modes currently does not work on the emulator." | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ load, *tlou111_devplus ] | |||
Disable Pause in Dev Menu: | |||
Games: *tlou111_title | Games: *tlou111_title | ||
Author: | Author: illusion, Freako | ||
Notes: | Notes: | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ | - [ be16, 0x009d2114, 0x9803 ] | ||
NPC Model Scale in Clock Menu: | |||
Games: *tlou111_title | |||
Author: illusion | |||
Notes: | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be32, 0x012850f8, 0x0148AE18 ] # ptr | |||
- [ be16, 0x0135dcac, 0x3f80 ] # avoid assertion | |||
- [ be64, 0x00e8c418, 0x4E5043204D6F6465 ] # string replace | |||
- [ be32, 0x00e8c420, 0x6C205363 ] | |||
- [ be16, 0x00e8c424, 0x616C ] | |||
- [ be64, 0x00e8c426, 0x653A000000000000 ] # 1 byte overlap | |||
Disable Camera Shake: | |||
Games: *tlou111_title | |||
Author: illusion | |||
Notes: "Disables Camera Shake during Gameplay.\nIn-Game-Cinematics remain unaffected." | |||
Patch Version: 1.0 | |||
Patch: | |||
- [ be16, 0x00994234, 0x997d ] | |||
Infinite Everything (Parts, Pills, Crafting items): | |||
Games: *tlou111_title | Games: *tlou111_title | ||
Author: | Author: Medo, Randy97Killa, illusion | ||
Notes: | Notes: "Activate Cheat in Gameplay... Pickup any ammount of parts or items for high value." | ||
Patch Version: | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ | - [ load, *tlou111_cparts ] | ||
Tool Always Level 5: | |||
Games: *tlou111_title | |||
Games: * | |||
Author: illusion, ZEROx | Author: illusion, ZEROx | ||
Notes: | Notes: | ||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ | - [ be32, 0x00082960, 0x38000005 ] # tools level load | ||
- [ be32, 0x00082788, 0x60000000 ] # tools gain pickup, result will be | |||
"Bug Fix: University Nailbomb Softlock Fix": | |||
Games: *tlou111_title | Games: *tlou111_title | ||
Author: illusion, ZEROx | Author: illusion, ZEROx | ||
Notes: * | Notes: "Fixes a softlock at the end of university chapter." | ||
Patch Version: 1.0 | |||
Patch: | |||
- [ load, *tlou111_nailbombsoftlockfix ] | |||
"Bug Fix: Low Health on Dev Menu Respawns": | |||
Games: *tlou111_title | |||
Author: illusion | |||
Notes: | |||
Patch Version: 1.0 | Patch Version: 1.0 | ||
Patch: | Patch: | ||
- [ | - [ be32, 0x00574e3c, 0x38600064 ] # can this be optimized further? | ||
- [ be32, 0x00574e40, 0x907c0000 ] | |||
- [ be32, 0x00574e44, 0x807c0000 ] | |||
- [ be32, 0x00574e48, 0x60000000 ] | |||
}} | }} |
Revision as of 09:13, 17 January 2022
The Last of Us | |
---|---|
Developer(s) | Naughty Dog |
Publisher(s) | Sony Computer Entertainment |
Release date(s) | June 14, 2013 |
Release type | PlayStation exclusive |
Genre(s) | Action, Adventure, Survival horror |
Mode(s) | Single-player, Multiplayer |
GameID(s) | BCES01584 (IRD), BCES01585 (IRD), BCUS98174 (IRD), BCJS37010 (IRD), NPEA00435, BCAS20270 (IRD), NPJA00096, NPUA80960 Left Behind NPEA00521, NPJA00129, NPUA81175, NPHA80279 Demo NPUA70257 |
Quick links | Check Compatibility Open Issues Search Google Wikipedia Page |
The Last of Us is a game where players control Joel, a smuggler tasked with escorting a teenage girl, Ellie, across a post-apocalyptic United States. The Last of Us is played from a third-person perspective. Players use firearms and improvised weapons, and can use stealth to defend against hostile humans and cannibalistic creatures infected by a mutated strain of the Cordyceps fungus. In the online multiplayer mode, up to eight players engage in cooperative and competitive gameplay.
Development of The Last of Us began in 2009, soon after the release of Naughty Dog's previous game, Uncharted 2: Among Thieves. For the first time in the company's history, Naughty Dog split into two teams; while one team developed Uncharted 3: Drake's Deception, the other half developed The Last of Us. The relationship between Joel and Ellie became the central focus of the game, with all other elements developed around it. Actors Troy Baker and Ashley Johnson portrayed Joel and Ellie respectively through voice and motion capture, and assisted creative director Neil Druckmann with the development of the characters and story. The original score was composed and performed by Gustavo Santaolalla.
Following its announcement in December 2011, The Last of Us was widely anticipated. Upon release, it received critical acclaim, with praise directed at its narrative, gameplay, visual and sound design, characterization, and depiction of female characters. The Last of Us became one of the best-selling games on the PlayStation 3, selling over 1.3 million units in its first week and 17 million by April 2018. After the game's release, Naughty Dog released several downloadable content additions. The Last of Us: Left Behind adds a single-player campaign following Ellie and her best friend Riley.
Configuration
Options that deviate from RPCS3's default settings and provide the best experience with this title are listed below.
GPU configuration
Setting | Option | Notes |
---|---|---|
Framelimit | 60 | Enabling framelimit prevents rare crashes during loading screens when framerate may exceed 500FPS. Alternatively, enable VSync on a 60Hz monitor for the same effect. |
Resolution scale | 100 | Resolution scaling is only supported when the MLAA patch is enabled. |
Resolution scale threshold | 1x1 | When using Resolution scaling above 100%, this must be set to 1x1 otherwise some effects like lens flares will be missing. |
Write color buffers | On | Only needed if you're not using MLAA patch. Fixes Green Rain and particle issues. Slightly reduces performance. |
Advanced configuration
Setting | Option | Notes |
---|---|---|
Accurate RSX reservation access | On | To be enabled on systems that do not have TSX. |
Read color buffers | On | Fixes graphical issues when certain patches are enabled. |
Known Issues
This game is currently not playable.
Special Notes
The Last of Us can be played from start to finish, but requires a good CPU and using RPCS3's patches (especially MLAA patch) for playable performance.
Patches
Anchors: # Since we only change store reg and branch, we don't need to patch last 2 bytes again. tlou100_mlaa: &tlou100_mlaa - [ be16, 0x00a7a514, 0x9b83 ] # store 0 # - [ be16, 0x00a51a8c, 0x4800 ] # unconditonally branch to disable MLAA - [ be16, 0x0092ddac, 0x4800 ] # Skip memory check function - [ be32, 0x00ae5d4c, 0x38000000 ] # Green rain - [ be32, 0x00a2c4f0, 0x38000000 ] # Green rain - [ be32, 0x00a2c4fc, 0x38000000 ] # Green rain - [ be32, 0x00a58da8, 0x60000000 ] # skip assert: x + w <= width && y + h <= height - [ be32, 0x0093e30c, 0xc1890990 ] # Cargo fix - [ be32, 0x0093e394, 0xc0090990 ] # Reticle bloom # Dof patch - [ be32, 0x0093dd64, 0x48113d2d ] #Call1 - [ be32, 0x0093dd88, 0x48113d19 ] #Call2 - [ be32, 0x00a0ae2c, 0x48046c85 ] #Call3 # Func 1 Overall DoF 1 - [ be32, 0x00a51a90, 0xc09c0aa4 ] #Load f4 - [ be32, 0x00a51a94, 0xc27e04d4 ] #f19 = 0.3 - [ be32, 0x00a51a98, 0xec8404f2 ] #f4*f19 - [ be32, 0x00a51a9c, 0x4e800020 ] #Return # Func 2 Cutscene Dof - [ be32, 0x00a51aa0, 0xc01c0aac ] #Load f0 - [ be32, 0x00a51aa4, 0xc17e1d34 ] #f11 = 0.75 - [ be32, 0x00a51aa8, 0xec0002f2 ] #f0*f11 - [ be32, 0x00a51aac, 0x4e800020 ] #Return # Func 3 Overall Dof 2 - [ be32, 0x00a51ab0, 0x3d200146 ] #r9 = 1460000 - [ be32, 0x00a51ab4, 0x3929481c ] #r9 = 146481c - [ be32, 0x00a51ab8, 0x80080014 ] #Load pattern to r0 - [ be32, 0x00a51abc, 0x7f804800 ] #Compare r0 to r9 - [ be32, 0x00a51ac0, 0x409e0010 ] - [ be32, 0x00a51ac4, 0xc01e10a0 ] #f0 = 0.3 - [ be32, 0x00a51ac8, 0xd008000c ] #Store f0 - [ be32, 0x00a51acc, 0x48000008 ] - [ be32, 0x00a51ad0, 0xd3e8000c ] #Default store - [ be32, 0x00a51ad4, 0x4e800020 ] #Return # Bloom correction patch v2.2 - [ be32, 0x0093e308, 0x481137d1 ] #Call - [ be32, 0x00a51ad8, 0xc1a909a4 ] #Load f13 - [ be32, 0x00a51adc, 0xc19e064c ] #f12 = 0.69 - [ be32, 0x00a51ae0, 0x808909a8 ] #r4 unique value e198 - [ be32, 0x00a51ae4, 0x2f840000 ] #if r4 <= 0 - [ be32, 0x00a51ae8, 0x409d0058 ] #Skip to Main menu # Bills town Bloater and escape (2) - [ be32, 0x00a51aec, 0x3ca03ba4 ] #r5 = 3ba40000 - [ be32, 0x00a51af0, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51af4, 0x419c0074 ] #go to Patch if less # Bills town Cemetery (1) - [ be32, 0x00a51af8, 0x808909a4 ] #r4 unique value e194 - [ be32, 0x00a51afc, 0x3ca03e80 ] #r5 = 3e800000 - [ be32, 0x00a51b00, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51b04, 0x419c0068 ] #go to Patch if less # Bills town main street (2) - [ be32, 0x00a51b08, 0x3ca04026 ] #r5 = 40260000 - [ be32, 0x00a51b0c, 0x38a56666 ] #r5 = 40266666 - [ be32, 0x00a51b10, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51b14, 0x419e0054 ] #go to Patch if == # Bills town Trap (2) - [ be32, 0x00a51b18, 0x3ca0403d ] #r5 = 403d0000 - [ be32, 0x00a51b1c, 0x38a5e4e2 ] #r5 = 403ce4e2 - [ be32, 0x00a51b20, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51b24, 0x419e0044 ] #go to Patch if == # Bills Town intro check (2) - [ be32, 0x00a51b28, 0x808909bc ] #r4 unique value e1ac - [ be32, 0x00a51b2c, 0x3ca04007 ] #r5 = 40070000 - [ be32, 0x00a51b30, 0x38a50a3d ] #r5 = 40070a3d - [ be32, 0x00a51b34, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51b38, 0x419e0030 ] #go to Patch if == - [ be32, 0x00a51b3c, 0x4e800020 ] #Return # Patch Menu/Ending level - [ be32, 0x00a51b40, 0x808909a0 ] #r4 unique value e190 - [ be32, 0x00a51b44, 0x3ca03f8d ] #r5 = 3f8d0000 - [ be32, 0x00a51b48, 0x38a52f6f ] #r5 = 3f8d2f6f - [ be32, 0x00a51b4c, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51b50, 0x419e0010 ] #Patch menu - [ be32, 0x00a51b54, 0x80a909a4 ] #r5 unique value e194 - [ be32, 0x00a51b58, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a51b5c, 0x4c9e0020 ] #Return (bnelr) - [ be32, 0x00a51b60, 0xc19e03fc ] #f12 = 0.5 - [ be32, 0x00a51b64, 0x48000008 ] #go to Patch # Patch function - [ be32, 0x00a51b68, 0xedad0332 ] #f13=f13*f12 - [ be32, 0x00a51b6c, 0xec000332 ] #f0=f0*f12 - [ be32, 0x00a51b70, 0x4e800020 ] #Return # Special thanks to HdHereidme for debug menu, Smasher248 for inital memory addresses and Skye Mods for mesh trimming # address. Without them this patch wouldn't have been possible. # This patch cycles through various post-processing modes. Values accepted are: # 0 = None # 1 = Bloom # 2 = Depth of Field # 3 = Tonemapping // reversed from orbis version confirmed this exists # 4 = Bloom & Depth of Field # 5 = Bloom & Depth of Field & Tonemapping (Default) tlou100_post: &tlou100_post # - [ be32, 0x00a7991c, 0x38000003 ] # Post-processing modes (mem address: 0x14C79C7) - [ be32, 0x0093e300, 0xc0090990 ] # load e190 with 0 - [ be32, 0x0093e30c, 0xc1890990 ] # load e198 with 0f - [ be32, 0x0093e394, 0xc0090990 ] # load e1a0 with 0f tlou100_mesh: &tlou100_mesh - [ be16, 0x00923a94, 0x9809 ] # Disable Mesh trimming (r3 => r0 ) (mem address: 0x142C584) # Many settings below are enabled/disabled in sub_A7A340. In this subroutine, # r6 = 2 # r27 = 1 # r28 = 0 # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the # source register from one to the other, though some are words and some are bytes, so be careful. tlou100_ssao: &tlou100_ssao - [ be16, 0x00a7a470, 0x9b83 ] # Disable SSAO (r27 => r28) (mem address: 0x14C7C0F) tlou100_mb: &tlou100_mb - [ be16, 0x00a7a4d4, 0x9b83 ] # Disable motion blur (r27 => r28) (mem address: 0x14C7C2E) tlou100_dof: &tlou100_dof - [ be16, 0x00a7a4e0, 0x9b83 ] # Disable depth of field (r27 => r28) (mem address: 0x14C7C31) tlou100_dbv: &tlou100_dbv - [ be16, 0x00a7a760, 0x9b63 ] # Depth buffer viewport (r28 => r27) (mem address: 0x14C7E9D) tlou100_dbf: &tlou100_dbf - [ be16, 0x00a7a7ac, 0x9b83 ] # Depth border fix (r27 => r28) (mem address: 0x14C7EC1) tlou100_db: &tlou100_db - [ be16, 0x00a7a7b8, 0x90e3 ] # Depth buffer (r27 => r6 ) (mem address: 0x14C7F93) - [ be16, 0x00a516ec, 0x4800 ] # Cabin resort crash fix tlou100_speed: &tlou100_speed - [ be16, 0x00a7a6b8, 0x9383 ] # Speedboost (mem address: 0x14c7e5f) tlou111_mlaa: &tlou111_mlaa # - [ be16, 0x00aaa040, 0x9b83 ] # store 0 - [ be16, 0x00a80350, 0x4800 ] # unconditonally branch to disable MLAA - [ be16, 0x0095b8f8, 0x4800 ] # Skip memory check function - [ be32, 0x00b0e140, 0x38000000 ] # Green rain - [ be32, 0x00a5bc38, 0x38000000 ] # Green rain - [ be32, 0x00a5bc44, 0x38000000 ] # Green rain - [ be32, 0x00a877e0, 0x60000000 ] # skip assert: x + w <= width && y + h <= height - [ be32, 0x0096be58, 0xc1890990 ] # Cargo fix # Dof correction patch - [ be32, 0x0096b8b0, 0x48114aa5 ] #Call1 - [ be32, 0x0096b8d4, 0x48114a91 ] #Call2 - [ be32, 0x00a3a584, 0x48045df1 ] #Call3 # Func 1 Overall DoF 1 - [ be32, 0x00a80354, 0xc09c0aa4 ] #Load f4 e294 - [ be32, 0x00a80358, 0xc27e0424 ] #f19 = 0.3 - [ be32, 0x00a8035c, 0xec8404f2 ] #f4*f19 - [ be32, 0x00a80360, 0x4e800020 ] #Return # Func 2 Cutscene Dof - [ be32, 0x00a80364, 0xc01c0aac ] #Load f0 e29c - [ be32, 0x00a80368, 0xc17e1b64 ] #f11 = 0.75 - [ be32, 0x00a8036c, 0xec0002f2 ] #f0*f11 - [ be32, 0x00a80370, 0x4e800020 ] #Return # Func 3 Overall Dof 2 - [ be32, 0x00a80374, 0x3d200151 ] #r9 = 1510000 - [ be32, 0x00a80378, 0x3929e29c ] #r9 = 150e29c - [ be32, 0x00a8037c, 0x80080014 ] #Load pattern to r0 - [ be32, 0x00a80380, 0x7f804800 ] #Compare r0 to r9 - [ be32, 0x00a80384, 0x409e0010 ] - [ be32, 0x00a80388, 0xc01e137c ] #f0 = 0.3 - [ be32, 0x00a8038c, 0xd008000c ] #Store f0 - [ be32, 0x00a80390, 0x48000008 ] - [ be32, 0x00a80394, 0xd3e8000c ] #Default store - [ be32, 0x00a80398, 0x4e800020 ] #Return # Bloom correction patch - [ be32, 0x0096be54, 0x48114549 ] #Call - [ be32, 0x00a8039c, 0xc1a909a4 ] #Load f13 - [ be32, 0x00a803a0, 0xc19e059c ] #f12 = 0.69 - [ be32, 0x00a803a4, 0x808909a8 ] #r4 unique value e198 - [ be32, 0x00a803a8, 0x2f840000 ] #if r4 <= 0 - [ be32, 0x00a803ac, 0x409d0058 ] #Skip to Main menu # Bills town Bloater and escape(2) - [ be32, 0x00a803b0, 0x3ca03ba4 ] #r5 = 3ba40000 - [ be32, 0x00a803b4, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a803b8, 0x419c0074 ] #go to Patch if less # Bills town Cemetery(1) - [ be32, 0x00a803bc, 0x808909a4 ] #r4 unique value e194 - [ be32, 0x00a803c0, 0x3ca03e80 ] #r5 = 3e800000 - [ be32, 0x00a803c4, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a803c8, 0x419c0068 ] #go to Patch if less # Bills town main street(2) - [ be32, 0x00a803cc, 0x3ca04026 ] #r5 = 40260000 - [ be32, 0x00a803d0, 0x38a56666 ] #r5 = 40266666 - [ be32, 0x00a803d4, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a803d8, 0x419e0054 ] #go to Patch if == # Bills town Trap(2) - [ be32, 0x00a803dc, 0x3ca0403d ] #r5 = 403d0000 - [ be32, 0x00a803e0, 0x38a5e4e2 ] #r5 = 403ce4e2 - [ be32, 0x00a803e4, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a803e8, 0x419e0044 ] #go to Patch if == # Bills Town intro check(2) - [ be32, 0x00a803ec, 0x808909bc ] #r4 unique value e1ac - [ be32, 0x00a803f0, 0x3ca04007 ] #r5 = 40070000 - [ be32, 0x00a803f4, 0x38a50a3d ] #r5 = 40070a3d - [ be32, 0x00a803f8, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a803fc, 0x419e0030 ] #go to Patch if == - [ be32, 0x00a80400, 0x4e800020 ] #Return # Patch Menu/Ending level - [ be32, 0x00a80404, 0x808909a0 ] #r4 unique value e190 - [ be32, 0x00a80408, 0x3ca03f8d ] #r5 = 3f8d0000 - [ be32, 0x00a8040c, 0x38a52f6f ] #r5 = 3f8d2f6f - [ be32, 0x00a80410, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a80414, 0x419e0010 ] #Patch menu - [ be32, 0x00a80418, 0x80a909a4 ] #r5 unique value e194 - [ be32, 0x00a8041c, 0x7f842800 ] #compare r4 to r5 - [ be32, 0x00a80420, 0x4c9e0020 ] #Return (bnelr) - [ be32, 0x00a80424, 0xc19e034c ] #f12 = 0.5 - [ be32, 0x00a80428, 0x48000008 ] #go to Patch # Patch function - [ be32, 0x00a8042c, 0xedad0332 ] #f13=f13*f12 - [ be32, 0x00a80430, 0xec000332 ] #f0=f0*f12 - [ be32, 0x00a80434, 0x4e800020 ] #Return # Special thanks to HdHereidme for debug menu, Smasher248 for inital memory addresses and Skye Mods for mesh trimming # address. Without them this patch wouldn't have been possible. # This patch cycles through various post-processing modes. Values accepted are: # 0 = None # 1 = Bloom # 2 = Depth of Field # 3 = Tonemapping // reversed from orbis version confirmed this exists # 4 = Bloom & Depth of Field # 5 = Bloom & Depth of Field & Tonemapping (Default) tlou111_post: &tlou111_post # - [ be32, 0x00aa944c, 0x38000003 ] # Post-processing modes (mem address: 0x1571867) - [ be32, 0x0096be4c, 0xc0090990 ] # load e190 with 0 - [ be32, 0x0096BE58, 0xc1890990 ] # load e198 with 0 - [ be32, 0x0096BEE0, 0xc0090990 ] # load e1a0 with 0 tlou111_mesh: &tlou111_mesh - [ be16, 0x009515d8, 0x9809 ] # Disable Mesh trimming (r3 => r0 ) (mem address: 0x14A9604) # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, # r6 = 2 # r27 = 1 # r28 = 0 # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the # source register from one to the other, though some are words and some are bytes, so be careful. tlou111_ssao: &tlou111_ssao - [ be16, 0x00aa9f9c, 0x9b83 ] #Disable SSAO tlou111_mb: &tlou111_mb - [ be32, 0x0096aa94, 0x480000e0 ] # Disable motion blur tlou111_dof: &tlou111_dof - [ be16, 0x00aaa00c, 0x9b83 ] # Disable depth of field (r27 => r28) (mem address: 0x1571AD1) tlou111_dbv: &tlou111_dbv - [ be16, 0x00aaa290, 0x9b63 ] # Depth buffer viewport (r28 => r27) (mem address: 0x1571D41) tlou111_dbf: &tlou111_dbf - [ be16, 0x00aaa2d8, 0x9b83 ] # Depth border fix (r27 => r28) (mem address: 0x1571D65) tlou111_db: &tlou111_db - [ be16, 0x00aaa2e4, 0x90c3 ] # Depth buffer (r27 => r6 ) (mem address: 0x1571E37) - [ be16, 0x00a7ffac, 0x4800 ] # Cabin resort crash fix tlou111_speed: &tlou111_speed - [ be16, 0x00aaa1e8, 0x9383 ] # Speedboost (mem address: 0x1571d03) tlou111_devplus: &tlou111_devplus - [ be32, 0x012850e8, 0x00e8c3e7 ] # str ptr - [ be32, 0x0128515c, 0x00e8c57f ] # str ptr - [ be16, 0x00e8c318, 0x202b ] # _+ - [ byte, 0x00e8c3e7, 42 ] # * in int - [ byte, 0x00e8c57f, 42 ] # * in int # useless memory option replace with rendering # point addr from [] to [], this offsets 002dcc40 store 00 and onwards. # i.e [] now becomes [] and so on - [ be32, 0x0129732c, 0x015715f0 ] # pointer - [ be32, 0x002dcc40, 0x38bc00be ] # disable vis - [ be32, 0x012973fc, 0x00ee0490 ] - [ be16, 0x00ee0498, 0x5669 ] # capitalise visibility for - [ be32, 0x002dcc74, 0x38bc06d9 ] # wireframe - [ be32, 0x01297400, 0x00ee01d8 ] - [ be32, 0x002dcca8, 0x38bc06da ] # see through - [ be32, 0x01297404, 0x00ee01f0 ] - [ be32, 0x002dccdc, 0x38bc06db ] # point mode - [ be32, 0x01297408, 0x00ee0210 ] - [ be32, 0x002dcd10, 0x38bc04f4 ] # post on spu - [ be32, 0x0129740c, 0x00f05a48 ] - [ be32, 0x002dcd44, 0x38bc04de ] # motion blur - [ be32, 0x01297410, 0x00f05618 ] - [ be32, 0x002dcd78, 0x38bc04e1 ] # dof - [ be32, 0x01297414, 0x00f05410 ] - [ be32, 0x012974e4, 0x0135bfe8 ] # ptr - [ be64, 0x00ea8ba0, 0x456e61626c652050 ] # rename string - [ be32, 0x00ea8ba8, 0x61757365 ] - [ byte, 0x00ea8bac, 0 ] # term str - [ be32, 0x01297418, 0x00e8d580 ] - [ byte, 0x00eeeef8, 0 ] - [ byte, 0x00eeef10, 0 ] - [ byte, 0x00eeef28, 0 ] - [ byte, 0x00eeef50, 0 ] - [ be32, 0x012bf4a4, 0x00e8d520 ] - [ be32, 0x012bf4a8, 0x00e8d550 ] # str, perhaps use utf8 here? - [ be64, 0x00e8d520, 0x437265646974733a ] - [ be64, 0x00e8d550, 0x4d61646520627920 ] - [ be64, 0x00e8d558, 0x696c6c7573696f6e ] - [ be64, 0x00e8d560, 0x2c20467265616b6f ] - [ be64, 0x00e8d568, 0x20616e6420536d61 ] - [ be64, 0x00e8d570, 0x7368657232343800 ] # vram stats - [ be64, 0x00e8d580, 0x53686f7720437265 ] - [ be32, 0x00e8d588, 0x64697473 ] # console exclusive code, we don't need this due to post on spu off - [ be32, 0x0129741c, 0x0157186e ] # ptr # - [ be32, 0x00aa9444, 0x38600001 ] # remove branch and set r3 to 1 # - [ be16, 0x00aa9464, 0x9869 ] # load from r3 tlou111_cparts: &tlou111_cparts - [ be64, 0x0e8d600, 0x496E66696E697465 ] # str Infinite Everything (Ammo, Items, Skills, Parts) - [ be64, 0x0e8d608, 0x2045766572797468 ] - [ be64, 0x0e8d610, 0x696E672028416D6D ] - [ be64, 0x0e8d618, 0x6F2C204974656D73 ] - [ be64, 0x0e8d620, 0x2C20536B696C6C73 ] - [ be64, 0x0e8d628, 0x2C20506172747329 ] - [ be32, 0x01286780, 0x00e8d600 ] # point addr to e8e490 - [ be32, 0x01286784, 0x014f3412 ] # point addr to 014f3412 # add - [ be32, 0x003495c, 0x48e58c35 ] # bl 00e8d590 - [ be32, 0x0e8d590, 0x3fa0014f ] # r29 14f0000 - [ be32, 0x0e8d594, 0x881d3412 ] # lbz r0, 0x3412, (r29) - [ be32, 0x0e8d598, 0x2f800000 ] # cmp r0, 0x0 - [ be32, 0x0e8d59c, 0x409e0008 ] # bne 0xe8d5a4 - [ be32, 0x0e8d5a0, 0x7f7fd22e ] # og lhzx - [ be32, 0x0e8d5a4, 0x4e800020 ] # ret - [ be32, 0x0034968, 0x2f9d096f ] # r29 to 512 - [ be32, 0x0034970, 0x3ba0096f ] # li r29 512 # sub - [ be32, 0x00336c0, 0x7e2802a6 ] # mflr r17,LR - [ be32, 0x00336c4, 0x48e59f01 ] # call 3 - [ be32, 0x00336c8, 0x7e2803a6 ] # mtlr LR,r17 - [ be32, 0x00336cc, 0x3a200000 ] # r17 = 0 - [ be32, 0x0e8d5c4, 0x7c0b4a2e ] # og lhzx - [ be32, 0x0e8d5c8, 0x5408043e ] # og rlwinm - [ be32, 0x0e8d5cc, 0x3e00014f ] # r16 = 14f0000 - [ be32, 0x0e8d5d0, 0x89f03412 ] # lbz r15,0x3412,r16 - [ be32, 0x0e8d5d4, 0x2f8f0000 ] # r15 vs 0 - [ be32, 0x0e8d5d8, 0x409e0008 ] # bne - [ be32, 0x0e8d5dc, 0x7c050050 ] # og sub - [ be32, 0x0e8d5e0, 0x7f882800 ] # og cmpw - [ be32, 0x0e8d5e4, 0x39e00000 ] # r15 = 0 - [ be32, 0x0e8d5e8, 0x3a000000 ] # r16 = 0 - [ be32, 0x0e8d5ec, 0x4e800020 ] # ret tlou111_nailbombsoftlockfix: &tlou111_nailbombsoftlockfix - [ be32, 0x0069f7b0, 0x4b9c0129 ] #bl SUB_0005f8d8 - [ be32, 0x0005f8d8, 0x3fe00142 ] # lis r31,0x142 - [ be32, 0x0005f8dc, 0x801f9ef4 ] # lwz r0,-0x610c(r31) - [ be32, 0x0005f8e0, 0x3c8040bd ] # lis param_2,0x40bd - [ be32, 0x0005f8e4, 0x38848ef0 ] # subiparam_2,param_2,0x7110 - [ be32, 0x0005f8e8, 0x7f802000 ] # cmpwcr7,r0,param_2 - [ be32, 0x0005f8ec, 0x419e0054 ] # beq cr7,LAB_0005f940 - [ be32, 0x0005f8f0, 0x38800000 ] # li param_2,0x0 - [ be32, 0x0005f8f4, 0x6484a467 ] # orisparam_2,param_2,0xa467 - [ be32, 0x0005f8f8, 0x3884f0cf ] # subiparam_2,param_2,0xf31 - [ be32, 0x0005f8fc, 0x7f802000 ] # cmpwcr7,r0,param_2 - [ be32, 0x0005f900, 0x419e0040 ] # beq cr7,LAB_0005f940 - [ be32, 0x0005f904, 0x38800000 ] # li param_2,0x0 - [ be32, 0x0005f908, 0x64849ab6 ] # orisparam_2,param_2,0x9ab6 - [ be32, 0x0005f90c, 0x3884066a ] # addiparam_2,param_2,0x66a - [ be32, 0x0005f910, 0x7f802000 ] # cmpwcr7,r0,param_2 - [ be32, 0x0005f914, 0x419e002c ] # beq cr7,LAB_0005f940 - [ be32, 0x0005f918, 0x3c801181 ] # lis param_2,0x1181 - [ be32, 0x0005f91c, 0x38845d5c ] # addiparam_2,param_2,0x5d5c - [ be32, 0x0005f920, 0x7f802000 ] # cmpwcr7,r0,param_2 - [ be32, 0x0005f924, 0x419e001c ] # beq cr7,LAB_0005f940 - [ be32, 0x0005f928, 0x3c804ad3 ] # lis param_2,0x4ad3 4ad35fc8 - [ be32, 0x0005f92c, 0x38845fc8 ] # addiparam_2,param_2,0x5fc8 - [ be32, 0x0005f930, 0x7f802000 ] # cmpwcr7,r0,param_2 - [ be32, 0x0005f934, 0x419e000c ] # beq cr7,LAB_0005f940 - [ be32, 0x0005f938, 0x78001fe2 ] # rldir0,r0,0x23,0x3f - [ be32, 0x0005f93c, 0x48000008 ] # b LAB_0005f944 - [ be32, 0x0005f940, 0x38000001 ] # li r0,0x1 - [ be32, 0x0005f944, 0x389b0070 ] # addiparam_2,r27,0x70 - [ be32, 0x0005f948, 0x4e800020 ] # blr gpulightingnotes: &gpulightingnotes "Uses GPU (RSX) path for lighting effects instead of SPU.\nFixes rendering of lightning effects that are being rendered broken via SPU path and greatly improves performance over it.\nThis path is incomplete and results in some missing effects such as Volumetric lighting." debugmenunotes: &debugmenunotes "L3 + Start = Dev Menu\nL3 + Select = Quick Menu\nL3 + Triangle = FPS Text\nL3 + R3 = Debug Fly" fpsnotes: &fpsnotes "Unlocks FPS without any special settings.\nGame may crash above 500FPS in loading screen." tloumlaanotes: &tloumlaanotes "Last modified: Dec 28 2020\n\nAllows for the use of Resolution Scaling and improves performance.\nVersion 2.0 - Fixes crashes introduced in the original patch.\nVersion 3.0 - Fixes the Green Rain in more areas.\nVersion 4.0 - Fixes high levels of Bloom in some areas.\n\nKnown issues: Listen mode does not work" tlou100_title: &tlou100_title "The Last of Us": BCES01584: [ 01.00 ] BCES01585: [ 01.00 ] BCUS98174: [ 01.00 ] BCJS37010: [ 01.00 ] BCAS20270: [ 01.00 ] NPEA00435: [ 01.00 ] NPUA80960: [ 01.00 ] tlou111_title: &tlou111_title "The Last of Us": BCES01584: [ 01.11 ] BCES01585: [ 01.11 ] BCUS98174: [ 01.11 ] BCJS37010: [ 01.11 ] BCAS20270: [ 01.11 ] NPEA00435: [ 01.11 ] NPUA80960: [ 01.11 ] PPU-9df60dc1aa5005a0c80e9066e4951dc0471553e6: Disable in-built MLAA: Games: *tlou100_title Author: Whatcookie Notes: *tloumlaanotes Patch Version: 4.0 Patch: - [ load, *tlou100_mlaa ] Disable Bloom: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_post ] Disable Mesh trimming: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_mesh ] Disable SSAO: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_ssao ] Disable Motion Blur: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_mb ] Disable Depth of Field: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_dof ] Depth buffer viewport: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_dbv ] Depth border fix: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou100_dbf ] Enable GPU Lighting: Games: *tlou100_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: *gpulightingnotes Patch Version: 1.0 Patch: - [ load, *tlou100_db ] Speedboost: Games: *tlou100_title Author: ZEROx, illusion Notes: Improves performance in certain areas. May cause issues. Patch Version: 1.0 Patch: - [ load, *tlou100_speed ] Debug Menu: Games: *tlou100_title Author: dron_3, HdHereidme, illusion Notes: *debugmenunotes Patch Version: 1.01 Patch: - [ be16, 0x0003b2a0, 0x419e ] - [ byte, 0x0003b2c3, 1 ] - [ be16, 0x009acbde, 0x2db6 ] - [ be16, 0x009acbe6, 0x2db6 ] "Bug Fix: Infected Severed Head Crash": Games: *tlou100_title Author: illusion, ZEROx Notes: "Last modified: 13 Feb 2020.\nFixed a bug where throwing an object at a Infected Severed Head causes a game crash." Patch Version: 1.0 Patch: - [ be32, 0x006b06a8, 0x483a4b95 ] #Branch - [ be32, 0x00a5523c, 0x3d400001 ] #r10 = 0x10000 - [ be32, 0x00a55240, 0x7f9d5000 ] #r29 vs r10 - [ be32, 0x00a55244, 0x409d0008 ] #Skip if r29<=r10 // If r29 less or equal to r10 then do nothing - [ be32, 0x00a55248, 0x813d0040 ] #lwz r9,0x40(r29) // load as normal - [ be32, 0x00a5524c, 0x4e800020 ] #Return 21:9 Aspect Ratio: Games: *tlou100_title Author: illusion Notes: HUD Elements will be stretched. Users need to enable the "Stretch to Display Area" option in RPCS3 for this patch to work. Patch Version: 1.0 Patch: - [ be32, 0x000325B8, 0x60000000 ] # nop write for ar float - [ be32, 0x14AEBD0, 0x3ED70A3D ] # ar float - [ be32, 0x128F2F4, 0x3F400000 ] Unlock FPS: Games: *tlou100_title Author: illusion Notes: *fpsnotes Patch Version: 1.0 Patch: - [ be32, 0x00036AB8, 0x38A00000 ] Infinite flashlight battery: Games: *tlou100_title Author: bungholio, ZEROx Notes: "This patch is usefull for people who play with something other than DualShock3/4.\nNormaly flashlight battery drains after ~3600 frames, patch disables battery drain, Infinite flashlight battery no controller shake." Patch Version: 1.0 Patch: - [ be32, 0x0068eb38, 0x60000000 ] Disable Camera Shake: Games: *tlou100_title Author: illusion Notes: "Last modified: 1 Mar 2021\n\nDisables Camera Shake during Gameplay.\nIn-Game-Cinematics remain is unaffected." Patch Version: 1.0 Patch: - [ be16, 0x00966784, 0x997d ] PPU-120fb71f7352d62521c639b0e99f960018c10a56: Disable in-built MLAA: Games: *tlou111_title Author: Whatcookie, illusion, ZEROx Notes: *tloumlaanotes Patch Version: 4.0 Patch: - [ load, *tlou111_mlaa ] Disable Bloom: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou111_post ] Disable Mesh trimming: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou111_mesh ] Disable SSAO: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.1 Patch: - [ load, *tlou111_ssao ] Disable Motion Blur: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou111_mb ] Disable Depth of Field: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou111_dof ] Depth buffer viewport: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou111_dbv ] Depth border fix: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: Patch Version: 1.0 Patch: - [ load, *tlou111_dbf ] Enable GPU Lighting: Games: *tlou111_title Author: JohnHolmesII, ZEROx, illusion, Juhn Notes: *gpulightingnotes Patch Version: 1.0 Patch: - [ load, *tlou111_db ] Speedboost: Games: *tlou111_title Author: ZEROx, illusion Notes: Improves performance in certain areas. May cause issues. Patch Version: 1.0 Patch: - [ load, *tlou111_speed ] Debug Menu: Games: *tlou111_title Author: dron_3, HdHereidme, illusion, ZEROx Notes: *debugmenunotes Patch Version: 1.01 Patch: - [ be16, 0x0003bf9c, 0x419e ] - [ byte, 0x0003bfbf, 1 ] - [ be16, 0x009da99a, 0x2db6 ] - [ be16, 0x009da9a2, 0x2db6 ] - [ be32, 0x00a1a200, 0x60000000 ] #Remove "!" model render Infinite flashlight battery: Games: *tlou111_title Author: bungholio, ZEROx Notes: "This patch is usefull for people who play with something other than DualShock3/4.\nNormaly flashlight battery drains after ~3600 frames, patch disables battery drain, Infinite flashlight battery no controller shake." Patch Version: 1.0 Patch: - [ be32, 0x006acbc8, 0x60000000 ] "Bug Fix: Infected Severed Head Crash": Games: *tlou111_title Author: illusion, ZEROx Notes: "Fixed a bug where throwing an object at a Infected Severed Head causes a game crash." Patch Version: 1.0 Patch: - [ be32, 0x006d9368, 0x483aa7ed ] #Call - [ be32, 0x00a83b54, 0x3d400001 ] #r10 = 0x10000 - [ be32, 0x00a83b58, 0x7f9d5000 ] #r29 vs r10 - [ be32, 0x00a83b5c, 0x409d0008 ] #Skip if r29<=r10 // If r29 less or equal to r10 then do nothing - [ be32, 0x00a83b60, 0x813d0040 ] #lwz r9,0x40(r29) // load as normal - [ be32, 0x00a83b64, 0x4e800020 ] #Return 21:9 Aspect Ratio: Games: *tlou111_title Author: illusion Notes: HUD Elements will be stretched. Users need to enable the "Stretch to Display Area" option in RPCS3 for this patch to work. Patch Version: 1.0 Patch: - [ be32, 0x0003556C, 0x60000000 ] # nop write for ar float - [ be32, 0x1558A50, 0x3ED70A3D ] # ar float - [ be32, 0x12C1964, 0x3F400000 ] Unlock FPS: Games: *tlou111_title Author: illusion Notes: *fpsnotes Patch Version: 1.0 Patch: - [ be32, 0x00039D08, 0x38A00000 ] Dev Menu Plus: Games: *tlou111_title Author: illusion, Freako, Smasher248 Notes: "Replaces some useless options in Memory Tab with rendering features.\n\nWireframe modes currently does not work on the emulator." Patch Version: 1.0 Patch: - [ load, *tlou111_devplus ] Disable Pause in Dev Menu: Games: *tlou111_title Author: illusion, Freako Notes: Patch Version: 1.0 Patch: - [ be16, 0x009d2114, 0x9803 ] NPC Model Scale in Clock Menu: Games: *tlou111_title Author: illusion Notes: Patch Version: 1.0 Patch: - [ be32, 0x012850f8, 0x0148AE18 ] # ptr - [ be16, 0x0135dcac, 0x3f80 ] # avoid assertion - [ be64, 0x00e8c418, 0x4E5043204D6F6465 ] # string replace - [ be32, 0x00e8c420, 0x6C205363 ] - [ be16, 0x00e8c424, 0x616C ] - [ be64, 0x00e8c426, 0x653A000000000000 ] # 1 byte overlap Disable Camera Shake: Games: *tlou111_title Author: illusion Notes: "Disables Camera Shake during Gameplay.\nIn-Game-Cinematics remain unaffected." Patch Version: 1.0 Patch: - [ be16, 0x00994234, 0x997d ] Infinite Everything (Parts, Pills, Crafting items): Games: *tlou111_title Author: Medo, Randy97Killa, illusion Notes: "Activate Cheat in Gameplay... Pickup any ammount of parts or items for high value." Patch Version: 1.0 Patch: - [ load, *tlou111_cparts ] Tool Always Level 5: Games: *tlou111_title Author: illusion, ZEROx Notes: Patch Version: 1.0 Patch: - [ be32, 0x00082960, 0x38000005 ] # tools level load - [ be32, 0x00082788, 0x60000000 ] # tools gain pickup, result will be "Bug Fix: University Nailbomb Softlock Fix": Games: *tlou111_title Author: illusion, ZEROx Notes: "Fixes a softlock at the end of university chapter." Patch Version: 1.0 Patch: - [ load, *tlou111_nailbombsoftlockfix ] "Bug Fix: Low Health on Dev Menu Respawns": Games: *tlou111_title Author: illusion Notes: Patch Version: 1.0 Patch: - [ be32, 0x00574e3c, 0x38600064 ] # can this be optimized further? - [ be32, 0x00574e40, 0x907c0000 ] - [ be32, 0x00574e44, 0x807c0000 ] - [ be32, 0x00574e48, 0x60000000 ]