illusion0001 / libhijacker-game-patch

GNU General Public License v2.0
103 stars 10 forks source link

libhijacker

Project name is temporary

This repo will likely be short lived. I got tired of waiting and wanted to upload it somewhere. Proper credits will be attributed later.

Fork with support for game patching. check out the original project by astrelsky. (more for developers).

Supported Firmwares

Features Not Available in Scriptless and Rest Mode Build

Quick Setup

nc -q0 (ps5 ip) 9020 bin/spawner.elf

Button Combos

Home Screen

Supported Titles

PS4

PS5

Supported Titles (120Hz)

Games Enabled by default Notes
Battlefield 4 v1.24 Yes -
Bloodborne v1.09 No (Hold Cross Button during Launch) Does not reach stable 120FPS.
Burnout Paradise Remastered v1.03 No (Hold Cross Button during Launch) Has game breaking vehicle steering issues.
Gravity Rush Remastered v1.00 Yes -
Gravity Rush 2 v1.11 No (Hold Cross Button during Launch) Does not reach stable 120FPS
Fast cameras, broken in-game cinematics.
Demon Souls v1.00 No (Hold Cross Button during Launch) Does not reach stable 120FPS
Half speed in Cinematic Mode.
Use performance mode in Graphics Options for proper game speed.
Doom (2016) v1.12 Yes -
Mirror's Edge Catalyst v1.02 Yes -
NieR Replicant v1.03 Yes -
The Last Guardian v1.03 No (Hold Cross Button during Launch) Does not reach stable 120FPS.
The Last of Us Remastered v1.11 Yes Further testing required.
The Last of Us Part 2 v1.09 No (Hold Cross Button during Launch) Does not reach stable 120FPS.
Broken Camera in some scripted scenes.
Graphical Artifacts in 1080p mode.
Shadow of the Colossus v1.00/v1.01 Yes (Use Performance Mode in Game Menu) -
Uncharted: The Nathan Drake Collection v1.00/v1.02 Yes -
Killzone: Shadow Fall v1.81 No (Hold Cross Button during Launch) Does not reach stable 120FPS.

XML Config

Version 1.152 now supports XML loading. Files are located in /data/ after first load of payload.

game_patch_cfg.xml

Contains keys to toggle hardcoded patches.

<cfg>
    <!-- Supported key value: `true`, `false`, `1`, `0` -->
    <GravityRush1_English>0</GravityRush1_English>
    <GravityRush2_60FPS>0</GravityRush2_60FPS>
    <Bloodborne_60FPS>1</Bloodborne_60FPS>
    <Bloodborne_MotionBlur>0</Bloodborne_MotionBlur>
    <Bloodborne_ChromaticAberration>0</Bloodborne_ChromaticAberration>
    <Bloodborne_DebugCamera>0</Bloodborne_DebugCamera>
    <Bloodborne_ColorBorderDiag>0</Bloodborne_ColorBorderDiag>
    <Bloodborne_Vsync>0</Bloodborne_Vsync>
    <Bloodborne_1280x720>0</Bloodborne_1280x720>
    <SOTC_DebugMenu>0</SOTC_DebugMenu>
    <TheOrder1886_60FPS>1</TheOrder1886_60FPS>
    <TheOrder1886_16_9>0</TheOrder1886_16_9>
    <Uncharted_4_Remaster_DebugMenu>0</Uncharted_4_Remaster_DebugMenu>
    <Uncharted_TheLostLegacy_Remaster_DebugMenu>0</Uncharted_TheLostLegacy_Remaster_DebugMenu>
    <DemonSouls_UnlockFPS>0</DemonSouls_UnlockFPS>
    <DemonSouls_DebugMenu>0</DemonSouls_DebugMenu>
    <DemonSouls104_DebugMenu>0</DemonSouls104_DebugMenu>
    <Driveclub_60FPS>1</Driveclub_60FPS>
    <Driveclub_UnlockAllCarsBikes>1</Driveclub_UnlockAllCarsBikes>
    <TheLastGurdian_60FPS>0</TheLastGurdian_60FPS>
    <TheLastOfUs2_109_Force1080p_in_120Hz>0</TheLastOfUs2_109_Force1080p_in_120Hz>
    <BurnoutParadise_103_120hz>0</BurnoutParadise_103_120hz>
    <BurnoutParadise_103_1920x1080>1</BurnoutParadise_103_1920x1080>
    <BurnoutParadise_103_SkipLogos>1</BurnoutParadise_103_SkipLogos>
    <BurnoutParadise_103_SkipIntroVideo>0</BurnoutParadise_103_SkipIntroVideo>
    <UCC_DebugMenu>0</UCC_DebugMenu>
</cfg>

game_patch_fliprate_list.xml

This file contains list of Title IDs that is known to work with Universal Fliprate Unlock.

Example:

<FliprateList>
    <TitleID>
        <!-- Unlock FPS for `CUSA00001`+`CUSA00002` (PS4 Titles) -->
        <ID>CUSA00001</ID>
        <ID>CUSA00002</ID>
        <!-- Unlock FPS for `PPSA00001`+`PPSA00002` (PS5 Titles) -->
        <ID>PPSA00001</ID>
        <ID>PPSA00002</ID>
    </TitleID>
</FliprateList>

Known Issues (specific to this fork)

Building

  1. Install Clang + LLVM 14+.
  2. Build and install PS5SDK (firmware does not matter).
  3. Clone this repo with recursive submodules.
  4. Generate libary stubs using stubber which can be found in /stubber folder.
    • Build main.go: go build
    • Dump /system/lib/common/ folder from your console in decrypted prx files using the PS5-SELF-Decrypter payload from SpecterDev.
    • Or use my pre generated stubs.
    • Run the stubber. ./main aerolib.csv (PS5 System Folder) (Output Folder)
    • Copy .so files to this repository folder into lib. (Create one if it does not exist)
  5. Build the hijacker
# this assume you have llvm 16
cmake -G Ninja -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 -DCMAKE_TOOLCHAIN_FILE=$PS5SDK/cmake/toolchain-ps5.cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 .
ninja
  1. Load it on your console using send_elf.py. you will see kernel log output on the first instance where you originally send the spawner payload.
    • python3 send_elf.py (PS5 IP)

Special Thanks

To all testers that signed up for game patch beta test!