Recently, I came across the need to edit PSP custom firmware (5.50 GEN) flash to include my own prx modules. Because I needed them to be loaded always in any section, I couldn’t simply use the seplugins folder’s functionality.
Searching the internet, I found many tools to extract/build binary pspbtcnf files… except none of them would work, not the ones on PC and not the ones on the PSP itself. The available tools usually extracted fine but when rebuilding them, even unchanged, they would simply lock up my PSP on boot. One even made files that made no sense on the Windows port of it. The Linux version produced files that seemed fine, but failed to run on actual hardware.
So I was left with the only other option: code a working alternative. After 3 days of reverse engineering and debugging in my spare time, I present to you btcnfgen, including the full C# source code. There are both Windows version and Linux versions available, the Windows version will need the .NET 3.5 framework, the Linux version has the Mono libraries statically linked and should work as is, and the Mono version should work on both platforms, provided the Mono framework is installed.
DISCLAIMER: As always, when dealing with PSP flash memory, caution is advised and having a Pandora battery and magic memory stick on hand wouldn’t hurt either. By using this tool you claim full responsibility for whatever damage it might cause to any hard or software.
Usage: btcnfgen [-b | -e | -h] [-v] [-y] source [output]
-b Build a binary file from a plaintext file.
-e Extract a binary file into a plaintext file.
-v Force version (in format #.##).
-c Ask for confirmation to overwrite if output file already exists.
-h Displays this info.