Please don't use these without knowing how they work, it's noobish
Four Functions On/Off
(STR8KR4ZY)
lui t0, $(loads first half of controller address + 88)
lh t0, $(loads second half of controller address)(t0)
lui t1, $(loads first half of code address + 88)
ori t2, zero, $(value to activate)
ori t3, zero, $(value to deactivate)
lui t4, $(loads first half of hacked value)
ori t5, t4, $(loads second half of hacked value)
lui t6, $(loads first half of original value)
ori t6, t6, $(loads second half of original value)
bne t0, t2, $(branches the next bne)
nop
sw t5, $(loads second half of code address)(t1)
bne t0, t3, $(branches the first half of code address)
nop
sw t6, $(loads second half of code address)(t1)
nop
lui t1, $(loads first half of code address + 88)
ori t2, zero, $(value to activate)
ori t3, zero, $(value to deactivate)
lui t4, $(loads first half of hacked value)
ori t5, t4, $(loads second half of hacked value)
lui t6, $(loads first half of original value)
ori t6, t6, $(loads second half of original value)
bne t0, t2, $(branches the next bne)
nop
sw t5, $(loads second half of code address)(t1)
bne t0, t3, $(branches the first half of code address)
nop
sw t6, $(loads second half of code address)(t1)
nop
lui t1, $(loads first half of code address + 88)
ori t2, zero, $(value to activate)
ori t3, zero, $(value to deactivate)
lui t4, $(loads first half of hacked value)
ori t5, t4, $(loads second half of hacked value)
lui t6, $(loads first half of original value)
ori t6, t6, $(loads second half of original value)
bne t0, t2, $(branches the next bne)
nop
sw t5, $(loads second half of code address)(t1)
bne t0, t3, $(branches the first half of code address)
nop
sw t6, $(loads second half of code address)(t1)
nop
lui t1, $(loads first half of code address + 88)
ori t2, zero, $(value to activate)
ori t3, zero, $(value to deactivate)
lui t4, $(loads first half of hacked value)
ori t5, t4, $(loads second half of hacked value)
lui t6, $(loads first half of original value)
ori t6, t6, $(loads second half of original value)
bne t0, t2, $(branches the next bne)
nop
sw t5, $(loads second half of code address)(t1)
bne t0, t3, $(branches the jr ra)
nop
sw t6, $(loads second half of code address)(t1)
jr ra
Superman
(Nitoriuse420) (Not sure on name)
lui t0, $XXXX //First half of Controller address
lw t0, $XXXX(t0) //Second half of Controller address
addiu t1, 0, $XXXX //Button(s) to increase X
ori t5, 0, $XXXX //Button(s) to decrease X
addiu t2, 0, $XXXX //Button(s) to increase Y
ori t6, 0, $XXXX //Button(s) to decrease Y
addiu t3, 0, $XXXX //Button(s) to increase Z
ori t7, 0, $XXXX //Button(s) to decrease Z
lui t4, $XXXX //First half of pointer
lw t4, $XXXX //Second half of pointer [Remeber rule +7fff]
beq t1, t0, $XXXXXXXX //Branches to increment of X coord
NOP
beq t2, t0, $XXXXXXXX //Branches to increment of Y coord
NOP
beq t3, t0, $XXXXXXXX //Branches to increment of Z coord
NOP
beq t5, t0, $XXXXXXXX //Branches to decrement of X coord
NOP
beq t6, t0, $XXXXXXXX //Branches to decrement of Y coord
NOP
beq t7, t0, $XXXXXXXX //Branches to decrement of Z coord
NOP
Jr ra
NOP
//Increment of X coord HERE
lwc1 $f12, $XXXX(t4) //X offset
lui t2, $XXXX //Amount of increment
mtc1 t2, $f13 //Moves what we just loaded to a float point
add.s $f14, $f12, $f13 //Adds the current value of the x coord with the amount of increment into $f14
swc1 $f14, $XXXX(t4) //Stores $f14 onto the X offset
jr ra
NOP
//Increment of Y coord
lwc1 $f12, $XXXX(t4) //Y Offset
lui t2, $XXXX //Amount of increment
mtc1 t2, $f13 //Moves what we just loaded to a float point
add.s $f14, $f12, $f13 //Adds the current value of the Y coord with the amount of increment into $f14
swc1 $f14, $XXXX(t4) //Stores $f14 onto the Y offset
JR ra
NOP
//Increment of Z coord
lwc1 $f12, $XXXX(t4) //Z offset
lui t2, $XXXX //Amount of increment
mtc1 t2, $f13 //Moves what we just loaded to a float point
add.s $f14, $f12, $f13 //Adds the current value of the Z coord with the amount of increment into $f14
swc1 $f14, $XXXX(t4) //Stores $f14 onto the Z offset
Jr ra
NOP
//Decrement of X coord HERE
lwc1 $f12, $XXXX(t4) //X offset
lui t2, $XXXX //Amount of Decrement
mtc1 t2, $f13 //Moves what we just loaded to a float point
add.s $f14, $f12, $f13 //Adds the current value of the x coord with the amount of decrement into $f14
swc1 $f14, $XXXX(t4) //Stores $f14 onto the X offset
jr ra
NOP
//Decrement of Y coord HERE
lwc1 $f12, $XXXX(t4) //Y offset
lui t2, $XXXX //Amount of Decrement
mtc1 t2, $f13 //Moves what we just loaded to a float point
add.s $f14, $f12, $f13 //Adds the current value of the Y coord with the amount of decrement into $f14
swc1 $f14, $XXXX(t4) //Stores $f14 onto the Y offset
jr ra
NOP
//Decrement of Z coord HERE
lwc1 $f12, $XXXX(t4) //Z offset
lui t2, $XXXX //Amount of Decrement
mtc1 t2, $f13 //Moves what we just loaded to a float point
add.s $f14, $f12, $f13 //Adds the current value of the Z coord with the amount of decrement into $f14
swc1 $f14, $XXXX(t4) //Stores $f14 onto the Z offset
Advanced Multi Jokering
(1st-Ko?????) (Not sure on name)
- addiu sp, sp, -20 <--- // This sets aside 20 bit that way we can save to the stack
- sw a0, $0000(sp) <--- // Saved a0 to the stack at offset 0000
- sw s4, $0004(sp) <--- // Saved s4 to the stack at offset 0004
- sw s5, $0008(sp) <--- // Saved s5 to the stack at offset 0008
- sw s6, $000C(sp) <--- // Saved s6 to the stack at offset 000C
- sw s7, $0010(sp) <--- // Saved s7 to the stack at offset 0010
- sw ra, $0014(sp) <--- // #1 rule, You always got to save ra before a jal if not you will freeze
- lui a0, $09A8 <--- // Load our 1st four controller address
- lh a0, $E1E4(a0) <--- // Load our last four controller address back to a0
- addiu s4, zero, $8000 <--- // Load our button value which is []
- addiu s5, zero, $4000 <--- // Load our button value which is X
- addiu s6, zero, $2000 <--- // Load our button value which is O
- addiu s7, zero, $1000 <--- // Load our button value which is /\
- and a0, a0, s4 <--- // When we got [] press held in we can stil press other buttons and your joker will work
- and a0, a0, s5 <--- // When we got X press held in we can stil press other buttons and your joker will work
- and a0, a0, s6 <--- // When we got O press held in we can stil press other buttons and your joker will work
- and a0, a0, s7 <--- // When we got /\ press held in we can stil press other buttons and your joker will work
- bne s4, a0, $00001 <-- // We branch if [] isnt pressed in
- nop
- jal <--- // Whatever routine you have will be call on by []
- bne s5, a0, $00001 <-- // We branch if X isnt pressed in
- nop
- jal <--- // Whatever Routine you have will be call on by X
- bne s6, a0, $00001 <-- // We branch if O isnt pressed in
- nop
- jal <--- // Whatever Routine you have will be call on by O
- bne s7, a0, $00002 <-- // We branch if /\ isnt pressed in
- nop
- jal <--- // Whatever Routine you have will be call on by /\
- lw a0, $0000(sp) <--- // Restore a0 back to how it was before we used it
- lw s4, $0004(sp) <--- // Restore s4 back to how it was before we used it
- lw s5, $0008(sp) <--- // Restore s5 back to how it was before we used it
- lw s6, $000C(sp) <--- // Restore s6 back to how it was before we used it
- lw s7, $0010(sp) <--- // Restore s7 back to how it was before we used it
- lw ra, $0014(sp) <--- // We do this to load back to normal if not you will cause a inf loop causing a crash
- jr ra <--- // This returns back to the routine
- addiu sp, sp, 20 <--- // Adds 20 bits back to the stack when you jr ra their is a one line delay that picks this up
One Function On/Off
(TheEliteOne)
(TheEliteOne)
lui t0 $first half of real controller address
lh t0 $second half of controller address(t0)
lui t1 $first half of code address
ori t2 zero $value to activate
ori t3 zero $value to deactivate
lui t4 $first half of hacked value
ori t5 t4 $second half of hacked value
lui t6 $first half of original value
ori t6 t6 $second half of original value
bne t0 t2 $branches the next bne
nop
sw t5 $loads second half of code address(t1)
bne t0 t3 $branches the jr ra
nop
sw t6 $loads second half of code address(t1)
jr ra
Mark and Recall
(Nitoriuse420) (Not sure on name)
lui t0, $XXXX \\First half of controller address
lw t0, $XXXX(t0) \\second half of controller address
lui t8, $XXXX \\first half of pointer address
lw t8, $XXXX(t8) \\second half of pointer address
lui t7, $XXXX \\first half of flag address make sure there are two noped lines before it
addiu t7, t7, $XXXX \\second half of flag address
addiu t1, 0, $XXXX \\button to mark
ori t2, 0, $XXXX \\button to recall
beq t1, t0, $address to Mark \\branches to address after the comment MARK
NOP
beq t2, 0, $address to recall \\branches to address after the comment RECALL
NOP
Jr Ra
NOP \\MARK
lw t3, $XXXX(t8) \\loads the Coord offset [X]
sw t3, $0000(t7) \\stores previously loaded coord
lw t3, $XXXX(t8) \\loads the Coord offset [Y]
sw t3, $0004(t7) \\stores previously loaded coord
lw t3, $XXXX(t8) \\loads coords offset [Z]
sw t3, $0008(t7) \\stores previously loaded coord
jr ra
NOP \\RECALL
lw t3, $0000(t7) \\loads the stored X coord
sw t3, $XXXX(t8) \\stores the loaded x coord to player X coord
lw t3, $0004(t7) \\loads the stored Y coord
sw t3, $XXXX(t8) \\stores the loaded Y coord to player Y coord
lw t3, $0008(t7) \\load the stored Z coord
sw t3, $XXXX(t8) \\stores the loaded Z coord to player Z coord
jr ra
Inc/Dec Float (I think this is elivator)
(Pspmodandcfw)
0x [amount you want added/subtracted]
0x0000 [on button value]
0x0000 [off button value]
lui t0 0x [upper half of code address]
lui t1 0x [uper half of routine address]
lui t2 0x [uper half of button address]
lwc1 $f12 0x [lower half of the amount to be added address (t1)]
lh t3 0x [lower half of button address (t2)]
lh t4 0x [lower half of ADD button value address (t1)]
bne t3 t4 0x [address of (lh t4 0x [lower half of SUB button address (t1))]
nop
lwc1 $f13 0x [lower half of code address (t0)
add.s $f14 $f14 $f12
swc1 $f14 0x [lower half of code address]
beq zero zero 0x [Address of the JR RA]
nop
lh t4 0x [lower address of SUB button address (t1)]
bne t3 t4 0x [address of the JR RA]
nop
lwc1 $f13 0x [lower half of code address (t0)]
sub.s $14 $13 $12
swc1 $f14 0x [lower half of code address (t0)]
nop
jr ra