the most useful thing i found on the error 80020148 is:
Discovered error codes:
80020130 - File Read Error (ex. length is 0)
80020001 - Generic Kernel Error - default (ex. executable is invalid)
80020148 - PRX type unsupported / Missing PSAR file
800200D9 - Failure to allocate memory block (ex. missing PSP)
If error code (80020148) "PRX type unsupported" is triggered when we have missing PSAR file, now we have confirmation that the PSAR file is an ecrypted ELF or PRX program file.
ELF/PRX files are build when using (for example) CodeWarrior and Sony GCC to compile C or C++ code.
When using the packer for ELF/PRX we will be setting additional information as BOOTABLE = 0;1 PARENTAL_LEVEL = 1;3;5... etc.
This information will be contained in the SFO, and the actual ELF/PRX will be partitioned in packets, which will be encrypted with keys, and the packets will be stored in the PSAR. The keys' code will be stored in tables in xxxx.PSP.
At runtime, the PSP loads part of the table-code and part of the executable code (encoded pack from PSAR), parses the code to the hardware decoder, the decoder recreates the key using some sort of algorithm and then uses it to decode the encrypted executable packet, and then it returns the decrypted packet to memory for the OS to execute.
So we know that what controls how the program executes (and where/which program executes!) is the SFO.
IF we can set a "null" code-table for the key generation in the xxx.PSP would it execute unencrypted PSAR? (which will be renamed ELF/PRX)
Or if we can get at least one key/code right with encrypting a package of the PSAR, then maybe we can "reuse" this combination for the rest of the keys/packets.
Also we know that bootable SFO will bypass some of the security restrictions, where we may be able to run code with restarting the system.
Any of this may make home-brew software possible.
If PI.WAD is encrypted (data for whipeout-expansion) could this be our first code-key? test.bin "C49AABB6E58.....etc"? which shows 128bit encryption key. (one key used for the whole 3mb of data?)
Now comes the question, is this THE key used to decrypt the file, or the decrypter takes the 128bits, converts them to a key, and then uses that key for decryption. Or is it a complete-ready-key for decryption?
One more question... if game-saves are encrypted, where's the KEY?
(so each game has one that uses when saving games?, hence the absence of keys in the save?)
Find the save-encr-key for some game, and edit its game-saves?