diff options
-rw-r--r-- | arm9/asm/GX_g3imm.s | 37 | ||||
-rw-r--r-- | arm9/asm/GX_state.s | 40 | ||||
-rw-r--r-- | arm9/lib/include/gx.h | 8 | ||||
-rw-r--r-- | arm9/lib/src/GX_g3imm.c | 18 | ||||
-rw-r--r-- | arm9/lib/src/GX_state.c | 26 |
5 files changed, 51 insertions, 78 deletions
diff --git a/arm9/asm/GX_g3imm.s b/arm9/asm/GX_g3imm.s deleted file mode 100644 index 34ba9328..00000000 --- a/arm9/asm/GX_g3imm.s +++ /dev/null @@ -1,37 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start G3_MultMtx33 -G3_MultMtx33: ; 0x020C791C - ldr r1, _020C7930 ; =0x04000400 - mov r2, #0x1a - ldr ip, _020C7934 ; =MI_Copy36B - str r2, [r1, #0x0] - bx r12 - .balign 4 -_020C7930: .word 0x04000400 -_020C7934: .word MI_Copy36B - - arm_func_start G3_MultMtx43 -G3_MultMtx43: - ldr r1, _020C794C ; =0x04000400 - mov r2, #0x19 - ldr ip, _020C7950 ; =GX_SendFifo48B - str r2, [r1, #0x0] - bx r12 - .balign 4 -_020C794C: .word 0x04000400 -_020C7950: .word GX_SendFifo48B - - arm_func_start G3_LoadMtx43 -G3_LoadMtx43: ; 0x020C7954 - ldr r1, _020C7968 ; =0x04000400 - mov r2, #0x17 - ldr ip, _020C796C ; =GX_SendFifo48B - str r2, [r1, #0x0] - bx r12 - .balign 4 -_020C7968: .word 0x04000400 -_020C796C: .word GX_SendFifo48B diff --git a/arm9/asm/GX_state.s b/arm9/asm/GX_state.s deleted file mode 100644 index 42089a09..00000000 --- a/arm9/asm/GX_state.s +++ /dev/null @@ -1,40 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start GX_InitGXState -GX_InitGXState: ; 0x020C5CAC - ldr r0, _020C5D14 ; =0x021D33C4 - mov r3, #0x0 - ldr r2, _020C5D18 ; =0x04000240 - strh r3, [r0, #0x0] - strh r3, [r0, #0x2] - strh r3, [r0, #0x4] - strh r3, [r0, #0x6] - strh r3, [r0, #0x8] - strh r3, [r0, #0xa] - strh r3, [r0, #0xc] - strh r3, [r0, #0xe] - strh r3, [r0, #0x10] - strh r3, [r0, #0x12] - strh r3, [r0, #0x14] - strh r3, [r0, #0x16] - strh r3, [r0, #0x18] - ldr r1, _020C5D1C ; =0x04000244 - str r3, [r2, #0x0] - ldr r0, _020C5D20 ; =0x04000245 - strb r3, [r1, #0x0] - ldr r1, _020C5D24 ; =0x04000246 - strb r3, [r0, #0x0] - ldr r0, _020C5D28 ; =0x04000248 - strb r3, [r1, #0x0] - strh r3, [r0, #0x0] - bx lr - .balign 4 -_020C5D14: .word 0x021D33C4 -_020C5D18: .word 0x04000240 -_020C5D1C: .word 0x04000244 -_020C5D20: .word 0x04000245 -_020C5D24: .word 0x04000246 -_020C5D28: .word 0x04000248 diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index a17132ed..c542f560 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -307,6 +307,12 @@ void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness); void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 brightness); void *G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness); -//GXi_NopClearFifo128_ probably asm +//GX_state +void GX_InitGXState(); + +//GX_g3imm +void G3_LoadMtx43(struct Mtx43 *mtx); +void G3_MultMtx43(struct Mtx43 *mtx); +void G3_MultMtx33(struct Mtx33 *mtx); #endif //GUARD_GX_H diff --git a/arm9/lib/src/GX_g3imm.c b/arm9/lib/src/GX_g3imm.c new file mode 100644 index 00000000..f41b5cbf --- /dev/null +++ b/arm9/lib/src/GX_g3imm.c @@ -0,0 +1,18 @@ +#include "global.h" +#include "main.h" +#include "gx.h" + +void G3_LoadMtx43(struct Mtx43 *mtx){ + SETREG32(HW_REG_GXFIFO, 0x17); + GX_SendFifo48B(mtx, (void *)HW_REG_GXFIFO); +} + +void G3_MultMtx43(struct Mtx43 *mtx){ + SETREG32(HW_REG_GXFIFO, 0x19); + GX_SendFifo48B(mtx, (void *)HW_REG_GXFIFO); +} + +void G3_MultMtx33(struct Mtx33 *mtx){ + SETREG32(HW_REG_GXFIFO, 0x1A); + MI_Copy36B(mtx, (void *)HW_REG_GXFIFO); +} diff --git a/arm9/lib/src/GX_state.c b/arm9/lib/src/GX_state.c new file mode 100644 index 00000000..52d3c6f5 --- /dev/null +++ b/arm9/lib/src/GX_state.c @@ -0,0 +1,26 @@ +#include "global.h" +#include "main.h" +#include "gx.h" + +extern struct VRAM_banks gUnk021D33C4; + +void GX_InitGXState(){ + gUnk021D33C4.var00 = 0x0; + gUnk021D33C4.var02 = 0x0; + gUnk021D33C4.var04 = 0x0; + gUnk021D33C4.var06 = 0x0; + gUnk021D33C4.var08 = 0x0; + gUnk021D33C4.var0A = 0x0; + gUnk021D33C4.var0C = 0x0; + gUnk021D33C4.var0E = 0x0; + gUnk021D33C4.var10 = 0x0; + gUnk021D33C4.var12 = 0x0; + gUnk021D33C4.var14 = 0x0; + gUnk021D33C4.var16 = 0x0; + gUnk021D33C4.var18 = 0x0; + SETREG32(HW_REG_VRAMCNT_A, 0x0); + SETREG8(HW_REG_VRAMCNT_E, 0x0); + SETREG8(HW_REG_VRAMCNT_F, 0x0); + SETREG8(HW_REG_VRAMCNT_G, 0x0); + SETREG16(HW_REG_VRAMCNT_H, 0x0); +} |