illusion's Blog
Contact Patches

Grand Theft Auto V

Game Index

Patches

For use with PS4 Cheats Manager.

Download all patch files.

Opening the file preview below may freeze your browser on mobile Chromium based browsers.

Preview the file on GitHub.

Contents of patch file (Click to Expand)
<?xml version="1.0" encoding="utf-8"?>
<Patch>
    <TitleID>
        <ID>CUSA00411</ID>
        <ID>CUSA00419</ID>
        <ID>CUSA00880</ID>
    </TitleID>
    <Metadata Title="Grand Theft Auto V"
              Name="Skip Logo Video and Legal Screens"
              Author="illusion"
              PatchVer="1.0"
              AppVer="mask"
              AppElf="eboot.bin">
        <PatchList>
            <Line Type="mask" Address="e8 ?? ?? ?? ?? 84 c0 0f 84 ?? ?? ?? ?? 48 8b 3b c6 87 9b 00 00 00 01" Value="b800000000"/>
            <Line Type="mask" Address="42 8b 3c b3 e8 ?? ?? ?? ?? 42 83 3c b3 01" Value="c60300909090909090"/>
            <Line Type="mask" Address="48 8d 05 ?? ?? ?? ?? 83 3c 98 01 0f 85 ?? ?? ?? ?? 48 8d 3d ?? ?? ?? ?? 48 8d 35 ?? ?? ?? ??" Value="48e9" Offset="+11"/>
            <Line Type="mask" Address="48 63 df 48 8d 05 ?? ?? ?? ?? 44 8b 34 98" Value="4531f690" Offset="+10"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Grand Theft Auto V"
              Name="60 FPS Unlock"
              Note="CPU Limited."
              Author="illusion"
              PatchVer="1.0"
              AppVer="mask"
              AppElf="eboot.bin">
        <PatchList>
            <Line Type="mask" Address="bf 02 00 00 00 31 f6 e8 ?? ?? ?? ?? 48 8b 3b 48 8b 07 ff 50 ?? e8 ?? ?? ?? ??" Value="bf01000000"/>
        </PatchList>
    </Metadata>
    <Metadata Title="Grand Theft Auto V"
              Name="Enable Snow in Singleplayer"
              Note="Source: https://pastebin.com/sxXqG1LB https://pastebin.com/F1QBJ0Zf"
              Author="rfoodxmodz, x3shakir"
              PatchVer="1.0"
              AppVer="mask"
              AppElf="eboot.bin">
        <PatchList>
            <!--
            // https://pastebin.com/sxXqG1LB
            // can't include C brackets in xml comments
                memcpy_p(0x096FEBC + process_base), "\x90\x90", 2);
                memcpy_p(0x096FF3E + process_base), "\x90\x90", 2);
                memcpy_p(0x096FF4C + process_base), "\x90\x90", 2);
                memcpy_p(0x096FEDB + process_base), "\xEB", 1);
                memcpy_p(0x096FF0F + process_base), "\xEB", 1);
                memcpy_p(0x096FF65 + process_base), "\x90\x90\x90\x90\x90\x90", 6);

            // https://pastebin.com/F1QBJ0Zf
            #if GAME_VERSION == 100
                memcpy((void *)(0x0789CDA + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x0789CF9 + 0x400000), "\xEB", 1);
                memcpy((void *)(0x0789D2D + 0x400000), "\xEB", 1);
                memcpy((void *)(0x0789D49 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #elif GAME_VERSION == 127
                memcpy((void *)(0x096375A + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x096377A + 0x400000), "\xEB", 1);
                memcpy((void *)(0x09637AE + 0x400000), "\xEB", 1);
                memcpy((void *)(0x09637EF + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
                memcpy((void *)(0x0963803 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #elif GAME_VERSION == 138
                memcpy((void *)(0x096A4FA + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x096A51A + 0x400000), "\xEB", 1);
                memcpy((void *)(0x096A54E + 0x400000), "\xEB", 1);
                memcpy((void *)(0x096A58F + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
                memcpy((void *)(0x096A5A3 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #elif GAME_VERSION == 146
                memcpy((void *)(0x0965C1A + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x0965C3A + 0x400000), "\xEB", 1);
                memcpy((void *)(0x0965C6E + 0x400000), "\xEB", 1);
                memcpy((void *)(0x0965CAF + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
                memcpy((void *)(0x0965CC3 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #elif GAME_VERSION == 147
                memcpy((void *)(0x0968F8A + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x0968FAA + 0x400000), "\xEB", 1);
                memcpy((void *)(0x0968FDE + 0x400000), "\xEB", 1);
                memcpy((void *)(0x096901F + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
                memcpy((void *)(0x0969033 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #elif GAME_VERSION == 148
                memcpy((void *)(0x096FEBC + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x096FEDB + 0x400000), "\xEB", 1);
                memcpy((void *)(0x096FF0F + 0x400000), "\xEB", 1);
                memcpy((void *)(0x096FF3E + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x096FF4C + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x096FF65 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #elif GAME_VERSION == 149
                memcpy((void *)(0x082C169 + 0x400000), "\x90\x90", 2);
                memcpy((void *)(0x082C188 + 0x400000), "\xEB", 1);
                memcpy((void *)(0x082C1BC + 0x400000), "\xEB", 1);
                memcpy((void *)(0x082C1E7 + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
                memcpy((void *)(0x082C1FC + 0x400000), "\x90\x90\x90\x90\x90\x90", 6);
            #endif
            -->
            <!-- Base version patterns -->
            <Line Type="mask" Address="74 ?? 39 83 e8 0c 00 00 0f 95 c1" Value="9090"/>
            <Line Type="mask" Address="74 ?? 48 8d 15 ?? ?? ?? ?? b8 01 00 00 00 2b 02 eb ?? 48" Value="eb"/>
            <Line Type="mask" Address="74 ?? b8 01 00 00 00 29 d0 eb ?? 89 d0 48 8d 15 ?? ?? ?? ?? 80 3a 00" Value="eb"/>
            <Line Type="mask" Address="0f 85 ?? ?? ?? ?? 48 63 c0 48 8d 0d ?? ?? ?? ?? 8a 04 01 84 c0" Value="909090909090"/>
            <!-- Update versions -->
            <Line Type="mask" Address="74 ?? 41 39 87 70 0e 00 00 0f 95 c3" Value="9090"/>
            <Line Type="mask" Address="74 ?? 48 8d 0d ?? ?? ?? ?? b8 01 00 00 00 2b 01 eb ?? 48 83" Value="eb"/>
            <Line Type="mask" Address="74 ?? b8 01 00 00 00 29 c8 eb ?? 89 c8 48 63 c0 48 8d 0d ?? ?? ?? ?? 44 8a 24 01" Value="eb"/>
            <Line Type="mask" Address="0f 84 ?? ?? ?? ?? bf 40 00 00 00 e8 ?? ?? ?? ?? 34 01" Value="909090909090"/>
            <Line Type="mask" Address="0f 85 ?? ?? ?? ?? 45 84 e4 0f 85 ?? ?? ?? ?? 49 8b 45 00" Value="909090909090"/>
        </PatchList>
    </Metadata>
</Patch>