diff options
author | Made <made111@gmx.de> | 2020-05-15 06:46:25 +0200 |
---|---|---|
committer | Made <made111@gmx.de> | 2020-05-15 06:46:25 +0200 |
commit | 929c523340dfecbd0e3313e25d36abe47e1cc63e (patch) | |
tree | d91b5e742fa8c4903ae7be095085599f1d4640ce /arm9 | |
parent | f34db9ec15de8a39989afc722286844ac5fe252b (diff) |
Replace register access macros with variables
Diffstat (limited to 'arm9')
-rw-r--r-- | arm9/lib/include/gx.h | 90 | ||||
-rw-r--r-- | arm9/lib/src/GX.c | 65 | ||||
-rw-r--r-- | arm9/lib/src/GX_bgcnt.c | 64 | ||||
-rw-r--r-- | arm9/lib/src/GX_g3_util.c | 34 | ||||
-rw-r--r-- | arm9/lib/src/GX_g3imm.c | 12 | ||||
-rw-r--r-- | arm9/lib/src/GX_g3x.c | 140 | ||||
-rw-r--r-- | arm9/lib/src/GX_state.c | 10 | ||||
-rw-r--r-- | arm9/lib/src/GX_vramcnt.c | 268 |
8 files changed, 296 insertions, 387 deletions
diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index 5abc2693..58e4c35f 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -20,98 +20,8 @@ void MIi_CpuCopy32(void *src, void *dst, u32 size); void OSi_UnlockVram(u16, u16); void MIi_CpuClear32(u32, void *, u32); -//Todos before PR //TODO: Add defines for GX commands, add structs/unions for HW registers -#define HW_REG_DIV_NUMER 0x04000290 -#define HW_REG_DIV_DENOM 0x04000298 - -#define HW_REG_MTX_MODE 0x04000440 -#define HW_REG_MTX_LOAD_4x4 0x04000458 -#define HW_REG_MTX_LOAD_4x3 0x0400045C -#define HW_REG_MTX_MULT_3x3 0x04000468 - -#define HW_REG_END_VTXS 0x04000504 -#define HW_REG_GXSTAT 0x04000600 -#define HW_REG_DISP3DCNT 0x04000060 -#define HW_REG_BG0HOFS 0x04000010 -#define HW_REG_CLEAR_COLOR 0x04000350 -#define HW_REG_CLEAR_DEPTH 0x04000354 -#define HW_REG_CLRIMAGE_OFFSET 0x04000356 -#define HW_REG_FOG_COLOR 0x04000358 -#define HW_REG_FOG_OFFSET 0x0400035C -#define HW_REG_BG0CNT 0x04000008 -#define HW_REG_POLYGON_ATTR 0x040004A4 -#define HW_REG_TEXIMAGE_PARAM 0x040004A8 -#define HW_REG_PLTT_BASE 0x040004AC - -#define HW_REG_POWCNT1 0x04000304 - -#define HW_REG_GXFIFO 0x04000400 -#define HW_REG_MTX_IDENTITY 0x04000454 -#define HW_REG_MTX_POP 0x04000448 -#define HW_REG_MTX_MODE 0x04000440 - -#define HW_REG_CLIPMTX_RESULT 0x04000640 -#define HW_REG_VECMTX_RESULT 0x04000680 - -#define HW_REG_EDGE_COLOR 0x04000330 -#define HW_REG_FOG_TABLE 0x04000360 - -#define HW_REG_SHININESS 0x040004D0 - -#define HW_REG_MASTER_BRIGHT 0x0400006C - -#define HW_REG_VRAMCNT_A 0x04000240 -#define HW_REG_VRAMCNT_B 0x04000241 -#define HW_REG_VRAMCNT_C 0x04000242 -#define HW_REG_VRAMCNT_D 0x04000243 -#define HW_REG_VRAMCNT_E 0x04000244 -#define HW_REG_VRAMCNT_F 0x04000245 -#define HW_REG_VRAMCNT_G 0x04000246 -#define HW_REG_WRAMCNT 0x04000247 -#define HW_REG_VRAMCNT_H 0x04000248 -#define HW_REG_VRAMCNT_I 0x04000249 - -#define HW_REG_DISPCNT 0x04000000 -#define HW_REG_DISPSTAT 0x04000004 -#define HW_REG_DISPCNT_2D 0x04001000 - -#define HW_REG_DISP3DCNT 0x04000060 - -#define HW_REG_BG2PA_A 0x04000020 -#define HW_REG_BG2PD_A 0x04000026 -#define HW_REG_BG3PA_A 0x04000030 -#define HW_REG_BG3PD_A 0x04000036 -#define HW_REG_BG2PA_B 0x04001020 -#define HW_REG_BG2PD_B 0x04001026 -#define HW_REG_BG3PA_B 0x04001030 -#define HW_REG_BG3PD_B 0x04001036 - -#define HW_REG_BG0CNT_A 0x04000008 -#define HW_REG_BG1CNT_A 0x0400000A -#define HW_REG_BG2CNT_A 0x0400000C -#define HW_REG_BG3CNT_A 0x0400000E - -#define HW_REG_BG0CNT_B 0x04001008 -#define HW_REG_BG1CNT_B 0x0400100A -#define HW_REG_BG2CNT_B 0x0400100C -#define HW_REG_BG3CNT_B 0x0400100E - -#define HW_REG_DISPCNT_A 0x04000000 -#define HW_REG_DISPCNT_B 0x04001000 - -//TODO: wait for register commit and replace these -#define SETREG8(x, y) ((*(vu8 *)x) = y) -#define SETREG16(x, y) ((*(vu16 *)x) = y) -#define SETREG32(x, y) ((*(vu32 *)x) = y) -#define SETREG64(x, y) ((*(vu64 *)x) = y) - -#define READREG8(x) (*(vu8 *)x) -#define READREG16(x) (*(vu16 *)x) -#define READREG32(x) (*(vu32 *)x) -#define READREG64(x) (*(vu64 *)x) - static inline void _GX_Load_16(u32 var, void *src, void *dst, u32 size){ if (var != -1 && size > 0x1C) { diff --git a/arm9/lib/src/GX.c b/arm9/lib/src/GX.c index ca3e4604..883dfe69 100644 --- a/arm9/lib/src/GX.c +++ b/arm9/lib/src/GX.c @@ -8,9 +8,9 @@ extern u32 UNK_02106814; extern u16 UNK_02106810; ARM_FUNC void GX_Init(){ - SETREG16(HW_REG_POWCNT1, READREG16(HW_REG_POWCNT1) | 0x8000); - SETREG16(HW_REG_POWCNT1, (READREG16(HW_REG_POWCNT1) & ~0x20E) | 0x20E); - SETREG16(HW_REG_POWCNT1, READREG16(HW_REG_POWCNT1) | 0x1); + reg_GX_POWCNT |= 0x8000; + reg_GX_POWCNT = (reg_GX_POWCNT & ~0x20E) | 0x20E; + reg_GX_POWCNT = reg_GX_POWCNT | 0x1; GX_InitGXState(); u32 temp; while (UNK_021D33BC == 0) @@ -22,88 +22,87 @@ ARM_FUNC void GX_Init(){ } UNK_021D33BC = temp; } - SETREG16(HW_REG_DISPSTAT, 0x0); - SETREG32(HW_REG_DISPCNT, 0x0); + reg_GX_DISPSTAT = 0x0; + reg_GX_DISPCNT = 0x0; if (UNK_02106814 != -1) { - MI_DmaFill32(UNK_02106814, (void *)HW_REG_BG0CNT_A, 0x0, 0x60); - SETREG16(HW_REG_MASTER_BRIGHT, 0x0); - MI_DmaFill32(UNK_02106814, (void *)HW_REG_DISPCNT_2D, 0x0, 0x70); + MI_DmaFill32(UNK_02106814, (void *)®_G2_BG0CNT, 0x0, 0x60); + reg_GX_MASTER_BRIGHT = 0x0; + MI_DmaFill32(UNK_02106814, (void *)®_GXS_DB_DISPCNT, 0x0, 0x70); } else { - MIi_CpuClear32(0x0, (void *)HW_REG_BG0CNT_A, 0x60); - SETREG16(HW_REG_MASTER_BRIGHT, 0x0); - MIi_CpuClear32(0x0, (void *)HW_REG_DISPCNT_2D, 0x70); + MIi_CpuClear32(0x0, (void *)®_G2_BG0CNT, 0x60); + reg_GX_MASTER_BRIGHT = 0x0; + MIi_CpuClear32(0x0, (void *)®_GXS_DB_DISPCNT, 0x70); } - SETREG16(HW_REG_BG2PA_A, 0x100); - SETREG16(HW_REG_BG2PD_A, 0x100); - SETREG16(HW_REG_BG3PA_A, 0x100); - SETREG16(HW_REG_BG3PD_A, 0x100); - SETREG16(HW_REG_BG2PA_B, 0x100); - SETREG16(HW_REG_BG2PD_B, 0x100); - SETREG16(HW_REG_BG3PA_B, 0x100); - SETREG16(HW_REG_BG3PD_B, 0x100); + reg_G2_BG2PA = 0x100; + reg_G2_BG2PD = 0x100; + reg_G2_BG3PA = 0x100; + reg_G2_BG3PD = 0x100; + reg_G2S_DB_BG2PA = 0x100; + reg_G2S_DB_BG2PD = 0x100; + reg_G2S_DB_BG3PA = 0x100; + reg_G2S_DB_BG3PD = 0x100; } ARM_FUNC u32 GX_HBlankIntr(u32 enable){ - u32 temp = READREG16(HW_REG_DISPSTAT) & 0x10; + u32 temp = reg_GX_DISPSTAT & 0x10; if (enable) { - SETREG16(HW_REG_DISPSTAT, READREG16(HW_REG_DISPSTAT) | 0x10); + reg_GX_DISPSTAT |= 0x10; } else { - SETREG16(HW_REG_DISPSTAT, READREG16(HW_REG_DISPSTAT) & ~0x10); + reg_GX_DISPSTAT &= ~0x10; } return temp; } ARM_FUNC u32 GX_VBlankIntr(u32 enable){ - u32 temp = READREG16(HW_REG_DISPSTAT) & 0x8; + u32 temp = reg_GX_DISPSTAT & 0x8; if (enable) { - SETREG16(HW_REG_DISPSTAT, READREG16(HW_REG_DISPSTAT) | 0x8); + reg_GX_DISPSTAT |= 0x8; } else { - SETREG16(HW_REG_DISPSTAT, READREG16(HW_REG_DISPSTAT) & ~0x8); + reg_GX_DISPSTAT &= ~0x8; } return temp; } ARM_FUNC void GX_DispOff(){ - u32 temp = READREG32(HW_REG_DISPCNT); + u32 temp = reg_GX_DISPCNT; UNK_02106810 = 0x0; UNK_021D33C0 = (temp & 0x30000) >> 0x10; - SETREG32(HW_REG_DISPCNT, temp & ~0x30000); + reg_GX_DISPCNT = temp & ~0x30000; } ARM_FUNC void GX_DispOn(){ UNK_02106810 = 0x1; if (UNK_021D33C0) { - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x30000 | (UNK_021D33C0 << 0x10)); - + reg_GX_DISPCNT = reg_GX_DISPCNT & ~0x30000 | (UNK_021D33C0 << 0x10); } else { - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) | 0x10000); + reg_GX_DISPCNT = reg_GX_DISPCNT | 0x10000; } } ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){ - u32 temp2 = READREG32(HW_REG_DISPCNT); + u32 temp2 = reg_GX_DISPCNT; UNK_021D33C0 = mode1; if (!UNK_02106810) mode1 = 0; - SETREG32(HW_REG_DISPCNT, (mode2 | ((temp2 & 0xFFF0FFF0) | (mode1 << 0x10))) | (mode3 << 0x3)); + reg_GX_DISPCNT = (mode2 | ((temp2 & 0xFFF0FFF0) | (mode1 << 0x10))) | (mode3 << 0x3); if (!UNK_021D33C0) UNK_02106810 = 0x0; } ARM_FUNC void GXS_SetGraphicsMode(u32 mode){ - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x7 | mode); + reg_GXS_DB_DISPCNT = reg_GXS_DB_DISPCNT & ~0x7 | mode; } ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){ diff --git a/arm9/lib/src/GX_bgcnt.c b/arm9/lib/src/GX_bgcnt.c index 1eeffab6..63fe87b1 100644 --- a/arm9/lib/src/GX_bgcnt.c +++ b/arm9/lib/src/GX_bgcnt.c @@ -3,27 +3,27 @@ #include "gx.h" ARM_FUNC void *G2_GetBG0ScrPtr(){ - u32 temp = (((READREG16(HW_REG_BG0CNT_A) & 0x1F00) >> 0x8) << 0xB); - return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10) + temp); + u32 temp = (((reg_G2_BG0CNT & 0x1F00) >> 0x8) << 0xB); + return (void *)(0x6000000 + (((reg_GX_DISPCNT & 0x38000000) >> 0x1B) << 0x10) + temp); } ARM_FUNC void *G2S_GetBG0ScrPtr(){ - return (void *)(0x6200000 + (((READREG16(HW_REG_BG0CNT_B) & 0x1F00) >> 0x8) << 0xB)); + return (void *)(0x6200000 + (((reg_G2S_DB_BG0CNT & 0x1F00) >> 0x8) << 0xB)); } ARM_FUNC void *G2_GetBG1ScrPtr(){ - u32 temp = (((READREG16(HW_REG_BG1CNT_A) & 0x1F00) >> 0x8) << 0xB); - return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10) + temp); + u32 temp = (((reg_G2_BG1CNT & 0x1F00) >> 0x8) << 0xB); + return (void *)(0x6000000 + (((reg_GX_DISPCNT & 0x38000000) >> 0x1B) << 0x10) + temp); } ARM_FUNC void *G2S_GetBG1ScrPtr(){ - return (void *)(0x6200000 + (((READREG16(HW_REG_BG1CNT_B) & 0x1F00) >> 0x8) << 0xB)); + return (void *)(0x6200000 + (((reg_G2S_DB_BG1CNT & 0x1F00) >> 0x8) << 0xB)); } ARM_FUNC void *G2_GetBG2ScrPtr(){ - u32 temp12 = (READREG32(HW_REG_DISPCNT_A) & 0x7); - u32 temp3 = READREG16(HW_REG_BG2CNT_A); - u32 temp2 = (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10); + u32 temp12 = (reg_GX_DISPCNT & 0x7); + u32 temp3 = reg_G2_BG2CNT; + u32 temp2 = (((reg_GX_DISPCNT & 0x38000000) >> 0x1B) << 0x10); u32 temp1 = ((temp3 & 0x1F00) >> 0x8); switch (temp12) { @@ -46,8 +46,8 @@ ARM_FUNC void *G2_GetBG2ScrPtr(){ } ARM_FUNC void *G2S_GetBG2ScrPtr(){ - u32 temp12 = (READREG32(HW_REG_DISPCNT_B) & 0x7); - u32 temp3 = READREG16(HW_REG_BG2CNT_B); + u32 temp12 = (reg_GXS_DB_DISPCNT & 0x7); + u32 temp3 = reg_G2S_DB_BG2CNT; u32 temp1 = ((temp3 & 0x1F00) >> 0x8); switch (temp12) { @@ -70,9 +70,9 @@ ARM_FUNC void *G2S_GetBG2ScrPtr(){ } ARM_FUNC void *G2_GetBG3ScrPtr(){ - u32 temp12 = (READREG32(HW_REG_DISPCNT_A) & 0x7); - u32 temp3 = READREG16(HW_REG_BG3CNT_A); - u32 temp2 = (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10); + u32 temp12 = (reg_GX_DISPCNT & 0x7); + u32 temp3 = reg_G2_BG3CNT; + u32 temp2 = (((reg_GX_DISPCNT & 0x38000000) >> 0x1B) << 0x10); u32 temp1 = ((temp3 & 0x1F00) >> 0x8); switch (temp12) { @@ -95,8 +95,8 @@ ARM_FUNC void *G2_GetBG3ScrPtr(){ } ARM_FUNC void *G2S_GetBG3ScrPtr(){ - u32 temp12 = (READREG32(HW_REG_DISPCNT_B) & 0x7); - u32 temp3 = READREG16(HW_REG_BG3CNT_B); + u32 temp12 = (reg_GXS_DB_DISPCNT & 0x7); + u32 temp3 = reg_G2S_DB_BG3CNT; u32 temp1 = ((temp3 & 0x1F00) >> 0x8); switch (temp12) { @@ -119,29 +119,29 @@ ARM_FUNC void *G2S_GetBG3ScrPtr(){ } ARM_FUNC void *G2_GetBG0CharPtr(){ - u32 temp = (((READREG16(HW_REG_BG0CNT_A) & 0x3C) >> 0x2) << 0xE); - return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x7000000) >> 0x18) << 0x10) + temp); + u32 temp = (((reg_G2_BG0CNT & 0x3C) >> 0x2) << 0xE); + return (void *)(0x6000000 + (((reg_GX_DISPCNT & 0x7000000) >> 0x18) << 0x10) + temp); } ARM_FUNC void *G2S_GetBG0CharPtr(){ - return (void *)(0x6200000 + (((READREG16(HW_REG_BG0CNT_B) & 0x3C) >> 0x2) << 0xE)); + return (void *)(0x6200000 + (((reg_G2S_DB_BG0CNT & 0x3C) >> 0x2) << 0xE)); } ARM_FUNC void *G2_GetBG1CharPtr(){ - u32 temp = (((READREG16(HW_REG_BG1CNT_A) & 0x3C) >> 0x2) << 0xE); - return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x7000000) >> 0x18) << 0x10) + temp); + u32 temp = (((reg_G2_BG1CNT & 0x3C) >> 0x2) << 0xE); + return (void *)(0x6000000 + (((reg_GX_DISPCNT & 0x7000000) >> 0x18) << 0x10) + temp); } ARM_FUNC void *G2S_GetBG1CharPtr(){ - return (void *)(0x6200000 + (((READREG16(HW_REG_BG1CNT_B) & 0x3C) >> 0x2) << 0xE)); + return (void *)(0x6200000 + (((reg_G2S_DB_BG1CNT & 0x3C) >> 0x2) << 0xE)); } ARM_FUNC void *G2_GetBG2CharPtr(){ - s32 temp1 = (READREG32(HW_REG_DISPCNT_A) & 0x7); - u32 temp = READREG16(HW_REG_BG2CNT_A); + s32 temp1 = (reg_GX_DISPCNT & 0x7); + u32 temp = reg_G2_BG2CNT; if (temp1 < 5 || !(temp & 0x80)) { - u32 temp1 = (((READREG32(HW_REG_DISPCNT_A) & 0x7000000) >> 0x18) << 0x10); + u32 temp1 = (((reg_GX_DISPCNT & 0x7000000) >> 0x18) << 0x10); u32 temp2 = (temp & 0x3C) >> 2; return (void *)(0x6000000 + temp1 + (temp2 << 0xE)); } @@ -152,8 +152,8 @@ ARM_FUNC void *G2_GetBG2CharPtr(){ } ARM_FUNC void *G2S_GetBG2CharPtr(){ - s32 temp1 = (READREG32(HW_REG_DISPCNT_B) & 0x7); - u32 temp = READREG16(HW_REG_BG2CNT_B); + s32 temp1 = (reg_GXS_DB_DISPCNT & 0x7); + u32 temp = reg_G2S_DB_BG2CNT; if (temp1 < 5 || !(temp & 0x80)) { u32 temp2 = ((temp & 0x3C) >> 2) << 0xE; @@ -166,11 +166,11 @@ ARM_FUNC void *G2S_GetBG2CharPtr(){ } ARM_FUNC void *G2_GetBG3CharPtr(){ - s32 temp1 = (READREG32(HW_REG_DISPCNT_A) & 0x7); - u32 temp = READREG16(HW_REG_BG3CNT_A); + s32 temp1 = (reg_GX_DISPCNT & 0x7); + u32 temp = reg_G2_BG3CNT; if (temp1 < 3 || (temp1 < 6 && !(temp & 0x80))) { - u32 temp1 = (((READREG32(HW_REG_DISPCNT_A) & 0x7000000) >> 0x18) << 0x10); + u32 temp1 = (((reg_GX_DISPCNT & 0x7000000) >> 0x18) << 0x10); u32 temp2 = (temp & 0x3C) >> 2; return (void *)(0x6000000 + temp1 + (temp2 << 0xE)); } @@ -181,8 +181,8 @@ ARM_FUNC void *G2_GetBG3CharPtr(){ } ARM_FUNC void *G2S_GetBG3CharPtr(){ - s32 temp1 = (READREG32(HW_REG_DISPCNT_B) & 0x7); - u32 temp = READREG16(HW_REG_BG3CNT_B); + s32 temp1 = (reg_GXS_DB_DISPCNT & 0x7); + u32 temp = reg_G2S_DB_BG3CNT; if (temp1 < 3 || (temp1 < 6 && !(temp & 0x80))) { u32 temp2 = ((temp & 0x3C) >> 2) << 0xE; diff --git a/arm9/lib/src/GX_g3_util.c b/arm9/lib/src/GX_g3_util.c index 75e18589..f34e23ed 100644 --- a/arm9/lib/src/GX_g3_util.c +++ b/arm9/lib/src/GX_g3_util.c @@ -11,12 +11,12 @@ ARM_FUNC void G3i_PerspectiveW_(fx32 fovsin, fx32 fovcos, fx32 ratio, fx32 near, fovcot = FX_Div(fovcos, fovsin); if (scale != 0x1000) //!= 1.0 fovcot = (fovcot * scale) / 0x1000; - SETREG64(HW_REG_DIV_NUMER, (s64)fovcot << 0x20); - SETREG64(HW_REG_DIV_DENOM, (u32)ratio); + reg_CP_DIV_NUMER = (s64)fovcot << 0x20; + reg_CP_DIV_DENOM = (u32)ratio; if (load) { - SETREG32(HW_REG_MTX_MODE, 0x0); - reg_ptr = (vu32 *)HW_REG_MTX_LOAD_4x4; + reg_G3_MTX_MODE = 0x0; + reg_ptr = (vu32 *)®_G3_MTX_LOAD_4x4; } if (mtx) { @@ -34,8 +34,8 @@ ARM_FUNC void G3i_PerspectiveW_(fx32 fovsin, fx32 fovcos, fx32 ratio, fx32 near, mtx->_[15] = 0x0; } temp1 = FX_GetDivResult(); - SETREG64(HW_REG_DIV_NUMER, (s64)0x1000 << 0x20); - SETREG64(HW_REG_DIV_DENOM, (u32)(near - far)); + reg_CP_DIV_NUMER = (s64)0x1000 << 0x20; + reg_CP_DIV_DENOM = (u32)(near - far); if (load) { *reg_ptr = temp1; @@ -83,8 +83,8 @@ ARM_FUNC void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 nea FX_InvAsync(right - left); if (load) { - SETREG32(HW_REG_MTX_MODE, 0x0); - reg_ptr = (vu32 *)HW_REG_MTX_LOAD_4x4; + reg_G3_MTX_MODE = 0x0; + reg_ptr = (vu32 *)®_G3_MTX_LOAD_4x4; } if (mtx) { @@ -100,8 +100,8 @@ ARM_FUNC void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 nea mtx->_[15] = scale; } temp1 = FX_GetDivResultFx64c(); - SETREG64(HW_REG_DIV_NUMER, (s64)0x1000 << 0x20); - SETREG64(HW_REG_DIV_DENOM, (u32)(top - bottom)); + reg_CP_DIV_NUMER = (s64)0x1000 << 0x20; + reg_CP_DIV_DENOM = (u32)(top - bottom); if (scale != 0x1000) temp1 = (temp1 * scale) / 0x1000; temp0 = (0x2000 * temp1 + ((fx64)1 << (FX64C_INT_SHIFT - 1))) >> FX64C_INT_SHIFT; @@ -118,8 +118,8 @@ ARM_FUNC void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 nea mtx->_[0] = temp0; } temp2 = FX_GetDivResultFx64c(); - SETREG64(HW_REG_DIV_NUMER, (s64)0x1000 << 0x20); - SETREG64(HW_REG_DIV_DENOM, (u32)(near - far)); + reg_CP_DIV_NUMER = (s64)0x1000 << 0x20; + reg_CP_DIV_DENOM = (u32)(near - far); if (scale != 0x1000) temp2 = (temp2 * scale) / 0x1000; temp0 = (0x2000 * temp2 + ((fx64)1 << (FX64C_INT_SHIFT - 1))) >> FX64C_INT_SHIFT; @@ -179,8 +179,8 @@ ARM_FUNC void G3i_LookAt_(struct Vecx32 *a, struct Vecx32 *b, struct Vecx32 *c, VEC_CrossProduct(&temp, &temp1, &temp2); if (load) { - SETREG32(HW_REG_MTX_MODE, 0x2); - reg_ptr = (vu32 *)HW_REG_MTX_LOAD_4x3; + reg_G3_MTX_MODE = 0x2; + reg_ptr = (vu32 *)®_G3_MTX_LOAD_4x3; *reg_ptr = temp1.x; *reg_ptr = temp2.x; *reg_ptr = temp.x; @@ -219,7 +219,7 @@ ARM_FUNC void G3i_LookAt_(struct Vecx32 *a, struct Vecx32 *b, struct Vecx32 *c, ARM_FUNC void G3_RotX(fx32 sinphi, fx32 cosphi){ vu32 *reg_ptr; - reg_ptr = (vu32 *)HW_REG_MTX_MULT_3x3; + reg_ptr = (vu32 *)®_G3_MTX_MULT_3x3; *reg_ptr = 0x1000; *reg_ptr = 0x0; *reg_ptr = 0x0; @@ -233,7 +233,7 @@ ARM_FUNC void G3_RotX(fx32 sinphi, fx32 cosphi){ ARM_FUNC void G3_RotY(fx32 sinphi, fx32 cosphi){ vu32 *reg_ptr; - reg_ptr = (vu32 *)HW_REG_MTX_MULT_3x3; + reg_ptr = (vu32 *)®_G3_MTX_MULT_3x3; *reg_ptr = cosphi; *reg_ptr = 0x0; *reg_ptr = -sinphi; @@ -247,7 +247,7 @@ ARM_FUNC void G3_RotY(fx32 sinphi, fx32 cosphi){ ARM_FUNC void G3_RotZ(fx32 sinphi, fx32 cosphi){ vu32 *reg_ptr; - reg_ptr = (vu32 *)HW_REG_MTX_MULT_3x3; + reg_ptr = (vu32 *)®_G3_MTX_MULT_3x3; *reg_ptr = cosphi; *reg_ptr = sinphi; *reg_ptr = 0x0; diff --git a/arm9/lib/src/GX_g3imm.c b/arm9/lib/src/GX_g3imm.c index f11e2927..a5c62c26 100644 --- a/arm9/lib/src/GX_g3imm.c +++ b/arm9/lib/src/GX_g3imm.c @@ -3,16 +3,16 @@ #include "gx.h" ARM_FUNC void G3_LoadMtx43(struct Mtx43 *mtx){ - SETREG32(HW_REG_GXFIFO, 0x17); - GX_SendFifo48B(mtx, (void *)HW_REG_GXFIFO); + reg_G3X_GXFIFO = 0x17; + GX_SendFifo48B(mtx, (void *)®_G3X_GXFIFO); } ARM_FUNC void G3_MultMtx43(struct Mtx43 *mtx){ - SETREG32(HW_REG_GXFIFO, 0x19); - GX_SendFifo48B(mtx, (void *)HW_REG_GXFIFO); + reg_G3X_GXFIFO = 0x19; + GX_SendFifo48B(mtx, (void *)®_G3X_GXFIFO); } ARM_FUNC void G3_MultMtx33(struct Mtx33 *mtx){ - SETREG32(HW_REG_GXFIFO, 0x1A); - MI_Copy36B(mtx, (void *)HW_REG_GXFIFO); + reg_G3X_GXFIFO = 0x1A; + MI_Copy36B(mtx, (void *)®_G3X_GXFIFO); } diff --git a/arm9/lib/src/GX_g3x.c b/arm9/lib/src/GX_g3x.c index e76adce7..5a03c4ca 100644 --- a/arm9/lib/src/GX_g3x.c +++ b/arm9/lib/src/GX_g3x.c @@ -46,190 +46,190 @@ ARM_FUNC asm void GXi_NopClearFifo128_(void *reg){ ARM_FUNC void G3X_Init(){ G3X_ClearFifo(); - SETREG32(HW_REG_END_VTXS, 0x0); - while (READREG32(HW_REG_GXSTAT) & 0x8000000); //wait for geometry engine to not be busy - SETREG16(HW_REG_DISP3DCNT, 0x0); - SETREG32(HW_REG_GXSTAT, 0x0); - SETREG32(HW_REG_BG0HOFS, 0x0); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x2000); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x1000); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) & ~0x3002); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) & ~0x3000 | 0x10); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) & (u16)~0x3004); - SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000); - SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) & ~0xC0000000 | 0x80000000); + reg_G3_END_VTXS = 0x0; + while (reg_G3X_GXSTAT & 0x8000000); //wait for geometry engine to not be busy + reg_G3X_DISP3DCNT = 0x0; + reg_G3X_GXSTAT = 0x0; + reg_G2_BG0OFS = 0x0; + reg_G3X_DISP3DCNT |= 0x2000; + reg_G3X_DISP3DCNT |= 0x1000; + reg_G3X_DISP3DCNT &= ~0x3002; + reg_G3X_DISP3DCNT = reg_G3X_DISP3DCNT & ~0x3000 | 0x10; + reg_G3X_DISP3DCNT = reg_G3X_DISP3DCNT & (u16)~0x3004; + reg_G3X_GXSTAT |= 0x8000; + reg_G3X_GXSTAT = reg_G3X_GXSTAT & ~0xC0000000 | 0x80000000; G3X_InitMtxStack(); - SETREG32(HW_REG_CLEAR_COLOR, 0x0); - SETREG16(HW_REG_CLEAR_DEPTH, 0x7FFF); - SETREG16(HW_REG_CLRIMAGE_OFFSET, 0x0); - SETREG32(HW_REG_FOG_COLOR, 0x0); - SETREG16(HW_REG_FOG_OFFSET, 0x0); - SETREG16(HW_REG_BG0CNT, READREG16(HW_REG_BG0CNT) & ~0x3); + reg_G3X_CLEAR_COLOR = 0x0; + reg_G3X_CLEAR_DEPTH = 0x7FFF; + reg_G3X_CLRIMAGE_OFFSET = 0x0; + reg_G3X_FOG_COLOR = 0x0; + reg_G3X_FOG_OFFSET = 0x0; + reg_G2_BG0CNT &= ~0x3; G3X_InitTable(); - SETREG32(HW_REG_POLYGON_ATTR, 0x1F0080); - SETREG32(HW_REG_TEXIMAGE_PARAM, 0x0); - SETREG32(HW_REG_PLTT_BASE, 0x0); + reg_G3_POLYGON_ATTR = 0x1F0080; + reg_G3_TEXIMAGE_PARAM = 0x0; + reg_G3_TEXPLTT_BASE = 0x0; } ARM_FUNC void G3X_ResetMtxStack(){ - while (READREG32(HW_REG_GXSTAT) & 0x8000000); - SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x2000); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x1000); + while (reg_G3X_GXSTAT & 0x8000000); + reg_G3X_GXSTAT |= 0x8000; + reg_G3X_DISP3DCNT |= 0x2000; + reg_G3X_DISP3DCNT |= 0x1000; G3X_ResetMtxStack_2(); - SETREG32(HW_REG_POLYGON_ATTR, 0x1F0080); - SETREG32(HW_REG_TEXIMAGE_PARAM, 0x0); - SETREG32(HW_REG_PLTT_BASE, 0x0); + reg_G3_POLYGON_ATTR = 0x1F0080; + reg_G3_TEXIMAGE_PARAM = 0x0; + reg_G3_TEXPLTT_BASE = 0x0; } ARM_FUNC void G3X_ClearFifo(){ - GXi_NopClearFifo128_((void *)HW_REG_GXFIFO); - while (READREG32(HW_REG_GXSTAT) & 0x8000000); + GXi_NopClearFifo128_((void *)®_G3X_GXFIFO); + while (reg_G3X_GXSTAT & 0x8000000); } ARM_FUNC void G3X_InitMtxStack(){ u32 PV_level, PJ_level; - SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000); + reg_G3X_GXSTAT |= 0x8000; while (G3X_GetMtxStackLevelPV(&PV_level)); while (G3X_GetMtxStackLevelPJ(&PJ_level)); - SETREG32(HW_REG_MTX_MODE, 0x3); - SETREG32(HW_REG_MTX_IDENTITY, 0x0); - SETREG32(HW_REG_MTX_MODE, 0x0); + reg_G3_MTX_MODE = 0x3; + reg_G3_MTX_IDENTITY = 0x0; + reg_G3_MTX_MODE = 0x0; if (PJ_level) { - SETREG32(HW_REG_MTX_POP, PJ_level); + reg_G3_MTX_POP = PJ_level; } - SETREG32(HW_REG_MTX_IDENTITY, 0x0); - SETREG32(HW_REG_MTX_MODE, 0x2); - SETREG32(HW_REG_MTX_POP, PV_level); - SETREG32(HW_REG_MTX_IDENTITY, 0x0); + reg_G3_MTX_IDENTITY = 0x0; + reg_G3_MTX_MODE = 0x2; + reg_G3_MTX_POP = PV_level; + reg_G3_MTX_IDENTITY = 0x0; } ARM_FUNC void G3X_ResetMtxStack_2(){ u32 PV_level, PJ_level; - SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000); + reg_G3X_GXSTAT |= 0x8000; while (G3X_GetMtxStackLevelPV(&PV_level)); while (G3X_GetMtxStackLevelPJ(&PJ_level)); - SETREG32(HW_REG_MTX_MODE, 0x3); - SETREG32(HW_REG_MTX_IDENTITY, 0x0); - SETREG32(HW_REG_MTX_MODE, 0x0); + reg_G3_MTX_MODE = 0x3; + reg_G3_MTX_IDENTITY = 0x0; + reg_G3_MTX_MODE = 0x0; if (PJ_level) { - SETREG32(HW_REG_MTX_POP, PJ_level); + reg_G3_MTX_POP = PJ_level; } - SETREG32(HW_REG_MTX_MODE, 0x2); - SETREG32(HW_REG_MTX_POP, PV_level); - SETREG32(HW_REG_MTX_IDENTITY, 0x0); + reg_G3_MTX_MODE = 0x2; + reg_G3_MTX_POP = PV_level; + reg_G3_MTX_IDENTITY = 0x0; } ARM_FUNC void G3X_SetFog(u32 enable, u32 alphamode, u32 depth, s32 offset){ if (enable) { - SETREG16(HW_REG_FOG_OFFSET, offset); - SETREG16(HW_REG_DISP3DCNT, (READREG16(HW_REG_DISP3DCNT) &~0x3f40) | (((depth << 0x8)| (alphamode << 0x6)|0x80 ))); + reg_G3X_FOG_OFFSET = offset; + reg_G3X_DISP3DCNT = (reg_G3X_DISP3DCNT &~0x3f40) | (((depth << 0x8)| (alphamode << 0x6)|0x80 )); } else { - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) & (u16)~0x3080); + reg_G3X_DISP3DCNT = reg_G3X_DISP3DCNT & (u16)~0x3080; } } ARM_FUNC u32 G3X_GetClipMtx(struct Mtx44 *dst){ - if (READREG32(HW_REG_GXSTAT) & 0x8000000) + if (reg_G3X_GXSTAT & 0x8000000) { return -1; } else { - MI_Copy64B((void *)HW_REG_CLIPMTX_RESULT, dst); + MI_Copy64B((void *)®_G3X_CLIPMTX_RESULT_0, dst); return 0; } } ARM_FUNC u32 G3X_GetVectorMtx(struct Mtx33 *dst){ - if (READREG32(HW_REG_GXSTAT) & 0x8000000) + if (reg_G3X_GXSTAT & 0x8000000) { return -1; } else { - MI_Copy36B((void *)HW_REG_VECMTX_RESULT, dst); + MI_Copy36B((void *)®_G3X_VECMTX_RESULT_0, dst); return 0; } } ARM_FUNC void G3X_SetEdgeColorTable(void *tbl_ptr){ - MIi_CpuCopy16(tbl_ptr, (void *)HW_REG_EDGE_COLOR, 0x10); + MIi_CpuCopy16(tbl_ptr, (void *)®_G3X_EDGE_COLOR_0, 0x10); } ARM_FUNC void G3X_SetFogTable(void *tbl_ptr){ - MI_Copy16B(tbl_ptr, (void *)HW_REG_FOG_TABLE); + MI_Copy16B(tbl_ptr, (void *)®_G3X_FOG_TABLE_0); } ARM_FUNC void G3X_SetClearColor(u32 col, u32 alpha, u32 depth, u32 polygon_id, u32 enable_fog){ u32 temp = col | (alpha << 0x10) | (polygon_id << 0x18); if (enable_fog) temp |= 0x8000; - SETREG32(HW_REG_CLEAR_COLOR, temp); - SETREG16(HW_REG_CLEAR_DEPTH, depth); + reg_G3X_CLEAR_COLOR = temp; + reg_G3X_CLEAR_DEPTH = depth; } ARM_FUNC void G3X_InitTable(){ if (UNK_02106814 != -1) { - MI_DmaFill32Async(UNK_02106814, (void *)HW_REG_EDGE_COLOR, 0x0, 0x10, 0x0, 0x0); - MI_DmaFill32(UNK_02106814, (void *)HW_REG_FOG_TABLE, 0x0, 0x60); + MI_DmaFill32Async(UNK_02106814, (void *)®_G3X_EDGE_COLOR_0, 0x0, 0x10, 0x0, 0x0); + MI_DmaFill32(UNK_02106814, (void *)®_G3X_FOG_TABLE_0, 0x0, 0x60); } else { - MIi_CpuClear32(0x0, (void *)HW_REG_EDGE_COLOR, 0x10); - MIi_CpuClear32(0x0, (void *)HW_REG_FOG_TABLE, 0x60); + MIi_CpuClear32(0x0, (void *)®_G3X_EDGE_COLOR_0, 0x10); + MIi_CpuClear32(0x0, (void *)®_G3X_FOG_TABLE_0, 0x60); } for (int i = 0; i < 0x20; i++) { - SETREG32(HW_REG_SHININESS, 0x0); + reg_G3_SHININESS = 0x0; } } ARM_FUNC u32 G3X_GetMtxStackLevelPV(u32 *level){ - if (READREG32(HW_REG_GXSTAT) & 0x4000) + if (reg_G3X_GXSTAT & 0x4000) { return -1; } else { - *level = (READREG32(HW_REG_GXSTAT) & 0x1F00) >> 0x8; + *level = (reg_G3X_GXSTAT & 0x1F00) >> 0x8; return 0; } } ARM_FUNC u32 G3X_GetMtxStackLevelPJ(u32 *level){ - if (READREG32(HW_REG_GXSTAT) & 0x4000) + if (reg_G3X_GXSTAT & 0x4000) { return -1; } else { - *level = (READREG32(HW_REG_GXSTAT) & 0x2000) >> 0xD; + *level = (reg_G3X_GXSTAT & 0x2000) >> 0xD; return 0; } } ARM_FUNC u32 G3X_GetBoxTestResult(u32 *result){ - if (READREG32(HW_REG_GXSTAT) & 0x1) + if (reg_G3X_GXSTAT & 0x1) { return -1; } else { - *result = (READREG32(HW_REG_GXSTAT) & 0x2); + *result = (reg_G3X_GXSTAT & 0x2); return 0; } } ARM_FUNC void G3X_SetHOffset(u32 offset){ - SETREG32(HW_REG_BG0HOFS, offset); + reg_G2_BG0OFS = offset; } diff --git a/arm9/lib/src/GX_state.c b/arm9/lib/src/GX_state.c index 79a53ee7..7da3e1b4 100644 --- a/arm9/lib/src/GX_state.c +++ b/arm9/lib/src/GX_state.c @@ -18,9 +18,9 @@ ARM_FUNC void GX_InitGXState(){ UNK_021D33C4.var14 = 0x0; UNK_021D33C4.var16 = 0x0; UNK_021D33C4.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); + reg_GX_VRAMCNT = 0x0; + reg_GX_VRAMCNT_E = 0x0; + reg_GX_VRAMCNT_F = 0x0; + reg_GX_VRAMCNT_G = 0x0; + reg_GX_VRAM_HI_CNT = 0x0; } diff --git a/arm9/lib/src/GX_vramcnt.c b/arm9/lib/src/GX_vramcnt.c index fdedca46..18507fa4 100644 --- a/arm9/lib/src/GX_vramcnt.c +++ b/arm9/lib/src/GX_vramcnt.c @@ -7,23 +7,23 @@ extern struct VRAM_banks UNK_021D33C4; ARM_FUNC void GX_VRAMCNT_SetLCDC_(u32 mask){ if (mask & (0x1 << 0)) - SETREG8(HW_REG_VRAMCNT_A, 0x80); + reg_GX_VRAMCNT_A = 0x80; if (mask & (0x1 << 1)) - SETREG8(HW_REG_VRAMCNT_B, 0x80); + reg_GX_VRAMCNT_B = 0x80; if (mask & (0x1 << 2)) - SETREG8(HW_REG_VRAMCNT_C, 0x80); + reg_GX_VRAMCNT_C = 0x80; if (mask & (0x1 << 3)) - SETREG8(HW_REG_VRAMCNT_D, 0x80); + reg_GX_VRAMCNT_D = 0x80; if (mask & (0x1 << 4)) - SETREG8(HW_REG_VRAMCNT_E, 0x80); + reg_GX_VRAMCNT_E = 0x80; if (mask & (0x1 << 5)) - SETREG8(HW_REG_VRAMCNT_F, 0x80); + reg_GX_VRAMCNT_F = 0x80; if (mask & (0x1 << 6)) - SETREG8(HW_REG_VRAMCNT_G, 0x80); + reg_GX_VRAMCNT_G = 0x80; if (mask & (0x1 << 7)) - SETREG8(HW_REG_VRAMCNT_H, 0x80); + reg_GX_VRAMCNT_H = 0x80; if (mask & (0x1 << 8)) - SETREG8(HW_REG_VRAMCNT_I, 0x80); + reg_GX_VRAMCNT_I = 0x80; } ARM_FUNC void GX_SetBankForBG(s32 bg){ @@ -32,66 +32,66 @@ ARM_FUNC void GX_SetBankForBG(s32 bg){ switch (bg) { case 8: - SETREG8(HW_REG_VRAMCNT_D, 0x81); + reg_GX_VRAMCNT_D = 0x81; break; case 12: - SETREG8(HW_REG_VRAMCNT_D, 0x89); + reg_GX_VRAMCNT_D = 0x89; case 4: - SETREG8(HW_REG_VRAMCNT_C, 0x81); + reg_GX_VRAMCNT_C = 0x81; break; case 14: - SETREG8(HW_REG_VRAMCNT_D, 0x91); + reg_GX_VRAMCNT_D = 0x91; case 6: - SETREG8(HW_REG_VRAMCNT_C, 0x89); + reg_GX_VRAMCNT_C = 0x89; case 2: - SETREG8(HW_REG_VRAMCNT_B, 0x81); + reg_GX_VRAMCNT_B = 0x81; break; case 15: - SETREG8(HW_REG_VRAMCNT_D, 0x99); + reg_GX_VRAMCNT_D = 0x99; case 7: - SETREG8(HW_REG_VRAMCNT_C, 0x91); + reg_GX_VRAMCNT_C = 0x91; case 3: - SETREG8(HW_REG_VRAMCNT_B, 0x89); + reg_GX_VRAMCNT_B = 0x89; case 1: - SETREG8(HW_REG_VRAMCNT_A, 0x81); + reg_GX_VRAMCNT_A = 0x81; break; case 11: - SETREG8(HW_REG_VRAMCNT_A, 0x81); - SETREG8(HW_REG_VRAMCNT_B, 0x89); - SETREG8(HW_REG_VRAMCNT_D, 0x91); + reg_GX_VRAMCNT_A = 0x81; + reg_GX_VRAMCNT_B = 0x89; + reg_GX_VRAMCNT_D = 0x91; break; case 13: - SETREG8(HW_REG_VRAMCNT_D, 0x91); + reg_GX_VRAMCNT_D = 0x91; case 5: - SETREG8(HW_REG_VRAMCNT_A, 0x81); - SETREG8(HW_REG_VRAMCNT_C, 0x89); + reg_GX_VRAMCNT_A = 0x81; + reg_GX_VRAMCNT_C = 0x89; break; case 9: - SETREG8(HW_REG_VRAMCNT_A, 0x81); - SETREG8(HW_REG_VRAMCNT_D, 0x89); + reg_GX_VRAMCNT_A = 0x81; + reg_GX_VRAMCNT_D = 0x89; break; case 10: - SETREG8(HW_REG_VRAMCNT_B, 0x81); - SETREG8(HW_REG_VRAMCNT_D, 0x89); + reg_GX_VRAMCNT_B = 0x81; + reg_GX_VRAMCNT_D = 0x89; break; case 112: - SETREG8(HW_REG_VRAMCNT_G, 0x99); + reg_GX_VRAMCNT_G = 0x99; case 48: - SETREG8(HW_REG_VRAMCNT_F, 0x91); + reg_GX_VRAMCNT_F = 0x91; case 16: - SETREG8(HW_REG_VRAMCNT_E, 0x81); + reg_GX_VRAMCNT_E = 0x81; break; case 80: - SETREG8(HW_REG_VRAMCNT_G, 0x91); - SETREG8(HW_REG_VRAMCNT_E, 0x81); + reg_GX_VRAMCNT_G = 0x91; + reg_GX_VRAMCNT_E = 0x81; break; case 96: - SETREG8(HW_REG_VRAMCNT_G, 0x89); + reg_GX_VRAMCNT_G = 0x89; case 32: - SETREG8(HW_REG_VRAMCNT_F, 0x81); + reg_GX_VRAMCNT_F = 0x81; break; case 64: - SETREG8(HW_REG_VRAMCNT_G, 0x81); + reg_GX_VRAMCNT_G = 0x81; break; default: break; @@ -105,32 +105,32 @@ ARM_FUNC void GX_SetBankForOBJ(s32 obj){ switch (obj) { case 3: - SETREG8(HW_REG_VRAMCNT_B, 0x8A); + reg_GX_VRAMCNT_B = 0x8A; case 1: - SETREG8(HW_REG_VRAMCNT_A, 0x82); + reg_GX_VRAMCNT_A = 0x82; case 0: //needed to match break; case 2: - SETREG8(HW_REG_VRAMCNT_B, 0x82); + reg_GX_VRAMCNT_B = 0x82; break; case 112: - SETREG8(HW_REG_VRAMCNT_G, 0x9A); + reg_GX_VRAMCNT_G = 0x9A; case 48: - SETREG8(HW_REG_VRAMCNT_F, 0x92); + reg_GX_VRAMCNT_F = 0x92; case 16: - SETREG8(HW_REG_VRAMCNT_E, 0x82); + reg_GX_VRAMCNT_E = 0x82; break; case 80: - SETREG8(HW_REG_VRAMCNT_G, 0x92); - SETREG8(HW_REG_VRAMCNT_E, 0x82); + reg_GX_VRAMCNT_G = 0x92; + reg_GX_VRAMCNT_E = 0x82; break; case 96: - SETREG8(HW_REG_VRAMCNT_G, 0x8A); + reg_GX_VRAMCNT_G = 0x8A; case 32: - SETREG8(HW_REG_VRAMCNT_F, 0x82); + reg_GX_VRAMCNT_F = 0x82; break; case 64: - SETREG8(HW_REG_VRAMCNT_G, 0x82); + reg_GX_VRAMCNT_G = 0x82; break; default: break; @@ -144,21 +144,21 @@ ARM_FUNC void GX_SetBankForBGExtPltt(s32 bgextpltt){ switch (bgextpltt) { case 0x10: - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) | 0x40000000); - SETREG8(HW_REG_VRAMCNT_E, 0x84); + reg_GX_DISPCNT |= 0x40000000; + reg_GX_VRAMCNT_E = 0x84; break; case 0x40: - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) | 0x40000000); - SETREG8(HW_REG_VRAMCNT_G, 0x8C); + reg_GX_DISPCNT |= 0x40000000; + reg_GX_VRAMCNT_G = 0x8C; break; case 0x60: - SETREG8(HW_REG_VRAMCNT_G, 0x8C); + reg_GX_VRAMCNT_G = 0x8C; case 0x20: - SETREG8(HW_REG_VRAMCNT_F, 0x84); - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) | 0x40000000); + reg_GX_VRAMCNT_F = 0x84; + reg_GX_DISPCNT |= 0x40000000; break; case 0: - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x40000000); + reg_GX_DISPCNT &= ~0x40000000; break; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); @@ -170,15 +170,15 @@ ARM_FUNC void GX_SetBankForOBJExtPltt(s32 objextpltt){ switch (objextpltt) { case 32: - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) | 0x80000000); - SETREG8(HW_REG_VRAMCNT_F, 0x85); + reg_GX_DISPCNT |= 0x80000000; + reg_GX_VRAMCNT_F = 0x85; break; case 64: - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) | 0x80000000); - SETREG8(HW_REG_VRAMCNT_G, 0x85); + reg_GX_DISPCNT |= 0x80000000; + reg_GX_VRAMCNT_G = 0x85; break; case 0: - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x80000000); + reg_GX_DISPCNT &= ~0x80000000; break; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); @@ -189,58 +189,58 @@ ARM_FUNC void GX_SetBankForTex(s32 tex){ UNK_021D33C4.var08 = tex; if (tex == 0) { - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) & 0x0000CFFE); + reg_G3X_DISP3DCNT &= 0x0000CFFE; } else { - SETREG16(HW_REG_DISP3DCNT, (READREG16(HW_REG_DISP3DCNT) & ~0x3000) | 0x1); + reg_G3X_DISP3DCNT = (reg_G3X_DISP3DCNT & ~0x3000) | 0x1; switch (tex) { case 5: - SETREG8(HW_REG_VRAMCNT_A, 0x83); - SETREG8(HW_REG_VRAMCNT_C, 0x8B); + reg_GX_VRAMCNT_A = 0x83; + reg_GX_VRAMCNT_C = 0x8B; break; case 9: - SETREG8(HW_REG_VRAMCNT_A, 0x83); - SETREG8(HW_REG_VRAMCNT_D, 0x8B); + reg_GX_VRAMCNT_A = 0x83; + reg_GX_VRAMCNT_D = 0x8B; break; case 10: - SETREG8(HW_REG_VRAMCNT_B, 0x83); - SETREG8(HW_REG_VRAMCNT_D, 0x8B); + reg_GX_VRAMCNT_B = 0x83; + reg_GX_VRAMCNT_D = 0x8B; break; case 11: - SETREG8(HW_REG_VRAMCNT_A, 0x83); - SETREG8(HW_REG_VRAMCNT_B, 0x8B); - SETREG8(HW_REG_VRAMCNT_D, 0x93); + reg_GX_VRAMCNT_A = 0x83; + reg_GX_VRAMCNT_B = 0x8B; + reg_GX_VRAMCNT_D = 0x93; break; case 13: - SETREG8(HW_REG_VRAMCNT_A, 0x83); - SETREG8(HW_REG_VRAMCNT_C, 0x8B); - SETREG8(HW_REG_VRAMCNT_D, 0x93); + reg_GX_VRAMCNT_A = 0x83; + reg_GX_VRAMCNT_C = 0x8B; + reg_GX_VRAMCNT_D = 0x93; break; case 8: - SETREG8(HW_REG_VRAMCNT_D, 0x83); + reg_GX_VRAMCNT_D = 0x83; break; case 12: - SETREG8(HW_REG_VRAMCNT_D, 0x8B); + reg_GX_VRAMCNT_D = 0x8B; case 4: - SETREG8(HW_REG_VRAMCNT_C, 0x83); + reg_GX_VRAMCNT_C = 0x83; break; case 14: - SETREG8(HW_REG_VRAMCNT_D, 0x93); + reg_GX_VRAMCNT_D = 0x93; case 6: - SETREG8(HW_REG_VRAMCNT_C, 0x8B); + reg_GX_VRAMCNT_C = 0x8B; case 2: - SETREG8(HW_REG_VRAMCNT_B, 0x83); + reg_GX_VRAMCNT_B = 0x83; break; case 15: - SETREG8(HW_REG_VRAMCNT_D, 0x9B); + reg_GX_VRAMCNT_D = 0x9B; case 7: - SETREG8(HW_REG_VRAMCNT_C, 0x93); + reg_GX_VRAMCNT_C = 0x93; case 3: - SETREG8(HW_REG_VRAMCNT_B, 0x8B); + reg_GX_VRAMCNT_B = 0x8B; case 1: - SETREG8(HW_REG_VRAMCNT_A, 0x83); + reg_GX_VRAMCNT_A = 0x83; break; } } @@ -255,19 +255,19 @@ ARM_FUNC void GX_SetBankForTexPltt(s32 texpltt){ case 0: //needed to match break; case 96: - SETREG8(HW_REG_VRAMCNT_G, 0x8B); + reg_GX_VRAMCNT_G = 0x8B; case 32: - SETREG8(HW_REG_VRAMCNT_F, 0x83); + reg_GX_VRAMCNT_F = 0x83; break; case 112: - SETREG8(HW_REG_VRAMCNT_G, 0x9B); + reg_GX_VRAMCNT_G = 0x9B; case 48: - SETREG8(HW_REG_VRAMCNT_F, 0x93); + reg_GX_VRAMCNT_F = 0x93; case 16: - SETREG8(HW_REG_VRAMCNT_E, 0x83); + reg_GX_VRAMCNT_E = 0x83; break; case 64: - SETREG8(HW_REG_VRAMCNT_G, 0x83); + reg_GX_VRAMCNT_G = 0x83; break; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); @@ -279,27 +279,27 @@ ARM_FUNC void GX_SetBankForClearImage(s32 clearimage){ switch (clearimage) { case 3: - SETREG8(HW_REG_VRAMCNT_A, 0x93); + reg_GX_VRAMCNT_A = 0x93; case 2: - SETREG8(HW_REG_VRAMCNT_B, 0x9B); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x4000); + reg_GX_VRAMCNT_B = 0x9B; + reg_G3X_DISP3DCNT |= 0x4000; break; case 12: - SETREG8(HW_REG_VRAMCNT_C, 0x93); + reg_GX_VRAMCNT_C = 0x93; case 8: - SETREG8(HW_REG_VRAMCNT_D, 0x9B); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x4000); + reg_GX_VRAMCNT_D = 0x9B; + reg_G3X_DISP3DCNT |= 0x4000; break; case 0: - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) & ~0x4000); + reg_G3X_DISP3DCNT &= ~0x4000; break; case 1: - SETREG8(HW_REG_VRAMCNT_A, 0x9B); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x4000); + reg_GX_VRAMCNT_A = 0x9B; + reg_G3X_DISP3DCNT |= 0x4000; break; case 4: - SETREG8(HW_REG_VRAMCNT_C, 0x9B); - SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x4000); + reg_GX_VRAMCNT_C = 0x9B; + reg_G3X_DISP3DCNT |= 0x4000; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); } @@ -312,14 +312,14 @@ ARM_FUNC void GX_SetBankForARM7(s32 arm7){ case 0: //needed to match break; case 12: - SETREG8(HW_REG_VRAMCNT_D, 0x8A); - SETREG8(HW_REG_VRAMCNT_C, 0x82); + reg_GX_VRAMCNT_D = 0x8A; + reg_GX_VRAMCNT_C = 0x82; break; case 4: - SETREG8(HW_REG_VRAMCNT_C, 0x82); + reg_GX_VRAMCNT_C = 0x82; break; case 8: - SETREG8(HW_REG_VRAMCNT_D, 0x82); + reg_GX_VRAMCNT_D = 0x82; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); } @@ -337,12 +337,12 @@ ARM_FUNC void GX_SetBankForSubBG(s32 subbg){ case 0: //needed to match break; case 4: - SETREG8(HW_REG_VRAMCNT_C, 0x84); + reg_GX_VRAMCNT_C = 0x84; break; case 384: - SETREG8(HW_REG_VRAMCNT_I, 0x81); + reg_GX_VRAMCNT_I = 0x81; case 128: - SETREG8(HW_REG_VRAMCNT_H, 0x81); + reg_GX_VRAMCNT_H = 0x81; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); } @@ -354,10 +354,10 @@ ARM_FUNC void GX_SetBankForSubOBJ(s32 subobj){ switch (subobj) { case 8: - SETREG8(HW_REG_VRAMCNT_D, 0x84); + reg_GX_VRAMCNT_D = 0x84; break; case 256: - SETREG8(HW_REG_VRAMCNT_I, 0x82); + reg_GX_VRAMCNT_I = 0x82; break; case 0: //needed to match break; @@ -371,11 +371,11 @@ ARM_FUNC void GX_SetBankForSubBGExtPltt(s32 subbgextpltt){ switch (subbgextpltt) { case 128: - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) | 0x40000000); - SETREG8(HW_REG_VRAMCNT_H, 0x82); + reg_GXS_DB_DISPCNT |= 0x40000000; + reg_GX_VRAMCNT_H = 0x82; break; case 0: - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x40000000); + reg_GXS_DB_DISPCNT &= ~0x40000000; break; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); @@ -387,11 +387,11 @@ ARM_FUNC void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){ switch (subobjextpltt) { case 256: - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) | 0x80000000); - SETREG8(HW_REG_VRAMCNT_I, 0x83); + reg_GXS_DB_DISPCNT |= 0x80000000; + reg_GX_VRAMCNT_I = 0x83; break; case 0: - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x80000000); + reg_GXS_DB_DISPCNT &= ~0x80000000; break; } GX_VRAMCNT_SetLCDC_(UNK_021D33C4.var00); @@ -414,12 +414,12 @@ ARM_FUNC u32 GX_ResetBankForOBJ(){ } ARM_FUNC u32 GX_ResetBankForBGExtPltt(){ - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x40000000); + reg_GX_DISPCNT &= ~0x40000000; return FUN_020C6130(&UNK_021D33C4.var0E); } ARM_FUNC u32 GX_ResetBankForOBJExtPltt(){ - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x80000000); + reg_GX_DISPCNT &= ~0x80000000; return FUN_020C6130(&UNK_021D33C4.var10); } @@ -444,12 +444,12 @@ ARM_FUNC u32 FUN_020C605C(){ } ARM_FUNC u32 FUN_020C6034(){ - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x40000000); + reg_GXS_DB_DISPCNT &= ~0x40000000; return FUN_020C6130(&UNK_021D33C4.var16); } ARM_FUNC u32 GX_ResetBankForSubOBJ(){ - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x80000000); + reg_GXS_DB_DISPCNT &= ~0x80000000; return FUN_020C6130(&UNK_021D33C4.var18); } @@ -457,23 +457,23 @@ ARM_FUNC u32 FUN_020C5F28(u16 *ptr){ u32 temp = *ptr; *ptr = 0; if (temp & (0x1 << 0)) - SETREG8(HW_REG_VRAMCNT_A, 0x0); + reg_GX_VRAMCNT_A = 0x0; if (temp & (0x1 << 1)) - SETREG8(HW_REG_VRAMCNT_B, 0x0); + reg_GX_VRAMCNT_B = 0x0; if (temp & (0x1 << 2)) - SETREG8(HW_REG_VRAMCNT_C, 0x0); + reg_GX_VRAMCNT_C = 0x0; if (temp & (0x1 << 3)) - SETREG8(HW_REG_VRAMCNT_D, 0x0); + reg_GX_VRAMCNT_D = 0x0; if (temp & (0x1 << 4)) - SETREG8(HW_REG_VRAMCNT_E, 0x0); + reg_GX_VRAMCNT_E = 0x0; if (temp & (0x1 << 5)) - SETREG8(HW_REG_VRAMCNT_F, 0x0); + reg_GX_VRAMCNT_F = 0x0; if (temp & (0x1 << 6)) - SETREG8(HW_REG_VRAMCNT_G, 0x0); + reg_GX_VRAMCNT_G = 0x0; if (temp & (0x1 << 7)) - SETREG8(HW_REG_VRAMCNT_H, 0x0); + reg_GX_VRAMCNT_H = 0x0; if (temp & (0x1 << 8)) - SETREG8(HW_REG_VRAMCNT_I, 0x0); + reg_GX_VRAMCNT_I = 0x0; OSi_UnlockVram((u16)temp, UNK_021D33BC); return temp; } @@ -487,12 +487,12 @@ ARM_FUNC u32 GX_DisableBankForOBJExtPltt_2(){ } ARM_FUNC u32 GX_DisableBankForBGExtPltt(){ - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x40000000); + reg_GX_DISPCNT &= ~0x40000000; return FUN_020C5F28(&UNK_021D33C4.var0E); } ARM_FUNC u32 GX_DisableBankForOBJExtPltt(){ - SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x80000000); + reg_GX_DISPCNT &= ~0x80000000; return FUN_020C5F28(&UNK_021D33C4.var10); } @@ -525,12 +525,12 @@ ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt_2(){ } ARM_FUNC u32 FUN_020C5E04(){ - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x40000000); + reg_GXS_DB_DISPCNT &= ~0x40000000; return FUN_020C5F28(&UNK_021D33C4.var16); } ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt(){ - SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x80000000); + reg_GXS_DB_DISPCNT &= ~0x80000000; return FUN_020C5F28(&UNK_021D33C4.var18); } |