Help:Game Patches: Difference between revisions

Help page
m (Formatting fixes)
m (→‎Template syntax: Remove whitespace)
 
(252 intermediate revisions by 25 users not shown)
Line 1: Line 1:
This page lists the current existing community patches for RPCS3's game patching system. To use them, create a <code>patch.yml</code> file on RPCS3's root directory and add one or more of the following patches to it.
This page aims to provide all information relating to RPCS3's patch system.
* The [[/Main|Main subpage]] lists the current PPU patches available for RPCS3's game patching system.
* The [[/SPU|SPU subpage]] lists the general-use SPU patches available for RPCS3's game patching system.
* The [[/Canary|Canary subpage]] lists patches that are severely buggy, in-development, or circumvent emulation bugs. These patches are not shipped with RPCS3's patch download functionality.


'''To get the PPU hash from your executable:''' Boot the game once, open RPCS3.log afterwards with a text editor and search for <code>PPU executable hash</code>. On that line, you'll find your executable's PPU hash, which you can then replace on game patches when required.
==Using game patches==
The simplest way to enable patches in RPCS3 is as follows:
# Boot RPCS3
# Select <code>Manage > Game Patches</code> to access the Patch Manager.
# Click the '''Download latest patches''' button and the emulator will automatically fetch the latest version of available patches.
# Navigate to the patch you wish to enable and tick the checkbox corresponding to the patch. You may want to tick the check box '''Only show owned games''' to make navigation simpler.
# Click '''Save''' and boot the game.


Refer to the [[/Canary|Canary page]] for patches that are in-development, severely buggy or generally not recommended for use.
==Manually adding custom patches==
There are many patches that aren't shipped with the automatic download facility due to them being canary patches, privately-shared patches, or otherwise missing from the Wiki. These patches can be added to RPCS3 in the following manner:
# Open your preferred text editor (e.g: VSCode, Sublime, Notepad++).
# Add the text <code>Version: 1.2</code> as the first line. Do not paste anything else on this line. Hit <code>Enter</code> and move to the next line.
# Paste your custom patch from the [[/Canary|Canary page]] or any other source. Ensure that the formatting for these patches are perfect, as the emulator will ignore the patch if it detects any formatting deficiencies.
# Click '''Save''' and name the file '''imported_patch.yml'''. Do NOT change the capitalization or use any other name, RPCS3 will not be able to apply the patches. On Windows, select ''All files (*.*)'' as the file type when saving.
# Save the file in relevant location:
#: <u>Windows</u>:<pre>&lt;RPCS3 folder&gt;\patches\</pre>
#: <u>Linux</u>:<pre>~/.config/rpcs3/patches/</pre>
#: <u>MacOS</u>: <pre>~/Library/Application Support/rpcs3/patches/</pre>If you're unable to locate this directory then copy/paste the path shown here into Spotlight and hit Enter.
# Navigate to the Patch Manager as mentioned before and tick the checkbox corresponding to the patch you wish to apply.


==Army of TWO: The 40th Day==
==How to identify the PPU/SPU executable hash==
This section is meant for adept users who wish to apply a patch to a different game version. ''Do not try to edit any of the patches unless you know what you are doing.'' Please note that you will also have to edit the Title ID and game version information for the modified patch to be applied by the emulator.


===Unlock FPS patch===
To identify the executable hash, follow the instructions mentioned here:
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
# Boot the game for a minute and then close the emulator.
: '''Game versions:''' BLUS30408/BLES00659
# Open '''RPCS3.log''' (or just RPCS3 with the Notepad icon).
: '''Patch version:''' NA
# Search for the string <code>PPU executable hash:</code>.
: '''Notes:''' Max framerate with the patch is Vblank frequency/2.
# Copy the value that looks like <code>PPU-b8c34f774adb367761706a7f685d4f8d9d355426</code>. This is the PPU hash of your game.
<syntaxhighlight lang="yaml">
# Open '''patch.yml''' with any text editor (e.g: VSCode, Sublime, Notepad++).
PPU-97355e97c701cea87a0ed08bce085cac4949dade: # Army of TWO: The 40th Day [BLUS30408/BLES00659] v1.00
# Find the existing patch that you wish to modify and copy it to '''imported_patch.yml'''. Ensure that you also copy over any anchors that the patch relies on.
  - [ be32, 0x003c5f9c, 0x60000000 ]
# Find the existing PPU hash in the patch and replace the same with the PPU hash you obtained in ''Step 4''.
  - [ be32, 0x003c6000, 0x60000000 ]
  - [ be32, 0x003c6010, 0x60000000 ]


PPU-66e68ab81cb8c107687e708170fd7f13cfdd641e: # Update v1.03 (tested only US update)
Please note that some games may have multiple PPU executable hashes, and it is up to you to figure out the correct hash to be copied. Also, the same method can be used to extract SPU executable hashes by searching for <code>SPU executable hash:</code> in ''Step 3''.
  - [ be32, 0x003cc00c, 0x60000000 ]
  - [ be32, 0x003cc070, 0x60000000 ]
  - [ be32, 0x003cc080, 0x60000000 ]
</syntaxhighlight>


==Asura's Wrath==
==Patch format==
Below are the various types of patch structures that can be used in RPCS3. It starts with the basic format and then showcases various other complex structures that can be used. In case of any doubts, you can refer to over 100 patches present in our patch repository for guidance.


===Unlock FPS patch===
===Template syntax===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
<pre>
: '''Game versions:''' BLUS30721
{{patch
: '''Patch version:''' NA
|type    = <!-- PPU, SPU, Canary -->
: '''Notes:''' Max framerate with the patch is Vblank frequency/2. While most of the game works without any issue, some of the button mashing QTEs are tied to framerate. It's quite possible to play through the game at 60FPS if you are good at button mashing, but 120FPS and higher aren't really playable in several missions. Without the patch, adjusting Vblank frequency will let the game cap at about 57FPS.
|version = 1.2
<syntaxhighlight lang="yaml">
|content =
PPU-83096111daff850cc92b637aec1780c4079e1c58: # Asura's Wrath [BLUS30721]
<!-- Enter actual patch here (see below for format). Remember to delete this comment. -->
  - [ be32, 0x008bbd04, 0x60000000 ]
}}
  - [ be32, 0x008bbd64, 0x60000000 ]
</pre>
  - [ be32, 0x008bbd68, 0x60000000 ]
</syntaxhighlight>


==Demon's Souls==
===Parameters===
The following are the valid parameters of the Patch structure ('''required entries are in bold'''):
{| class="wikitable"
| '''''PPU/SPU executable hash''''' || This is the 40 character unique to help identify the game's executable file. It will have the prefix <code>PPU-</code> or <code>SPU-</code>. Please find the instructions to identify the hash [[#How to identify the PPU/SPU executable hash|here]].
|-
| '''''PatchName''''' || This field needs to be replaced with the name of the patch (e.g. 60 FPS patch, Disable MLAA, Infinite Ammo, etc.).
|-
| ''GameName'' || This field needs to be replaced with the name of the game (e.g. Persona 5, The Last of Us, etc.). To the extent possible, ensure that this matches to the title of game page on the wiki. Deviation on account of special editions or demos are allowed and will be reviewed on a case-to-case basis. In case of a global patch that is to be applied to all games, mention <code>All</code>.
|-
| '''''GameID''''' || This field needs to be replaced with the Serial of the game (e.g. BLUS23053, NPEB54673, etc.).
|-
| '''''GameVersion''''' || This field needs to be replaced with the version number of the game as follows:
: ''Actual version'' - If you are sure of the version number of your game, mention the same (for e.g. v1.01 is to be written as <code>01.01</code>).
: ''All'' - If you are unsure of the version and the game has only a single known version, mention <code>All</code>.
|-
| ''Author'' || Fill in the name of the authors of the patch.
|-
| ''Notes'' || Fill in any relevant information that needs to be communicated to the user of the patches. Any special settings or drawbacks to the patches needs to be mentioned here.
|-
| ''Group'' || This field is used when there are multiple patches for a game that cannot be enabled at the same time. Using the same '''Group''' for these patches will ensure that only one can be enabled at a time (for e.g. mention <code>FPS</code> when both 60 FPS and 120 FPS patches are available for the same game). This only applies to patches present under the same ''PPU/SPU executable hash''.
|-
| ''Patch Version'' || Fill in the version number of the patch (for e.g. v1.1 is to be written as <code>1.1</code>). This version number needs to be incremented every time a significant change has been made.
|-
| '''''Patch''''' || This field will contain the actual patch code.
|-
| ''Anchors'' || This field can be used to when the same patch code is to be used for multiple patches. A unique ''AnchorDesc'' needs to be declared and then called in the Patch field of every patch that uses it. Please see an example of its use in the formats below.
|}


===60/120 FPS Patch===
===Standard format===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
<pre>
: '''Game versions:''' BLUS30443, BLES00932
PPU-0000000000000000000000000000000000000000:
: '''Patch version:''' 1.0.1
  "PatchName":
: '''Notes:''' This patch MUST be used with the following settings: Clocks Scale: 200, Vblank frequency: 120.
    Games:
<syntaxhighlight lang="yaml">
      "GameName":
# 1.0.1
        GameID: [ GameVersion ]
PPU-83681f6110d33442329073b72b8dc88a2f677172: # BLUS30443
    Author:  
# Alter fixed timestep
    Notes:  
  - [ bef32, 0x018c8db4, 0.01666667 ] # for 60FPS
    Patch Version:  
#  - [ bef32, 0x018c8db4, 0.00833334 ] # for 120FPS
    Patch:
      - [ Patch ]
</pre>


PPU-5446a2645880eefa75f7e374abd6b7818511e2ef: # BLES00932
===Using anchor (for large patches)===
# Alter fixed timestep
<pre>
   - [ bef32, 0x018c8f20, 0.01666667 ] # for 60FPS
Anchors:
- [ bef32, 0x018c8f20, 0.00833334 ] # for 120FPS
   AnchorDesc: &AnchorDesc
</syntaxhighlight>
    - [ Patch ]


===Disable Dynamic Exposure===
PPU-0000000000000000000000000000000000000000:
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
  "PatchName":
: '''Game versions:''' BLUS30443, BLES00932
    Games:
: '''Patch version:''' 1.0.1
      "GameName":
: '''Notes:''' Can disable Write Color Buffers for 20% faster performance. Enable this patch if you experience flickering.
        GAME00000: [ GameVersion ]
<syntaxhighlight lang="yaml">
    Author:  
# 1.0.1
    Notes:  
PPU-83681f6110d33442329073b72b8dc88a2f677172: # BLUS30443
    Patch Version:  
# OPTIONAL: Disable dynamic exposure (can turn off WCB for 20% faster performance)
    Patch:
# Enable this if you experience flickering
      - [ load, *AnchorDesc ]
- [ be16, 0x00025EDC, 0x981f ]
</pre>


PPU-5446a2645880eefa75f7e374abd6b7818511e2ef: # BLES00932
===Multiple GameIDs and Patches===
# OPTIONAL: Disable dynamic exposure (can turn off WCB for 20% faster performance)
<pre>
# Enable this if you experience flickering
PPU-0000000000000000000000000000000000000000:
#  - [ be16, 0x00026AC4, 0x981f ]
   "PatchName1":
</syntaxhighlight>
    Games:
 
      "GameName":
===21:9 Patch===
        GAME00000: [ GameVersion ]
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
        GAME00001: [ GameVersion ]
: '''Game versions:''' BLUS30443, BLES00932
    Author:  
: '''Patch version:''' NA
    Notes:  
: '''Notes:''' UI Elements will be stretched
    Group:  
<syntaxhighlight lang="yaml">
    Patch Version:  
PPU-83681f6110d33442329073b72b8dc88a2f677172: # Demon's Souls BLUS30443
    Patch:
  - [ be32, 0x018CEFBC, 0x4017B9AA ] #21:9 aspect ratio
      - [ Patch ]
  - [ be32, 0x0190433C, 0x4017B9AA ]
   "PatchName2":
 
    Games:
PPU-5446a2645880eefa75f7e374abd6b7818511e2ef: # Demon's Souls BLES00932
      "GameName":
  - [ be32, 0x018CF13C, 0x4017B9AA ] #21:9 aspect ratio
        GAME00000: [ GameVersion ]
  - [ be32, 0x01904494, 0x4017B9AA ]
        GAME00001: [ GameVersion ]
</syntaxhighlight>
    Author:  
 
    Notes:  
===Skip Intro Videos===
    Group:  
