PRX: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) m (CelesteBlue moved page SPRX File Format to PRX) |
CelesteBlue (talk | contribs) No edit summary |
||
Line 3: | Line 3: | ||
'''P'''laystation '''R'''elocatable E'''x'''ecutable (PRX) | '''P'''laystation '''R'''elocatable E'''x'''ecutable (PRX) | ||
= | = Relocations = | ||
== PS3 == | |||
Relocations can be found in either PT_SCE_PPURELA segments or SHT_SCE_PPURELA / SHT_RELA sections. RELA relocations are standard relocations while PPURELA relocations have 2 segment (program header) indexes stored in r_sym of r_info. | Relocations can be found in either PT_SCE_PPURELA segments or SHT_SCE_PPURELA / SHT_RELA sections. RELA relocations are standard relocations while PPURELA relocations have 2 segment (program header) indexes stored in r_sym of r_info. |
Revision as of 01:09, 28 December 2019
Overview
Playstation Relocatable Executable (PRX)
Relocations
PS3
Relocations can be found in either PT_SCE_PPURELA segments or SHT_SCE_PPURELA / SHT_RELA sections. RELA relocations are standard relocations while PPURELA relocations have 2 segment (program header) indexes stored in r_sym of r_info.
- The first index can be extracted with 0x7FFFFF00 as a mask and is used as a base address for r_addend. This sum will be the value applied to the patch.
- The second index can be extracted with 0x000000FF as a mask and is used as a base address for the target segment to patch and is added to r_offset.
- The first bit (0x80000000) is also set on earlier PRX's but it is currently unknown what it is used for.
|