diff options
| author | EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> | 2021-08-24 04:17:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-23 23:17:25 -0400 |
| commit | e02e151c91d006279c4cb75636fead5d1663c7d3 (patch) | |
| tree | 0bb39aa0daef0fd861acf78eacf415af9be052c7 /lib | |
| parent | caf864e9ef9ad8f88f54f79b38a846d012ae2fbb (diff) | |
Update subrepo libgfxd (#169)
* git subrepo pull (merge) lib/libgfxd
subrepo:
subdir: "lib/libgfxd"
merged: "5629265"
upstream:
origin: "https://github.com/glankk/libgfxd.git"
branch: "master"
commit: "008f73d"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* start over
* git subrepo clone git@github.com:glankk/libgfxd.git lib/libgfxd
subrepo:
subdir: "lib/libgfxd"
merged: "008f73d"
upstream:
origin: "git@github.com:glankk/libgfxd.git"
branch: "master"
commit: "008f73d"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libgfxd/.gitrepo | 6 | ||||
| -rw-r--r-- | lib/libgfxd/gbi.h | 26 | ||||
| -rw-r--r-- | lib/libgfxd/uc_argtbl.c | 5 | ||||
| -rw-r--r-- | lib/libgfxd/uc_macrofn.c | 27 |
4 files changed, 44 insertions, 20 deletions
diff --git a/lib/libgfxd/.gitrepo b/lib/libgfxd/.gitrepo index c5e0d08..4c8b7fe 100644 --- a/lib/libgfxd/.gitrepo +++ b/lib/libgfxd/.gitrepo @@ -4,9 +4,9 @@ ; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme ; [subrepo] - remote = https://github.com/glankk/libgfxd.git + remote = git@github.com:glankk/libgfxd.git branch = master - commit = 01db16329ef5cac23566b6d143b57d0525e22876 - parent = c6b352aac040527d2962f3e764e460eb9e813fe5 + commit = 008f73dca8ebc9151b205959b17773a19c5bd0da + parent = c92cfda733aa740a53129a21f69c8abb08a465c7 method = merge cmdver = 0.4.3 diff --git a/lib/libgfxd/gbi.h b/lib/libgfxd/gbi.h index bc264ee..69fa7f1 100644 --- a/lib/libgfxd/gbi.h +++ b/lib/libgfxd/gbi.h @@ -1,5 +1,5 @@ /** - * gbi.h version 0.3.5 + * gbi.h version 0.3.6 * n64 graphics microcode interface library * compatible with fast3d, f3dex, f3dex2, s2dex, and s2dex2 * @@ -2766,6 +2766,14 @@ gF_(gV4_(v2, v3, v0, v1, flag) * 2, 8, 8) | \ gF_(gV4_(v3, v0, v1, v2, flag) * 2, 8, 0)) +# define gsSPLineW3D(v0, v1, wd, flag) \ + gO_( \ + G_LINE3D, \ + 0, \ + gF_(gV2_(v0, v1, flag) * 2, 8, 16) | \ + gF_(gV2_(v1, v0, flag) * 2, 8, 8) | \ + gF_(wd, 8, 0)) + # define gsSPVertex(v, n, v0) \ gO_( \ G_VTX, \ @@ -2807,14 +2815,6 @@ gF_((v0) * 2, 16, 0), \ gF_((vn) * 2, 16, 0)) -# define gsSPLineW3D(v0, v1, wd, flag) \ - gO_( \ - G_LINE3D, \ - gF_(gV2_(v0, v1, flag) * 2, 8, 16) | \ - gF_(gV2_(v1, v0, flag) * 2, 8, 8) | \ - gF_(wd, 8, 0), \ - 0) - # define gsSPLoadUcode(uc_start, uc_dstart) \ gsSPLoadUcodeEx(uc_start, uc_dstart, 0x800) @@ -2886,6 +2886,14 @@ # define gsSPLoadGeometryMode(mode) \ gsSPGeometryMode(~gI_(0), mode) +# define gsSPLineW3D(v0, v1, wd, flag) \ + gO_( \ + G_LINE3D, \ + gF_(gV2_(v0, v1, flag) * 2, 8, 16) | \ + gF_(gV2_(v1, v0, flag) * 2, 8, 8) | \ + gF_(wd, 8, 0), \ + 0) + # define gsSPLookAtX(l) \ gsMoveMem(sizeof(Light), G_MV_LIGHT, G_MVO_LOOKATX, l) diff --git a/lib/libgfxd/uc_argtbl.c b/lib/libgfxd/uc_argtbl.c index 09baa0a..22a0b65 100644 --- a/lib/libgfxd/uc_argtbl.c +++ b/lib/libgfxd/uc_argtbl.c @@ -422,11 +422,6 @@ static const gfxd_arg_type_t arg_tbl[] = .fmt = gfxd_argfmt_u, .fn = argfn_x32, }, - [gfxd_Dlflag] = - { - .fmt = gfxd_argfmt_i, - .fn = argfn_i, - }, [gfxd_Sftlo] = { .fmt = gfxd_argfmt_i, diff --git a/lib/libgfxd/uc_macrofn.c b/lib/libgfxd/uc_macrofn.c index 7659325..46d4b4e 100644 --- a/lib/libgfxd/uc_macrofn.c +++ b/lib/libgfxd/uc_macrofn.c @@ -1467,7 +1467,29 @@ UCFUNC int d_SPLine3D(gfxd_macro_t *m, uint32_t hi, uint32_t lo) } return ret; } -#elif defined(F3DEX_GBI) || defined(F3DEX_GBI_2) +#elif defined(F3DEX_GBI) +UCFUNC int d_SPLine3D(gfxd_macro_t *m, uint32_t hi, uint32_t lo) +{ + m->id = gfxd_SPLine3D; + int n0 = getfield(lo, 8, 16); + int n1 = getfield(lo, 8, 8); + argi(m, 0, "v0", n0 / 2, gfxd_Vtx); + argi(m, 1, "v1", n1 / 2, gfxd_Vtx); + argi(m, 2, "flag", 0, gfxd_Vtxflag); + int ret = 0; + if (n0 % 2 != 0) + { + badarg(m, 0); + ret = -1; + } + if (n1 % 2 != 0) + { + badarg(m, 1); + ret = -1; + } + return ret; +} +#elif defined(F3DEX_GBI_2) UCFUNC int d_SPLine3D(gfxd_macro_t *m, uint32_t hi, uint32_t lo) { m->id = gfxd_SPLine3D; @@ -2047,7 +2069,6 @@ UCFUNC int c_DPLoadTLUT(gfxd_macro_t *m, int n_macro) return 0; } -#pragma warning(disable:4146) #if defined(F3DEX_GBI) || defined(F3DEX_GBI_2) UCFUNC int d_BranchZ(gfxd_macro_t *m, uint32_t hi, uint32_t lo) { @@ -2056,7 +2077,7 @@ UCFUNC int d_BranchZ(gfxd_macro_t *m, uint32_t hi, uint32_t lo) int nb = getfield(hi, 12, 0); int32_t zval; if (lo > 0x7FFFFFFF) - zval = -0x80000000 + (int32_t)(lo & 0x7FFFFFFF); + zval = INT32_MIN + (int32_t)(lo & 0x7FFFFFFF); else zval = lo; argi(m, 0, "vtx", nb / 2, gfxd_Vtx); |
