ps4_cheats/README.md
2024-08-29 13:37:37 -03:00

10 KiB

PS4 Cheats and Patches Repository

Official Cheat and Patches used for shadPS4 emulator

Repository Structure

Cheats

Cheats should be organized in the CHEATS folder with the following file name format: SERIAL_VERSION.json.

Examples:

  • CUSA07023_01.03.json
  • CUSA07023_01.03_2.json
  • CUSA07023_01.03_3.json

Note: Each cheat file should be associated with a single author.

Additionally, update the CHEATS_JSON.txt file with the name of the added cheat file. The format is:

<fileName.json>=<game name>

Examples:

CUSA00265_01.95.json=Minecraft
CUSA14683_01.04_2.json=The Ascent
CUSA03617_01.12.json=Mafia III: Definitive Edition
SLES52482_01.00.json=Steel Dragon EX
CUSA16579_01.61_2.json=Cyberpunk 2077
CUSA34766_01.05.json=Granblue Fantasy Relink

Example Cheat File:

CHEATS/CUSA07023_01.03_TEST.json

{
  "name": "Sonic Mania",
  "id": "CUSA07023",
  "version": "01.03",
  "process": "eboot.bin",
  "mods": [
    {
      "name": "Infinite Rings",
      "hint": null,
      "type": "checkbox",
      "memory": [
        {
          "offset": "450759",
          "on": "C683EC000000FF",
          "off": "488983EC000000"
        },
        {
          "offset": "4A5975",
          "on": "66C783EC000000E703909090",
          "off": "8B88B4030000018BEC000000"
        }
      ]
    },
    {
      "name": "Infinite Lives",
      "hint": null,
      "type": "checkbox",
      "memory": [
        {
          "offset": "4AA374",
          "on": "909090909090",
          "off": "8983F8000000"
        }
      ]
    },
    {
      "name": "Enable Super Sonic",
      "hint": null,
      "type": "checkbox",
      "memory": [
        {
          "offset": "A4415C",
          "on": "01",
          "off": "02"
        }
      ]
    },
    {
      "name": "Disable Super Sonic",
      "hint": null,
      "type": "button",
      "memory": [
        {
          "offset": "A4415C",
          "on": "03",
          "off": "03"
        }
      ]
    },
    {
      "name": "Super Speed",
      "hint": null,
      "type": "button",
      "memory": [
        {
          "offset": "A44180",
          "on": "00000F0000400000",
          "off": "00000F0000400000"
        }
      ]
    },
    {
      "name": "All Silver Medals",
      "hint": null,
      "type": "button",
      "memory": [
        {
          "offset": "200036604",
          "on": "20",
          "off": "20"
        }
      ]
    }
  ],
  "credits": [
    "Talixme"
  ]
}

Patches

Set base address to 0x00400000 when importing binaries for consistency with PS4 memory address. (ASLR disabled)

Submission Guidelines

  • Patch must be named GameTitle.xml and be in /PATCHES.
    For example, a patch file for Gravity Rush 2 must be called GravityRush2.xml.
  • If you are making a patch for a game that already has a file, then add to it, as patches support more than one author.
  • Submitting patches:
    • No whitespace.
    • Lowercase hex for address/value hex, uppercase for Title ID.

Patch types

type Info Value (example)
byte Hex, 1 byte "0x00"
bytes16 Hex, 2 bytes "0x0000"
bytes32 Hex, 4 bytes "0x00000000"
bytes64 Hex, 8 bytes "0x0000000000000000"
bytes Hex, max size is 255 bytes string (no spaces) "####"
float32 Float, single "1.0"
float64 Float, double "1.0"
utf8 String, UTF-8* "string"
utf16 String, UTF-16* "string"
mask Pattern Scan, max size is 255 bytes string (with spaces)
Parameters:
Offset: Offset from first address of found address
"aa bb ?? dd"
mask_jump32 Pattern Scan With Branch (32 bit), max size is 255 bytes string (with spaces)
Parameters:
Target: target bytes string for branch
Size: size of jump (min: 5) with nop padding after
Offset: Offset from first address of found address
"aa bb ?? dd"
  • Note: Strings must be manually null terminated.

Example Patch File

PATCHES/ShadowoftheColossus-Orbis_TEST.xml

<?xml version="1.0"?>
<Patch>
    <TitleID>
        <ID>CUSA08804</ID>
        <ID>CUSA08809</ID>
        <ID>CUSA08034</ID>
    </TitleID>
    <Metadata Title="Shadow of the Colossus" Name="Debug Menu" Author="illusion" PatchVer="1.0" AppVer="01.00" AppElf="eboot.bin" isEnabled="false">
        <PatchList>
            <Line Type="bytes" Address="0x004244f8" Value="e9f0000000"/>
            <Line Type="bytes" Address="0x004245ed" Value="488b03"/>
            <Line Type="bytes" Address="0x004245f0" Value="483b4308"/>
            <Line Type="bytes" Address="0x004245f4" Value="c6053589dd0200"/>
            <Line Type="bytes" Address="0x004245fb" Value="e9fffeffff"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Shadow of the Colossus" Name="Skip Splash Logo + Demo Screens" Author="illusion" PatchVer="1.0" AppVer="01.00" AppElf="eboot.bin" isEnabled="true">
        <PatchList>
            <Line Type="bytes" Address="0x032fae20" Value="01"/>
            <Line Type="bytes" Address="0x008c95bc" Value="c683c000000001"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Shadow of the Colossus" Name="60 FPS" Author="illusion" PatchVer="1.0" AppVer="01.00" AppElf="eboot.bin" isEnabled="false">
        <PatchList>
            <Line Type="bytes" Address="0x01390090" Value="31c0c3"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Shadow of the Colossus" Name="Debug Menu" Author="illusion" PatchVer="1.0" AppVer="01.01" AppElf="eboot.bin" isEnabled="false">
        <PatchList>
            <Line Type="bytes" Address="0x004244f8" Value="e9f0000000"/>
            <Line Type="bytes" Address="0x004245ed" Value="488b03"/>
            <Line Type="bytes" Address="0x004245f0" Value="483b4308"/>
            <Line Type="bytes" Address="0x004245f4" Value="c6053589dd0200"/>
            <Line Type="bytes" Address="0x004245fb" Value="e9fffeffff"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Shadow of the Colossus" Name="Skip Splash Logo + Demo Screens" Author="illusion" PatchVer="1.0" AppVer="01.01" AppElf="eboot.bin" isEnabled="true">
        <PatchList>
            <Line Type="bytes" Address="0x032fae20" Value="01"/>
            <Line Type="bytes" Address="0x008c95bc" Value="c683c000000001"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Shadow of the Colossus" Name="60 FPS" Author="illusion" PatchVer="1.0" AppVer="01.01" AppElf="eboot.bin" isEnabled="false">
        <PatchList>
            <Line Type="bytes" Address="0x01390090" Value="31c0c3"/>
        </PatchList>
    </Metadata>
</Patch>

*Contains information obtained from GoldHEN_Patch_Repository

Contributing

If you would like to contribute new cheats or patches, please follow these guidelines:

  1. Add your files to the appropriate folder (cheats or patches).
  2. Update the CHEATS_JSON.txt file with the corresponding entry for new cheats.
  3. Make sure your files are formatted correctly and follow the examples provided, and have been properly tested.