Code:
Possess Player v1.2 L1+Left D044F15C 0000FB7F 203091EC 08039400 200E5000 27BDFFC0 200E5004 FFBF0050 200E5008 7FB40040 200E500C 7FB30030 200E5010 7FB20020 200E5014 7FB10010 200E5018 7FB00000 200E501C 3C140041 200E5020 36945FF0 200E5024 3C110044 200E5028 36310C38 200E502C 3C10000A 200E5030 36105240 200E5034 8E310000 200E5038 1220001B 200E503C 00000000 200E5040 8E3200C0 200E5044 8E19FFFC 200E5048 13200003 200E504C 00000000 200E5050 10000009 200E5054 00000000 200E5058 AE130000 200E505C AE11FFF0 200E5060 AE12FFF4 200E5064 8E940000 200E5068 AE14FFF8 200E506C 8E130000 200E5070 24080001 200E5074 AE08FFFC 200E5078 1253000B 200E507C 00000000 200E5080 0220202D 200E5084 0C039432 200E5088 00000000 200E508C 0260202D 200E5090 0C039460 200E5094 00000000 200E5098 0260202D 200E509C 0240282D 200E50A0 0C039474 200E50A4 0220302D 200E50A8 DFBF0050 200E50AC 7BB40040 200E50B0 7BB30030 200E50B4 7BB20020 200E50B8 7BB10010 200E50BC 7BB00000 200E50C0 03E00008 200E50C4 27BD0040 200E50C8 27BDFFE0 200E50CC 7FB20020 200E50D0 7FB10010 200E50D4 7FB00000 200E50D8 0080802D 200E50DC 12000022 200E50E0 00000000 200E50E4 24180100 200E50E8 3C19000F 200E50EC 37399000 200E50F0 8F310000 200E50F4 12380005 200E50F8 00000000 200E50FC 26310001 200E5100 AF310000 200E5104 10000018 200E5108 00000000 200E510C 3C0F000A 200E5110 35EF5000 200E5114 3C0E000C 200E5118 35CE6970 200E511C 8DCD0000 200E5120 8DCC0004 200E5124 15AC0003 200E5128 00000000 200E512C 1000000E 200E5130 00000000 200E5134 8DB20000 200E5138 12500005 200E513C 00000000 200E5140 25AD0004 200E5144 ADCD0000 200E5148 1000FFF6 200E514C 00000000 200E5150 ADED0000 200E5154 25EF0004 200E5158 25AD0004 200E515C ADCD0000 200E5160 15ACFFF0 200E5164 00000000 200E5168 AF200000 200E516C 7BB20020 200E5170 7BB10010 200E5174 7BB00000 200E5178 03E00008 200E517C 27BD0020 200E5180 27BDFFF0 200E5184 7FB10010 200E5188 7FB00000 200E518C 3C10000A 200E5190 36105000 200E5194 0080882D 200E5198 12200009 200E519C 00000000 200E51A0 8E190000 200E51A4 13200006 200E51A8 00000000 200E51AC 8F380000 200E51B0 AF310000 200E51B4 26100004 200E51B8 1720FFF9 200E51BC 00000000 200E51C0 7BB10010 200E51C4 7BB00000 200E51C8 03E00008 200E51CC 27BD0010 200E51D0 27BDFFD0 200E51D4 7FB30030 200E51D8 7FB20020 200E51DC 7FB10010 200E51E0 7FB00000 200E51E4 0080802D 200E51E8 00A0882D 200E51EC 00C0902D 200E51F0 3C130041 200E51F4 36735FF0 200E51F8 8E730000 200E51FC 12600004 200E5200 00000000 200E5204 AE1100C0 200E5208 AE7000BC 200E520C AE7000C0 200E5210 7BB30030 200E5214 7BB20020 200E5218 7BB10010 200E521C 7BB00000 200E5220 03E00008 200E5224 27BD0030 200E6000 27BDFFC0 200E6004 FFBF0030 200E6008 7FB20020 200E600C 7FB10010 200E6010 7FB00000 200E6014 3C10000A 200E6018 36105240 200E601C 8E10FFF0 200E6020 12000004 200E6024 00000000 200E6028 0200202D 200E602C 0C039460 200E6030 00000000 200E6034 DFBF0030 200E6038 7BB20020 200E603C 7BB10010 200E6040 7BB00000 200E6044 03E00008 200E6048 27BD0030 Release L1+Left D044F15C 0000FFFF 203091EC 03E00008 Return To Original Player L1+Right D044F15C 0000FBDF 202CED04 08039800 200E6000 27BDFFC0 200E6004 FFBF0030 200E6008 7FB20020 200E600C 7FB10010 200E6010 7FB00000 200E6014 3C10000A 200E6018 36105240 200E601C 8E10FFF0 200E6020 12000004 200E6024 00000000 200E6028 0200202D 200E602C 0C039460 200E6030 00000000 200E6034 DFBF0030 200E6038 7BB20020 200E603C 7BB10010 200E6040 7BB00000 200E6044 03E00008 200E6048 27BD0030 Release L1+Right D044F15C 0000FFFF 202CED04 03E00008
Code:
address $203091EC j $000e5000 address $200e5000 addiu sp, sp, $ffc0 sd ra, $0050(sp) sq s4, $0040(sp) sq s3, $0030(sp) sq s2, $0020(sp) sq s1, $0010(sp) sq s0, $0000(sp) setreg s4, $00415ff0 setreg s1, $00440c38 setreg s0, $000A5240 lw s1, $0000(s1) beq s1, zero, :end nop lw s2, $00c0(s1) lw t9, $fffc(s0) beq t9, zero, :first nop beq zero, zero, :skip nop first: sw s3, $0000(s0) sw s1, $fff0(s0) sw s2, $fff4(s0) lw s4, $0000(s4) sw s4, $fff8(s0) lw s3, $0000(s0) addiu t0, zero, $0001 sw t0, $fffc(s0) skip: beq s2, s3, :end nop daddu a0, s1, zero jal :__getpointers nop daddu a0, s3, zero jal :__possess nop daddu a0, s3, zero daddu a1, s2, zero jal :__setctrl daddu a2, s1, zero end: ld ra, $0050(sp) lq s4, $0040(sp) lq s3, $0030(sp) lq s2, $0020(sp) lq s1, $0010(sp) lq s0, $0000(sp) jr ra addiu sp, sp, $0040 __getpointers: addiu sp, sp, $ffe0 sq s2, $0020(sp) sq s1, $0010(sp) sq s0, $0000(sp) daddu s0, a0, zero beq s0, zero, :end2 nop addiu t8, zero, $0100 lui t9, $000F ori t9, t9, $9000 lw s1, $0000(t9) beq s1, t8, :continue nop addiu s1, s1, $0001 sw s1, $0000(t9) beq zero, zero, :end2 nop continue: setreg t7, $000a5000 setreg t6, $000c6970 lw t5, $0000(t6) lw t4, $0004(t6) loop: bne t5, t4, :loop2 nop beq zero, zero, :end2 nop loop2: lw s2, $0000(t5) beq s2, s0, :store nop addiu t5, t5, $0004 sw t5, $0000(t6) beq zero, zero, :loop nop store: sw t5, $0000(t7) addiu t7, t7, $0004 addiu t5, t5, $0004 sw t5, $0000(t6) bne t5, t4, :loop nop end2: sw zero, $0000(t9) lq s2, $0020(sp) lq s1, $0010(sp) lq s0, $0000(sp) jr ra addiu sp, sp, $0020 __possess: addiu sp, sp, $fff0 sq s1, $0010(sp) sq s0, $0000(sp) setreg s0, $000a5000 daddu s1, a0, zero //victim czseal beq s1, zero, :end3 nop loop3: lw t9, $0000(s0) beq t9, zero, :end3 nop lw t8, $0000(t9) sw s1, $0000(t9) addiu s0, s0, $0004 bne t9, zero, :loop3 nop end3: lq s1, $0010(sp) lq s0, $0000(sp) jr ra addiu sp, sp, $0010 __setctrl: addiu sp, sp, $ffd0 sq s3, $0030(sp) sq s2, $0020(sp) sq s1, $0010(sp) sq s0, $0000(sp) daddu s0, a0, zero //victim czseal daddu s1, a1, zero //my ctrl daddu s2, a2, zero //my czseal setreg s3, $00415ff0 lw s3, $0000(s3) beq s3, zero, :end4 nop sw s1, $00c0(s0) sw s0, $00bc(s3) sw s0, $00c0(s3) end4: lq s3, $0030(sp) lq s2, $0020(sp) lq s1, $0010(sp) lq s0, $0000(sp) jr ra addiu sp, sp, $0030 address $200e6000 addiu sp, sp, $ffc0 sd ra, $0030(sp) sq s2, $0020(sp) sq s1, $0010(sp) sq s0, $0000(sp) setreg s0, $000a5240 lw s0, $fff0(s0) beq s0, zero, :end5 nop daddu a0, s0, zero jal :__possess nop end5: ld ra, $0030(sp) lq s2, $0020(sp) lq s1, $0010(sp) lq s0, $0000(sp) jr ra addiu sp, sp, $0030
Updated with v1.2! Now has the ability to return to original player. Simply place your xhairs onto your target and press and then release L1+Left. Press L1+Right to return to original player. You may also swap with multiple targets before returning to original as your original player is stored when first swapping players.
There are a few bugs however.. The hook is constant and very fast, so make sure your xhairs are placed on your target before swapping players. Sometimes the game will freeze if you are holding the joker then placing your xhairs on target. This is due to wrong pointers being stored since the game hasn't had time to store all of the targets information to replace.
Harry has a version of this code as well, shoutout to Harry for helping with the ctrl pointers and camera. Shoutout to Renegade for the idea.
Comment