PDA

View Full Version : Demon450 Mips templates



sdrawkcab
11-30-2011, 11:48 PM
I DO NOT TAKE CREDIT FOR THESE ALL CREDIT GO'S TO:DEMON 450
these are great templates and they can really help you start to code once you get the hang of mips
demon450s site http://demongen.org/

----------------------------------------------------TEMPLATES---------------------------------------------------------

One Code Regular

-hook
-lui t0 $first half of address REAL
-lui t1 $first half of value
-addiu t1 t1 $second half of value
-sw t1 $second half of address(t0)
-jr ra

Two Code Regular

-hook
-lui t0 $first half of address 1 REAL
-lui t1 $first half of value 1
-addiu t1 t1 $second half of value 1
-sw t1 $second half of address 1(t0)
-lui t2 $first half of address 2 REAL
-lui t3 $first half of value 2
-addiu t3 t3 $second half of value 2
-sw t3 $second half of address 2(t2)
-jr ra

Three Code Regular

-hook
-lui t0 $first half of address 1 REAL
-lui t1 $first half of value 1
-addiu t1 t1 $second half of value 1
-sw t1 $second half of address 1(t0)
-lui t2 $first half of address 2 REAL
-lui t3 $first half of value 2
-addiu t3 t3 $second half of value 2
-sw t3 $second half of address 2(t2)
-lui t4 $first half of address 3 REAL
-lui t5 $first half of value 3
-addiu t5 t5 $second half of value 3
-sw t5 $second half of address 3(t4)
-jr ra

One Level DMA One Offset

-Hook
-lui t0 $first half of pointer
-lw t0 $second half of pointer(t0)
-beq t0 zero $jr ra
-lui t1 $first half of value
-ori t1 t1 $second half of value
-sw t1 $offset(t0)
-jr ra

One Level DMA Two Offsets

-Hook
-lui t0 $first half of pointer
-lw t0 $second half of pointer(t0)
-beq t0 zero $jr ra
-lui t1 $first half of value 1
-ori t1 t1 $second half of value 1
-sw t1 $offset 1(t0)
-lui t2 $first half of value 2
-ori t2 t2 $second half of value 2
-sw t2 $offset 2(t0)
-jr ra

One Level DMA Three Offsets

-Hook
-lui t0 $first half of pointer
-lw t0 $second half of pointer(t0)
-beq t0 zero $jr ra
-lui t1 $first half of value 1
-ori t1 t1 $second half of value 1
-sw t1 $offset 1(t0)
-lui t2 $first half of value 2
-ori t2 t1 $second half of value 2
-sw t2 $offset 2(t0)
-lui t3 $first half of value 3
-ori t3 t3 $second half of value 3
-sw t3 $offset 3(t0)
-jr ra

One Level DMA One Offset Activate Joker

-Hook
-lui t0 $first half of controller
-lw t0 $second half of controller(t0)
-lui t1 $first half of pointer
-lw t1 $second half of pointer(t1)
-addiu t2 zero $button value
-bne t0 t2 $jr ra
-lui t3 $first half of value
-ori t3 t3 $second half of value
-sw t3 $offset(t1)
-jr ra

One Level DMA One Offset Hold Joker

-Hook
-lui t0 $first half of controller
-lw t0 $second half of controller(t0)
-lui t1 $first half of pointer
-lw t1 $second half of pointer(t1)
-addiu t2 zero $button value
-lui t3 $first half of value off
-ori t3 t3 $second half of value off
-sw t3 $offset(t1)
-bne t0 t2 $jr ra
-lui t4 $first half of value on
-ori t4 t4 $second half of value on
-sw t4 $offset(t1)
-jr ra

Two Levels DMA One Offset

-Hook
-lui t0 $first half of pointer
-lw t0 $second half of pointer(t0)
-lw t1 $offset of first level(t0)
-lui t2 $first half of value
-ori t2 t2 $second half of value
-sw t2 $offset of second level(t1)
-jr ra

