diff options
Diffstat (limited to 'libpsn00b/psxgte/applymatrixlv.s')
| -rw-r--r-- | libpsn00b/psxgte/applymatrixlv.s | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libpsn00b/psxgte/applymatrixlv.s b/libpsn00b/psxgte/applymatrixlv.s new file mode 100644 index 0000000..332a2f8 --- /dev/null +++ b/libpsn00b/psxgte/applymatrixlv.s @@ -0,0 +1,40 @@ +.set noreorder + +.include "gtereg.h" +.include "inline_s.h" + +.section .text + + +.global ApplyMatrixLV +.type ApplyMatrixLV, @function +ApplyMatrixLV: + + # Load matrix to GTE + lw $t0, 0($a0) + lw $t1, 4($a0) + ctc2 $t0, $0 + ctc2 $t1, $1 + lw $t0, 8($a0) + lw $t1, 12($a0) + lhu $t2, 16($a0) + ctc2 $t0, $2 + ctc2 $t1, $3 + ctc2 $t2, $4 + + lw $t0, 0($a1) + lw $t1, 4($a1) + mtc2 $t0, C2_IR1 + lw $t0, 8($a1) + mtc2 $t1, C2_IR2 + mtc2 $t0, C2_IR3 + + nMVMVA(1, 0, 3, 3, 0) + + swc2 C2_IR1, 0($a2) + swc2 C2_IR2, 4($a2) + swc2 C2_IR3, 8($a2) + + jr $ra + move $v0, $a2 +
\ No newline at end of file |
