Editing PRX
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 2: | Line 2: | ||
'''P'''laystation '''R'''elocatable E'''x'''ecutable (PRX) | '''P'''laystation '''R'''elocatable E'''x'''ecutable (PRX) | ||
= Relocations = | = Relocations = | ||
Line 101: | Line 7: | ||
== PS3 == | == 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. | ||
*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 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 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 | *The first bit (0x80000000) is also set on earlier PRX's but it is currently unknown what it is used for. | ||
{{File Formats}} | {{File Formats}} | ||
<noinclude>[[Category:Main]]</noinclude> | <noinclude>[[Category:Main]]</noinclude> |