diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-05-15 21:13:11 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-05-15 21:25:46 +1000 |
commit | 41cc2f24c43d2656ac722f594aaebad93e37dfec (patch) | |
tree | ebebd0e5d27f4132d61b093ca192cb7a68464223 | |
parent | 1edb5d7ae450a32fe6607d536653cf733444e7e2 (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>
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, |