summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-05-15 21:13:11 +1000
committerBen Skeggs <bskeggs@redhat.com>2013-05-15 21:25:46 +1000
commit41cc2f24c43d2656ac722f594aaebad93e37dfec (patch)
treeebebd0e5d27f4132d61b093ca192cb7a68464223
parent1edb5d7ae450a32fe6607d536653cf733444e7e2 (diff)
nvc0-nve0: decompile shaders into their source, add basic build system
Far, far easier to maintain this way... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/shader/Makefile30
-rw-r--r--src/shader/exac8nvc0.fp13
-rw-r--r--src/shader/exac8nvc0.fpc48
-rw-r--r--src/shader/exac8nve0.fp14
-rw-r--r--src/shader/exac8nve0.fpc52
-rw-r--r--src/shader/exacanvc0.fp13
-rw-r--r--src/shader/exacanvc0.fpc51
-rw-r--r--src/shader/exacanve0.fp15
-rw-r--r--src/shader/exacanve0.fpc59
-rw-r--r--src/shader/exacmnvc0.fp13
-rw-r--r--src/shader/exacmnvc0.fpc51
-rw-r--r--src/shader/exacmnve0.fp15
-rw-r--r--src/shader/exacmnve0.fpc59
-rw-r--r--src/shader/exas8nvc0.fp9
-rw-r--r--src/shader/exas8nvc0.fpc32
-rw-r--r--src/shader/exas8nve0.fp10
-rw-r--r--src/shader/exas8nve0.fpc36
-rw-r--r--src/shader/exasanvc0.fp13
-rw-r--r--src/shader/exasanvc0.fpc51
-rw-r--r--src/shader/exasanve0.fp15
-rw-r--r--src/shader/exasanve0.fpc59
-rw-r--r--src/shader/exascnvc0.fp6
-rw-r--r--src/shader/exascnvc0.fpc23
-rw-r--r--src/shader/exascnve0.fp7
-rw-r--r--src/shader/exascnve0.fpc27
-rw-r--r--src/shader/videonvc0.fp19
-rw-r--r--src/shader/videonvc0.fpc75
-rw-r--r--src/shader/videonve0.fp22
-rw-r--r--src/shader/videonve0.fpc65
-rw-r--r--src/shader/xfrm2nvc0.vp35
-rw-r--r--src/shader/xfrm2nvc0.vpc139
-rw-r--r--src/shader/xfrm2nve0.vp35
-rw-r--r--src/shader/xfrm2nve0.vpc139
33 files changed, 764 insertions, 486 deletions
diff --git a/src/shader/Makefile b/src/shader/Makefile
new file mode 100644
index 0000000..59e549f
--- /dev/null
+++ b/src/shader/Makefile
@@ -0,0 +1,30 @@
+NVC0_SHADERS = xfrm2nvc0.vpc \
+ exascnvc0.fpc \
+ exacmnvc0.fpc \
+ exacanvc0.fpc \
+ exasanvc0.fpc \
+ exas8nvc0.fpc \
+ exac8nvc0.fpc \
+ videonvc0.fpc
+NVE0_SHADERS = xfrm2nve0.vpc \
+ exascnve0.fpc \
+ exacmnve0.fpc \
+ exacanve0.fpc \
+ exasanve0.fpc \
+ exas8nve0.fpc \
+ exac8nve0.fpc \
+ videonve0.fpc
+
+SHADERS = $(NVC0_SHADERS) $(NVE0_SHADERS)
+
+all: $(SHADERS)
+
+$(filter %nvc0.vpc,$(SHADERS)): %.vpc: %.vp
+ cpp -DENVYAS $< | sed -e '/^#/d' | envyas -w -m nvc0 -o $@
+$(filter %nvc0.fpc,$(SHADERS)): %.fpc: %.fp
+ cpp -DENVYAS $< | sed -e '/^#/d' | envyas -w -m nvc0 -o $@
+
+$(filter %nve0.vpc,$(SHADERS)): %.vpc: %.vp
+ cpp -DENVYAS $< | sed -e '/^#/d' | envyas -w -m nvc0 -V nve4 -o $@
+$(filter %nve0.fpc,$(SHADERS)): %.fpc: %.fp
+ cpp -DENVYAS $< | sed -e '/^#/d' | envyas -w -m nvc0 -V nve4 -o $@
diff --git a/src/shader/exac8nvc0.fp b/src/shader/exac8nvc0.fp
index c7db275..954b306 100644
--- a/src/shader/exac8nvc0.fp
+++ b/src/shader/exac8nvc0.fp
@@ -25,4 +25,17 @@ NVC0FP_Composite_A8[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x94] $r0 0x0
+interp mul f32 $r2 a[0x90] $r0 0x0
+tex t lauto live dfp #:#:#:$r1 t2d $t1 $s0 $r2:$r3 ()
+interp mul f32 $r3 a[0x84] $r0 0x0
+interp mul f32 $r2 a[0x80] $r0 0x0
+tex t lauto live dfp #:#:#:$r0 t2d $t0 $s0 $r2:$r3 ()
+mul ftz rn f32 $r3 $r0 $r1
+mov b32 $r2 $r3
+mov b32 $r1 $r3
+mov b32 $r0 $r3
+exit
#endif
diff --git a/src/shader/exac8nvc0.fpc b/src/shader/exac8nvc0.fpc
index 3afea72..fdcf650 100644
--- a/src/shader/exac8nvc0.fpc
+++ b/src/shader/exac8nvc0.fpc
@@ -1,26 +1,22 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc205e86,
- 0x80120001, /* tex { _ _ _ $r1 } $t1 { $r2 $r3 } */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc201e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r2 $r3 } */
- 0x0400dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r0 $r1 */
- 0x0c009de4,
- 0x28000000, /* mov b32 $r2 $r3 */
- 0x0c005de4,
- 0x28000000, /* mov b32 $r1 $r3 */
- 0x0c001de4,
- 0x28000000, /* mov b32 $r0 $r3 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0094,
+0x03f09c40,
+0xc07e0090,
+0x00205e86,
+0x80120001,
+0x03f0dc40,
+0xc07e0084,
+0x03f09c40,
+0xc07e0080,
+0x00201e86,
+0x80120000,
+0x0400dc40,
+0x58000000,
+0x00309c28,
+0x00305c28,
+0x00301c28,
+0x88001dff,
diff --git a/src/shader/exac8nve0.fp b/src/shader/exac8nve0.fp
index eeb2413..55cdde2 100644
--- a/src/shader/exac8nve0.fp
+++ b/src/shader/exac8nve0.fp
@@ -25,4 +25,18 @@ NVE0FP_Composite_A8[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x94] $r0 0x0
+interp mul f32 $r2 a[0x90] $r0 0x0
+tex t lauto live dfp #:#:#:$r1 t2d $t1 $s0 $r2:$r3 ()
+interp mul f32 $r3 a[0x84] $r0 0x0
+interp mul f32 $r2 a[0x80] $r0 0x0
+tex t lauto live dfp #:#:#:$r0 t2d $t0 $s0 $r2:$r3 ()
+texbar 0x0
+mul ftz rn f32 $r3 $r0 $r1
+mov b32 $r2 $r3
+mov b32 $r1 $r3
+mov b32 $r0 $r3
+exit
#endif
diff --git a/src/shader/exac8nve0.fpc b/src/shader/exac8nve0.fpc
index 7d341d9..c7fc3bd 100644
--- a/src/shader/exac8nve0.fpc
+++ b/src/shader/exac8nve0.fpc
@@ -1,28 +1,24 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc205e86,
- 0x80120001, /* tex { _ _ _ $r1 } $t1 { $r2 $r3 } */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc201e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r2 $r3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x0400dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r0 $r1 */
- 0x0c009de4,
- 0x28000000, /* mov b32 $r2 $r3 */
- 0x0c005de4,
- 0x28000000, /* mov b32 $r1 $r3 */
- 0x0c001de4,
- 0x28000000, /* mov b32 $r0 $r3 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0094,
+0x03f09c40,
+0xc07e0090,
+0x00205e86,
+0x80120001,
+0x03f0dc40,
+0xc07e0084,
+0x03f09c40,
+0xc07e0080,
+0x00201e86,
+0x80120000,
+0x00001de6,
+0xf0000000,
+0x0400dc40,
+0x58000000,
+0x00309c28,
+0x00305c28,
+0x00301c28,
+0x88001dff,
diff --git a/src/shader/exacanvc0.fp b/src/shader/exacanvc0.fp
index 8254306..1a03ecc 100644
--- a/src/shader/exacanvc0.fp
+++ b/src/shader/exacanvc0.fp
@@ -25,4 +25,17 @@ NVC0FP_CAComposite[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x94] $r0 0x0
+interp mul f32 $r2 a[0x90] $r0 0x0
+tex t lauto live dfp $r4:$r5:$r6:$r7 t2d $t1 $s0 $r2:$r3 ()
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t0 $s0 $r0:$r1 ()
+mul ftz rn f32 $r3 $r3 $r7
+mul ftz rn f32 $r2 $r2 $r6
+mul ftz rn f32 $r1 $r1 $r5
+mul ftz rn f32 $r0 $r0 $r4
+exit
#endif
diff --git a/src/shader/exacanvc0.fpc b/src/shader/exacanvc0.fpc
index 2fef0d9..a5e4981 100644
--- a/src/shader/exacanvc0.fpc
+++ b/src/shader/exacanvc0.fpc
@@ -1,26 +1,25 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x8013c001, /* tex { $r4,5,6,7 } $t1 { $r2,3 } */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x1c30dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r7 */
- 0x18209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r6 */
- 0x14105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r5 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0094,
+0x03f09c40,
+0xc07e0090,
+0x00211e86,
+0x8013c001,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x8013c000,
+0x1c30dc40,
+0x58000000,
+0x18209c40,
+0x58000000,
+0x14105c40,
+0x58000000,
+0x10001c40,
+0x58000000,
+0x88001dff,
diff --git a/src/shader/exacanve0.fp b/src/shader/exacanve0.fp
index c4f9afa..dc54771 100644
--- a/src/shader/exacanve0.fp
+++ b/src/shader/exacanve0.fp
@@ -25,4 +25,19 @@ NVE0FP_CAComposite[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x94] $r0 0x0
+interp mul f32 $r2 a[0x90] $r0 0x0
+tex t lauto live dfp $r4:$r5:$r6:$r7 t2d $t1 $s0 $r2:$r3 ()
+texbar 0x0
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t0 $s0 $r0:$r1 ()
+texbar 0x0
+mul ftz rn f32 $r3 $r3 $r7
+mul ftz rn f32 $r2 $r2 $r6
+mul ftz rn f32 $r1 $r1 $r5
+mul ftz rn f32 $r0 $r0 $r4
+exit
#endif
diff --git a/src/shader/exacanve0.fpc b/src/shader/exacanve0.fpc
index 8a096b5..52a736d 100644
--- a/src/shader/exacanve0.fpc
+++ b/src/shader/exacanve0.fpc
@@ -1,30 +1,29 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x8013c001, /* tex { $r4,5,6,7 } $t1 { $r2,3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x1c30dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r7 */
- 0x18209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r6 */
- 0x14105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r5 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0094,
+0x03f09c40,
+0xc07e0090,
+0x00211e86,
+0x8013c001,
+0x00001de6,
+0xf0000000,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x8013c000,
+0x00001de6,
+0xf0000000,
+0x1c30dc40,
+0x58000000,
+0x18209c40,
+0x58000000,
+0x14105c40,
+0x58000000,
+0x10001c40,
+0x58000000,
+0x88001dff,
diff --git a/src/shader/exacmnvc0.fp b/src/shader/exacmnvc0.fp
index a77980e..33cd79a 100644
--- a/src/shader/exacmnvc0.fp
+++ b/src/shader/exacmnvc0.fp
@@ -25,4 +25,17 @@ NVC0FP_Composite[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x94] $r0 0x0
+interp mul f32 $r2 a[0x90] $r0 0x0
+tex t lauto live dfp #:#:#:$r4 t2d $t1 $s0 $r2:$r3 ()
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t0 $s0 $r0:$r1 ()
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r1 $r1 $r4
+mul ftz rn f32 $r0 $r0 $r4
+exit
#endif
diff --git a/src/shader/exacmnvc0.fpc b/src/shader/exacmnvc0.fpc
index 945c653..df46f69 100644
--- a/src/shader/exacmnvc0.fpc
+++ b/src/shader/exacmnvc0.fpc
@@ -1,26 +1,25 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x80120001, /* tex { _,_,_,$r4 } $t1 { $r2,3 } */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0094,
+0x03f09c40,
+0xc07e0090,
+0x00211e86,
+0x80120001,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x8013c000,
+0x1030dc40,
+0x58000000,
+0x10209c40,
+0x58000000,
+0x10105c40,
+0x58000000,
+0x10001c40,
+0x58000000,
+0x88001dff,
diff --git a/src/shader/exacmnve0.fp b/src/shader/exacmnve0.fp
index a7e54f6..5e0edfe 100644
--- a/src/shader/exacmnve0.fp
+++ b/src/shader/exacmnve0.fp
@@ -25,4 +25,19 @@ NVE0FP_Composite[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x94] $r0 0x0
+interp mul f32 $r2 a[0x90] $r0 0x0
+tex t lauto live dfp #:#:#:$r4 t2d $t1 $s0 $r2:$r3 ()
+texbar 0x0
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t0 $s0 $r0:$r1 ()
+texbar 0x0
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r1 $r1 $r4
+mul ftz rn f32 $r0 $r0 $r4
+exit
#endif
diff --git a/src/shader/exacmnve0.fpc b/src/shader/exacmnve0.fpc
index 76a6119..15694a0 100644
--- a/src/shader/exacmnve0.fpc
+++ b/src/shader/exacmnve0.fpc
@@ -1,30 +1,29 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x80120001, /* tex { _,_,_,$r4 } $t1 { $r2,3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0094,
+0x03f09c40,
+0xc07e0090,
+0x00211e86,
+0x80120001,
+0x00001de6,
+0xf0000000,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x8013c000,
+0x00001de6,
+0xf0000000,
+0x1030dc40,
+0x58000000,
+0x10209c40,
+0x58000000,
+0x10105c40,
+0x58000000,
+0x10001c40,
+0x58000000,
+0x88001dff,
diff --git a/src/shader/exas8nvc0.fp b/src/shader/exas8nvc0.fp
index cd05795..61cb67e 100644
--- a/src/shader/exas8nvc0.fp
+++ b/src/shader/exas8nvc0.fp
@@ -25,4 +25,13 @@ NVC0FP_Source_A8[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp #:#:#:$r0 t2d $t0 $s0 $r0:$r1 ()
+mov b32 $r3 $r0
+mov b32 $r2 $r0
+mov b32 $r1 $r0
+exit
#endif
diff --git a/src/shader/exas8nvc0.fpc b/src/shader/exas8nvc0.fpc
index 7399003..a9f6a25 100644
--- a/src/shader/exas8nvc0.fpc
+++ b/src/shader/exas8nvc0.fpc
@@ -1,18 +1,14 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r0 $r1 } */
- 0x0000dde4,
- 0x28000000, /* mov b32 $r3 $r0 */
- 0x00009de4,
- 0x28000000, /* mov b32 $r2 $r0 */
- 0x00005de4,
- 0x28000000, /* mov b32 $r1 $r0 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x80120000,
+0x0000dc28,
+0x00009c28,
+0x00005c28,
+0x88001dff,
diff --git a/src/shader/exas8nve0.fp b/src/shader/exas8nve0.fp
index 6017f66..9f96236 100644
--- a/src/shader/exas8nve0.fp
+++ b/src/shader/exas8nve0.fp
@@ -25,4 +25,14 @@ NVE0FP_Source_A8[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp #:#:#:$r0 t2d $t0 $s0 $r0:$r1 ()
+texbar 0x0
+mov b32 $r3 $r0
+mov b32 $r2 $r0
+mov b32 $r1 $r0
+exit
#endif
diff --git a/src/shader/exas8nve0.fpc b/src/shader/exas8nve0.fpc
index db5d3f1..2e487f5 100644
--- a/src/shader/exas8nve0.fpc
+++ b/src/shader/exas8nve0.fpc
@@ -1,20 +1,16 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r0 $r1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x0000dde4,
- 0x28000000, /* mov b32 $r3 $r0 */
- 0x00009de4,
- 0x28000000, /* mov b32 $r2 $r0 */
- 0x00005de4,
- 0x28000000, /* mov b32 $r1 $r0 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x80120000,
+0x00001de6,
+0xf0000000,
+0x0000dc28,
+0x00009c28,
+0x00005c28,
+0x88001dff,
diff --git a/src/shader/exasanvc0.fp b/src/shader/exasanvc0.fp
index 9f33b4d..80674d9 100644
--- a/src/shader/exasanvc0.fp
+++ b/src/shader/exasanvc0.fp
@@ -25,4 +25,17 @@ NVC0FP_CACompositeSrcAlpha[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x84] $r0 0x0
+interp mul f32 $r2 a[0x80] $r0 0x0
+tex t lauto live dfp #:#:#:$r4 t2d $t0 $s0 $r2:$r3 ()
+interp mul f32 $r1 a[0x94] $r0 0x0
+interp mul f32 $r0 a[0x90] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t1 $s0 $r0:$r1 ()
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r1 $r1 $r4
+mul ftz rn f32 $r0 $r0 $r4
+exit
#endif
diff --git a/src/shader/exasanvc0.fpc b/src/shader/exasanvc0.fpc
index b2b1518..9fe0065 100644
--- a/src/shader/exasanvc0.fpc
+++ b/src/shader/exasanvc0.fpc
@@ -1,26 +1,25 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc211e86,
- 0x80120000, /* tex { _,_,_,$r4 } $t0 { $r2,3 } */
- 0x03f05c40,
- 0xc07e0094, /* pinterp f32 $r1 $r0 v[$r63+0x94] */
- 0x03f01c40,
- 0xc07e0090, /* pinterp f32 $r0 $r0 v[$r63+0x90] */
- 0xfc001e86,
- 0x8013c001, /* tex { $r0,1,2,3 } $t1 { $r0,1 } */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0084,
+0x03f09c40,
+0xc07e0080,
+0x00211e86,
+0x80120000,
+0x03f05c40,
+0xc07e0094,
+0x03f01c40,
+0xc07e0090,
+0x00001e86,
+0x8013c001,
+0x1030dc40,
+0x58000000,
+0x10209c40,
+0x58000000,
+0x10105c40,
+0x58000000,
+0x10001c40,
+0x58000000,
+0x88001dff,
diff --git a/src/shader/exasanve0.fp b/src/shader/exasanve0.fp
index 8a0702e..4ec257b 100644
--- a/src/shader/exasanve0.fp
+++ b/src/shader/exasanve0.fp
@@ -25,4 +25,19 @@ NVE0FP_CACompositeSrcAlpha[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r3 a[0x84] $r0 0x0
+interp mul f32 $r2 a[0x80] $r0 0x0
+tex t lauto live dfp #:#:#:$r4 t2d $t0 $s0 $r2:$r3 ()
+texbar 0x0
+interp mul f32 $r1 a[0x94] $r0 0x0
+interp mul f32 $r0 a[0x90] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t1 $s0 $r0:$r1 ()
+texbar 0x0
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r1 $r1 $r4
+mul ftz rn f32 $r0 $r0 $r4
+exit
#endif
diff --git a/src/shader/exasanve0.fpc b/src/shader/exasanve0.fpc
index e30e4a0..6a4d54b 100644
--- a/src/shader/exasanve0.fpc
+++ b/src/shader/exasanve0.fpc
@@ -1,30 +1,29 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc211e86,
- 0x80120000, /* tex { _,_,_,$r4 } $t0 { $r2,3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x03f05c40,
- 0xc07e0094, /* pinterp f32 $r1 $r0 v[$r63+0x94] */
- 0x03f01c40,
- 0xc07e0090, /* pinterp f32 $r0 $r0 v[$r63+0x90] */
- 0xfc001e86,
- 0x8013c001, /* tex { $r0,1,2,3 } $t1 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f0dc40,
+0xc07e0084,
+0x03f09c40,
+0xc07e0080,
+0x00211e86,
+0x80120000,
+0x00001de6,
+0xf0000000,
+0x03f05c40,
+0xc07e0094,
+0x03f01c40,
+0xc07e0090,
+0x00001e86,
+0x8013c001,
+0x00001de6,
+0xf0000000,
+0x1030dc40,
+0x58000000,
+0x10209c40,
+0x58000000,
+0x10105c40,
+0x58000000,
+0x10001c40,
+0x58000000,
+0x88001dff,
diff --git a/src/shader/exascnvc0.fp b/src/shader/exascnvc0.fp
index d1f1791..c7cfedc 100644
--- a/src/shader/exascnvc0.fp
+++ b/src/shader/exascnvc0.fp
@@ -25,4 +25,10 @@ NVC0FP_Source[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t0 $s0 $r0:$r1 ()
+exit
#endif
diff --git a/src/shader/exascnvc0.fpc b/src/shader/exascnvc0.fpc
index 27b5456..8af6c65 100644
--- a/src/shader/exascnvc0.fpc
+++ b/src/shader/exascnvc0.fpc
@@ -1,12 +1,11 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x8013c000,
+0x88001dff,
diff --git a/src/shader/exascnve0.fp b/src/shader/exascnve0.fp
index a1d4517..5ec8496 100644
--- a/src/shader/exascnve0.fp
+++ b/src/shader/exascnve0.fp
@@ -25,4 +25,11 @@ NVE0FP_Source[] = {
};
#else
+interp pass f32 $r0 a[0x7c] 0x0 0x0
+rcp f32 $r0 $r0
+interp mul f32 $r1 a[0x84] $r0 0x0
+interp mul f32 $r0 a[0x80] $r0 0x0
+tex t lauto live dfp $r0:$r1:$r2:$r3 t2d $t0 $s0 $r0:$r1 ()
+texbar 0x0
+exit
#endif
diff --git a/src/shader/exascnve0.fpc b/src/shader/exascnve0.fpc
index 338252b..5bbd150 100644
--- a/src/shader/exascnve0.fpc
+++ b/src/shader/exascnve0.fpc
@@ -1,14 +1,13 @@
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x00001de7,
- 0x80000000, /* exit */
+0xfff01c00,
+0xc07e007c,
+0x10001c00,
+0xc8000000,
+0x03f05c40,
+0xc07e0084,
+0x03f01c40,
+0xc07e0080,
+0x00001e86,
+0x8013c000,
+0x00001de6,
+0xf0000000,
+0x88001dff,
diff --git a/src/shader/videonvc0.fp b/src/shader/videonvc0.fp
index 6f82a0e..db1ed12 100644
--- a/src/shader/videonvc0.fp
+++ b/src/shader/videonvc0.fp
@@ -25,4 +25,23 @@ NVC0FP_NV12[] = {
};
#else
+interp pass f32 $r2 a[0x7c] 0x0 0x0
+rcp f32 $r2 $r2
+interp mul f32 $r0 a[0x80] $r2 0x0
+interp mul f32 $r1 a[0x84] $r2 0x0
+tex t lauto live dfp #:#:#:$r0 t2d $t0 $s0 $r0:$r1 ()
+mul ftz rn f32 $r5 $r0 c0[0x0]
+add ftz rn f32 $r3 $r5 c0[0x4]
+add ftz rn f32 $r4 $r5 c0[0x8]
+add ftz rn f32 $r5 $r5 c0[0xc]
+interp mul f32 $r0 a[0x80] $r2 0x0
+interp mul f32 $r1 a[0x84] $r2 0x0
+tex t lauto live dfp #:#:$r0:$r1 t2d $t1 $s0 $r0:$r1 ()
+fma ftz rn f32 $r3 $r0 c0[0x10] $r3
+fma ftz rn f32 $r4 $r0 c0[0x14] $r4
+fma ftz rn f32 $r5 $r0 c0[0x18] $r5
+fma ftz rn f32 $r0 $r1 c0[0x1c] $r3
+fma ftz rn f32 $r2 $r1 c0[0x24] $r5
+fma ftz rn f32 $r1 $r1 c0[0x20] $r4
+exit
#endif
diff --git a/src/shader/videonvc0.fpc b/src/shader/videonvc0.fpc
index 18828c2..b6b6b96 100644
--- a/src/shader/videonvc0.fpc
+++ b/src/shader/videonvc0.fpc
@@ -1,38 +1,37 @@
- 0xfff09c00,
- 0xc07e007c,
- 0x10209c00,
- 0xc8000000,
- 0x0bf01c40,
- 0xc07e0080,
- 0x0bf05c40,
- 0xc07e0084,
- 0xfc001e86,
- 0x80120000,
- 0x00015c40,
- 0x58004000,
- 0x1050dc20,
- 0x50004000,
- 0x20511c20,
- 0x50004000,
- 0x30515c20,
- 0x50004000,
- 0x0bf01c40,
- 0xc07e0080,
- 0x0bf05c40,
- 0xc07e0084,
- 0xfc001e86,
- 0x80130001,
- 0x4000dc40,
- 0x30064000,
- 0x50011c40,
- 0x30084000,
- 0x60015c40,
- 0x300a4000,
- 0x70101c40,
- 0x30064000,
- 0x90109c40,
- 0x300a4000,
- 0x80105c40,
- 0x30084000,
- 0x00001de7,
- 0x80000000,
+0xfff09c00,
+0xc07e007c,
+0x10209c00,
+0xc8000000,
+0x0bf01c40,
+0xc07e0080,
+0x0bf05c40,
+0xc07e0084,
+0x00001e86,
+0x80120000,
+0x00015c40,
+0x58004000,
+0x1050dc20,
+0x50004000,
+0x20511c20,
+0x50004000,
+0x30515c20,
+0x50004000,
+0x0bf01c40,
+0xc07e0080,
+0x0bf05c40,
+0xc07e0084,
+0x00001e86,
+0x80130001,
+0x4000dc40,
+0x30064000,
+0x50011c40,
+0x30084000,
+0x60015c40,
+0x300a4000,
+0x70101c40,
+0x30064000,
+0x90109c40,
+0x300a4000,
+0x80105c40,
+0x30084000,
+0x88001dff,
diff --git a/src/shader/videonve0.fp b/src/shader/videonve0.fp
index 24747c1..a6675c9 100644
--- a/src/shader/videonve0.fp
+++ b/src/shader/videonve0.fp
@@ -25,4 +25,26 @@ NVE0FP_NV12[] = {
};
#else
+sched 0x2e 0x28 0x23 0x2e 0x20 0x20 0xc2
+interp pass f32 $r2 a[0x7c] 0x0 0x0
+rcp f32 $r2 $r2
+interp mul f32 $r0 a[0x80] $r2 0x0
+interp mul f32 $r1 a[0x84] $r2 0x0
+tex t lauto live dfp #:#:#:$r4 t2d $t0 $s0 $r0:$r1 ()
+tex p lauto live dfp #:#:$r0:$r1 t2d $t1 $s0 $r0:$r1 ()
+texbar 0x1
+sched 0x28 0x4 0x20 0x20 0xa2 0x4 0x20
+mul ftz rn f32 $r5 $r4 c0[0x0]
+add ftz rn f32 $r3 $r5 c0[0x4]
+add ftz rn f32 $r4 $r5 c0[0x8]
+add ftz rn f32 $r5 $r5 c0[0xc]
+texbar 0x0
+fma ftz rn f32 $r3 $r0 c0[0x10] $r3
+fma ftz rn f32 $r4 $r0 c0[0x14] $r4
+sched 0x28 0x4 0x20 0x4 0x2e 0x0 0x0
+fma ftz rn f32 $r5 $r0 c0[0x18] $r5
+fma ftz rn f32 $r0 $r1 c0[0x1c] $r3
+fma ftz rn f32 $r2 $r1 c0[0x24] $r5
+fma ftz rn f32 $r1 $r1 c0[0x20] $r4
+exit
#endif
diff --git a/src/shader/videonve0.fpc b/src/shader/videonve0.fpc
index 1263c2d..c4f1b09 100644
--- a/src/shader/videonve0.fpc
+++ b/src/shader/videonve0.fpc
@@ -1,22 +1,43 @@
- 0xe23282e7, 0x2c220202, /* sched 0x2e 0x28 0x23 0x2e 0x20 0x20 0xc2 */
- 0xfff09c00, 0xc07e007c, /* interp pass f32 $r2 a[0x7c] */
- 0x10209c00, 0xc8000000, /* rcp f32 $r2 $r2 */
- 0x0bf01c40, 0xc07e0080, /* interp mul f32 $r0 a[0x80] $r2 0 */
- 0x0bf05c40, 0xc07e0084, /* interp mul f32 $r1 a[0x84] $r2 0 */
- 0xfc011e86, 0x80120000, /* tex t { # # # $r4 } t2d c[0x0] { $r0 $r1 } */
- 0xfc001f06, 0x80130001, /* tex p { # # $r0 $r1 } t2d c[0x4] { $r0 $r1 } */
- 0x04001de6, 0xf0000000, /* texbar 1 */
- 0x02004287, 0x22004a22, /* sched 0x28 0x4 0x20 0x20 0xa2 0x4 0x20 */
- 0x00415c40, 0x58004000, /* mul ftz rn f32 $r5 $r4 c0[0] */
- 0x1050dc20, 0x50004000, /* add ftz rn f32 $r3 $r5 c0[0x4] */
- 0x20511c20, 0x50004000, /* add ftz rn f32 $r4 $r5 c0[0x8] */
- 0x30515c20, 0x50004000, /* add ftz rn f32 $r5 $r5 c0[0xc] */
- 0x00001de6, 0xf0000000, /* texbar 0 */
- 0x4000dc40, 0x30064000, /* fma ftz rn f32 $r3 $r0 c0[0x10] $r3 */
- 0x50011c40, 0x30084000, /* fma ftz rn f32 $r4 $r0 c0[0x14] $r4 */
- 0x42004287, 0x200002e0, /* sched 0x28 0x4 0x20 0x4 0x2e 0 0 */
- 0x60015c40, 0x300a4000, /* fma ftz rn f32 $r5 $r0 c0[0x18] $r5 */
- 0x70101c40, 0x30064000, /* fma ftz rn f32 $r0 $r1 c0[0x1c] $r3 */
- 0x90109c40, 0x300a4000, /* fma ftz rn f32 $r2 $r1 c0[0x24] $r5 */
- 0x80105c40, 0x30084000, /* fma ftz rn f32 $r1 $r1 c0[0x20] $r4 */
- 0x00001de7, 0x80000000, /* exit */
+0xe23282e7,
+0x2c220202,
+0xfff09c00,
+0xc07e007c,
+0x10209c00,
+0xc8000000,
+0x0bf01c40,
+0xc07e0080,
+0x0bf05c40,
+0xc07e0084,
+0x00011e86,
+0x80120000,
+0x00001f06,
+0x80130001,
+0x04001de6,
+0xf0000000,
+0x02004287,
+0x22004a22,
+0x00415c40,
+0x58004000,
+0x1050dc20,
+0x50004000,
+0x20511c20,
+0x50004000,
+0x30515c20,
+0x50004000,
+0x00001de6,
+0xf0000000,
+0x4000dc40,
+0x30064000,
+0x50011c40,
+0x30084000,
+0x42004287,
+0x200002e0,
+0x60015c40,
+0x300a4000,
+0x70101c40,
+0x30064000,
+0x90109c40,
+0x300a4000,
+0x80105c40,
+0x30084000,
+0x88001dff,
diff --git a/src/shader/xfrm2nvc0.vp b/src/shader/xfrm2nvc0.vp
index a9cdd08..e29e5c5 100644
--- a/src/shader/xfrm2nvc0.vp
+++ b/src/shader/xfrm2nvc0.vp
@@ -25,4 +25,39 @@ NVC0VP_Transform2[] = {
};
#else
+ld b128 $r0:$r1:$r2:$r3 a[0x80] 0x0 unk39
+st b128 a[0x70] $r0:$r1:$r2:$r3 0x0 unk39
+ld b64 $r0:$r1 a[0x90] 0x0 unk39
+mul ftz rn f32 $r2 $r0 c0[0x0]
+mul ftz rn f32 $r3 $r0 c0[0xc]
+mul ftz rn f32 $r4 $r0 c0[0x18]
+fma ftz rn f32 $r2 $r1 c0[0x4] $r2
+fma ftz rn f32 $r3 $r1 c0[0x10] $r3
+fma ftz rn f32 $r4 $r1 c0[0x1c] $r4
+add ftz rn f32 $r2 $r2 c0[0x8]
+add ftz rn f32 $r3 $r3 c0[0x14]
+add ftz rn f32 $r4 $r4 c0[0x20]
+rcp f32 $r4 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r0 $r2 c0[0x24]
+mul ftz rn f32 $r1 $r3 c0[0x28]
+st b64 a[0x80] $r0:$r1 0x0 unk39
+ld b64 $r0:$r1 a[0xa0] 0x0 unk39
+mul ftz rn f32 $r2 $r0 c0[0x2c]
+mul ftz rn f32 $r3 $r0 c0[0x38]
+mul ftz rn f32 $r4 $r0 c0[0x44]
+fma ftz rn f32 $r2 $r1 c0[0x30] $r2
+fma ftz rn f32 $r3 $r1 c0[0x3c] $r3
+fma ftz rn f32 $r4 $r1 c0[0x48] $r4
+add ftz rn f32 $r2 $r2 c0[0x34]
+add ftz rn f32 $r3 $r3 c0[0x40]
+add ftz rn f32 $r4 $r4 c0[0x4c]
+rcp f32 $r4 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r0 $r2 c0[0x50]
+mul ftz rn f32 $r1 $r3 c0[0x54]
+st b64 a[0x90] $r0:$r1 0x0 unk39
+exit
#endif
diff --git a/src/shader/xfrm2nvc0.vpc b/src/shader/xfrm2nvc0.vpc
index a1287c0..c7aee0b 100644
--- a/src/shader/xfrm2nvc0.vpc
+++ b/src/shader/xfrm2nvc0.vpc
@@ -1,70 +1,69 @@
- 0xfff01c66,
- 0x06000080,
- 0x03f01c66,
- 0x0a7e0070,
- 0xfff01c26,
- 0x06000090,
- 0x00009c40,
- 0x58004000,
- 0x3000dc40,
- 0x58004000,
- 0x60011c40,
- 0x58004000,
- 0x10109c40,
- 0x30044000,
- 0x4010dc40,
- 0x30064000,
- 0x70111c40,
- 0x30084000,
- 0x20209c20,
- 0x50004000,
- 0x5030dc20,
- 0x50004000,
- 0x80411c20,
- 0x50004000,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x90201c40,
- 0x58004000,
- 0xa0305c40,
- 0x58004000,
- 0x03f01c26,
- 0x0a7e0080,
- 0xfff01c26,
- 0x060000a0,
- 0xb0009c40,
- 0x58004000,
- 0xe000dc40,
- 0x58004000,
- 0x10011c40,
- 0x58004001,
- 0xc0109c40,
- 0x30044000,
- 0xf010dc40,
- 0x30064000,
- 0x20111c40,
- 0x30084001,
- 0xd0209c20,
- 0x50004000,
- 0x0030dc20,
- 0x50004001,
- 0x30411c20,
- 0x50004001,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x40201c40,
- 0x58004001,
- 0x50305c40,
- 0x58004001,
- 0x03f01c26,
- 0x0a7e0090,
- 0x00001de7,
- 0x80000000,
+0xfff01c66,
+0x06000080,
+0x03f01c66,
+0x0a7e0070,
+0xfff01c26,
+0x06000090,
+0x00009c40,
+0x58004000,
+0x3000dc40,
+0x58004000,
+0x60011c40,
+0x58004000,
+0x10109c40,
+0x30044000,
+0x4010dc40,
+0x30064000,
+0x70111c40,
+0x30084000,
+0x20209c20,
+0x50004000,
+0x5030dc20,
+0x50004000,
+0x80411c20,
+0x50004000,
+0x10411c00,
+0xc8000000,
+0x10209c40,
+0x58000000,
+0x1030dc40,
+0x58000000,
+0x90201c40,
+0x58004000,
+0xa0305c40,
+0x58004000,
+0x03f01c26,
+0x0a7e0080,
+0xfff01c26,
+0x060000a0,
+0xb0009c40,
+0x58004000,
+0xe000dc40,
+0x58004000,
+0x10011c40,
+0x58004001,
+0xc0109c40,
+0x30044000,
+0xf010dc40,
+0x30064000,
+0x20111c40,
+0x30084001,
+0xd0209c20,
+0x50004000,
+0x0030dc20,
+0x50004001,
+0x30411c20,
+0x50004001,
+0x10411c00,
+0xc8000000,
+0x10209c40,
+0x58000000,
+0x1030dc40,
+0x58000000,
+0x40201c40,
+0x58004001,
+0x50305c40,
+0x58004001,
+0x03f01c26,
+0x0a7e0090,
+0x88001dff,
diff --git a/src/shader/xfrm2nve0.vp b/src/shader/xfrm2nve0.vp
index 262841f..4e39f53 100644
--- a/src/shader/xfrm2nve0.vp
+++ b/src/shader/xfrm2nve0.vp
@@ -25,4 +25,39 @@ NVE0VP_Transform2[] = {
};
#else
+ld b128 $r0:$r1:$r2:$r3 a[0x80] 0x0 unk39
+st b128 a[0x70] $r0:$r1:$r2:$r3 0x0 unk39
+ld b64 $r0:$r1 a[0x90] 0x0 unk39
+mul ftz rn f32 $r2 $r0 c0[0x0]
+mul ftz rn f32 $r3 $r0 c0[0xc]
+mul ftz rn f32 $r4 $r0 c0[0x18]
+fma ftz rn f32 $r2 $r1 c0[0x4] $r2
+fma ftz rn f32 $r3 $r1 c0[0x10] $r3
+fma ftz rn f32 $r4 $r1 c0[0x1c] $r4
+add ftz rn f32 $r2 $r2 c0[0x8]
+add ftz rn f32 $r3 $r3 c0[0x14]
+add ftz rn f32 $r4 $r4 c0[0x20]
+rcp f32 $r4 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r0 $r2 c0[0x24]
+mul ftz rn f32 $r1 $r3 c0[0x28]
+st b64 a[0x80] $r0:$r1 0x0 unk39
+ld b64 $r0:$r1 a[0xa0] 0x0 unk39
+mul ftz rn f32 $r2 $r0 c0[0x2c]
+mul ftz rn f32 $r3 $r0 c0[0x38]
+mul ftz rn f32 $r4 $r0 c0[0x44]
+fma ftz rn f32 $r2 $r1 c0[0x30] $r2
+fma ftz rn f32 $r3 $r1 c0[0x3c] $r3
+fma ftz rn f32 $r4 $r1 c0[0x48] $r4
+add ftz rn f32 $r2 $r2 c0[0x34]
+add ftz rn f32 $r3 $r3 c0[0x40]
+add ftz rn f32 $r4 $r4 c0[0x4c]
+rcp f32 $r4 $r4
+mul ftz rn f32 $r2 $r2 $r4
+mul ftz rn f32 $r3 $r3 $r4
+mul ftz rn f32 $r0 $r2 c0[0x50]
+mul ftz rn f32 $r1 $r3 c0[0x54]
+st b64 a[0x90] $r0:$r1 0x0 unk39
+exit
#endif
diff --git a/src/shader/xfrm2nve0.vpc b/src/shader/xfrm2nve0.vpc
index a1287c0..c7aee0b 100644
--- a/src/shader/xfrm2nve0.vpc
+++ b/src/shader/xfrm2nve0.vpc
@@ -1,70 +1,69 @@
- 0xfff01c66,
- 0x06000080,
- 0x03f01c66,
- 0x0a7e0070,
- 0xfff01c26,
- 0x06000090,
- 0x00009c40,
- 0x58004000,
- 0x3000dc40,
- 0x58004000,
- 0x60011c40,
- 0x58004000,
- 0x10109c40,
- 0x30044000,
- 0x4010dc40,
- 0x30064000,
- 0x70111c40,
- 0x30084000,
- 0x20209c20,
- 0x50004000,
- 0x5030dc20,
- 0x50004000,
- 0x80411c20,
- 0x50004000,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x90201c40,
- 0x58004000,
- 0xa0305c40,
- 0x58004000,
- 0x03f01c26,
- 0x0a7e0080,
- 0xfff01c26,
- 0x060000a0,
- 0xb0009c40,
- 0x58004000,
- 0xe000dc40,
- 0x58004000,
- 0x10011c40,
- 0x58004001,
- 0xc0109c40,
- 0x30044000,
- 0xf010dc40,
- 0x30064000,
- 0x20111c40,
- 0x30084001,
- 0xd0209c20,
- 0x50004000,
- 0x0030dc20,
- 0x50004001,
- 0x30411c20,
- 0x50004001,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x40201c40,
- 0x58004001,
- 0x50305c40,
- 0x58004001,
- 0x03f01c26,
- 0x0a7e0090,
- 0x00001de7,
- 0x80000000,
+0xfff01c66,
+0x06000080,
+0x03f01c66,
+0x0a7e0070,
+0xfff01c26,
+0x06000090,
+0x00009c40,
+0x58004000,
+0x3000dc40,
+0x58004000,
+0x60011c40,
+0x58004000,
+0x10109c40,
+0x30044000,
+0x4010dc40,
+0x30064000,
+0x70111c40,
+0x30084000,
+0x20209c20,
+0x50004000,
+0x5030dc20,
+0x50004000,
+0x80411c20,
+0x50004000,
+0x10411c00,
+0xc8000000,
+0x10209c40,
+0x58000000,
+0x1030dc40,
+0x58000000,
+0x90201c40,
+0x58004000,
+0xa0305c40,
+0x58004000,
+0x03f01c26,
+0x0a7e0080,
+0xfff01c26,
+0x060000a0,
+0xb0009c40,
+0x58004000,
+0xe000dc40,
+0x58004000,
+0x10011c40,
+0x58004001,
+0xc0109c40,
+0x30044000,
+0xf010dc40,
+0x30064000,
+0x20111c40,
+0x30084001,
+0xd0209c20,
+0x50004000,
+0x0030dc20,
+0x50004001,
+0x30411c20,
+0x50004001,
+0x10411c00,
+0xc8000000,
+0x10209c40,
+0x58000000,
+0x1030dc40,
+0x58000000,
+0x40201c40,
+0x58004001,
+0x50305c40,
+0x58004001,
+0x03f01c26,
+0x0a7e0090,
+0x88001dff,