: '''Author:''' [https://github.com/RipleyTom RipleyTom/Galciv]
    Patch Version:  
: '''Game versions:''' BLUS30443, BLES00932
    Patch:
: '''Patch version:''' NA
      - [ Patch ]
<syntaxhighlight lang="yaml">
</pre>
PPU-83681f6110d33442329073b72b8dc88a2f677172: # Demon's Souls BLUS30443
  - [ be32, 0x008EEF78, 0x38000003 ] # Intro logos skip
  - [ be32, 0x008EEF7C, 0x901C0100 ]
 
PPU-5446a2645880eefa75f7e374abd6b7818511e2ef: # Demon's Souls BLES00932
  - [ be32, 0x008F0928, 0x38000003 ] # Intro logos skip
  - [ be32, 0x008F092C, 0x901C0100 ]
</syntaxhighlight>
 
==Destroy All Humans! Path of the Furon==
 
===Unlock FPS patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BLES00467
: '''Patch version:''' NA
: '''Notes:''' Totally unlocks FPS and doesn't need any special settings.
<syntaxhighlight lang="yaml">
PPU-65078c652115190ecb64b7ff52bbf1c68696deb6: # Destroy All Humans! Path of the Furon [BLES00467]
  - [ be32, 0x010b9e68, 0x60000000 ]
  - [ be32, 0x010b9ec0, 0x60000000 ]
</syntaxhighlight>
 
==Drakengard 3==
 
===60/120 FPS Patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BLUS31197, BLJM61043, BCAS20311, NPUB31251, NPEB01407
: '''Patch version:''' 1.0.0
: '''Notes:''' Need to also change Vblank frequency to 120 for 60FPS or 240 for 120FPS. Going over 120FPS is possible, but you will break physics a bit (lowering jump height) and make it impossible to lock-on to enemies when flying on the dragon.
<syntaxhighlight lang="yaml">
# Min frametime is this value / 30
# 0.125 / 30 is 4.1ms, so max FPS is 240
# This game has a second framerate limiter based
# on Vblank, so set Vblank high to raise the framerate
# Max FPS is Vblank / 2
PPU-f2f7f7ea0444353884bb715152147c3a29f4e790: # Drakengard 3 [BLUS31197] v1.01
  - [ bef32, 0x008edbcc, 0.12500000 ] # 240 max FPS
 
PPU-2b393f064786e5895d5a576621deb4c9107a8f0b: # Drakengard 3 [BLUS31197] v1.00
  - [ bef32, 0x008edc5c, 0.12500000 ] # 240 max FPS
 
PPU-b18834a8f21cd29a091b287a66656a279ccba507: # Drakengard 3 [NPUB31251] v1.00
  - [ bef32, 0x008ecf2c, 0.12500000 ] # 240 max FPS
 
PPU-9c04f427625a0064282432e4edfefe9e0956c303: # Drakengard 3 [NPUB31251] v1.01
  - [ bef32, 0x008ececc, 0.12500000 ] # 240 max FPS
 
PPU-e1a44e5d3fb03a37f0445e92ed13abce8d6efdd4: # Drakengard 3 [NPEB01407]
  - [ bef32, 0x008eceec, 0.12500000 ] # 240 max FPS
 
PPU-a017576369165f3746730724c8ae762ed9bc64d8: # Drag-On Dragoon 3 [BLJM61043] v1.00
  - [ bef32, 0x00939a14, 0.12500000 ] # 240 max FPS
 
PPU-c09c496514f6dc591434575b04eb7c003826c11d: # Drag-On Dragoon 3 [BLJM61043] v1.04
  - [ bef32, 0x008ed62c, 0.12500000 ] # 240 max FPS
 
PPU-5eb979631fbbe531db5d20f0622dca5a8b64090e: # Drag-On Dragoon 3 [BCAS20311] v1.02
  - [ bef32, 0x008edc5c, 0.12500000 ] # 240 max FPS
</syntaxhighlight>
 
==Folklore==
 
===Unlock FPS patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BCES00050
: '''Patch version:''' NA
: '''Notes:''' Totally unlocks FPS during gameplay. Sadly the cloth physics go nuts, despite the gameplay working perfectly. However, note that even without this patch you may want to limit the framerate to 60FPS, else the cutscenes will playback too fast.
<syntaxhighlight lang="yaml">
PPU-66404421d1f8ed7dd0b2898e1d015a44bf273bf8: # Folklore [BCES00050]
  - [ be32, 0x0181118, 0x60000000 ]
</syntaxhighlight>
 
==Genji: Days of the Blade==
 
===21:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' BCES00002
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# Genji: Days of the Blade [BCES00002]
PPU-4aeb132cdf86d9c4ab20e48ae70cc823e455e05d:
  - [ be32, 0x100FA8B0, 0x4017B9AA ] # 21:9
</syntaxhighlight>
 
===60 FPS Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' BCES00002
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# Genji: Days of the Blade [BCES00002]
PPU-4aeb132cdf86d9c4ab20e48ae70cc823e455e05d:
  - [ be32, 0x100FA964, 0x00000000 ] # for 60FPS
</syntaxhighlight>
 
==Hatsune Miku: Project DIVA Dreamy Theater==
 
===Sign in without connecting a PSP===
: '''Author:''' [https://github.com/samyuu samyuu], [https://github.com/Brolijah Brolijah], [https://github.com/nastys nastys]
: '''Game versions:''' NPJB00047 (v1.00, v1.01)
: '''Patch version:''' NA
: '''Notes:''' Makes the game playable by skipping the PSP connection screen. A decrypted save is still required to play the game. The patch can also be used on real hardware.
<syntaxhighlight lang="yaml">
# Project DIVA Dreamy Theater
PPU-ddd080c3a59b7d8f7e640b419efccea6972d1e21: # NPJB00047 (v1.00)
  - [be32, 0x66C464, 0x000004B8]
 
PPU-890a336132e35e8bfb7cbe430ea9b09114915346: # NPJB00047 (v1.01)
  - [be32, 0x66F9B4, 0x00000718]
</syntaxhighlight>
 
==Hatsune Miku: Project Diva F==
 
===60 FPS Patch===
: '''Author:''' [https://github.com/Brolijah Brolijah]
: '''Game versions:''' Disc v1.00 (JP, US) and Digital v1.00 (EU, JP, US)
: '''Patch version:''' NA
: '''Notes:''' Patch accelerates some game effects by 2x. Does not affect playability.
<syntaxhighlight lang="yaml">
# Project DIVA F USA Disc & PSN 1.00
PPU-f3227f57ec001582b253035fd90de77f05ead470:
  - [ be32, 0xBF289C, 0x3F800000 ]
  - [ be16, 0x589496, 0x0001 ]
  - [ be16, 0x5894BA, 0x0001 ]
  - [ be16, 0x589802, 0x0001 ]
  - [ be16, 0x58982A, 0x0001 ]
 
# Project DIVA F EUR PSN 1.00
PPU-c02e3b52e3d75f52f76fb8f0fb5be7ca4d921949:
  - [ be32, 0xBF289C, 0x3F800000 ]
  - [ be16, 0x589496, 0x0001 ]
  - [ be16, 0x5894BA, 0x0001 ]
  - [ be16, 0x589802, 0x0001 ]
  - [ be16, 0x58982A, 0x0001 ]
 
# Project DIVA F JAP Disc & PSN 1.00
PPU-1105af0a4d6a4a1481930c6f3090c476cde06c4c:
  - [ be32, 0xBF22FC, 0x3F800000 ]
  - [ be16, 0x586202, 0x0001 ]
  - [ be16, 0x586226, 0x0001 ]
  - [ be16, 0x58656E, 0x0001 ]
  - [ be16, 0x586596, 0x0001 ]
</syntaxhighlight>
 
==Hatsune Miku: Project Diva F 2nd==
 
===60 FPS Patch===
: '''Author:''' [https://github.com/Brolijah Brolijah]
: '''Game versions:''' BLUS31431 (v1.00), BLAS50723 (v1.00), BLJM61079 (v1.00, v1.01, v1.02), NPEB02013 (v1.00), NPJB00435 (v1.00, v1.02), NPHB00671 (v1.00)
: '''Patch version:''' NA
: '''Notes:''' Patch accelerates some game effects by 2x. Does not affect playability.
<syntaxhighlight lang="yaml">
# Project DIVA F 2nd USA Disc 1.00 (Maybe also PSN?)
PPU-092c43e2bcacccfe3cdc22b0ab8062b91d4e1cf9: # BLUS31431 v1.00
  - [ be32, 0x0423C8, 0x3F800000 ]
  - [ be16, 0x6AF44E, 0x0001 ]
  - [ be16, 0x6AF46E, 0x0001 ]
  - [ be16, 0x6AF492, 0x0001 ]
  - [ be16, 0x6AF4B6, 0x0001 ]
 
# Project DIVA F 2nd EUR PSN 1.00 (Maybe also Disc?)
PPU-67e0e7c9b2a7a340c914a0d078e25aac1047e4d4: # NPEB02013 v1.00
  - [ be32, 0x0423C8, 0x3F800000 ]
  - [ be16, 0x6AF44E, 0x0001 ]
  - [ be16, 0x6AF46E, 0x0001 ]
  - [ be16, 0x6AF492, 0x0001 ]
  - [ be16, 0x6AF4B6, 0x0001 ]
 
# Project DIVA F 2nd ASIA Disc 1.00
PPU-51d336edfa3774f2db83ed030611f462c097c40b: # BLAS50723 v1.00
  - [ be32, 0x042390, 0x3F800000 ]
  - [ be16, 0x6AF0B6, 0x0001 ]
  - [ be16, 0x6AF0D6, 0x0001 ]
  - [ be16, 0x6AF0FA, 0x0001 ]
  - [ be16, 0x6AF11E, 0x0001 ]
 
# Project DIVA F 2nd ASIA PSN 1.00
PPU-c70b15d3f6694af74fa329dd4fc25fe28a59e9cc: # NPHB00671 v1.00
  - [ be32, 0x042390, 0x3F800000 ]
  - [ be16, 0x6AF0B6, 0x0001 ]
  - [ be16, 0x6AF0D6, 0x0001 ]
  - [ be16, 0x6AF0FA, 0x0001 ]
  - [ be16, 0x6AF11E, 0x0001 ]
 
# Project DIVA F 2nd JAP Disc & PSN 1.00
PPU-c3291f5919ca147ac854de10f7436f4ad494233f: # BLJM61079/NPJB00435 v1.00
  - [ be32, 0x041F40, 0x3F800000 ]
  - [ be16, 0x6A48F6, 0x0001 ]
  - [ be16, 0x6A4916, 0x0001 ]
  - [ be16, 0x6A493A, 0x0001 ]
  - [ be16, 0x6A495E, 0x0001 ]
 
# Project DIVA F 2nd JAP Disc 1.01
PPU-058cf39c07fd13f100c1f6dc40a0ead9bf3ad51b: # BLJM61079 v1.01
  - [ be32, 0x041F40, 0x3F800000 ]
  - [ be16, 0x6A48F6, 0x0001 ]
  - [ be16, 0x6A4916, 0x0001 ]
  - [ be16, 0x6A493A, 0x0001 ]
  - [ be16, 0x6A495E, 0x0001 ]
 
# Project DIVA F 2nd JAP Disc 1.02
PPU-8fc9f26ed77cc9237db0e6348dcf9d6c451b6220: # BLJM61079 v1.02
  - [ be32, 0x041F40, 0x3F800000 ]
  - [ be16, 0x6A48F6, 0x0001 ]
  - [ be16, 0x6A4916, 0x0001 ]
  - [ be16, 0x6A493A, 0x0001 ]
  - [ be16, 0x6A495E, 0x0001 ]
 
# Project DIVA F 2nd JAP PSN 1.02
PPU-311fcd98af6adc5e64e6a833eb959f43b0976193: # NPJB00435 v1.02
  - [ be32, 0x041F78, 0x3F800000 ]
  - [ be16, 0x6AB316, 0x0001 ]
  - [ be16, 0x6AB336, 0x0001 ]
  - [ be16, 0x6AB35A, 0x0001 ]
  - [ be16, 0x6AB37E, 0x0001 ]
</syntaxhighlight>
 
==JoJo's Bizarre Adventure: All Star Battle==
 
===60 FPS Patch===
: '''Author:''' SutandoTsukai181 on our [https://discord.me/rpcs3 Discord Server]
: '''Game versions:''' BLUS31405
: '''Patch version:''' NA
: '''Notes:''' This patch fixes issues when running the game at 60FPS but you still need to set Vblank frequency to 120 in order to play at 60FPS. You may face issues such as halved input windows, few UI elements not at normal speed, intro quotes stop half-way, projectiles speed is doubled and few graphical glitches (Jotaro not appearing during DIO's GHA).
<syntaxhighlight lang="yaml">
# JoJo's Bizarre Adventure: All Star Battle [BLUS31405]
PPU-6875682ab309df32307c5305c43bb132c4e261fa:
  - [ bef32, 0xFF5A08, 0.5 ] # Match timer rate
  - [ bef32, 0xFDB724, 0.5 ] # Animation speed
  - [ bef32, 0xFF8F70, 0.5 ]
  - [ bef32, 0xFEE2F8, 0.5 ] # UI speed
</syntaxhighlight>
 
==JoJo's Bizarre Adventure: Eyes of Heaven==
 
===60 FPS Patch===
: '''Author:''' SutandoTsukai181 on our [https://discord.me/rpcs3 Discord Server]
: '''Game versions:''' BLJS10318 (v1.05)
: '''Patch version:''' NA
: '''Notes:''' This patch fixes issues when running the game at 60FPS but you still need to set Vblank frequency to 120 in order to play at 60FPS. You may face issues such as intro quotes stopping half-way and doubled projectiles speed.
<syntaxhighlight lang="yaml">
# JoJo's Bizarre Adventure: Eyes of Heaven v1.05 [BLJS10318]
PPU-18cf9a4e8196684ed9ee816f82649561fd1bf182:
  - [ bef32, 0x0236FEF0, 0.5 ] # Match timer rate
  - [ bef32, 0x02370360, 0.5 ]
  - [ bef32, 0x023AED1C, 0.5 ]
</syntaxhighlight>
 
==Kingdom Hearts HD 1.5 ReMIX==
 
===21:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' Disc (US)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
PPU-d626d9832ed48d1ff0d8d97e53a4e23df50cfae6:
   - [ be32, 0xEB170, 0x3FAAAAAB ] # VERT+ (21.9)
  - [ be32, 0xEB16C, 0x3FC00000 ] # ZOOM+ (21.9)
</syntaxhighlight>
 
===60 FPS Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' Disc (US)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
PPU-d626d9832ed48d1ff0d8d97e53a4e23df50cfae6:
  - [ be32, 0x20D1016, 0x00000000 ] # 60FPS
</syntaxhighlight>
 
==LittleBigPlanet 2==
 
===21:9 Patch===
: '''Author:''' [https://github.com/slashiee slashiee]
: '''Game versions:''' NPUA80662 (v1.33)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# LittleBigPlanet 2 1.33 [NPUA80662]
lbp2AspectRatio_133_NPUA80662: &lbp2AspectRatio_133_NPUA80662
  - [ bef32, 0x00D9C8EC, 2.37037037 ]
 
PPU-a74423ca913fc18e46cfe926db1d48e41f9858a9: # NPUA80662
  - [ load, lbp2AspectRatio_133_NPUA80662 ]
</syntaxhighlight>
 
==Lollipop Chainsaw==
 
===Unlock FPS Patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BLUS30917
: '''Patch version:''' NA
: '''Notes:''' Max framerate with the patch is Vblank frequency/2. Without the patch the framerate will be limited at around 57 fps, the patch allows you to go past this.
<syntaxhighlight lang="yaml">
PPU-df6f6701742921b9cbb2554983bb4568aae8d659: # Lollipop Chainsaw [BLUS30917]
  - [ be32, 0x00932f2c, 0x60000000 ]
  - [ be32, 0x00932f8c, 0x60000000 ]
  - [ be32, 0x00932f90, 0x60000000 ]
</syntaxhighlight>
 
==Metal Gear Solid 2 HD==
 
===21:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' NPEB00685
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# METAL GEAR SOLID 2 HD EDITION [NPEB00685]
PPU-79c9f5ae14fe84851dca7bfe33f58bee3367730b:
  - [ be32, 0xDEE1B0, 0x3F100001 ] # INGAME 21:9 AR
</syntaxhighlight>
 
==NieR==
 
===60 FPS Patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BLUS30481, BLES00826, BLJM60223
: '''Patch version:''' NA
: '''Notes:''' Use vSync if you have a 60hz display, otherwise use the builtin frame-limiter. Game speed will be unstable if you do not have a constant 30 or 60 FPS.
<syntaxhighlight lang="yaml">
PPU-13950b2e29e05a115fe317815d3da9d2b2baee65: # BLUS30481/BLES00826
  - [ be32, 0x00f7c3b8, 0x386003e8 ] # li r3, 3e8
 
PPU-f098ee8410599c81c89f90d698340a078dc69a90: # BLJM60223
  - [ be32, 0x00f7cbcc, 0x386003e8 ] # li r3, 3e8
</syntaxhighlight>
 
==Persona 5==
 
===60 FPS Patch===
: '''Author:''' [https://github.com/TGEnigma TGEnigma]
: '''Game versions:''' Unspecified (Use your executable hash)
: '''Patch version:''' Update 4/30/2018
: '''Notes:''' Patch may accelerate some game effects by 2x.
<syntaxhighlight lang="yaml">
# Update 4/30/2018: Fix various timings, incl. battle, fix voice cutoff during cutscenes
p5_60FPS: &p5_60FPS
  - [ be32, 0x00010268, 0x9061009C ] # set update rate to 60 -> r3, 0xE0+var_44(r1)
  - [ be32, 0x008FC864, 0x60000000 ] # nop cellGcmSetSecondVFrequency
  - [ bef32, 0x00012484, 0.01666667 ]
  - [ bef32, 0x00045678, 0.01666667 ]
  - [ bef32, 0x000616F0, 0.01666667 ]
  - [ bef32, 0x00073F20, 0.01666667 ]
#  - [ bef32, 0x000753A0, 0.01666667 ] Doubles camera speed
  - [ bef32, 0x00077E54, 0.01666667 ]
  - [ bef32, 0x00078A70, 0.01666667 ]
  - [ bef32, 0x0007A238, 0.01666667 ]
  - [ bef32, 0x00081864, 0.01666667 ]
  - [ bef32, 0x000885C8, 0.01666667 ]
  - [ bef32, 0x0008C550, 0.01666667 ]
  - [ bef32, 0x0008D6D0, 0.01666667 ]
  - [ bef32, 0x000D058C, 0.01666667 ]
  - [ bef32, 0x000D0B4C, 0.01666667 ]
  - [ bef32, 0x000E4754, 0.01666667 ]
  - [ bef32, 0x000E50F0, 0.01666667 ]
  - [ bef32, 0x000E8190, 0.01666667 ]
  - [ bef32, 0x000F8B78, 0.01666667 ]
  - [ bef32, 0x00101CE8, 0.01666667 ]
  - [ bef32, 0x001E7344, 0.01666667 ]
  - [ bef32, 0x001EB0D4, 0.01666667 ]
  - [ bef32, 0x001EB328, 0.01666667 ]
  - [ bef32, 0x001EB814, 0.01666667 ]
  - [ bef32, 0x001EB940, 0.01666667 ]
  - [ bef32, 0x001EBA04, 0.01666667 ]
  - [ bef32, 0x001EBBA0, 0.01666667 ]
  - [ bef32, 0x001EBCD0, 0.01666667 ]
  - [ bef32, 0x001ECCA0, 0.01666667 ]
  - [ bef32, 0x00234C64, 0.01666667 ]
  - [ bef32, 0x0023F4BC, 0.01666667 ]
  - [ bef32, 0x002400BC, 0.01666667 ]
  - [ bef32, 0x00240BB0, 0.01666667 ]
  - [ bef32, 0x0029231C, 0.01666667 ]
  - [ bef32, 0x00294A70, 0.01666667 ]
  - [ bef32, 0x002952F8, 0.01666667 ]
#  - [ bef32, 0x002B027C, 0.01666667 ] Makes it impossible to run < 60FPS
  - [ bef32, 0x002B0688, 0.01666667 ]
  - [ bef32, 0x002B6154, 0.01666667 ]
  - [ bef32, 0x002B71F8, 0.01666667 ]
  - [ bef32, 0x002B82C8, 0.01666667 ]
  - [ bef32, 0x002B98F8, 0.01666667 ]
  - [ bef32, 0x002B9F8C, 0.01666667 ]
  - [ bef32, 0x002BA614, 0.01666667 ]
  - [ bef32, 0x002BC84C, 0.01666667 ]
  - [ bef32, 0x002BCD2C, 0.01666667 ]
  - [ bef32, 0x002C550C, 0.01666667 ]
  - [ bef32, 0x002D1328, 0.01666667 ]
#  - [ bef32, 0x002D230C, 0.01666667 ] Doubles movement speed
  - [ bef32, 0x002D2DDC, 0.01666667 ]
  - [ bef32, 0x002D8A10, 0.01666667 ]
  - [ bef32, 0x002D8A18, 0.01666667 ]
  - [ bef32, 0x002DA46C, 0.01666667 ]
  - [ bef32, 0x002FBB00, 0.01666667 ]
  - [ bef32, 0x0030E258, 0.01666667 ]
  - [ bef32, 0x003181D4, 0.01666667 ]
  - [ bef32, 0x0031CE24, 0.01666667 ]
  - [ bef32, 0x0031DBE0, 0.01666667 ]
  - [ bef32, 0x0033DBD0, 0.01666667 ]
  - [ bef32, 0x00358664, 0.01666667 ]
  - [ bef32, 0x00359020, 0.01666667 ]
  - [ bef32, 0x0035AD10, 0.01666667 ]
  - [ bef32, 0x00364A98, 0.01666667 ]
  - [ bef32, 0x0037429C, 0.01666667 ]
  - [ bef32, 0x00376E7C, 0.01666667 ]
  - [ bef32, 0x00379B08, 0.01666667 ]
  - [ bef32, 0x0037AAAC, 0.01666667 ]
  - [ bef32, 0x0037CF54, 0.01666667 ]
  - [ bef32, 0x0037DB7C, 0.01666667 ]
  - [ bef32, 0x003803F4, 0.01666667 ]
  - [ bef32, 0x00387A80, 0.01666667 ]
  - [ bef32, 0x00388684, 0.01666667 ]
  - [ bef32, 0x003ACBC0, 0.01666667 ]
  - [ bef32, 0x003BDDD0, 0.01666667 ]
  - [ bef32, 0x003E944C, 0.01666667 ]
  - [ bef32, 0x003F35EC, 0.01666667 ]
  - [ bef32, 0x003F6FF4, 0.01666667 ]
  - [ bef32, 0x0058CE18, 0.01666667 ]
  - [ bef32, 0x0058DE64, 0.01666667 ]
  - [ bef32, 0x0058E82C, 0.01666667 ]
  - [ bef32, 0x0058E958, 0.01666667 ]
  - [ bef32, 0x0058F47C, 0.01666667 ]
  - [ bef32, 0x0058FA00, 0.01666667 ]
  - [ bef32, 0x0058FAB4, 0.01666667 ]
  - [ bef32, 0x0058FBE4, 0.01666667 ]
  - [ bef32, 0x0058FD2C, 0.01666667 ]
  - [ bef32, 0x0058FE6C, 0.01666667 ]
  - [ bef32, 0x00590A04, 0.01666667 ]
  - [ bef32, 0x005B6914, 0.01666667 ]
  - [ bef32, 0x005F1C6C, 0.01666667 ]
  - [ bef32, 0x0062076C, 0.01666667 ] # battle related stuff
  - [ bef32, 0x007072BC, 0.01666667 ]
  - [ bef32, 0x00722D7C, 0.01666667 ]
  - [ bef32, 0x0073C840, 0.01666667 ]
  - [ bef32, 0x00772E50, 0.01666667 ]
  - [ bef32, 0x0087B338, 0.01666667 ]
  - [ bef32, 0x00B10110, 0.01666667 ]
  - [ bef32, 0x00B6AA14, 0.01666667 ]
  - [ bef32, 0x00B6AA38, 0.01666667 ]
  - [ bef32, 0x00B70B48, 0.01666667 ]
  - [ bef32, 0x00B70BC8, 0.01666667 ]
  - [ bef32, 0x00B71CF4, 0.01666667 ]
  - [ bef32, 0x00B72F38, 0.01666667 ]
  - [ bef32, 0x00CFF46C, 0.01666667 ]
  - [ bef32, 0x00061700, 0.1666667 ]
  - [ bef32, 0x00069AA4, 0.1666667 ]
  - [ bef32, 0x0007A1EC, 0.1666667 ]
  - [ bef32, 0x00081880, 0.1666667 ]
  - [ bef32, 0x000C8258, 0.1666667 ]
  - [ bef32, 0x000C991C, 0.1666667 ]
  - [ bef32, 0x00101CCC, 0.1666667 ]
  - [ bef32, 0x001E2C44, 0.1666667 ]
  - [ bef32, 0x001E61E8, 0.1666667 ]
  - [ bef32, 0x001E7338, 0.1666667 ]
  - [ bef32, 0x00250C50, 0.1666667 ]
  - [ bef32, 0x00256B20, 0.1666667 ]
  - [ bef32, 0x00292100, 0.1666667 ]
  - [ bef32, 0x00294A60, 0.1666667 ]
  - [ bef32, 0x002952E4, 0.1666667 ]
  - [ bef32, 0x0029FD98, 0.1666667 ]
  - [ bef32, 0x002A1BB8, 0.1666667 ]
  - [ bef32, 0x002A41D0, 0.1666667 ]
  - [ bef32, 0x002A6124, 0.1666667 ]
  - [ bef32, 0x002B4FF0, 0.1666667 ]
  - [ bef32, 0x002B60DC, 0.1666667 ]
  - [ bef32, 0x002B7174, 0.1666667 ]
  - [ bef32, 0x002B82F4, 0.1666667 ]
  - [ bef32, 0x002B8E74, 0.1666667 ]
  - [ bef32, 0x002BA600, 0.1666667 ]
  - [ bef32, 0x002BAB30, 0.1666667 ]
  - [ bef32, 0x002BB4E0, 0.1666667 ]
  - [ bef32, 0x002BB808, 0.1666667 ]
  - [ bef32, 0x002BC368, 0.1666667 ]
  - [ bef32, 0x002BC844, 0.1666667 ]
  - [ bef32, 0x002BD414, 0.1666667 ]
  - [ bef32, 0x002C4F54, 0.1666667 ]
  - [ bef32, 0x002C4FF0, 0.1666667 ]
  - [ bef32, 0x002C69E4, 0.1666667 ]
  - [ bef32, 0x002D4378, 0.1666667 ]
  - [ bef32, 0x002DD968, 0.1666667 ]
  - [ bef32, 0x002DE538, 0.1666667 ]
  - [ bef32, 0x002DEA04, 0.1666667 ]
  - [ bef32, 0x0030D7A0, 0.1666667 ]
  - [ bef32, 0x0030E6BC, 0.1666667 ]
  - [ bef32, 0x003181B8, 0.1666667 ]
  - [ bef32, 0x0031AFE0, 0.1666667 ]
  - [ bef32, 0x0031CE38, 0.1666667 ]
  - [ bef32, 0x0031DBF0, 0.1666667 ]
  - [ bef32, 0x0031EC74, 0.1666667 ]
  - [ bef32, 0x00322FB4, 0.1666667 ]
  - [ bef32, 0x00356560, 0.1666667 ]
  - [ bef32, 0x003586BC, 0.1666667 ]
  - [ bef32, 0x00358F90, 0.1666667 ]
  - [ bef32, 0x0035A380, 0.1666667 ]
  - [ bef32, 0x0035AA3C, 0.1666667 ]
  - [ bef32, 0x00364A9C, 0.1666667 ]
  - [ bef32, 0x003688C8, 0.1666667 ]
  - [ bef32, 0x00368A88, 0.1666667 ]
  - [ bef32, 0x00368E30, 0.1666667 ]
  - [ bef32, 0x00376FD0, 0.1666667 ]
  - [ bef32, 0x00377538, 0.1666667 ]
  - [ bef32, 0x00377CD8, 0.1666667 ]
  - [ bef32, 0x0037C2B0, 0.1666667 ]
  - [ bef32, 0x0037D310, 0.1666667 ]
  - [ bef32, 0x0037D418, 0.1666667 ]
  - [ bef32, 0x0037D5B4, 0.1666667 ]
  - [ bef32, 0x0037DD08, 0.1666667 ]
  - [ bef32, 0x0037DE10, 0.1666667 ]
  - [ bef32, 0x0037DF78, 0.1666667 ]
  - [ bef32, 0x00382F38, 0.1666667 ]
  - [ bef32, 0x003845F0, 0.1666667 ]
  - [ bef32, 0x00387A6C, 0.1666667 ]
  - [ bef32, 0x00398208, 0.1666667 ]
  - [ bef32, 0x00398460, 0.1666667 ]
  - [ bef32, 0x003999F8, 0.1666667 ]
  - [ bef32, 0x003A7C64, 0.1666667 ]
  - [ bef32, 0x003AA418, 0.1666667 ]
  - [ bef32, 0x003AE0E4, 0.1666667 ]
  - [ bef32, 0x003AE3A0, 0.1666667 ]
  - [ bef32, 0x003B25D8, 0.1666667 ]
  - [ bef32, 0x003BC448, 0.1666667 ]
  - [ bef32, 0x003C58C0, 0.1666667 ]
  - [ bef32, 0x003C67B0, 0.1666667 ]
  - [ bef32, 0x003C6D6C, 0.1666667 ]
  - [ bef32, 0x003EBC20, 0.1666667 ]
  - [ bef32, 0x003EE5F0, 0.1666667 ]
  - [ bef32, 0x003F1FE0, 0.1666667 ]
  - [ bef32, 0x003F6FC0, 0.1666667 ]
  - [ bef32, 0x004EB808, 0.1666667 ]
  - [ bef32, 0x0055251C, 0.1666667 ]
  - [ bef32, 0x0055EC48, 0.1666667 ]
  - [ bef32, 0x0055F4A8, 0.1666667 ]
  - [ bef32, 0x0057DC08, 0.1666667 ]
  - [ bef32, 0x0057E498, 0.1666667 ]
  - [ bef32, 0x005C5364, 0.1666667 ]
  - [ bef32, 0x00620714, 0.1666667 ]
  - [ bef32, 0x00635CB4, 0.1666667 ]
  - [ bef32, 0x00642B98, 0.1666667 ]
  - [ bef32, 0x00654EE8, 0.1666667 ]
  - [ bef32, 0x00662B04, 0.1666667 ]
  - [ bef32, 0x006AFF98, 0.1666667 ]
  - [ bef32, 0x006CAA44, 0.1666667 ]
  - [ bef32, 0x006E0224, 0.1666667 ]
  - [ bef32, 0x006E31A0, 0.1666667 ]
  - [ bef32, 0x006FCD3C, 0.1666667 ]
  - [ bef32, 0x00772E54, 0.1666667 ]
  - [ bef32, 0x00797508, 0.1666667 ]
  - [ bef32, 0x00B52E3C, 0.1666667 ]
  - [ bef32, 0x00B6AD00, 0.1666667 ]
  - [ bef32, 0x00B6B71C, 0.1666667 ]
  - [ bef32, 0x00B6E478, 0.1666667 ]
  - [ bef32, 0x00B6E880, 0.1666667 ]
  - [ bef32, 0x00B6E8B8, 0.1666667 ]
  - [ bef32, 0x00B6E8F0, 0.1666667 ]
  - [ bef32, 0x00B6E928, 0.1666667 ]
  - [ bef32, 0x00B6E960, 0.1666667 ]
  - [ bef32, 0x00B6E998, 0.1666667 ]
  - [ bef32, 0x00B6E9D0, 0.1666667 ]
  - [ bef32, 0x00B6EA08, 0.1666667 ]
  - [ bef32, 0x00B6EA40, 0.1666667 ]
  - [ bef32, 0x00B6EA78, 0.1666667 ]
  - [ bef32, 0x00B6EAB0, 0.1666667 ]
  - [ bef32, 0x00B6EAE8, 0.1666667 ]
  - [ bef32, 0x00B6EB20, 0.1666667 ]
  - [ bef32, 0x00B6EB58, 0.1666667 ]
  - [ bef32, 0x00B6EB90, 0.1666667 ]
  - [ bef32, 0x00B6EBC8, 0.1666667 ]
  - [ bef32, 0x00B6EC00, 0.1666667 ]
  - [ bef32, 0x00B6EC38, 0.1666667 ]
  - [ bef32, 0x00B6EC70, 0.1666667 ]
  - [ bef32, 0x00B6ECA8, 0.1666667 ]
  - [ bef32, 0x00B70A54, 0.1666667 ]
  - [ bef32, 0x00B70AF0, 0.1666667 ]
  - [ bef32, 0x00B70AF8, 0.1666667 ]
  - [ bef32, 0x00B70B00, 0.1666667 ]
  - [ bef32, 0x00B70B08, 0.1666667 ]
  - [ bef32, 0x00B70B10, 0.1666667 ]
  - [ bef32, 0x00B70B20, 0.1666667 ]
  - [ bef32, 0x00B70B78, 0.1666667 ]
  - [ bef32, 0x00B70B88, 0.1666667 ]
  - [ bef32, 0x00B70BB4, 0.1666667 ]
  - [ bef32, 0x00B70BC4, 0.1666667 ]
  - [ bef32, 0x00B70F60, 0.1666667 ]
  - [ bef32, 0x00B71BAC, 0.1666667 ]
  - [ bef32, 0x00B71BBC, 0.1666667 ]
  - [ bef32, 0x00B9BD30, 0.1666667 ]
  - [ bef32, 0x00CF96AC, 0.1666667 ]
  - [ bef32, 0x00CFA1E8, 0.1666667 ]
  - [ bef32, 0x00CFA20C, 0.1666667 ]
  - [ bef32, 0x00CFB210, 0.1666667 ]
  - [ bef32, 0x00CFB778, 0.1666667 ]
  - [ bef32, 0x00CFBC30, 0.1666667 ]
  - [ bef32, 0x00CFBCA8, 0.1666667 ]
  - [ bef32, 0x00CFBFD4, 0.1666667 ]
  - [ bef32, 0x00CFC0A8, 0.1666667 ]
  - [ bef32, 0x00CFF3CC, 0.1666667 ]
  - [ bef32, 0x00CFF3D4, 0.1666667 ]
  - [ bef32, 0x00CFF470, 0.1666667 ]
  - [ bef32, 0x00CFF478, 0.1666667 ]
  - [ bef32, 0x00CFF480, 0.1666667 ]
  - [ bef32, 0x00D06840, 0.1666667 ]
  - [ bef32, 0x00D06848, 0.1666667 ]
  - [ be32, 0x000FB71C, 0x3C603C88 ]
  - [ be32, 0x00109B14, 0x3C603C88 ]
  - [ be32, 0x0023FBDC, 0x3CA03C88 ]
  - [ be32, 0x00240620, 0x3CA03C88 ]
  - [ be32, 0x00241258, 0x3C803C88 ]
  - [ be32, 0x003CA4BC, 0x3C603C88 ]
  - [ be32, 0x0087B448, 0x3C603C88 ]
  - [ be32, 0x00589358, 0x60000000 ] # Fix cutscene voice cutoff
 
# Replace the PPU hash by the one from your executable
PPU-b8c34f774adb367761706a7f685d4f8d9d355426:
  - [ load, p5_60FPS ]
</syntaxhighlight>
 
===Disable Blur Filter===
: '''Author:''' [https://github.com/TGEnigma TGEnigma], [https://github.com/ruipin ruipin], [https://github.com/kd-11 kd-11]
: '''Game versions:''' Unspecified (Use your executable hash)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
p5_DisableBlur: &p5_DisableBlur
  - [ be32, 0x00FEE27A, 0x9E001700 ]
  - [ be32, 0x00FEE27E, 0xC801001D ]
  - [ be32, 0x00FEE282, 0x00000000 ]
  - [ be32, 0x00FEE286, 0x00000000 ]
  - [ be32, 0x00FEE28A, 0x1E810100 ]
  - [ be32, 0x00FEE28E, 0xC800001D ]
  - [ be32, 0x00FEE292, 0x00000000 ]
  - [ be32, 0x00FEE296, 0x00000000 ]
 
# Replace the PPU hash by the one from your executable
PPU-d0b4d4ba47cab3d5d8328ade1af75f0ae4861488:
  - [ load, p5_DisableBlur ]
</syntaxhighlight>
 
===Disable Normal Distortion Filter (<=99% Alert & Velvet Room)===
: '''Author:''' [https://github.com/TGEnigma TGEnigma], [https://github.com/ruipin ruipin], [https://github.com/kd-11 kd-11]
: '''Game versions:''' Unspecified (Use your executable hash)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
p5_DisableDistortion: &p5_DisableDistortion
  - [ be32, 0x00FE2E28, 0x9E001700 ]
  - [ be32, 0x00FE2E2C, 0xC801001D ]
  - [ be32, 0x00FE2E30, 0x00000000 ]
  - [ be32, 0x00FE2E34, 0x00000000 ]
  - [ be32, 0x00FE2E38, 0x1E810100 ]
  - [ be32, 0x00FE2E3C, 0xC800001D ]
  - [ be32, 0x00FE2E40, 0x00000000 ]
  - [ be32, 0x00FE2E44, 0x00000000 ]
 
# Replace the PPU hash by the one from your executable
PPU-d0b4d4ba47cab3d5d8328ade1af75f0ae4861488:
  - [ load, p5_DisableDistortion ]
</syntaxhighlight>
 
===Disable Angery Distortion Filter (100% Alert)===
: '''Author:''' [https://github.com/TGEnigma TGEnigma], [https://github.com/ruipin ruipin], [https://github.com/kd-11 kd-11]
: '''Game versions:''' Unspecified (Use your executable hash)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
p5_Disable100PctDistortion: &p5_Disable100PctDistortion
  - [ be32, 0x00FE31CC, 0x9E001700 ]
  - [ be32, 0x00FE31D0, 0xC801001D ]
  - [ be32, 0x00FE31D4, 0x00000000 ]
  - [ be32, 0x00FE31D8, 0x00000000 ]
  - [ be32, 0x00FE31DC, 0x1E810100 ]
  - [ be32, 0x00FE31E0, 0xC800001D ]
  - [ be32, 0x00FE31E4, 0x00000000 ]
  - [ be32, 0x00FE31E8, 0x00000000 ]
 
# Replace the PPU hash by the one from your executable
PPU-d0b4d4ba47cab3d5d8328ade1af75f0ae4861488:
  - [ load, p5_Disable100PctDistortion ]
</syntaxhighlight>
 
===Disable HUD Elements===
: '''Author:''' [https://github.com/TGEnigma TGEnigma]
: '''Game versions:''' Unspecified (Use your executable hash)
: '''Patch version:''' NA
: '''Notes:''' Elements can disabled separately by adding/removing their respective lines from the patch.
<syntaxhighlight lang="yaml">
# Replace the PPU hash by the one from your executable
PPU-d0b4d4ba47cab3d5d8328ade1af75f0ae4861488:
  - [ be32, 0xDE4EC, 0x60000000 ] # mission list
   - [ be32, 0xE83F4, 0x60000000 ] # place pict
  - [ be32, 0xE5920, 0x60000000 ] # check
  - [ be32, 0x69CC4, 0x38600001 ] # alert
  - [ be32, 0x5F678, 0x60000000 ] # date
  - [ be32, 0x38A0D0, 0x4838A186 ] # misc field hud
  - [ be32, 0x28FBA0, 0x38600000 ] # party panel
  - [ be32, 0x28FBA4, 0x4E800020 ] # party panel
  - [ be32, 0xD6B48, 0x60000000 ] # mini map
  - [ be32, 0xD6490, 0x60000000 ] # mini map
</syntaxhighlight>
 
==Red Dead Redemption ==
 
===21:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' NPEB00833
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# Red Dead Redemption [NPEB00833]
PPU-8a18a0314cade28526874128b253acd98863b83d:
  - [ be32, 0x474F24, 0x4017B9AA ] # 21.9 Aspect Ratio
  - [ be32, 0x954B8, 0x4017B9AA ] # 21.9 HUD fix for 21.9 AR
</syntaxhighlight>
 
==Sengoku Basara 4 Sumeragi==
 
===Unlock FPS Patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BLJM61248 (v1.02)
: '''Patch version:''' NA
: '''Notes:''' Locked to 60FPS by default, totally kills the frame limiter, doesn't need any special settings.
<syntaxhighlight lang="yaml">
PPU-533d9f764374a5174b4e3c2834e742c4184d7211: # Sengoku Basara 4 Sumeragi [BLJM61248] v1.02
  - [ be32, 0x00e23160, 0x3860001e ] # li  r3, 1e
  - [ be32, 0x00e23178, 0x60000000 ] # nop
</syntaxhighlight>
 
==Sonic Adventure==
 
===16:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' NPEB00304
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# Sonic Adventure [NPEB00304] Fullscreen 16:9 rendering
PPU-5fc2b4ea8ae9cd7a4247f28dc6af65ca1a6a9fa4:
  - [ be32, 0x05043F18, 0x3F400000 ]
  - [ be32, 0x00909260, 0x009B1604 ]
  - [ be32, 0x0090E5B0, 0x40A00000 ]
  - [ be32, 0x00909270, 0x40400000 ]
  - [ be32, 0x00909274, 0xC0400000 ]
  - [ be32, 0x00909278, 0xBF400000 ]
</syntaxhighlight>
 
==Space Channel 5 Part 2==
 
===21:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' NPUB30353
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# Space Channel 5 Part 2 [NPUB30353]
PPU-2f6778a8e97be84833e47ef273ff10cc2bd6809e:
  - [ be32, 0x5839D4, 0x3F99999A ] # ZOOM+ (21.9)
  - [ be32, 0x57EF84, 0x3F400000 ] # VERT+ (21.9)
</syntaxhighlight>
 
==Unreal Tournament 3==
 
===Unlock FPS Patch===
: '''Author:''' [https://github.com/Whatcookie Whatcookie]
: '''Game versions:''' BLES00200 (v2.00)
: '''Patch version:''' NA
: '''Notes:''' Max framerate with the patch is Vblank frequency/2. Without the patch the framerate will be limited at around 57 fps, the patch allows you to go past this.
<syntaxhighlight lang="yaml">
PPU-d4452078fad5d1d71a6ccb30d8349259749f38e7: # Unreal Tournament 3 [BLES00200] v2.00
  - [ be32, 0x00010c70, 0x60000000 ]
  - [ be32, 0x00010cc8, 0x60000000 ]
  - [ be32, 0x003b79e8, 0x60000000 ]
  - [ be32, 0x003b7a4c, 0x60000000 ]
  - [ be32, 0x003b7a58, 0x60000000 ]
</syntaxhighlight>
 
==WipEout HD==
 
===21:9 Patch===
: '''Author:''' [https://github.com/Esppiral Esppiral]
: '''Game versions:''' NPEA00057 (v2.51)
: '''Patch version:''' NA
: '''Notes:''' NA
<syntaxhighlight lang="yaml">
# WipEout HD [NPEA00057] v2.51
PPU-0e95b58ae209a37060f3388434b59bcce8a708ab:
  - [ be32, 0x7E4190, 0x4017B9AA ] # 21:9 Aspect Ratio
  - [ be32, 0x7EB4A4, 0x4017B9AA ] # Render Fix
</syntaxhighlight>

Latest revision as of 01:42, 19 August 2023

This page aims to provide all information relating to RPCS3's patch system.

  • The Main subpage lists the current PPU patches available for RPCS3's game patching system.
  • The SPU subpage lists the general-use SPU patches available for RPCS3's game patching system.
  • The Canary subpage lists patches that are severely buggy, in-development, or circumvent emulation bugs. These patches are not shipped with RPCS3's patch download functionality.

Using game patches

The simplest way to enable patches in RPCS3 is as follows:

  1. Boot RPCS3
  2. Select Manage > Game Patches to access the Patch Manager.
  3. Click the Download latest patches button and the emulator will automatically fetch the latest version of available patches.
  4. Navigate to the patch you wish to enable and tick the checkbox corresponding to the patch. You may want to tick the check box Only show owned games to make navigation simpler.
  5. Click Save and boot the game.

Manually adding custom patches

There are many patches that aren't shipped with the automatic download facility due to them being canary patches, privately-shared patches, or otherwise missing from the Wiki. These patches can be added to RPCS3 in the following manner:

  1. Open your preferred text editor (e.g: VSCode, Sublime, Notepad++).
  2. Add the text Version: 1.2 as the first line. Do not paste anything else on this line. Hit Enter and move to the next line.
  3. Paste your custom patch from the Canary page or any other source. Ensure that the formatting for these patches are perfect, as the emulator will ignore the patch if it detects any formatting deficiencies.
  4. Click Save and name the file imported_patch.yml. Do NOT change the capitalization or use any other name, RPCS3 will not be able to apply the patches. On Windows, select All files (*.*) as the file type when saving.
  5. Save the file in relevant location:
    Windows:
    <RPCS3 folder>\patches\
    Linux:
    ~/.config/rpcs3/patches/
    MacOS:
    ~/Library/Application Support/rpcs3/patches/
    If you're unable to locate this directory then copy/paste the path shown here into Spotlight and hit Enter.
  6. Navigate to the Patch Manager as mentioned before and tick the checkbox corresponding to the patch you wish to apply.

How to identify the PPU/SPU executable hash

This section is meant for adept users who wish to apply a patch to a different game version. Do not try to edit any of the patches unless you know what you are doing. Please note that you will also have to edit the Title ID and game version information for the modified patch to be applied by the emulator.

To identify the executable hash, follow the instructions mentioned here:

  1. Boot the game for a minute and then close the emulator.
  2. Open RPCS3.log (or just RPCS3 with the Notepad icon).
  3. Search for the string PPU executable hash:.
  4. Copy the value that looks like PPU-b8c34f774adb367761706a7f685d4f8d9d355426. This is the PPU hash of your game.
  5. Open patch.yml with any text editor (e.g: VSCode, Sublime, Notepad++).
  6. Find the existing patch that you wish to modify and copy it to imported_patch.yml. Ensure that you also copy over any anchors that the patch relies on.
  7. Find the existing PPU hash in the patch and replace the same with the PPU hash you obtained in Step 4.

Please note that some games may have multiple PPU executable hashes, and it is up to you to figure out the correct hash to be copied. Also, the same method can be used to extract SPU executable hashes by searching for SPU executable hash: in Step 3.

Patch format

Below are the various types of patch structures that can be used in RPCS3. It starts with the basic format and then showcases various other complex structures that can be used. In case of any doubts, you can refer to over 100 patches present in our patch repository for guidance.

Template syntax

{{patch
|type    = <!-- PPU, SPU, Canary -->
|version = 1.2
|content =
<!-- Enter actual patch here (see below for format). Remember to delete this comment. -->
}}

Parameters

The following are the valid parameters of the Patch structure (required entries are in bold):

PPU/SPU executable hash This is the 40 character unique to help identify the game's executable file. It will have the prefix PPU- or SPU-. Please find the instructions to identify the hash here.
PatchName This field needs to be replaced with the name of the patch (e.g. 60 FPS patch, Disable MLAA, Infinite Ammo, etc.).
GameName This field needs to be replaced with the name of the game (e.g. Persona 5, The Last of Us, etc.). To the extent possible, ensure that this matches to the title of game page on the wiki. Deviation on account of special editions or demos are allowed and will be reviewed on a case-to-case basis. In case of a global patch that is to be applied to all games, mention All.
GameID This field needs to be replaced with the Serial of the game (e.g. BLUS23053, NPEB54673, etc.).
GameVersion This field needs to be replaced with the version number of the game as follows:
Actual version - If you are sure of the version number of your game, mention the same (for e.g. v1.01 is to be written as 01.01).
All - If you are unsure of the version and the game has only a single known version, mention All.
Author Fill in the name of the authors of the patch.
Notes Fill in any relevant information that needs to be communicated to the user of the patches. Any special settings or drawbacks to the patches needs to be mentioned here.
Group This field is used when there are multiple patches for a game that cannot be enabled at the same time. Using the same Group for these patches will ensure that only one can be enabled at a time (for e.g. mention FPS when both 60 FPS and 120 FPS patches are available for the same game). This only applies to patches present under the same PPU/SPU executable hash.
Patch Version Fill in the version number of the patch (for e.g. v1.1 is to be written as 1.1). This version number needs to be incremented every time a significant change has been made.
Patch This field will contain the actual patch code.
Anchors This field can be used to when the same patch code is to be used for multiple patches. A unique AnchorDesc needs to be declared and then called in the Patch field of every patch that uses it. Please see an example of its use in the formats below.

Standard format

PPU-0000000000000000000000000000000000000000:
  "PatchName":
    Games:
      "GameName":
        GameID: [ GameVersion ]
    Author: 
    Notes: 
    Patch Version: 
    Patch:
      - [ Patch ]

Using anchor (for large patches)

Anchors:
  AnchorDesc: &AnchorDesc
    - [ Patch ]

PPU-0000000000000000000000000000000000000000:
  "PatchName":
    Games:
      "GameName":
        GAME00000: [ GameVersion ]
    Author: 
    Notes: 
    Patch Version: 
    Patch:
      - [ load, *AnchorDesc ]

Multiple GameIDs and Patches

PPU-0000000000000000000000000000000000000000:
  "PatchName1":
    Games:
      "GameName":
        GAME00000: [ GameVersion ]
        GAME00001: [ GameVersion ]
    Author: 
    Notes: 
    Group: 
    Patch Version: 
    Patch:
      - [ Patch ]
  "PatchName2":
    Games:
      "GameName":
        GAME00000: [ GameVersion ]
        GAME00001: [ GameVersion ]
    Author: 
    Notes: 
    Group: 
    Patch Version: 
    Patch:
      - [ Patch ]