From 3f833281144c32ab7452639c060fd4fb01c8d63f Mon Sep 17 00:00:00 2001 From: Made Date: Wed, 6 May 2020 02:02:35 +0200 Subject: Decompile GX_asm and GX_g3 --- arm9/lib/src/GX_g3.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 arm9/lib/src/GX_g3.c (limited to 'arm9/lib/src/GX_g3.c') diff --git a/arm9/lib/src/GX_g3.c b/arm9/lib/src/GX_g3.c new file mode 100644 index 00000000..66e34dc7 --- /dev/null +++ b/arm9/lib/src/GX_g3.c @@ -0,0 +1,36 @@ +#include "global.h" +#include "main.h" +#include "gx.h" + + +void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){ + displaylist->var0C = r2; + displaylist->var08 = r1; + displaylist->var00 = r1; + displaylist->var04 = (u32 *)r1 + 1; + displaylist->var10 = 0x0; +} + +s32 G3_EndMakeDL(struct DL *displaylist){ + if (displaylist->var08 == displaylist->var00) + return 0; + //pads the buffer with 0 to 4byte alignment if needed + switch((u32)displaylist->var00 & 0x3) + { + case 0: + return displaylist->var00 - displaylist->var08; + case 1: + *displaylist->var00++ = 0x0; + case 2: + *displaylist->var00++ = 0x0; + case 3: + *displaylist->var00++ = 0x0; + } + if (displaylist->var10) + { + *displaylist->var04++ = 0x0; + displaylist->var10 = 0x0; + } + displaylist->var00 = (u8 *)displaylist->var04; + return displaylist->var00 - displaylist->var08; +} -- cgit v1.2.3 From a92d77224c8ec645752a56aa35cc8a8457cd4cd3 Mon Sep 17 00:00:00 2001 From: Made Date: Fri, 15 May 2020 04:14:48 +0200 Subject: Add ARM_FUNC to GX --- arm9/lib/src/GX_g3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'arm9/lib/src/GX_g3.c') diff --git a/arm9/lib/src/GX_g3.c b/arm9/lib/src/GX_g3.c index 66e34dc7..eb01453d 100644 --- a/arm9/lib/src/GX_g3.c +++ b/arm9/lib/src/GX_g3.c @@ -3,7 +3,7 @@ #include "gx.h" -void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){ +ARM_FUNC void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){ displaylist->var0C = r2; displaylist->var08 = r1; displaylist->var00 = r1; @@ -11,7 +11,7 @@ void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){ displaylist->var10 = 0x0; } -s32 G3_EndMakeDL(struct DL *displaylist){ +ARM_FUNC s32 G3_EndMakeDL(struct DL *displaylist){ if (displaylist->var08 == displaylist->var00) return 0; //pads the buffer with 0 to 4byte alignment if needed -- cgit v1.2.3 From 2e1c3ccd3ff3035acc98b34c2b29ba5c865e6194 Mon Sep 17 00:00:00 2001 From: Made Date: Sun, 17 May 2020 01:40:01 +0200 Subject: struct defs --- arm9/lib/src/GX_g3.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'arm9/lib/src/GX_g3.c') diff --git a/arm9/lib/src/GX_g3.c b/arm9/lib/src/GX_g3.c index eb01453d..379ee52b 100644 --- a/arm9/lib/src/GX_g3.c +++ b/arm9/lib/src/GX_g3.c @@ -3,34 +3,34 @@ #include "gx.h" -ARM_FUNC void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){ - displaylist->var0C = r2; - displaylist->var08 = r1; - displaylist->var00 = r1; - displaylist->var04 = (u32 *)r1 + 1; - displaylist->var10 = 0x0; +ARM_FUNC void G3_BeginMakeDL(struct GXDLInfo *displaylist, void *r1, u32 r2){ + displaylist->length = r2; + displaylist->bottom = r1; + displaylist->curr_cmd = r1; + displaylist->curr_param = (u32 *)r1 + 1; + displaylist->param0_cmd_flg = 0x0; } -ARM_FUNC s32 G3_EndMakeDL(struct DL *displaylist){ - if (displaylist->var08 == displaylist->var00) +ARM_FUNC s32 G3_EndMakeDL(struct GXDLInfo *displaylist){ + if (displaylist->bottom == (u32 *)displaylist->curr_cmd) return 0; //pads the buffer with 0 to 4byte alignment if needed - switch((u32)displaylist->var00 & 0x3) + switch((u32)displaylist->curr_cmd & 0x3) { case 0: - return displaylist->var00 - displaylist->var08; + return displaylist->curr_cmd - (u8 *)displaylist->bottom; case 1: - *displaylist->var00++ = 0x0; + *displaylist->curr_cmd++ = 0x0; case 2: - *displaylist->var00++ = 0x0; + *displaylist->curr_cmd++ = 0x0; case 3: - *displaylist->var00++ = 0x0; + *displaylist->curr_cmd++ = 0x0; } - if (displaylist->var10) + if (displaylist->param0_cmd_flg) { - *displaylist->var04++ = 0x0; - displaylist->var10 = 0x0; + *displaylist->curr_param++ = 0x0; + displaylist->param0_cmd_flg = 0x0; } - displaylist->var00 = (u8 *)displaylist->var04; - return displaylist->var00 - displaylist->var08; + displaylist->curr_cmd = (u8 *)displaylist->curr_param; + return displaylist->curr_cmd - (u8 *)displaylist->bottom; } -- cgit v1.2.3 From 88e486100e449d8960894c9e30c4f21489ccbc31 Mon Sep 17 00:00:00 2001 From: Made Date: Mon, 18 May 2020 02:33:11 +0200 Subject: rename main GX header --- arm9/lib/src/GX_g3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arm9/lib/src/GX_g3.c') diff --git a/arm9/lib/src/GX_g3.c b/arm9/lib/src/GX_g3.c index 379ee52b..2b5f2941 100644 --- a/arm9/lib/src/GX_g3.c +++ b/arm9/lib/src/GX_g3.c @@ -1,6 +1,6 @@ #include "global.h" #include "main.h" -#include "gx.h" +#include "GX.h" ARM_FUNC void G3_BeginMakeDL(struct GXDLInfo *displaylist, void *r1, u32 r2){ -- cgit v1.2.3