Two Levels DMA Two Offsets

-Hook
-lui t0 $first half of pointer
-lw t0 $second half of pointer(t0)
-lw t1 $offset of first level(t0)
-lui t2 $first half of value 1
-ori t2 t2 $second half of value 1
-sw t2 $offset 1 of second level(t1)
-lui t3 $first half of value 2
-ori t3 t3 $second half of value 2
-sw t3 $offset 2 of second level(t1)
-jr ra

Auto Increase

-hook
-lui t0 $first half of code address REAL
-lw t1 $second half of address(t0)
-addiu t2 zero $inc value
-add t3 t1 t2
-sw t3 $second half of address(t0)
-jr ra

Auto Decrease

-hook
-lui t0 $first half of code address REAL
-lw t1 $second half of address(t0)
-addiu t2 zero $dec value
-sub t3 t1 t2
-sw t3 $second half of address(t0)
-jr ra

Increase Joker

-hook
-lui t0 $first half of controller REAL
-lw t0 $second half controller(t0)
-lui t1 $first half code address REAL
-addiu t2 zero $button value
-bne t0 t2 $jr ra
-nop
-lw t3 $second half of code address(t1)
-addiu t4 zero $inc value
-add t5 t3 t4
-sw t5 $second half code address(t1)
-jr ra

Decrease Joker

-hook
-lui t0 $first half of controller REAL
-lw t0 $second half controller(t0)
-lui t1 $first half code address REAL
-addiu t2 zero $button value
-bne t0 t2 $jr ra
-nop
-lw t3 $second half of code address(t1)
-addiu t4 zero $dec value
-sub t5 t3 t4
-sw t5 $second half code address(t1)
-jr ra

Increase/Decrease Joker

-Hook
-lui t0 $First half of controller REAL
-lw t0 $second half of controller(t0)
-lui t1 $first half of code address REAL
-ori t2 zero $inc button value
-ori t3 zero $dec button value
-bne t0 t2 $next bne
-lw t4 $second half of code address REAL(t1)
-ori t5 zero $increase amount
-add t6 t4 t5
-sw t6 $second half of code address(t1)
-bne t0 t3 $jr ra
-lw t7 $second half of code address(t1)
-ori t8 zero $decrease amount
-sub t9 t7 t8
-sw t9 $second half of code address(t1)
-jr ra

Activate Template

-Hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-lui t1 $first half of code in REAL
-addiu t2 zero $button value
-bne t0 t2 $jr ra
-lui t3 $first half of value for code
-addiu t3 t3 $second half of value of code
-sw t3 $second half of code(t1)
-jr ra

Two Codes One Button Activate

-Hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-lui t1 $first half of code 1 in REAL
-lui t2 $first half of code 2 in REAL
-addiu t3 zero $button value
-bne t0 t3 $jr ra
-lui t4 $first half of value for code one
-addiu t4 t4 $second half of value of code 1
-sw t4 $second half of code 1(t1)
-lui t5 $first half of value for code 2
-addiu t5 t5 $second half of value of code 2
-sw t5 $second half of code 2(t2)
-jr ra

Three Codes One Button Activate

-Hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-lui t1 $first half of code 1 in REAL
-lui t2 $first half of code 2 in REAL
-lui t3 $first half of code 3 in REAL
-addiu t4 zero $button value
-bne t0 t4 $jr ra
-lui t5 $first half of value for code one
-addiu t5 t5 $second half of value of code 1
-sw t5 $second half of code 1(t1)
-lui t6 $first half of value for code 2
-addiu t6 t6 $second half of value of code 2
-sw t6 $second half of code 2(t2)
-lui t7 $first half of value for code 3
-addiu t7 t7 $second half of value of code 3
-sw t7 $second half of code 3(t3)
-jr ra

One Code Hold One Button

-Hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-lui t1 $first half of code in REAL
-addiu t2 zero $button value
-lui t3 $first half of value on for code
-addiu t3 t3 $second half of value on of code
-sw t3 $second half of code(t1)
-bne t0 t2 $jr ra
-lui t4 $first half of value off for code
-addiu t4 t4 $second half of value off of code
-sw t4 $second half of code(t1)
-jr ra

Two Code One Button Hold

-Hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-lui t1 $first half of code 1 in REAL
-lui t2 $first half of code 2 in REAL
-addiu t3 zero $button value 1
-lui t4 $first half of value off for code 1
-addiu t4 t4 $second half of value off of code 1
-sw t4 $second half of code 1(t1)
-lui t5 $first half of value off for code 2
-addiu t5 t5 $second half of value off of code 2
-sw t5 $second half of code 2(t2)
-bne t0 t3 $jr ra
-lui t6 $first half of value on for code 1
-addiu t6 t6 $second half of value on of code 1
-sw t6 $second half of code 1(t1)
-lui t7 $first half of value on for code 2
-addiu t7 t7 $second half of value on of code 2
-sw t7 $second half of code 2(t2)
-jr ra

Teleport To Crosshairs

-hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-addiu t1 $button value
-lui t2 $first half crosshair coord REAL
-lui t3 $first half player coord REAL
-bne t0 t1 $jr ra
-lw t4 $second half crosshair coord X(t2)
-lw t5 $second half crosshair coord Y(t2)
-lw t6 $second half crosshair coord Z(t2)
-sw t4 $second half player coord X(t3)
-sw t5 $second half player coord X(t3)
-sw t6 $second half player coord X(t3)
-jr ra

One Point Mark And Recall

-hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-addiu t1 $Mark Button Value
-addiu t2 $Recall Button Value
-lui t3 $first half nop address REAL
-lui t4 $first half player coord REAL
-bne t0 t1 $next bne
-lw t5 $second half nop address(t3)
-lw t6 $second half nop address(t3)
-lw t7 $second half nop address(t3)
-sw t5 $second half player coord X(t4)
-sw t6 $second half player coord X(t4)
-sw t7 $second half player coord X(t4)
-bne t0 t2 $jr ra
-lw t5 $second half player coord X(t4)
-lw t6 $second half player coord Y(t4)
-lw t7 $second half player coord Z(t4)
-sw t5 $second half nop address(t3)
-sw t6 $second half nop address(t3)
-sw t7 $second half nop address(t3)
-jr ra

Two Point Mark And Recall

-hook
-lui t0 $first half of controller REAL
-lw t0 $second half of controller(t0)
-addiu t1 $Mark Button Value 1
-addiu t2 $Recall Button Value 1
-addiu t3 $Mark Button Value 2
-addiu t4 $Recall Button Value 2
-lui t5 $first half nop address REAL
-lui t6 $first half player coord REAL
-bne t0 t1 $next bne
-lw t7 $second half nop address(t5)
-lw t8 $second half nop address(t5)
-lw t9 $second half nop address(t5)
-sw t7 $second half player coord X(t6)
-sw t8 $second half player coord X(t6)
-sw t9 $second half player coord X(t6)
-bne t0 t2 $next bne
-lw t7 $second half player coord X(t6)
-lw t8 $second half player coord Y(t6)
-lw t9 $second half player coord Z(t6)
-sw t7 $second half nop address(t5)
-sw t8 $second half nop address(t5)
-sw t9 $second half nop address(t5)
-bne t0 t3 $next bne
-lw t7 $second half nop address(t5)
-lw t8 $second half nop address(t5)
-lw t9 $second half nop address(t5)
-sw t7 $second half player coord X(t6)
-sw t8 $second half player coord X(t6)
-sw t9 $second half player coord X(t6)
-bne t0 t4 $jr ra
-lw t7 $second half player coord X(t6)
-lw t8 $second half player coord Y(t6)
-lw t9 $second half player coord Z(t6)
-sw t7 $second half nop address(t5)
-sw t8 $second half nop address(t5)
-sw t9 $second half nop address(t5)
-jr ra