ppfinjector is a tool for adding on-the-fly PPF patching ability to the
BizHawk emulators. It is developed
specifically for loading PPFs generated by the
SotN-Randomizer.
It may work with other 64-bit build Playstation (PSX) emulators on Windows. But only BizHawk has been tested.
Currently, only .bin file of the cue/bin format.
-
Rename the PPF patch you want to load to match the bin file you want to patch. If your bin file is call
foo.bin, rename your PPF tofoo.ppf. -
Place the PPF file next to the bin file.
-
Launch
emulauncher.exe. -
Select the emulator you want to use.
-
Play the game.
-
Put the PPF file you want to use next to the bin file you want to patch.
-
Create a text file with the
.piconfextention next to the bin file you want to patch and rename it to match the bin file. If your bin file is calledfoo.binthe patch config file should be calledfoo.piconf. You may need to disableHide extensions for known file typesinExplorerin order to rename the config file successfully. -
Edit the
.piconfigfile with a text editor.Notepadshould work. -
The config is a json file. Add the PPF file you want to use to the
patchvalue and save the config.{ "patch": "Seed_of_the_Week_September_3rd_2023.ppf" }patchaccepts either an absolute path or a path relative to the directory the config file is in. -
Launch
emulauncher.exe -
Select the emulator you want to use.
-
Play the game.
On first launch, emulauncher creates ppfinjector.json to store its configuration
data in the same directory. Application configuration is used both by the launcher
and the injector.
emulator: Stores the path of the emulator the launcher launched most recently. If you want to use a different emulator, you can either delete this property from the configuration file, or delete the configuration file entirely.log_level: Set the logging level of the launcher and the injector. Default is1. This isINFOlevel. You can set it to a big number to disable logging entirely.target_extensions: This is a list of extenions the injector checks when the emulator opens a file. Currently, only bin files from the CUE/BIN format is supported.
Patch configuration has the extension .piconf. It tells the injector dll which
PPF file to load when patching the target file.
patch: Points to the path of the PPF file. It can be an absolute path, or a path relative to the directory the config file is in.calculate_edc: A boolean value that tells the injector whether EDC checksum needs to be calculated. Default istrue. But if you have a PPF that contains the recalculated EDC value already, you can set this tofalse.

