diff options
| author | Lucas Shaw <49287729+shawlucas@users.noreply.github.com> | 2020-05-27 00:48:07 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-27 03:48:07 -0400 |
| commit | 02fc5287cc07854012acd4eb2064c9fc97c73c04 (patch) | |
| tree | 78d5832877904138850c9798bc5290aa88b18c11 /src/libultra_code | |
| parent | c68d752813309b60dc35569bc9668b4d3a81e86a (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.c | 33 | ||||
| -rw-r--r-- | src/libultra_code/ortho.c | 30 |
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); +} |
