summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-04 18:37:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-04 18:37:08 -0400
commite29c9e21ba9b64c86ac677b2bf4a69e92e8ac34b (patch)
tree961f150c6ccef7e09990f8e1f5d7cc0c37c8d031 /arm9/src
parent1b5cf67f5f3585ea1a50dc2d487e6897dd7e6f55 (diff)
Port more inlines from gx lib
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/GX_layers.c13
-rw-r--r--arm9/src/gf_gfx_loader.c2
-rw-r--r--arm9/src/unk_02016B94.c378
3 files changed, 175 insertions, 218 deletions
diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c
index f0ac9472..790b13bb 100644
--- a/arm9/src/GX_layers.c
+++ b/arm9/src/GX_layers.c
@@ -54,13 +54,13 @@ THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_togg
}
}
- reg_GX_DISPCNT = (reg_GX_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineA_DISPCNT_LayerMask ^= layer_mask) << 8;
+ GX_SetVisiblePlane(layer_data.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;
+ GX_SetVisiblePlane(layer_mask);
}
THUMB_FUNC void GX_DisableEngineBLayers()
@@ -85,25 +85,24 @@ THUMB_FUNC void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_togg
}
}
- reg_GXS_DB_DISPCNT = (reg_GXS_DB_DISPCNT & 0xFFFFE0FF) | (layer_data.EngineB_DISPCNT_LayerMask ^= layer_mask) << 8;
+ GXS_SetVisiblePlane(layer_data.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);
}
}
diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c
index 66d788e6..e6fedda8 100644
--- a/arm9/src/gf_gfx_loader.c
+++ b/arm9/src/gf_gfx_loader.c
@@ -30,7 +30,7 @@ THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct BgC
{
if (szByte == 0)
szByte = pScreenData->szByte;
- if (FUN_0201886C(unkStruct02016B94_2, (u8)a3) != NULL)
+ if (GetBgTilemapBuffer(unkStruct02016B94_2, (u8) a3) != NULL)
FUN_02017DFC(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte);
FUN_02017CE8(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte, a4);
}
diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c
index 3341a533..cb990b8b 100644
--- a/arm9/src/unk_02016B94.c
+++ b/arm9/src/unk_02016B94.c
@@ -8,15 +8,13 @@
extern void NNS_G2dGetUnpackedBGCharacterData(void *param0, u32 *param1);
extern void NNS_G2dGetUnpackedPaletteData(void *param0, u32 *param1);
-const u8 UNK_020EDB30[8] = {
+const u8 UNK_020EDB30[] = {
0x10,
0x20,
0x20,
0x20,
0x20,
0x20,
- 0x00,
- 0x00,
};
void (*const UNK_020EDB5C[])(struct Window *) = {
@@ -60,7 +58,7 @@ THUMB_FUNC struct BgConfig *FUN_02016B94(u32 heap_id)
struct BgConfig *ptr = AllocFromHeap(heap_id, sizeof(struct BgConfig));
memset(ptr, 0, sizeof(struct BgConfig));
ptr->heap_id = heap_id;
- ptr->unk04 = 0;
+ ptr->scrollScheduled = 0;
ptr->unk06 = 0;
return ptr;
@@ -75,8 +73,8 @@ THUMB_FUNC void FUN_02016BBC(const struct GraphicsModes *modes)
{
GX_SetGraphicsMode(modes->dispMode, modes->bgMode, modes->_2d3dMode);
GXS_SetGraphicsMode(modes->subMode);
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BGSCREENOFFSET_MASK;
- reg_GX_DISPCNT &= ~REG_GX_DISPCNT_BGCHAROFFSET_MASK;
+ GX_SetBGScrOffset(0);
+ GX_SetBGCharOffset(0);
GX_DisableEngineALayers();
GX_DisableEngineBLayers();
@@ -207,11 +205,11 @@ THUMB_FUNC void FUN_02016C18(
break;
}
- param0->bgs[param1].unk20 = 0;
- param0->bgs[param1].unk24 = FX32_ONE;
- param0->bgs[param1].unk28 = FX32_ONE;
- param0->bgs[param1].unk2c = 0;
- param0->bgs[param1].unk30 = 0;
+ param0->bgs[param1].rotation = 0;
+ param0->bgs[param1].xScale = FX32_ONE;
+ param0->bgs[param1].yScale = FX32_ONE;
+ param0->bgs[param1].centerX = 0;
+ param0->bgs[param1].centerY = 0;
if (template->bufferSize != 0)
{
@@ -219,13 +217,13 @@ THUMB_FUNC void FUN_02016C18(
MI_CpuClear16(param0->bgs[param1].tilemapBuffer, template->bufferSize);
- param0->bgs[param1].unk0c = template->bufferSize;
+ param0->bgs[param1].bufferSize = template->bufferSize;
param0->bgs[param1].unk10 = template->unk0c;
}
else
{
param0->bgs[param1].tilemapBuffer = NULL;
- param0->bgs[param1].unk0c = 0;
+ param0->bgs[param1].bufferSize = 0;
param0->bgs[param1].unk10 = 0;
}
@@ -597,49 +595,49 @@ THUMB_FUNC void FUN_02017850(u32 param0, u8 *param1, u8 *param2)
}
}
-THUMB_FUNC void FUN_020178A0(struct BgConfig *param0, u32 param1)
+THUMB_FUNC void FUN_020178A0(struct BgConfig *bgConfig, u32 bgId)
{
- if (param0->bgs[param1].tilemapBuffer != NULL)
+ if (bgConfig->bgs[bgId].tilemapBuffer != NULL)
{
- FreeToHeap(param0->bgs[param1].tilemapBuffer);
- param0->bgs[param1].tilemapBuffer = NULL;
+ FreeToHeap(bgConfig->bgs[bgId].tilemapBuffer);
+ bgConfig->bgs[bgId].tilemapBuffer = NULL;
}
}
-THUMB_FUNC void FUN_020178BC(u32 param0, u16 param1)
+THUMB_FUNC void FUN_020178BC(u32 bgId, u16 priority)
{
- switch (param0)
+ switch (bgId)
{
case 0:
- reg_G2_BG0CNT = (u16)(reg_G2_BG0CNT & ~3 | param1);
+ G2_SetBG0Priority(priority);
break;
case 1:
- reg_G2_BG1CNT = (u16)(reg_G2_BG1CNT & ~3 | param1);
+ G2_SetBG1Priority(priority);
break;
case 2:
- reg_G2_BG2CNT = (u16)(reg_G2_BG2CNT & ~3 | param1);
+ G2_SetBG2Priority(priority);
break;
case 3:
- reg_G2_BG3CNT = (u16)(reg_G2_BG3CNT & ~3 | param1);
+ G2_SetBG3Priority(priority);
break;
case 4:
- reg_G2S_DB_BG0CNT = (u16)(reg_G2S_DB_BG0CNT & ~3 | param1);
+ G2S_SetBG0Priority(priority);
break;
case 5:
- reg_G2S_DB_BG1CNT = (u16)(reg_G2S_DB_BG1CNT & ~3 | param1);
+ G2S_SetBG1Priority(priority);
break;
case 6:
- reg_G2S_DB_BG2CNT = (u16)(reg_G2S_DB_BG2CNT & ~3 | param1);
+ G2S_SetBG2Priority(priority);
break;
case 7:
- reg_G2S_DB_BG3CNT = (u16)(reg_G2S_DB_BG3CNT & ~3 | param1);
+ G2S_SetBG3Priority(priority);
break;
}
}
-THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle)
+THUMB_FUNC void ToggleBgLayer(u32 bgId, GX_LayerToggle toggle)
{
- switch (param0)
+ switch (bgId)
{
case 0:
GX_EngineAToggleLayers(1, toggle);
@@ -668,90 +666,78 @@ THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle)
}
}
-THUMB_FUNC void FUN_020179E0(struct BgConfig *param0, u32 param1, u32 param2, fx32 val)
+THUMB_FUNC void FUN_020179E0(struct BgConfig *bgConfig, u32 bgId, u32 param2, fx32 val)
{
- FUN_02017B8C(&param0->bgs[param1], param2, val);
+ FUN_02017B8C(&bgConfig->bgs[bgId], param2, val);
- u32 r1 = (u32)param0->bgs[param1].unk14;
- u32 r0 = (u32)param0->bgs[param1].unk18;
- switch (param1)
+ u32 x = (u32)bgConfig->bgs[bgId].hOffset;
+ u32 y = (u32)bgConfig->bgs[bgId].vOffset;
+ switch (bgId)
{
case 0:
-
- reg_G2_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2_SetBG0Offset(x, y);
break;
case 1:
-
- reg_G2_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2_SetBG1Offset(x, y);
break;
-
case 2:
- if (param0->bgs[2].mode == 0)
+ if (bgConfig->bgs[2].mode == 0)
{
- reg_G2_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2_SetBG2Offset(x, y);
}
else
{
- FUN_02017C6C(param0, 2);
+ FUN_02017C6C(bgConfig, 2);
}
break;
-
case 3:
- if (param0->bgs[3].mode == 0)
+ if (bgConfig->bgs[3].mode == 0)
{
- reg_G2_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2_SetBG3Offset(x, y);
}
else
{
- FUN_02017C6C(param0, 3);
+ FUN_02017C6C(bgConfig, 3);
}
-
break;
-
case 4:
-
- reg_G2S_DB_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2S_SetBG0Offset(x, y);
break;
case 5:
-
- reg_G2S_DB_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2S_SetBG1Offset(x, y);
break;
-
case 6:
- if (param0->bgs[6].mode == 0)
+ if (bgConfig->bgs[6].mode == 0)
{
- reg_G2S_DB_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2S_SetBG2Offset(x, y);
}
else
{
- FUN_02017C6C(param0, 6);
+ FUN_02017C6C(bgConfig, 6);
}
-
break;
-
case 7:
- if (param0->bgs[7].mode == 0)
+ if (bgConfig->bgs[7].mode == 0)
{
- reg_G2S_DB_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000);
+ G2S_SetBG3Offset(x, y);
}
else
{
- FUN_02017C6C(param0, 7);
+ FUN_02017C6C(bgConfig, 7);
}
-
break;
}
}
THUMB_FUNC fx32 FUN_02017B48(struct BgConfig *param0, u32 param1)
{
- return param0->bgs[param1].unk14;
+ return param0->bgs[param1].hOffset;
}
THUMB_FUNC fx32 FUN_02017B54(struct BgConfig *param0, u32 param1)
{
- return param0->bgs[param1].unk18;
+ return param0->bgs[param1].vOffset;
}
THUMB_FUNC void FUN_02017B60(struct BgConfig *param0,
@@ -771,22 +757,22 @@ THUMB_FUNC void FUN_02017B8C(struct Bg *param0, u32 param1, fx32 val)
switch (param1)
{
case 0:
- param0->unk14 = val;
+ param0->hOffset = val;
break;
case 1:
- param0->unk14 += val;
+ param0->hOffset += val;
break;
case 2:
- param0->unk14 -= val;
+ param0->hOffset -= val;
break;
case 3:
- param0->unk18 = val;
+ param0->vOffset = val;
break;
case 4:
- param0->unk18 += val;
+ param0->vOffset += val;
break;
case 5:
- param0->unk18 -= val;
+ param0->vOffset -= val;
break;
}
}
@@ -797,36 +783,16 @@ THUMB_FUNC void FUN_02017BD0(
switch (param1)
{
case 2:
- G2x_SetBGyAffine_(reg_G2_BG2P,
- param2,
- param3,
- param4,
- param0->bgs[param1].unk14,
- param0->bgs[param1].unk18);
+ G2_SetBG2Affine(param2, param3, param4, param0->bgs[param1].hOffset, param0->bgs[param1].vOffset);
break;
case 3:
- G2x_SetBGyAffine_(reg_G2_BG3P,
- param2,
- param3,
- param4,
- param0->bgs[param1].unk14,
- param0->bgs[param1].unk18);
+ G2_SetBG3Affine(param2, param3, param4, param0->bgs[param1].hOffset, param0->bgs[param1].vOffset);
break;
case 6:
- G2x_SetBGyAffine_(reg_G2S_DB_BG2P,
- param2,
- param3,
- param4,
- param0->bgs[param1].unk14,
- param0->bgs[param1].unk18);
+ G2S_SetBG2Affine(param2, param3, param4, param0->bgs[param1].hOffset, param0->bgs[param1].vOffset);
break;
case 7:
- G2x_SetBGyAffine_(reg_G2S_DB_BG3P,
- param2,
- param3,
- param4,
- param0->bgs[param1].unk14,
- param0->bgs[param1].unk18);
+ G2S_SetBG3Affine(param2, param3, param4, param0->bgs[param1].hOffset, param0->bgs[param1].vOffset);
break;
}
}
@@ -860,7 +826,7 @@ THUMB_FUNC void FUN_02017CD0(struct BgConfig *param0, u32 param1)
FUN_02017CE8(param0,
param1,
param0->bgs[param1].tilemapBuffer,
- param0->bgs[param1].unk0c,
+ param0->bgs[param1].bufferSize,
param0->bgs[param1].unk10);
}
@@ -874,7 +840,7 @@ THUMB_FUNC void FUN_02017CE8(
if (st4 != 0)
{
FUN_02017C98(param2, st4, param3);
- FUN_02017D68(param1, st4, param0->bgs[param1].unk10 * 2, param0->bgs[param1].unk0c);
+ FUN_02017D68(param1, st4, param0->bgs[param1].unk10 * 2, param0->bgs[param1].bufferSize);
return;
}
@@ -1553,7 +1519,7 @@ THUMB_FUNC void FUN_02018744(struct BgConfig *param0, u32 param1)
{
if (param0->bgs[param1].tilemapBuffer != NULL)
{
- MI_CpuClear16(param0->bgs[param1].tilemapBuffer, param0->bgs[param1].unk0c);
+ MI_CpuClear16(param0->bgs[param1].tilemapBuffer, param0->bgs[param1].bufferSize);
FUN_02017CD0(param0, param1);
}
}
@@ -1562,7 +1528,7 @@ THUMB_FUNC void FUN_02018768(struct BgConfig *param0, u32 param1, u16 param2)
{
if (param0->bgs[param1].tilemapBuffer != NULL)
{
- MI_CpuFill16(param0->bgs[param1].tilemapBuffer, param2, param0->bgs[param1].unk0c);
+ MI_CpuFill16(param0->bgs[param1].tilemapBuffer, param2, param0->bgs[param1].bufferSize);
FUN_02017CD0(param0, param1);
}
}
@@ -1571,7 +1537,7 @@ THUMB_FUNC void FUN_0201878C(struct BgConfig *param0, u32 param1, u16 param2)
{
if (param0->bgs[param1].tilemapBuffer != NULL)
{
- MI_CpuFill16(param0->bgs[param1].tilemapBuffer, param2, param0->bgs[param1].unk0c);
+ MI_CpuFill16(param0->bgs[param1].tilemapBuffer, param2, param0->bgs[param1].bufferSize);
FUN_0201AC68(param0, param1);
}
}
@@ -1629,26 +1595,26 @@ THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]
return ptr;
}
-THUMB_FUNC void *FUN_0201886C(struct BgConfig *param0, u8 param1)
+THUMB_FUNC void *GetBgTilemapBuffer(struct BgConfig *bgConfig, u8 bgId)
{
- return param0->bgs[param1].tilemapBuffer;
+ return bgConfig->bgs[bgId].tilemapBuffer;
}
THUMB_FUNC u16 FUN_02018878(struct BgConfig *param0, u32 param1)
{
- return param0->bgs[param1].unk20;
+ return param0->bgs[param1].rotation;
}
-THUMB_FUNC u8 FUN_02018884(struct BgConfig *param0, u32 param1)
+THUMB_FUNC u8 GetBgPriority(struct BgConfig *bgConfig, u32 bgId)
{
- switch (param1)
+ switch (bgId)
{
case 0:
return G2_GetBG0Control().priority;
case 1:
return G2_GetBG1Control().priority;
case 2:
- switch (param0->bgs[param1].mode)
+ switch (bgConfig->bgs[bgId].mode)
{
default:
case 0:
@@ -1660,7 +1626,7 @@ THUMB_FUNC u8 FUN_02018884(struct BgConfig *param0, u32 param1)
}
break;
case 3:
- switch (param0->bgs[param1].mode)
+ switch (bgConfig->bgs[bgId].mode)
{
default:
case 0:
@@ -1678,7 +1644,7 @@ THUMB_FUNC u8 FUN_02018884(struct BgConfig *param0, u32 param1)
return G2S_GetBG1Control().priority;
case 6:
- switch (param0->bgs[param1].mode)
+ switch (bgConfig->bgs[bgId].mode)
{
default:
case 0:
@@ -1690,7 +1656,7 @@ THUMB_FUNC u8 FUN_02018884(struct BgConfig *param0, u32 param1)
}
break;
case 7:
- switch (param0->bgs[param1].mode)
+ switch (bgConfig->bgs[bgId].mode)
{
default:
case 0:
@@ -1825,75 +1791,75 @@ THUMB_FUNC void BlitBitmapRect8Bit(const struct Bitmap *src,
}
}
-THUMB_FUNC void FUN_02018E88(
- struct Bitmap *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5)
+THUMB_FUNC void FillBitmapRect4Bit(
+ struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue)
{
- int r6 = param1 + param3;
- if (r6 > param0->width)
+ int r6 = x + width;
+ if (r6 > surface->width)
{
- r6 = param0->width;
+ r6 = surface->width;
}
- int r12 = param2 + param4;
- if (r12 > param0->height)
+ int r12 = y + height;
+ if (r12 > surface->height)
{
- r12 = param0->height;
+ r12 = surface->height;
}
- int lr = (((param0->width) + (param0->width & 7)) >> 3);
+ int lr = (((surface->width) + (surface->width & 7)) >> 3);
- for (int i = param2; i < r12; i++)
+ for (int i = y; i < r12; i++)
{
- for (int j = param1; j < r6; j++)
+ for (int j = x; j < r6; j++)
{
- u8 *unk = (u8 *)((u8 *)param0->pixels + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) +
+ u8 *unk = (u8 *)((u8 *)surface->pixels + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) +
(((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c));
if ((j & 1) != 0)
{
*unk &= 0xf;
- *unk |= (param5 << 4);
+ *unk |= (fillValue << 4);
}
else
{
*unk &= 0xf0;
- *unk |= param5;
+ *unk |= fillValue;
}
}
}
}
-THUMB_FUNC void FUN_02018F4C(
- struct Bitmap *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5)
+THUMB_FUNC void FillBitmapRect8Bit(
+ struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue)
{
- int r6 = param1 + param3;
- if (r6 > param0->width)
+ int r6 = x + width;
+ if (r6 > surface->width)
{
- r6 = param0->width;
+ r6 = surface->width;
}
- int r12 = param2 + param4;
- if (r12 > param0->height)
+ int r12 = y + height;
+ if (r12 > surface->height)
{
- r12 = param0->height;
+ r12 = surface->height;
}
- int lr = (((param0->width) + (param0->width & 7)) >> 3);
+ int lr = (((surface->width) + (surface->width & 7)) >> 3);
- for (int i = param2; i < r12; i++)
+ for (int i = y; i < r12; i++)
{
- for (int j = param1; j < r6; j++)
+ for (int j = x; j < r6; j++)
{
- u8 *unk = (u8 *)((u8 *)param0->pixels + (j & 7) + ((j << 3) & 0x7fc0) +
+ u8 *unk = (u8 *)((u8 *)surface->pixels + (j & 7) + ((j << 3) & 0x7fc0) +
(((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38));
- *unk = param5;
+ *unk = fillValue;
}
}
}
@@ -2219,7 +2185,7 @@ THUMB_FUNC void CopyWindowToVram_TextMode(struct Window *window)
FUN_02017CE8(window->bgConfig,
window->bgId,
window->bgConfig->bgs[window->bgId].tilemapBuffer,
- window->bgConfig->bgs[window->bgId].unk0c,
+ window->bgConfig->bgs[window->bgId].bufferSize,
window->bgConfig->bgs[window->bgId].unk10);
}
@@ -2236,7 +2202,7 @@ THUMB_FUNC void CopyWindowToVram_AffineMode(struct Window *window)
FUN_02017CE8(window->bgConfig,
window->bgId,
window->bgConfig->bgs[window->bgId].tilemapBuffer,
- window->bgConfig->bgs[window->bgId].unk0c,
+ window->bgConfig->bgs[window->bgId].bufferSize,
window->bgConfig->bgs[window->bgId].unk10);
FUN_02017E14(window->bgConfig,
@@ -2282,7 +2248,7 @@ THUMB_FUNC void FUN_020195A8(struct Window *window)
FUN_02017CE8(window->bgConfig,
window->bgId,
window->bgConfig->bgs[window->bgId].tilemapBuffer,
- window->bgConfig->bgs[window->bgId].unk0c,
+ window->bgConfig->bgs[window->bgId].bufferSize,
window->bgConfig->bgs[window->bgId].unk10);
}
@@ -2298,7 +2264,7 @@ THUMB_FUNC void FUN_020195E4(struct Window *window)
FUN_02017CE8(window->bgConfig,
window->bgId,
window->bgConfig->bgs[window->bgId].tilemapBuffer,
- window->bgConfig->bgs[window->bgId].unk0c,
+ window->bgConfig->bgs[window->bgId].bufferSize,
window->bgConfig->bgs[window->bgId].unk10);
}
@@ -2372,11 +2338,11 @@ THUMB_FUNC void FillWindowPixelRect(
if (window->bgConfig->bgs[window->bgId].colorMode == 0)
{
- FUN_02018E88(&st8, x, y, width, height, fillValue);
+ FillBitmapRect4Bit(&st8, x, y, width, height, fillValue);
}
else
{
- FUN_02018F4C(&st8, x, y, width, height, fillValue);
+ FillBitmapRect8Bit(&st8, x, y, width, height, fillValue);
}
}
@@ -5178,7 +5144,7 @@ THUMB_FUNC void FUN_0201AB60(struct BgConfig *param0)
FUN_0201AC78(param0);
FUN_0201AB78(param0);
- param0->unk04 = 0;
+ param0->scrollScheduled = 0;
param0->unk06 = 0;
}
@@ -5186,42 +5152,42 @@ THUMB_FUNC void FUN_0201AB78(struct BgConfig *param0)
{
if ((param0->unk06 & 1) != 0)
{
- FUN_02017D68(0, param0->bgs[0].tilemapBuffer, param0->bgs[0].unk10 * 2, param0->bgs[0].unk0c);
+ FUN_02017D68(0, param0->bgs[0].tilemapBuffer, param0->bgs[0].unk10 * 2, param0->bgs[0].bufferSize);
}
if ((param0->unk06 & 2) != 0)
{
- FUN_02017D68(1, param0->bgs[1].tilemapBuffer, param0->bgs[1].unk10 * 2, param0->bgs[1].unk0c);
+ FUN_02017D68(1, param0->bgs[1].tilemapBuffer, param0->bgs[1].unk10 * 2, param0->bgs[1].bufferSize);
}
if ((param0->unk06 & 4) != 0)
{
- FUN_02017D68(2, param0->bgs[2].tilemapBuffer, param0->bgs[2].unk10 * 2, param0->bgs[2].unk0c);
+ FUN_02017D68(2, param0->bgs[2].tilemapBuffer, param0->bgs[2].unk10 * 2, param0->bgs[2].bufferSize);
}
if ((param0->unk06 & 8) != 0)
{
- FUN_02017D68(3, param0->bgs[3].tilemapBuffer, param0->bgs[3].unk10 * 2, param0->bgs[3].unk0c);
+ FUN_02017D68(3, param0->bgs[3].tilemapBuffer, param0->bgs[3].unk10 * 2, param0->bgs[3].bufferSize);
}
if ((param0->unk06 & 0x10) != 0)
{
- FUN_02017D68(4, param0->bgs[4].tilemapBuffer, param0->bgs[4].unk10 * 2, param0->bgs[4].unk0c);
+ FUN_02017D68(4, param0->bgs[4].tilemapBuffer, param0->bgs[4].unk10 * 2, param0->bgs[4].bufferSize);
}
if ((param0->unk06 & 0x20) != 0)
{
- FUN_02017D68(5, param0->bgs[5].tilemapBuffer, param0->bgs[5].unk10 * 2, param0->bgs[5].unk0c);
+ FUN_02017D68(5, param0->bgs[5].tilemapBuffer, param0->bgs[5].unk10 * 2, param0->bgs[5].bufferSize);
}
if ((param0->unk06 & 0x40) != 0)
{
- FUN_02017D68(6, param0->bgs[6].tilemapBuffer, param0->bgs[6].unk10 * 2, param0->bgs[6].unk0c);
+ FUN_02017D68(6, param0->bgs[6].tilemapBuffer, param0->bgs[6].unk10 * 2, param0->bgs[6].bufferSize);
}
if ((param0->unk06 & 0x80) != 0)
{
- FUN_02017D68(7, param0->bgs[7].tilemapBuffer, param0->bgs[7].unk10 * 2, param0->bgs[7].unk0c);
+ FUN_02017D68(7, param0->bgs[7].tilemapBuffer, param0->bgs[7].unk10 * 2, param0->bgs[7].bufferSize);
}
}
@@ -5232,111 +5198,103 @@ THUMB_FUNC void FUN_0201AC68(struct BgConfig *param0, u32 param1)
THUMB_FUNC void FUN_0201AC78(struct BgConfig *param0)
{
- if ((param0->unk04 & 1) != 0)
+ if ((param0->scrollScheduled & 1) != 0)
{
- reg_G2_BG0OFS = (u32)(
- (param0->bgs[0].unk14 & 0x1ff) | ((param0->bgs[0].unk18 << 0x10) & 0x1ff0000));
+ G2_SetBG0Offset(param0->bgs[0].hOffset, param0->bgs[0].vOffset);
}
- if ((param0->unk04 & 2) != 0)
+ if ((param0->scrollScheduled & 2) != 0)
{
- reg_G2_BG1OFS = (u32)(
- (param0->bgs[1].unk14 & 0x1ff) | ((param0->bgs[1].unk18 << 0x10) & 0x1ff0000));
+ G2_SetBG1Offset(param0->bgs[1].hOffset, param0->bgs[1].vOffset);
}
- if ((param0->unk04 & 4) != 0)
+ if ((param0->scrollScheduled & 4) != 0)
{
if (param0->bgs[2].mode == 0)
{
- reg_G2_BG2OFS = (u32)(
- (param0->bgs[2].unk14 & 0x1ff) | ((param0->bgs[2].unk18 << 0x10) & 0x1ff0000));
+ G2_SetBG2Offset(param0->bgs[2].hOffset, param0->bgs[2].vOffset);
}
else
{
struct Mtx22 st38;
MTX22_2DAffine(
- &st38, param0->bgs[2].unk20, param0->bgs[2].unk24, param0->bgs[2].unk28, 2);
- G2x_SetBGyAffine_(reg_G2_BG2P,
+ &st38, param0->bgs[2].rotation, param0->bgs[2].xScale, param0->bgs[2].yScale, 2);
+ G2_SetBG2Affine(
&st38,
- param0->bgs[2].unk2c,
- param0->bgs[2].unk30,
- param0->bgs[2].unk14,
- param0->bgs[2].unk18);
+ param0->bgs[2].centerX,
+ param0->bgs[2].centerY,
+ param0->bgs[2].hOffset,
+ param0->bgs[2].vOffset);
}
}
- if ((param0->unk04 & 8) != 0)
+ if ((param0->scrollScheduled & 8) != 0)
{
if (param0->bgs[3].mode == 0)
{
- reg_G2_BG3OFS = (u32)(
- (param0->bgs[3].unk14 & 0x1ff) | ((param0->bgs[3].unk18 << 0x10) & 0x1ff0000));
+ G2_SetBG3Offset(param0->bgs[3].hOffset, param0->bgs[3].vOffset);
}
else
{
struct Mtx22 st28;
MTX22_2DAffine(
- &st28, param0->bgs[3].unk20, param0->bgs[3].unk24, param0->bgs[3].unk28, 2);
- G2x_SetBGyAffine_(reg_G2_BG3P,
+ &st28, param0->bgs[3].rotation, param0->bgs[3].xScale, param0->bgs[3].yScale, 2);
+ G2_SetBG3Affine(
&st28,
- param0->bgs[3].unk2c,
- param0->bgs[3].unk30,
- param0->bgs[3].unk14,
- param0->bgs[3].unk18);
+ param0->bgs[3].centerX,
+ param0->bgs[3].centerY,
+ param0->bgs[3].hOffset,
+ param0->bgs[3].vOffset);
}
}
- if ((param0->unk04 & 0x10) != 0)
+ if ((param0->scrollScheduled & 0x10) != 0)
{
- reg_G2S_DB_BG0OFS = (u32)(
- (param0->bgs[4].unk14 & 0x1ff) | ((param0->bgs[4].unk18 << 0x10) & 0x1ff0000));
+ G2S_SetBG0Offset(param0->bgs[4].hOffset, param0->bgs[4].vOffset);
}
- if ((param0->unk04 & 0x20) != 0)
+ if ((param0->scrollScheduled & 0x20) != 0)
{
- reg_G2S_DB_BG1OFS = (u32)(
- (param0->bgs[5].unk14 & 0x1ff) | ((param0->bgs[5].unk18 << 0x10) & 0x1ff0000));
+ G2S_SetBG1Offset(param0->bgs[5].hOffset, param0->bgs[5].vOffset);
}
- if ((param0->unk04 & 0x40) != 0)
+ if ((param0->scrollScheduled & 0x40) != 0)
{
if (param0->bgs[6].mode == 0)
{
- reg_G2S_DB_BG2OFS = (u32)(
- (param0->bgs[6].unk14 & 0x1ff) | ((param0->bgs[6].unk18 << 0x10) & 0x1ff0000));
+ G2S_SetBG2Offset(param0->bgs[6].hOffset, param0->bgs[6].vOffset);
}
else
{
struct Mtx22 st18;
MTX22_2DAffine(
- &st18, param0->bgs[6].unk20, param0->bgs[6].unk24, param0->bgs[6].unk28, 2);
- G2x_SetBGyAffine_(reg_G2S_DB_BG2P,
+ &st18, param0->bgs[6].rotation, param0->bgs[6].xScale, param0->bgs[6].yScale, 2);
+ G2S_SetBG2Affine(
&st18,
- param0->bgs[6].unk2c,
- param0->bgs[6].unk30,
- param0->bgs[6].unk14,
- param0->bgs[6].unk18);
+ param0->bgs[6].centerX,
+ param0->bgs[6].centerY,
+ param0->bgs[6].hOffset,
+ param0->bgs[6].vOffset);
}
}
- if ((param0->unk04 & 0x80) != 0)
+ if ((param0->scrollScheduled & 0x80) != 0)
{
if (param0->bgs[7].mode == 0)
{
- reg_G2S_DB_BG3OFS = (u32)(
- (param0->bgs[7].unk14 & 0x1ff) | ((param0->bgs[7].unk18 << 0x10) & 0x1ff0000));
+ G2S_SetBG3Offset(param0->bgs[7].hOffset, param0->bgs[7].vOffset);
}
else
{
struct Mtx22 st08;
MTX22_2DAffine(
- &st08, param0->bgs[7].unk20, param0->bgs[7].unk24, param0->bgs[7].unk28, 2);
- G2x_SetBGyAffine_(reg_G2S_DB_BG3P,
+ &st08, param0->bgs[7].rotation, param0->bgs[7].xScale, param0->bgs[7].yScale, 2);
+ G2S_SetBG3Affine(
&st08,
- param0->bgs[7].unk2c,
- param0->bgs[7].unk30,
- param0->bgs[7].unk14,
- param0->bgs[7].unk18);
+ param0->bgs[7].centerX,
+ param0->bgs[7].centerY,
+ param0->bgs[7].hOffset,
+ param0->bgs[7].vOffset);
}
}
}
@@ -5345,14 +5303,14 @@ THUMB_FUNC void FUN_0201AEE4(
struct BgConfig *param0, u32 param1, u32 param2, fx32 param3)
{
FUN_02017B8C(&param0->bgs[param1], param2, param3);
- param0->unk04 |= 1 << param1;
+ param0->scrollScheduled |= 1 << param1;
}
THUMB_FUNC void FUN_0201AF08(
struct BgConfig *param0, u32 param1, u32 param2, u16 param3)
{
FUN_0201AF2C(&param0->bgs[param1], param2, param3);
- param0->unk04 |= 1 << param1;
+ param0->scrollScheduled |= 1 << param1;
}
THUMB_FUNC void FUN_0201AF2C(struct Bg *param0, u32 param1, u16 val)
@@ -5360,13 +5318,13 @@ THUMB_FUNC void FUN_0201AF2C(struct Bg *param0, u32 param1, u16 val)
switch (param1)
{
case 0:
- param0->unk20 = val;
+ param0->rotation = val;
break;
case 1:
- param0->unk20 += val;
+ param0->rotation += val;
break;
case 2:
- param0->unk20 -= val;
+ param0->rotation -= val;
break;
}
}
@@ -5375,7 +5333,7 @@ THUMB_FUNC void FUN_0201AF50(
struct BgConfig *param0, u32 param1, u32 param2, fx32 param3)
{
FUN_0201AF74(&param0->bgs[param1], param2, param3);
- param0->unk04 |= 1 << param1;
+ param0->scrollScheduled |= 1 << param1;
}
THUMB_FUNC void FUN_0201AF74(struct Bg *param0, u32 param1, fx32 val)
@@ -5383,22 +5341,22 @@ THUMB_FUNC void FUN_0201AF74(struct Bg *param0, u32 param1, fx32 val)
switch (param1 - 9)
{
case 0:
- param0->unk2c = val;
+ param0->centerX = val;
break;
case 1:
- param0->unk2c += val;
+ param0->centerX += val;
break;
case 2:
- param0->unk2c -= val;
+ param0->centerX -= val;
break;
case 3:
- param0->unk30 = val;
+ param0->centerY = val;
break;
case 4:
- param0->unk30 += val;
+ param0->centerY += val;
break;
case 5:
- param0->unk30 -= val;
+ param0->centerY -= val;
break;
}
}