From 5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae Mon Sep 17 00:00:00 2001 From: red031000 Date: Fri, 23 Jul 2021 01:11:15 +0100 Subject: separate out libs to libc, libnns and NitroSDK --- arm9/lib/NitroSDK/src/GX_g3.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 arm9/lib/NitroSDK/src/GX_g3.c (limited to 'arm9/lib/NitroSDK/src/GX_g3.c') diff --git a/arm9/lib/NitroSDK/src/GX_g3.c b/arm9/lib/NitroSDK/src/GX_g3.c new file mode 100644 index 00000000..45b6b11b --- /dev/null +++ b/arm9/lib/NitroSDK/src/GX_g3.c @@ -0,0 +1,35 @@ +#include "global.h" +#include "gx.h" + + +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 GXDLInfo *displaylist){ + if (displaylist->bottom == (u32 *)displaylist->curr_cmd) + return 0; + //pads the buffer with 0 to 4byte alignment if needed + switch((u32)displaylist->curr_cmd & 0x3) + { + case 0: + return displaylist->curr_cmd - (u8 *)displaylist->bottom; + case 1: + *displaylist->curr_cmd++ = 0x0; + case 2: + *displaylist->curr_cmd++ = 0x0; + case 3: + *displaylist->curr_cmd++ = 0x0; + } + if (displaylist->param0_cmd_flg) + { + *displaylist->curr_param++ = 0x0; + displaylist->param0_cmd_flg = 0x0; + } + displaylist->curr_cmd = (u8 *)displaylist->curr_param; + return displaylist->curr_cmd - (u8 *)displaylist->bottom; +} -- cgit v1.2.3