summary refs log tree commit diff
path: root/misc/3ds/textured.v.pica
diff options
context:
space:
mode:
Diffstat (limited to 'misc/3ds/textured.v.pica')
-rw-r--r--misc/3ds/textured.v.pica37
1 files changed, 37 insertions, 0 deletions
diff --git a/misc/3ds/textured.v.pica b/misc/3ds/textured.v.pica
new file mode 100644
index 0000000..f97d88e
--- /dev/null
+++ b/misc/3ds/textured.v.pica
@@ -0,0 +1,37 @@
+; Vertex shader for rendering textured vertices for PICA200 GPU on the Nintendo 3DS
+; ==================================================================================
+
+; Uniforms
+.fvec MVP[4];
+
+; Constants
+.constf ONE_DIV_255(0.003921568627, 0.003921568627, 0.003921568627, 0.003921568627)
+
+; Outputs
+.out out_pos position
+.out out_col color
+.out out_tex texcoord0
+
+; Inputs (defined as aliases for convenience)
+.alias in_pos v0
+.alias in_col v1
+.alias in_tex v2
+
+.proc main
+	; r0 = in_pos
+	mov r0, in_pos
+
+	; out_pos = MVP * r0
+	dp4 out_pos.x, MVP[0], r0
+	dp4 out_pos.y, MVP[1], r0
+	dp4 out_pos.z, MVP[2], r0
+	dp4 out_pos.w, MVP[3], r0
+
+	; out_col = in_col * ONE_DIV_255
+	mul out_col, ONE_DIV_255, in_col
+	; out_tex = in_tex
+	mov out_tex, in_tex
+	
+	end
+.end
+