aboutsummaryrefslogtreecommitdiff
path: root/examples/demos/n00bdemo/smdparser.s
diff options
context:
space:
mode:
authorspicyjpeg <thatspicyjpeg@gmail.com>2023-06-20 15:13:11 +0200
committerspicyjpeg <thatspicyjpeg@gmail.com>2023-06-20 15:13:11 +0200
commitd23024ceeb8e7f04b0a3bde7a0db41ae5e4fd06d (patch)
tree03342eb22041fb7343c034e376489295e2a78a19 /examples/demos/n00bdemo/smdparser.s
parent79a966486615e60be3a37d278945dc3dd0fd933b (diff)
downloadpsn00bsdk-d23024ceeb8e7f04b0a3bde7a0db41ae5e4fd06d.tar.gz
Split off libsmd from n00bdemo into separate library
Diffstat (limited to 'examples/demos/n00bdemo/smdparser.s')
-rw-r--r--examples/demos/n00bdemo/smdparser.s129
1 files changed, 0 insertions, 129 deletions
diff --git a/examples/demos/n00bdemo/smdparser.s b/examples/demos/n00bdemo/smdparser.s
deleted file mode 100644
index 379690f..0000000
--- a/examples/demos/n00bdemo/smdparser.s
+++ /dev/null
@@ -1,129 +0,0 @@
-.set noreorder
-
-.include "smd_s.h"
-
-.set SMD_PRI_ID, 0
-.set SMD_PRI_v0, 4
-.set SMD_PRI_v1, 6
-.set SMD_PRI_v2, 8
-.set SMD_PRI_v3, 10
-.set SMD_PRI_n0, 12
-.set SMD_PRI_n1, 14
-.set SMD_PRI_n2, 16
-.set SMD_PRI_n3, 18
-.set SMD_PRI_rgbc0, 20
-.set SMD_PRI_rgbc1, 24
-.set SMD_PRI_rgbc2, 28
-.set SMD_PRI_rgbc3, 32
-.set SMD_PRI_tuv0, 36
-.set SMD_PRI_tuv1, 38
-.set SMD_PRI_tuv2, 40
-.set SMD_PRI_tuv3, 42
-.set SMD_PRI_tpage, 44
-.set SMD_PRI_clut, 46
-
-.section .text
-
-
-.comm _smd_parse_addr, 4, 4
-
-
-.global OpenSMD
-.type OpenSMD, @function
-OpenSMD:
- lw $v0, SMD_HEAD_ID($a0)
- li $v1, 0x01444d53
-
- bne $v0, $v1, .not_smd
- nop
-
- lw $v0, SMD_HEAD_PPRIMS($a0)
- la $v1, _smd_parse_addr
- sw $v0, 0($v1)
-
- jr $ra
- lhu $v0, SMD_HEAD_NPRIMS($a0)
-
-.not_smd:
- jr $ra
- move $v0, $0
-
-
-.global ReadSMD
-.type ReadSMD, @function
-ReadSMD:
-
- la $v0, _smd_parse_addr
- lw $v0, 0($v0)
- nop
-
- lw $a2, 0($v0) # Load primitive ID
- addiu $a1, $v0, 4
-
- sw $a2, SMD_PRI_ID($a0)
-
- beqz $a2, $end_prim
- nop
-
- srl $v1, $a2, 24 # Get primitive size
- addu $v0, $v1
- la $v1, _smd_parse_addr
- sw $v0, 0($v1)
-
- lw $v0, 0($a1) # Copy vertex coords
- lw $v1, 4($a1)
- sw $v0, SMD_PRI_v0($a0)
- sw $v1, SMD_PRI_v2($a0)
- addiu $a1, 8
-
- srl $v0, $a2, 2 # Lighting enabled?
- andi $v0, 0x3
- bnez $v0, $light
- nop
-
- b $no_light
- nop
-
-$light:
- srl $v1, $a2, 2
- lw $v0, 0($a1) # Copy vertex coords
- andi $v1, 0x3
- sw $v0, SMD_PRI_n0($a0)
-
- bne $v1, 0x2, $light_flat
- addiu $a1, 4
-
- lw $v1, 0($a1)
- addiu $a1, 4
- sw $v1, SMD_PRI_n2($a0)
-
-$light_flat:
-$no_light:
-
- lw $v0, 0($a1)
- nop
- sw $v0, SMD_PRI_rgbc0($a0)
- addiu $a1, 4
-
- srl $v0, $a2, 5
- andi $v0, 0x1
- beqz $v0, $not_textured
- nop
-
- lw $v0, 0($a1)
- lw $v1, 4($a1)
- sw $v0, SMD_PRI_tuv0($a0)
- lw $v0, 8($a1)
- sw $v1, SMD_PRI_tuv2($a0)
- sw $v0, SMD_PRI_tpage($a0)
-
-$not_textured:
-
- jr $ra
- move $v0, $a0
-
-$end_prim:
-
- jr $ra
- move $v0, $0
- \ No newline at end of file