Custom Game Patches for PlayStation 4 and PlayStation 5 Games.
Plugin system and GoldHEN Cheat Manager looks for patches by (TitleID).{format}
. (this is automatically generated from a python script using app_titleid
key when downloading/updating)
You may edit the individual file for your Title ID or edit the base file and upload it to your PS4 as (TitleID).{format}
.
export PS4_IP=192.168.1.138 # your PS4 ip address
export PS4_FTP_PORT=2121 # your PS4 ftp port (2121 via GoldHEN payload)
# sending base file as CUSA00000.xml
curl -T ExampleGame.xml ftp://$PS4_IP:$PS4_FTP_PORT/data/GoldHEN/patches/json/CUSA00000.xml
# sending CUSA00000.xml as CUSA00000.xml
curl -T CUSA00000.xml ftp://$PS4_IP:$PS4_FTP_PORT/data/GoldHEN/patches/json/CUSA00000.xml
GameName.{format}
(English names only)
ExampleGame.xml
Set base address to 0x00400000
when importing binaries for consistency with PS4 memory address. (ASLR disabled)
GameTitle.json
and be in /patches/json
.
GravityRush2.json
.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 branchSize : size of jump (min: 5) with nop padding afterOffset : Offset from first address of found address |
"aa bb ?? dd" |
<?xml version="1.0" encoding="utf-8"?>
<Patch>
<!--
This will not be used by the game patch parser.
It is only used for generating the files for distribution.
-->
<TitleID>
<ID>EXAMPLE01</ID>
<ID>EXAMPLE02</ID>
</TitleID>
<!-- `AppVer="mask"` can be used for pattern scan patches -->
<!-- `ImageBase` is only valid for PS5 patches. -->
<!-- `ImageBase` can be `0x0000000000000000`, the plugin will use relative offset -->
<Metadata Title="Example Game Title"
Name="Example Name"
Note="Example Note"
Author="Example Author"
PatchVer="1.0"
AppVer="00.34"
AppElf="eboot.bin">
<PatchList>
<!-- This is a code comment, improves code readability. -->
<!-- Code comment at end of line is also supported. -->
<Line Type="bytes" Address="0x00000000" Value="0102030405060708"/>
<Line Type="utf8" Address="0x00000000" Value="Hello World"/>
</PatchList>
</Metadata>
</Patch>