summaryrefslogtreecommitdiff
path: root/src/libultra_code
diff options
context:
space:
mode:
authorLucas Shaw <49287729+shawlucas@users.noreply.github.com>2020-05-27 00:48:07 -0700
committerGitHub <noreply@github.com>2020-05-27 03:48:07 -0400
commit02fc5287cc07854012acd4eb2064c9fc97c73c04 (patch)
tree78d5832877904138850c9798bc5290aa88b18c11 /src/libultra_code
parentc68d752813309b60dc35569bc9668b4d3a81e86a (diff)
code_80106550 / llcvt.c and code_80104450 / ortho.c OK (#163)
* llcvt.c OK, added script from mm decomp to set mips3 * ortho.c OK * added entries to functions.h * named guNormalize.s
Diffstat (limited to 'src/libultra_code')
-rw-r--r--src/libultra_code/llcvt.c33
-rw-r--r--src/libultra_code/ortho.c30
2 files changed, 63 insertions, 0 deletions
diff --git a/src/libultra_code/llcvt.c b/src/libultra_code/llcvt.c
new file mode 100644
index 000000000..c3da2e49e
--- /dev/null
+++ b/src/libultra_code/llcvt.c
@@ -0,0 +1,33 @@
+#include <global.h>
+
+s64 __d_to_ll(f64 d) {
+ return d;
+}
+
+s64 __f_to_ll(f32 f) {
+ return f;
+}
+
+u64 __d_to_ull(f64 d) {
+ return d;
+}
+
+u64 __f_to_ull(f32 f) {
+ return f;
+}
+
+f64 __ll_to_d(s64 l) {
+ return l;
+}
+
+f32 __ll_to_f(s64 l) {
+ return l;
+}
+
+f64 __ull_to_d(u64 l) {
+ return l;
+}
+
+f32 __ull_to_f(u64 l) {
+ return l;
+}
diff --git a/src/libultra_code/ortho.c b/src/libultra_code/ortho.c
new file mode 100644
index 000000000..259aca5e7
--- /dev/null
+++ b/src/libultra_code/ortho.c
@@ -0,0 +1,30 @@
+#include <ultra64.h>
+#include <global.h>
+
+void guOrthoF(f32 mf[4][4], f32 left, f32 right, f32 bottom, f32 top, f32 near, f32 far, f32 scale) {
+ s32 i, j;
+
+ guMtxIdentF(mf);
+
+ mf[0][0] = 2 / (right - left);
+ mf[1][1] = 2 / (top - bottom);
+ mf[2][2] = -2 / (far - near);
+ mf[3][0] = -(right + left) / (right - left);
+ mf[3][1] = -(top + bottom) / (top - bottom);
+ mf[3][2] = -(far + near) / (far - near);
+ mf[3][3] = 1;
+
+ for (i = 0; i < 4; i++) {
+ for (j = 0; j < 4; j++) {
+ mf[i][j] *= scale;
+ }
+ }
+}
+
+void guOrtho(Mtx* mtx, f32 left, f32 right, f32 bottom, f32 top, f32 near, f32 far, f32 scale) {
+ MtxF_t mf;
+
+ guOrthoF(mf, left, right, bottom, top, near, far, scale);
+
+ guMtxF2L(mf, mtx);
+}