Skip to content

Instantly share code, notes, and snippets.

@cualquiercosa327
Forked from aerosoul94/VitaReloc.md
Created January 28, 2023 00:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cualquiercosa327/15e5ed5f9dcecdb71aea0f300f24d8b6 to your computer and use it in GitHub Desktop.
Save cualquiercosa327/15e5ed5f9dcecdb71aea0f300f24d8b6 to your computer and use it in GitHub Desktop.
Visualize bit fields in PSVita relocations.

Index

  1. Relocations
    1. Format 0
    2. Format 1
    3. Format 2
    4. Format 3
    5. Format 4
    6. Format 5
    7. Format 6
    8. Format 7
    9. Format 8
    10. Format 9
  2. Variable Imports
    1. Header
    2. Form 1
    3. Form 2

The following was reverse engineered from modulemgr.skprx.

Relocations

Format 0

[0][1][2]
Field Start End Size
r_format 0 3 4
r_symseg 4 7 4
r_type 8 15 8
r_patchseg 16 19 4
r_type2 20 26 7
r_dist2 27 31 5
Field Start End Size
r_offset 0 31 32
Field Start End Size
r_addend 0 31 32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=0 r_symseg r_type r_patchseg r_type2 r_dist2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_offset
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_addend

Format 1

[0][1]
Field Start End Size
r_format 0 3 4
r_symseg 4 7 4
r_type 8 15 8
r_patchseg 16 19 4
r_offset 20 31 12
Field Start End Size
r_offset 0 9 10
r_addend 10 31 22
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=1 r_symseg r_type r_patchseg r_offset
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_offset r_addend

Format 2

[0][1]
Field Start End Size
r_format 0 3 4
r_symseg 4 7 4
r_type 8 15 8
r_offset 16 31 16
Field Start End Size
r_addend 0 31 32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=2 r_symseg r_type r_offset
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_addend

Format 3

[0][1]
Field Start End Size
r_format 0 3 4
r_symseg 4 7 4
r_mode 8 8 1
r_offset 9 26 18
r_dist2 27 31 5
Field Start End Size
r_addend 0 31 32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=3 r_symseg r_mode r_offset r_dist2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_addend

Format 4

[0]
Field Start End Size
r_format 0 3 4
r_offset 4 26 23
r_dist2 27 31 5
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=4 r_offset r_dist2

Format 5

[0]
Field Start End Size
r_format 0 3 4
r_dist_1 4 12 9
r_dist_2 13 17 5
r_dist_3 18 26 9
r_dist_4 27 31 5
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=5 r_dist_1 r_dist_2 r_dist_3 r_dist_4

Format 6

[0]
Field Start End Size
r_format 0 3 4
r_offset 4 31 28
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=6 r_offset

Format 7

[0]
Field Start End Size
r_format 0 3 4
r_offset_1 4 10 7
r_offset_2 11 17 7
r_offset_3 18 24 7
r_offset_4 25 31 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=7 r_offset_1 r_offset_2 r_offset_3 r_offset_4

Format 8

[0]
Field Start End Size
r_format 0 3 4
r_offset_1 4 7 4
r_offset_2 8 11 4
r_offset_3 12 15 4
r_offset_4 16 19 4
r_offset_5 20 23 4
r_offset_6 24 27 4
r_offset_7 28 31 4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=8 r_offset_1 r_offset_2 r_offset_3 r_offset_4 r_offset_5 r_offset_6 r_offset_7

Format 9

[0]
Field Start End Size
r_format 0 3 4
r_offset_1 4 5 2
r_offset_2 6 7 2
r_offset_3 8 9 2
r_offset_4 10 11 2
r_offset_5 12 13 2
r_offset_6 14 15 2
r_offset_7 16 17 2
r_offset_8 18 19 2
r_offset_9 20 21 2
r_offset_10 22 23 2
r_offset_11 24 25 2
r_offset_12 26 27 2
r_offset_13 28 29 2
r_offset_14 30 31 2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=9 r_offset_1 r_offset_2 r_offset_3 r_offset_4 r_offset_5 r_offset_6 r_offset_7 r_offset_8 r_offset_9 r_offset_10 r_offset_11 r_offset_12 r_offset_13 r_offset_14

Variable Imports

Header

[0]
Field Start End Size
Unknown 0 3 4
Size 4 27 24
Unknown 28 31 4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Unknown Size in bytes Unknown

Form 1

[0][1]
Field Start End Size
r_format 0 3 4
r_patchseg 4 7 4
r_type 8 15 8
r_addend 16 31 16
Field Start End Size
r_offset 0 31 32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=1 r_patchseg r_type r_addend
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_offset

Form 2

[0][1][2]
Field Start End Size
r_format 0 3 4
r_patchseg 4 7 4
r_type 8 15 8
Unused 16 31 16
Field Start End Size
r_offset 0 31 32
Field Start End Size
r_addend 0 31 32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_format=1 r_patchseg r_type Unused
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_offset
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
r_addend
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment