well i looked at other people's templates and other people joker codes.
and put their values into ps2dis and looked to see what commands they used for what parts of their codes.
then just did trail and error sort of thing with my own codes until i knew what to do with the commands.
im still trying to learn new commands like the more then one line jokers like you said about. (im still trying...some really good codes are really confusing to work out)
i look at a code and put in what i know what it is. (like a jr ra or a hook) along with the commands they used.
example me trying to work out increase jokers like custom jump
MJKT's MIPS-SELF-LEARNING METHOD #Custom Jump
;credit OldSkooL
0x000FD988 0x0A381431 <--- HOOK
0x006050C4 0x3C1908E3 <----- lui t9
0x006050C8 0x8F2A86DC <----- lw t2
0x006050CC 0x3C1808DD <-- lui t8 (controller 1)
0x006050D0 0x87183068 <---- lh t8 (controller 2)
0x006050D4 0x240F0001 <---- li t7 (button value)
0x006050D8 0x170F0006 <--- bne t8 t7 (jump to JR RA)
0x006050DC NOP?
0x006050E0 0xC54F0078 <-- lwcl $f15 $???? (t2)
0x006050E4 0x3C0B3DCC <-- lui t3
0x006050E8 0x448B8000 <-- mtcl t3
0x006050EC 0x46107BC0 <-- add.s $f15 $f15 $f16 (increase or decrease)
0x006050F0 0xE54F0078 <-- swcl $f15 $???? (t2)
0x006050F4 0x03E00008 <-- JR RA
-------
#Custom Jump
;credit OldSkooL
0x000FD988 0x0A381431 <-----hook
0x006050C4 0x3C1908E3 <---pointer part 1 (+1)
0x006050C8 0x8F2A86DC <--- pointer part 2
0x006050CC 0x3C1808DD <--- conroller part 1
0x006050D0 0x87183068 <----- controller part 2
0x006050D4 0x240F0001 <------button value to joker on
0x006050D8 0x170F0006 <--- jump to JR RA
0x006050E0 0xC54F0078 <---offset
0x006050E4 0x3C0B3DCC
0x006050E8 0x448B8000
0x006050EC 0x46107BC0 <--increase
0x006050F0 0xE54F0078 <---offset
0x006050F4 0x03E00008 <---- jr ra
then you could use the same sort of thing for different games
this is my way of teaching myself new ways and i think its a good way too
------------------
template:
lui t9, $(pointer part 1 + 1 if second have is above 8800)
lw t2, $(pointer part 2)
lui t8, $(controller part 1)
lh t8, $(controller part 2)
li t7, $(button value)
bne t8 t7, $(Real address of JR RA)
nop
wcl $f15, $[offset](t2)
lui t3, $3dcc
mtcl t3, $f16
add.s $f15 $f15 $f16
swcl $f15 $[offset](t2)
jr ra
I used this to make custom jump for mohh1
#CUSTOM JUMP
;credit MJKT
;press select to jump
;as high as you want
0x00339D78 0x0A3A0091
0x00680244 0x3C1908D8
0x00680248 0x8F2A361C
0x0068024C 0x3C1808D4
0x00680250 0x871842B0
0x00680254 0x240F0001
0x00680258 0x170F0006
0x00680260 0xC54F0078
0x00680264 0x3C0B3DCC
0x00680268 0x448B8000
0x0068026C 0x46107BC0
0x00680270 0xE54F0078
0x00680274 0x03E00008