diff options
author | who-knows-who <j.williams97@outlook.com> | 2021-06-22 22:12:29 +0100 |
---|---|---|
committer | who-knows-who <j.williams97@outlook.com> | 2021-06-22 22:12:29 +0100 |
commit | cec1d428f458997fe3e4c0ac4abf0dc6b36ba699 (patch) | |
tree | f246a8956341a8f743d29c58f39a80a6ac5f865a /arm9/lib/src | |
parent | 5bbef1bba183ad6654edbd0c8fc8244db38ac5c9 (diff) | |
parent | d192b6951f54d1397ded3db03b5e486ec679ac6f (diff) |
Merge branch 'master' of github.com:pret/pokediamond into 0202A1E0
Diffstat (limited to 'arm9/lib/src')
-rw-r--r-- | arm9/lib/src/GX.c | 52 | ||||
-rw-r--r-- | arm9/lib/src/GX_g2.c | 10 | ||||
-rw-r--r-- | arm9/lib/src/GX_load2d.c | 4 | ||||
-rw-r--r-- | arm9/lib/src/GX_vramcnt.c | 88 |
4 files changed, 78 insertions, 76 deletions
diff --git a/arm9/lib/src/GX.c b/arm9/lib/src/GX.c index 69ad8718..688e41b7 100644 --- a/arm9/lib/src/GX.c +++ b/arm9/lib/src/GX.c @@ -7,16 +7,18 @@ vu16 GXi_VRamLockId = 0; static u16 sDispMode = 0; static u16 sIsDispOn = TRUE; +#define _powcnt_init_mask (REG_GX_POWCNT_E2DGB_MASK | REG_GX_POWCNT_E2DG_MASK | REG_GX_POWCNT_RE_MASK | REG_GX_POWCNT_GE_MASK) + ARM_FUNC void GX_Init(){ - reg_GX_POWCNT |= 0x8000; - reg_GX_POWCNT = (u16)((reg_GX_POWCNT & ~0x20E) | 0x20E); - reg_GX_POWCNT = (u16)(reg_GX_POWCNT | 0x1); + reg_GX_POWCNT |= REG_GX_POWCNT_DSEL_MASK; + reg_GX_POWCNT = (u16)((reg_GX_POWCNT & ~_powcnt_init_mask) | _powcnt_init_mask); + reg_GX_POWCNT = (u16)(reg_GX_POWCNT | REG_GX_POWCNT_LCD_MASK); GX_InitGXState(); s32 temp; while (GXi_VRamLockId == 0) { temp = OS_GetLockID(); - if (temp == -3) + if (temp == OS_LOCK_ID_ERROR) { OS_Terminate(); } @@ -47,62 +49,62 @@ ARM_FUNC void GX_Init(){ } ARM_FUNC u32 GX_HBlankIntr(u32 enable){ - u32 temp = (u32)(reg_GX_DISPSTAT & 0x10); + u32 temp = (u32)(reg_GX_DISPSTAT & REG_GX_DISPSTAT_HBI_MASK); if (enable) { - reg_GX_DISPSTAT |= 0x10; + reg_GX_DISPSTAT |= REG_GX_DISPSTAT_HBI_MASK; } else { - reg_GX_DISPSTAT &= ~0x10; + reg_GX_DISPSTAT &= ~REG_GX_DISPSTAT_HBI_MASK; } return temp; } ARM_FUNC u32 GX_VBlankIntr(u32 enable){ - u32 temp = (u32)(reg_GX_DISPSTAT & 0x8); + u32 temp = (u32)(reg_GX_DISPSTAT & REG_GX_DISPSTAT_VBI_MASK); if (enable) { - reg_GX_DISPSTAT |= 0x8; + reg_GX_DISPSTAT |= REG_GX_DISPSTAT_VBI_MASK; } else { - reg_GX_DISPSTAT &= ~0x8; + reg_GX_DISPSTAT &= ~REG_GX_DISPSTAT_VBI_MASK; } return temp; } ARM_FUNC void GX_DispOff(){ u32 temp = reg_GX_DISPCNT; - sIsDispOn = 0x0; - sDispMode = (u16)((temp & 0x30000) >> 0x10); - reg_GX_DISPCNT = temp & ~0x30000; + sIsDispOn = FALSE; + sDispMode = (u16)((temp & REG_GX_DISPCNT_MODE_MASK) >> REG_GX_DISPCNT_MODE_SHIFT); + reg_GX_DISPCNT = temp & ~REG_GX_DISPCNT_MODE_MASK; } ARM_FUNC void GX_DispOn(){ - sIsDispOn = 0x1; + sIsDispOn = TRUE; if (sDispMode) { - reg_GX_DISPCNT = (reg_GX_DISPCNT & ~0x30000) | (sDispMode << 0x10); + reg_GX_DISPCNT = (reg_GX_DISPCNT & ~REG_GX_DISPCNT_MODE_MASK) | (sDispMode << REG_GX_DISPCNT_MODE_SHIFT); } else { - reg_GX_DISPCNT = reg_GX_DISPCNT | 0x10000; + reg_GX_DISPCNT = reg_GX_DISPCNT | (GX_DISPMODE_GRAPHICS << REG_GX_DISPCNT_MODE_SHIFT); } } -ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){ +ARM_FUNC void GX_SetGraphicsMode(GXDispMode dispMode, GXBGMode bgMode, GXBG0As bg0_2d3d){ u32 temp2 = reg_GX_DISPCNT; - sDispMode = (u16)mode1; + sDispMode = (u16)dispMode; if (!sIsDispOn) - mode1 = 0; - reg_GX_DISPCNT = (mode2 | ((temp2 & 0xFFF0FFF0) | (mode1 << 0x10))) | (mode3 << 0x3); + dispMode = 0; + reg_GX_DISPCNT = ((bgMode << REG_GX_DISPCNT_BGMODE_SHIFT) | ((temp2 & ~(REG_GX_DISPCNT_BGMODE_MASK | REG_GX_DISPCNT_MODE_MASK | REG_GX_DISPCNT_BG02D3D_MASK | REG_GX_DISPCNT_VRAM_MASK)) | (dispMode << REG_GX_DISPCNT_MODE_SHIFT))) | (bg0_2d3d << REG_GX_DISPCNT_BG02D3D_SHIFT); if (!sDispMode) - sIsDispOn = 0x0; + sIsDispOn = FALSE; } -ARM_FUNC void GXS_SetGraphicsMode(u32 mode){ - reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~0x7) | mode; +ARM_FUNC void GXS_SetGraphicsMode(GXBGMode mode){ + reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & ~REG_GXS_DB_DISPCNT_BGMODE_MASK) | mode; } ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){ @@ -112,10 +114,10 @@ ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){ } else if (brightness > 0) { - *dst = (u16)(0x4000 | brightness); + *dst = (u16)((1 << REG_GX_MASTER_BRIGHT_E_MOD_SHIFT) | brightness); } else { - *dst = (u16)(0x8000 | -brightness); + *dst = (u16)((2 << REG_GX_MASTER_BRIGHT_E_MOD_SHIFT) | -brightness); } } diff --git a/arm9/lib/src/GX_g2.c b/arm9/lib/src/GX_g2.c index 99ba0e26..39b8bff4 100644 --- a/arm9/lib/src/GX_g2.c +++ b/arm9/lib/src/GX_g2.c @@ -1,16 +1,16 @@ #include "global.h" #include "gx.h" -ARM_FUNC void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){ +ARM_FUNC void G2x_SetBGyAffine_(u32 ptr, const struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){ fx32 temp0, temp1, temp2, temp3; - ptr[0] = (u32)((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10); - ptr[1] = (u32)((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10); + *((vu32 *)ptr + 0) = (u32)((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10); + *((vu32 *)ptr + 1) = (u32)((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10); temp0 = c - a; temp1 = d - b; temp2 = mtx->_[0] * temp0 + mtx->_[1] * temp1 + (a << 0xC); temp3 = mtx->_[2] * temp0 + mtx->_[3] * temp1 + (b << 0xC); - ptr[2] = (u32)(temp2 >> 4); - ptr[3] = (u32)(temp3 >> 4); + *((vu32 *)ptr + 2) = (u32)(temp2 >> 4); + *((vu32 *)ptr + 3) = (u32)(temp3 >> 4); } ARM_FUNC void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d){ diff --git a/arm9/lib/src/GX_load2d.c b/arm9/lib/src/GX_load2d.c index 132de9ee..6bff54be 100644 --- a/arm9/lib/src/GX_load2d.c +++ b/arm9/lib/src/GX_load2d.c @@ -195,7 +195,7 @@ ARM_FUNC void GX_EndLoadOBJExtPltt(){ } ARM_FUNC void GXS_BeginLoadBGExtPltt(){ - sSubBGExtPltt = (s32)FUN_020C6034(); + sSubBGExtPltt = (s32)GX_ResetBankForSubBGExtPltt(); } ARM_FUNC void GXS_LoadBGExtPltt(void *src, u32 offset, u32 size){ @@ -209,7 +209,7 @@ ARM_FUNC void GXS_EndLoadBGExtPltt(){ } ARM_FUNC void GXS_BeginLoadOBJExtPltt(){ - sSubOBJExtPltt = (s32)GX_ResetBankForSubOBJ(); + sSubOBJExtPltt = (s32)GX_ResetBankForSubOBJExtPltt(); } ARM_FUNC void GXS_LoadOBJExtPltt(void *src, u32 offset, u32 size){ diff --git a/arm9/lib/src/GX_vramcnt.c b/arm9/lib/src/GX_vramcnt.c index c9d5a1bd..abfcd77e 100644 --- a/arm9/lib/src/GX_vramcnt.c +++ b/arm9/lib/src/GX_vramcnt.c @@ -396,7 +396,7 @@ ARM_FUNC void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){ GX_VRAMCNT_SetLCDC_(gGXState.lcdc); } -ARM_FUNC u32 FUN_020C6130(u16 *ptr){ +ARM_FUNC u32 resetBankForX_(u16 *ptr){ u16 temp = *ptr; *ptr = 0; gGXState.lcdc |= temp; @@ -405,54 +405,54 @@ ARM_FUNC u32 FUN_020C6130(u16 *ptr){ } ARM_FUNC u32 GX_ResetBankForBG(){ - return FUN_020C6130(&gGXState.bg); + return resetBankForX_(&gGXState.bg); } ARM_FUNC u32 GX_ResetBankForOBJ(){ - return FUN_020C6130(&gGXState.obj); + return resetBankForX_(&gGXState.obj); } ARM_FUNC u32 GX_ResetBankForBGExtPltt(){ reg_GX_DISPCNT &= ~0x40000000; - return FUN_020C6130(&gGXState.bgExtPltt); + return resetBankForX_(&gGXState.bgExtPltt); } ARM_FUNC u32 GX_ResetBankForOBJExtPltt(){ reg_GX_DISPCNT &= ~0x80000000; - return FUN_020C6130(&gGXState.objExtPltt); + return resetBankForX_(&gGXState.objExtPltt); } ARM_FUNC u32 GX_ResetBankForTex(){ - return FUN_020C6130(&gGXState.tex); + return resetBankForX_(&gGXState.tex); } ARM_FUNC u32 GX_ResetBankForTexPltt(){ - return FUN_020C6130(&gGXState.texPltt); + return resetBankForX_(&gGXState.texPltt); } ARM_FUNC u32 GX_ResetBankForClearImage(){ - return FUN_020C6130(&gGXState.clrImg); + return resetBankForX_(&gGXState.clrImg); } ARM_FUNC u32 GX_ResetBankForSubBG(){ - return FUN_020C6130(&gGXState.sub_bg); + return resetBankForX_(&gGXState.sub_bg); } -ARM_FUNC u32 FUN_020C605C(){ - return FUN_020C6130(&gGXState.sub_obj); +ARM_FUNC u32 GX_ResetBankForSubOBJ(){ + return resetBankForX_(&gGXState.sub_obj); } -ARM_FUNC u32 FUN_020C6034(){ - reg_GXS_DB_DISPCNT &= ~0x40000000; - return FUN_020C6130(&gGXState.sub_bgExtPltt); +ARM_FUNC u32 GX_ResetBankForSubBGExtPltt(){ + reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_BG_MASK; + return resetBankForX_(&gGXState.sub_bgExtPltt); } -ARM_FUNC u32 GX_ResetBankForSubOBJ(){ - reg_GXS_DB_DISPCNT &= ~0x80000000; - return FUN_020C6130(&gGXState.sub_objExtPltt); +ARM_FUNC u32 GX_ResetBankForSubOBJExtPltt(){ + reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_O_MASK; + return resetBankForX_(&gGXState.sub_objExtPltt); } -ARM_FUNC u32 FUN_020C5F28(u16 *ptr){ +ARM_FUNC u32 disableBankForX_(u16 *ptr){ u32 temp = *ptr; *ptr = 0; if (temp & (0x1 << 0)) @@ -477,63 +477,63 @@ ARM_FUNC u32 FUN_020C5F28(u16 *ptr){ return temp; } -ARM_FUNC u32 disableBankForX_(){ - return FUN_020C5F28(&gGXState.bg); +ARM_FUNC u32 GX_DisableBankForBG(){ + return disableBankForX_(&gGXState.bg); } -ARM_FUNC u32 GX_DisableBankForOBJExtPltt_2(){ - return FUN_020C5F28(&gGXState.obj); +ARM_FUNC u32 GX_DisableBankForOBJ(){ + return disableBankForX_(&gGXState.obj); } ARM_FUNC u32 GX_DisableBankForBGExtPltt(){ - reg_GX_DISPCNT &= ~0x40000000; - return FUN_020C5F28(&gGXState.bgExtPltt); + reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK; + return disableBankForX_(&gGXState.bgExtPltt); } ARM_FUNC u32 GX_DisableBankForOBJExtPltt(){ - reg_GX_DISPCNT &= ~0x80000000; - return FUN_020C5F28(&gGXState.objExtPltt); + reg_GX_DISPCNT &= ~REG_GX_DISPCNT_O_MASK; + return disableBankForX_(&gGXState.objExtPltt); } -ARM_FUNC u32 GX_DisableBankForTexPltt_2(){ - return FUN_020C5F28(&gGXState.tex); +ARM_FUNC u32 GX_DisableBankForTex(){ + return disableBankForX_(&gGXState.tex); } ARM_FUNC u32 GX_DisableBankForTexPltt(){ - return FUN_020C5F28(&gGXState.texPltt); + return disableBankForX_(&gGXState.texPltt); } ARM_FUNC u32 GX_DisableBankForClearImage(){ - return FUN_020C5F28(&gGXState.clrImg); + return disableBankForX_(&gGXState.clrImg); } ARM_FUNC u32 GX_DisableBankForARM7(){ - return FUN_020C5F28(&gGXState.arm7); + return disableBankForX_(&gGXState.arm7); } ARM_FUNC u32 GX_DisableBankForLCDC(){ - return FUN_020C5F28(&gGXState.lcdc); + return disableBankForX_(&gGXState.lcdc); } -ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){ - return FUN_020C5F28(&gGXState.sub_bg); +ARM_FUNC u32 GX_DisableBankForSubBG(){ + return disableBankForX_(&gGXState.sub_bg); } -ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt_2(){ - return FUN_020C5F28(&gGXState.sub_obj); +ARM_FUNC u32 GX_DisableBankForSubOBJ(){ + return disableBankForX_(&gGXState.sub_obj); } -ARM_FUNC u32 FUN_020C5E04(){ - reg_GXS_DB_DISPCNT &= ~0x40000000; - return FUN_020C5F28(&gGXState.sub_bgExtPltt); +ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){ + reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK; + return disableBankForX_(&gGXState.sub_bgExtPltt); } ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt(){ - reg_GXS_DB_DISPCNT &= ~0x80000000; - return FUN_020C5F28(&gGXState.sub_objExtPltt); + reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_O_MASK; + return disableBankForX_(&gGXState.sub_objExtPltt); } -ARM_FUNC u32 GX_GetBankForBGExtPltt_2(){ +ARM_FUNC u32 GX_GetBankForBG(){ return gGXState.bg; } @@ -549,7 +549,7 @@ ARM_FUNC u32 GX_GetBankForOBJExtPltt(){ return gGXState.objExtPltt; } -ARM_FUNC u32 FUN_020C5D8C(){ +ARM_FUNC u32 GX_GetBankForTex(){ return gGXState.tex; } @@ -561,7 +561,7 @@ ARM_FUNC u32 GX_GetBankForLCDC(){ return gGXState.lcdc; } -ARM_FUNC u32 GX_GetBankForSubBGExtPltt_2(){ +ARM_FUNC u32 GX_GetBankForSubBG(){ return gGXState.sub_bg; } |