summaryrefslogtreecommitdiff
path: root/arm9/lib/src/GX_vramcnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/src/GX_vramcnt.c')
-rw-r--r--arm9/lib/src/GX_vramcnt.c578
1 files changed, 0 insertions, 578 deletions
diff --git a/arm9/lib/src/GX_vramcnt.c b/arm9/lib/src/GX_vramcnt.c
deleted file mode 100644
index abfcd77e..00000000
--- a/arm9/lib/src/GX_vramcnt.c
+++ /dev/null
@@ -1,578 +0,0 @@
-#include "global.h"
-#include "gx.h"
-
-extern u16 GXi_VRamLockId;
-extern struct GX_State gGXState;
-
-ARM_FUNC void GX_VRAMCNT_SetLCDC_(u32 mask){
- if (mask & (0x1 << 0))
- reg_GX_VRAMCNT_A = 0x80;
- if (mask & (0x1 << 1))
- reg_GX_VRAMCNT_B = 0x80;
- if (mask & (0x1 << 2))
- reg_GX_VRAMCNT_C = 0x80;
- if (mask & (0x1 << 3))
- reg_GX_VRAMCNT_D = 0x80;
- if (mask & (0x1 << 4))
- reg_GX_VRAMCNT_E = 0x80;
- if (mask & (0x1 << 5))
- reg_GX_VRAMCNT_F = 0x80;
- if (mask & (0x1 << 6))
- reg_GX_VRAMCNT_G = 0x80;
- if (mask & (0x1 << 7))
- reg_GX_VRAMCNT_H = 0x80;
- if (mask & (0x1 << 8))
- reg_GX_VRAMCNT_I = 0x80;
-}
-
-ARM_FUNC void GX_SetBankForBG(s32 bg){
- gGXState.lcdc = (u16)(~bg & (gGXState.lcdc | gGXState.bg));
- gGXState.bg = (u16)bg;
- switch (bg)
- {
- case 8:
- reg_GX_VRAMCNT_D = 0x81;
- break;
- case 12:
- reg_GX_VRAMCNT_D = 0x89;
- case 4:
- reg_GX_VRAMCNT_C = 0x81;
- break;
- case 14:
- reg_GX_VRAMCNT_D = 0x91;
- case 6:
- reg_GX_VRAMCNT_C = 0x89;
- case 2:
- reg_GX_VRAMCNT_B = 0x81;
- break;
- case 15:
- reg_GX_VRAMCNT_D = 0x99;
- case 7:
- reg_GX_VRAMCNT_C = 0x91;
- case 3:
- reg_GX_VRAMCNT_B = 0x89;
- case 1:
- reg_GX_VRAMCNT_A = 0x81;
- break;
- case 11:
- reg_GX_VRAMCNT_A = 0x81;
- reg_GX_VRAMCNT_B = 0x89;
- reg_GX_VRAMCNT_D = 0x91;
- break;
- case 13:
- reg_GX_VRAMCNT_D = 0x91;
- case 5:
- reg_GX_VRAMCNT_A = 0x81;
- reg_GX_VRAMCNT_C = 0x89;
- break;
- case 9:
- reg_GX_VRAMCNT_A = 0x81;
- reg_GX_VRAMCNT_D = 0x89;
- break;
- case 10:
- reg_GX_VRAMCNT_B = 0x81;
- reg_GX_VRAMCNT_D = 0x89;
- break;
- case 112:
- reg_GX_VRAMCNT_G = 0x99;
- case 48:
- reg_GX_VRAMCNT_F = 0x91;
- case 16:
- reg_GX_VRAMCNT_E = 0x81;
- break;
- case 80:
- reg_GX_VRAMCNT_G = 0x91;
- reg_GX_VRAMCNT_E = 0x81;
- break;
- case 96:
- reg_GX_VRAMCNT_G = 0x89;
- case 32:
- reg_GX_VRAMCNT_F = 0x81;
- break;
- case 64:
- reg_GX_VRAMCNT_G = 0x81;
- break;
- default:
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForOBJ(s32 obj){
- gGXState.lcdc = (u16)(~obj & (gGXState.lcdc | gGXState.obj));
- gGXState.obj = (u16)obj;
- switch (obj)
- {
- case 3:
- reg_GX_VRAMCNT_B = 0x8A;
- case 1:
- reg_GX_VRAMCNT_A = 0x82;
- case 0: //needed to match
- break;
- case 2:
- reg_GX_VRAMCNT_B = 0x82;
- break;
- case 112:
- reg_GX_VRAMCNT_G = 0x9A;
- case 48:
- reg_GX_VRAMCNT_F = 0x92;
- case 16:
- reg_GX_VRAMCNT_E = 0x82;
- break;
- case 80:
- reg_GX_VRAMCNT_G = 0x92;
- reg_GX_VRAMCNT_E = 0x82;
- break;
- case 96:
- reg_GX_VRAMCNT_G = 0x8A;
- case 32:
- reg_GX_VRAMCNT_F = 0x82;
- break;
- case 64:
- reg_GX_VRAMCNT_G = 0x82;
- break;
- default:
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForBGExtPltt(s32 bgextpltt){
- gGXState.lcdc = (u16)(~bgextpltt & (gGXState.lcdc | gGXState.bgExtPltt));
- gGXState.bgExtPltt = (u16)bgextpltt;
- switch (bgextpltt)
- {
- case 0x10:
- reg_GX_DISPCNT |= 0x40000000;
- reg_GX_VRAMCNT_E = 0x84;
- break;
- case 0x40:
- reg_GX_DISPCNT |= 0x40000000;
- reg_GX_VRAMCNT_G = 0x8C;
- break;
- case 0x60:
- reg_GX_VRAMCNT_G = 0x8C;
- case 0x20:
- reg_GX_VRAMCNT_F = 0x84;
- reg_GX_DISPCNT |= 0x40000000;
- break;
- case 0:
- reg_GX_DISPCNT &= ~0x40000000;
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForOBJExtPltt(s32 objextpltt){
- gGXState.lcdc = (u16)(~objextpltt & (gGXState.lcdc | gGXState.objExtPltt));
- gGXState.objExtPltt = (u16)objextpltt;
- switch (objextpltt)
- {
- case 32:
- reg_GX_DISPCNT |= 0x80000000;
- reg_GX_VRAMCNT_F = 0x85;
- break;
- case 64:
- reg_GX_DISPCNT |= 0x80000000;
- reg_GX_VRAMCNT_G = 0x85;
- break;
- case 0:
- reg_GX_DISPCNT &= ~0x80000000;
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForTex(s32 tex){
- gGXState.lcdc = (u16)(~tex & (gGXState.lcdc | gGXState.tex));
- gGXState.tex = (u16)tex;
- if (tex == 0)
- {
- reg_G3X_DISP3DCNT &= 0x0000CFFE;
- }
- else
- {
- reg_G3X_DISP3DCNT = (u16)((reg_G3X_DISP3DCNT & ~0x3000) | 0x1);
- switch (tex)
- {
- case 5:
- reg_GX_VRAMCNT_A = 0x83;
- reg_GX_VRAMCNT_C = 0x8B;
- break;
- case 9:
- reg_GX_VRAMCNT_A = 0x83;
- reg_GX_VRAMCNT_D = 0x8B;
- break;
- case 10:
- reg_GX_VRAMCNT_B = 0x83;
- reg_GX_VRAMCNT_D = 0x8B;
- break;
- case 11:
- reg_GX_VRAMCNT_A = 0x83;
- reg_GX_VRAMCNT_B = 0x8B;
- reg_GX_VRAMCNT_D = 0x93;
- break;
- case 13:
- reg_GX_VRAMCNT_A = 0x83;
- reg_GX_VRAMCNT_C = 0x8B;
- reg_GX_VRAMCNT_D = 0x93;
- break;
- case 8:
- reg_GX_VRAMCNT_D = 0x83;
- break;
- case 12:
- reg_GX_VRAMCNT_D = 0x8B;
- case 4:
- reg_GX_VRAMCNT_C = 0x83;
- break;
- case 14:
- reg_GX_VRAMCNT_D = 0x93;
- case 6:
- reg_GX_VRAMCNT_C = 0x8B;
- case 2:
- reg_GX_VRAMCNT_B = 0x83;
- break;
- case 15:
- reg_GX_VRAMCNT_D = 0x9B;
- case 7:
- reg_GX_VRAMCNT_C = 0x93;
- case 3:
- reg_GX_VRAMCNT_B = 0x8B;
- case 1:
- reg_GX_VRAMCNT_A = 0x83;
- break;
- }
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForTexPltt(s32 texpltt){
- gGXState.lcdc = (u16)(~texpltt & (gGXState.lcdc | gGXState.texPltt));
- gGXState.texPltt = (u16)texpltt;
- switch (texpltt)
- {
- case 0: //needed to match
- break;
- case 96:
- reg_GX_VRAMCNT_G = 0x8B;
- case 32:
- reg_GX_VRAMCNT_F = 0x83;
- break;
- case 112:
- reg_GX_VRAMCNT_G = 0x9B;
- case 48:
- reg_GX_VRAMCNT_F = 0x93;
- case 16:
- reg_GX_VRAMCNT_E = 0x83;
- break;
- case 64:
- reg_GX_VRAMCNT_G = 0x83;
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForClearImage(s32 clearimage){
- gGXState.lcdc = (u16)(~clearimage & (gGXState.lcdc | gGXState.clrImg));
- gGXState.clrImg = (u16)clearimage;
- switch (clearimage)
- {
- case 3:
- reg_GX_VRAMCNT_A = 0x93;
- case 2:
- reg_GX_VRAMCNT_B = 0x9B;
- reg_G3X_DISP3DCNT |= 0x4000;
- break;
- case 12:
- reg_GX_VRAMCNT_C = 0x93;
- case 8:
- reg_GX_VRAMCNT_D = 0x9B;
- reg_G3X_DISP3DCNT |= 0x4000;
- break;
- case 0:
- reg_G3X_DISP3DCNT &= ~0x4000;
- break;
- case 1:
- reg_GX_VRAMCNT_A = 0x9B;
- reg_G3X_DISP3DCNT |= 0x4000;
- break;
- case 4:
- reg_GX_VRAMCNT_C = 0x9B;
- reg_G3X_DISP3DCNT |= 0x4000;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForARM7(s32 arm7){
- gGXState.lcdc = (u16)(~arm7 & (gGXState.lcdc | gGXState.arm7));
- gGXState.arm7 = (u16)arm7;
- switch (arm7)
- {
- case 0: //needed to match
- break;
- case 12:
- reg_GX_VRAMCNT_D = 0x8A;
- reg_GX_VRAMCNT_C = 0x82;
- break;
- case 4:
- reg_GX_VRAMCNT_C = 0x82;
- break;
- case 8:
- reg_GX_VRAMCNT_D = 0x82;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForLCDC(s32 lcdc){
- gGXState.lcdc |= lcdc;
- GX_VRAMCNT_SetLCDC_((u32)lcdc);
-}
-
-ARM_FUNC void GX_SetBankForSubBG(s32 subbg){
- gGXState.lcdc = (u16)(~subbg & (gGXState.lcdc | gGXState.sub_bg));
- gGXState.sub_bg = (u16)subbg;
- switch (subbg)
- {
- case 0: //needed to match
- break;
- case 4:
- reg_GX_VRAMCNT_C = 0x84;
- break;
- case 384:
- reg_GX_VRAMCNT_I = 0x81;
- case 128:
- reg_GX_VRAMCNT_H = 0x81;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-
-ARM_FUNC void GX_SetBankForSubOBJ(s32 subobj){
- gGXState.lcdc = (u16)(~subobj & (gGXState.lcdc | gGXState.sub_obj));
- gGXState.sub_obj = (u16)subobj;
- switch (subobj)
- {
- case 8:
- reg_GX_VRAMCNT_D = 0x84;
- break;
- case 256:
- reg_GX_VRAMCNT_I = 0x82;
- break;
- case 0: //needed to match
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForSubBGExtPltt(s32 subbgextpltt){
- gGXState.lcdc = (u16)(~subbgextpltt & (gGXState.lcdc | gGXState.sub_bgExtPltt));
- gGXState.sub_bgExtPltt = (u16)subbgextpltt;
- switch (subbgextpltt)
- {
- case 128:
- reg_GXS_DB_DISPCNT |= 0x40000000;
- reg_GX_VRAMCNT_H = 0x82;
- break;
- case 0:
- reg_GXS_DB_DISPCNT &= ~0x40000000;
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){
- gGXState.lcdc = (u16)(~subobjextpltt & (gGXState.lcdc | gGXState.sub_objExtPltt));
- gGXState.sub_objExtPltt = (u16)subobjextpltt;
- switch (subobjextpltt)
- {
- case 256:
- reg_GXS_DB_DISPCNT |= 0x80000000;
- reg_GX_VRAMCNT_I = 0x83;
- break;
- case 0:
- reg_GXS_DB_DISPCNT &= ~0x80000000;
- break;
- }
- GX_VRAMCNT_SetLCDC_(gGXState.lcdc);
-}
-
-ARM_FUNC u32 resetBankForX_(u16 *ptr){
- u16 temp = *ptr;
- *ptr = 0;
- gGXState.lcdc |= temp;
- GX_VRAMCNT_SetLCDC_(temp);
- return temp;
-}
-
-ARM_FUNC u32 GX_ResetBankForBG(){
- return resetBankForX_(&gGXState.bg);
-}
-
-ARM_FUNC u32 GX_ResetBankForOBJ(){
- return resetBankForX_(&gGXState.obj);
-}
-
-ARM_FUNC u32 GX_ResetBankForBGExtPltt(){
- reg_GX_DISPCNT &= ~0x40000000;
- return resetBankForX_(&gGXState.bgExtPltt);
-}
-
-ARM_FUNC u32 GX_ResetBankForOBJExtPltt(){
- reg_GX_DISPCNT &= ~0x80000000;
- return resetBankForX_(&gGXState.objExtPltt);
-}
-
-ARM_FUNC u32 GX_ResetBankForTex(){
- return resetBankForX_(&gGXState.tex);
-}
-
-ARM_FUNC u32 GX_ResetBankForTexPltt(){
- return resetBankForX_(&gGXState.texPltt);
-}
-
-ARM_FUNC u32 GX_ResetBankForClearImage(){
- return resetBankForX_(&gGXState.clrImg);
-}
-
-ARM_FUNC u32 GX_ResetBankForSubBG(){
- return resetBankForX_(&gGXState.sub_bg);
-}
-
-ARM_FUNC u32 GX_ResetBankForSubOBJ(){
- return resetBankForX_(&gGXState.sub_obj);
-}
-
-ARM_FUNC u32 GX_ResetBankForSubBGExtPltt(){
- reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_BG_MASK;
- return resetBankForX_(&gGXState.sub_bgExtPltt);
-}
-
-ARM_FUNC u32 GX_ResetBankForSubOBJExtPltt(){
- reg_GXS_DB_DISPCNT &= ~REG_GXS_DB_DISPCNT_O_MASK;
- return resetBankForX_(&gGXState.sub_objExtPltt);
-}
-
-ARM_FUNC u32 disableBankForX_(u16 *ptr){
- u32 temp = *ptr;
- *ptr = 0;
- if (temp & (0x1 << 0))
- reg_GX_VRAMCNT_A = 0x0;
- if (temp & (0x1 << 1))
- reg_GX_VRAMCNT_B = 0x0;
- if (temp & (0x1 << 2))
- reg_GX_VRAMCNT_C = 0x0;
- if (temp & (0x1 << 3))
- reg_GX_VRAMCNT_D = 0x0;
- if (temp & (0x1 << 4))
- reg_GX_VRAMCNT_E = 0x0;
- if (temp & (0x1 << 5))
- reg_GX_VRAMCNT_F = 0x0;
- if (temp & (0x1 << 6))
- reg_GX_VRAMCNT_G = 0x0;
- if (temp & (0x1 << 7))
- reg_GX_VRAMCNT_H = 0x0;
- if (temp & (0x1 << 8))
- reg_GX_VRAMCNT_I = 0x0;
- OSi_UnlockVram((u16)temp, GXi_VRamLockId);
- return temp;
-}
-
-ARM_FUNC u32 GX_DisableBankForBG(){
- return disableBankForX_(&gGXState.bg);
-}
-
-ARM_FUNC u32 GX_DisableBankForOBJ(){
- return disableBankForX_(&gGXState.obj);
-}
-
-ARM_FUNC u32 GX_DisableBankForBGExtPltt(){
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BG_MASK;
- return disableBankForX_(&gGXState.bgExtPltt);
-}
-
-ARM_FUNC u32 GX_DisableBankForOBJExtPltt(){
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_O_MASK;
- return disableBankForX_(&gGXState.objExtPltt);
-}
-
-ARM_FUNC u32 GX_DisableBankForTex(){
- return disableBankForX_(&gGXState.tex);
-}
-
-ARM_FUNC u32 GX_DisableBankForTexPltt(){
- return disableBankForX_(&gGXState.texPltt);
-}
-
-ARM_FUNC u32 GX_DisableBankForClearImage(){
- return disableBankForX_(&gGXState.clrImg);
-}
-
-ARM_FUNC u32 GX_DisableBankForARM7(){
- return disableBankForX_(&gGXState.arm7);
-}
-
-ARM_FUNC u32 GX_DisableBankForLCDC(){
- return disableBankForX_(&gGXState.lcdc);
-}
-
-ARM_FUNC u32 GX_DisableBankForSubBG(){
- return disableBankForX_(&gGXState.sub_bg);
-}
-
-ARM_FUNC u32 GX_DisableBankForSubOBJ(){
- return disableBankForX_(&gGXState.sub_obj);
-}
-
-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 &= ~REG_GX_DISPCNT_O_MASK;
- return disableBankForX_(&gGXState.sub_objExtPltt);
-}
-
-ARM_FUNC u32 GX_GetBankForBG(){
- return gGXState.bg;
-}
-
-ARM_FUNC u32 GX_GetBankForOBJ(){
- return gGXState.obj;
-}
-
-ARM_FUNC u32 GX_GetBankForBGExtPltt(){
- return gGXState.bgExtPltt;
-}
-
-ARM_FUNC u32 GX_GetBankForOBJExtPltt(){
- return gGXState.objExtPltt;
-}
-
-ARM_FUNC u32 GX_GetBankForTex(){
- return gGXState.tex;
-}
-
-ARM_FUNC u32 GX_GetBankForTexPltt(){
- return gGXState.texPltt;
-}
-
-ARM_FUNC u32 GX_GetBankForLCDC(){
- return gGXState.lcdc;
-}
-
-ARM_FUNC u32 GX_GetBankForSubBG(){
- return gGXState.sub_bg;
-}
-
-ARM_FUNC u32 GX_GetBankForSubOBJ(){
- return gGXState.sub_obj;
-}
-
-ARM_FUNC u32 GX_GetBankForSubBGExtPltt(){
- return gGXState.sub_bgExtPltt;
-}
-
-ARM_FUNC u32 GX_GetBankForSubOBJExtPltt(){
- return gGXState.sub_objExtPltt;
-}