This is djhuevo's discovery about PSP Relocatable Executable (PRX). PRX is very similar to IRX, the relocatable executable format used by the Ps2's IO processor. The numbers on the left side are called NID's. On the right side are the function names.
There are three interesting projects in SVN relating to PRX: nidattack, prxtool and the pspsdk itself. The pspsdk maps function names to NID's (look for .S files in the source). A PRX will contain a list of NID's and function offsets in the .rodata.sceModuleInfo section (see prxtool). NID's can be thought of as a unique identifier - and are generated by extracting the first 8 bytes of SHA1 hash of the function name (see nidattack).
How can PRX benefit homebrew devs? In the same way a shared library can on a PC, here's a few ideas:
- Commercially developed PRX can be reused from both UMD and flash (eg: any function prefixed with 'sce').
- Libraries (eg: SDL) could remain in memory between games: reducing memory stick wear and improving loading times.
- Software that can't fit into memory (eg: PSP Mame) could shuffle relevant portions in and out of memory (...like game engines).
> what exactly is this?
> ...though it might be better to combine this with other threads..
Although interesting when the PRX format was mostly unknown, this is no longer important for everyone to read.
This shows up as the TOP of the forum in a sticky post, along with:
"known psp devices", "Library function list", "SHA1 Attack Program" and "PSP [firmware] Dump [program]"
IMHO all of these should be un-Sticky since they are no longer topical (and almost completely replaced by a single installation of the PSPSDK). They will remain in the forums for historical perspective and if someone wants to search.
IMHO2: the other sticky advice for setting up tools should also be unsticky - perhaps replaced with a single post pointing to the PSPSDK install.