diff options
| author | Jasper St. Pierre <jstpierre@mecheye.net> | 2023-09-12 19:39:54 -0700 |
|---|---|---|
| committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2023-09-12 19:39:54 -0700 |
| commit | 286c30129ffdef6afb4178f33bba469d7431cc58 (patch) | |
| tree | a907e86e2da23915e4e29a9d19387dbdb8fa720b /src/JSystem/J3DGraphBase/J3DTransform.cpp | |
| parent | 109b2f299d1873a8eb9714d657f5b1a1a27b37d1 (diff) | |
J3DDrawBuffer yeah
Diffstat (limited to 'src/JSystem/J3DGraphBase/J3DTransform.cpp')
| -rw-r--r-- | src/JSystem/J3DGraphBase/J3DTransform.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/JSystem/J3DGraphBase/J3DTransform.cpp b/src/JSystem/J3DGraphBase/J3DTransform.cpp index e9160d51..b231a337 100644 --- a/src/JSystem/J3DGraphBase/J3DTransform.cpp +++ b/src/JSystem/J3DGraphBase/J3DTransform.cpp @@ -17,8 +17,29 @@ void J3DGQRSetup7(unsigned long, unsigned long, unsigned long, unsigned long) { } /* 802DA0E8-802DA120 .text J3DCalcZValue__FPA4_f3Vec */ -void J3DCalcZValue(float(*)[4], Vec) { - /* Nonmatching */ + +// matches debug +f32 J3DCalcZValue(register MtxP m, register Vec v) { + register f32 temp_f4; + register f32 out; + register f32 temp_f0; + register f32 temp_f2; + register f32 temp_f1 = 1.0f; + + // clang-format off + asm { + psq_l temp_f0, 0(v), 0, 0 /* qr0 */ + lfs temp_f2, 8(v) + psq_l temp_f4, 32(m), 0, 0 /* qr0 */ + psq_l out, 40(m), 0, 0 /* qr0 */ + ps_merge00 temp_f2, temp_f2, temp_f1 + ps_mul temp_f4, temp_f0, temp_f4 + ps_madd out, temp_f2, out, temp_f4 + ps_sum0 out, out, out, out + } + // clang-format on + + return out; } /* 802DA120-802DA2E0 .text J3DCalcBBoardMtx__FPA4_f */ |
