summaryrefslogtreecommitdiff
path: root/arm9/src/GX_layers.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/src/GX_layers.c')
-rw-r--r--arm9/src/GX_layers.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c
index f0ac9472..28147dbd 100644
--- a/arm9/src/GX_layers.c
+++ b/arm9/src/GX_layers.c
@@ -3,19 +3,19 @@
#include "gx.h"
#include "main.h"
-
-struct GX_LayerData layer_data;
+static u32 EngineA_DISPCNT_LayerMask;
+static u32 EngineB_DISPCNT_LayerMask;
THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks)
{
GX_ResetBankForBG();
GX_ResetBankForBGExtPltt();
GX_ResetBankForSubBG();
- FUN_020C6034();
+ GX_ResetBankForSubBGExtPltt();
GX_ResetBankForOBJ();
GX_ResetBankForOBJExtPltt();
- FUN_020C605C();
GX_ResetBankForSubOBJ();
+ GX_ResetBankForSubOBJExtPltt();
GX_ResetBankForTex();
GX_ResetBankForTexPltt();
@@ -34,80 +34,79 @@ THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks)
THUMB_FUNC void GX_DisableEngineALayers()
{
- layer_data.EngineA_DISPCNT_LayerMask = 0;
+ EngineA_DISPCNT_LayerMask = 0;
}
THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle)
{
if (layer_toggle == GX_LAYER_TOGGLE_ON)
{
- if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) != 0)
+ if ((EngineA_DISPCNT_LayerMask & layer_mask) != 0)
{
return;
}
}
else
{
- if ((layer_data.EngineA_DISPCNT_LayerMask & layer_mask) == 0)
+ if ((EngineA_DISPCNT_LayerMask & layer_mask) == 0)
{
return;
}
}
- reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineA_DISPCNT_LayerMask ^= layer_mask) << 8;
+ GX_SetVisiblePlane(EngineA_DISPCNT_LayerMask ^= layer_mask);
}
THUMB_FUNC void GX_SetEngineALayers(u32 layer_mask)
{
- layer_data.EngineA_DISPCNT_LayerMask = layer_mask;
- reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | layer_mask << 8;
+ EngineA_DISPCNT_LayerMask = layer_mask;
+ GX_SetVisiblePlane(layer_mask);
}
THUMB_FUNC void GX_DisableEngineBLayers()
{
- layer_data.EngineB_DISPCNT_LayerMask = 0;
+ EngineB_DISPCNT_LayerMask = 0;
}
THUMB_FUNC void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle)
{
if (layer_toggle == GX_LAYER_TOGGLE_ON)
{
- if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) != 0)
+ if ((EngineB_DISPCNT_LayerMask & layer_mask) != 0)
{
return;
}
}
else
{
- if ((layer_data.EngineB_DISPCNT_LayerMask & layer_mask) == 0)
+ if ((EngineB_DISPCNT_LayerMask & layer_mask) == 0)
{
return;
}
}
- reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineB_DISPCNT_LayerMask ^= layer_mask) << 8;
+ GXS_SetVisiblePlane(EngineB_DISPCNT_LayerMask ^= layer_mask);
}
THUMB_FUNC void GX_BothDispOn()
{
GX_DispOn();
-
- reg_GXS_DB_DISPCNT |= 0x10000;
+ GXS_DispOn();
}
THUMB_FUNC void GX_SwapDisplay()
{
if (gMain.unk65 == 0)
{
- reg_GX_POWCNT |= 0x8000; //send display A to lower screen
+ GX_SetDispSelect(GX_DISP_SELECT_MAIN_SUB);
}
else
{
- reg_GX_POWCNT &= 0xFFFF7FFF; // sned display A to upper screen
+ GX_SetDispSelect(GX_DISP_SELECT_SUB_MAIN);
}
}
THUMB_FUNC u32 GX_GetEngineALayers()
{
- return layer_data.EngineA_DISPCNT_LayerMask;
+ return EngineA_DISPCNT_LayerMask;
}