diff options
Diffstat (limited to 'arm9/lib/src/GX_load3d.c')
-rw-r--r-- | arm9/lib/src/GX_load3d.c | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/arm9/lib/src/GX_load3d.c b/arm9/lib/src/GX_load3d.c deleted file mode 100644 index ae15f32e..00000000 --- a/arm9/lib/src/GX_load3d.c +++ /dev/null @@ -1,150 +0,0 @@ -#include "global.h" -#include "main.h" -#include "gx.h" - -extern u32 GXi_DmaId; - -static u32 sTexLCDCBlk1 = 0; -static u32 sSzTexBlk1 = 0; -static u32 sTexLCDCBlk2 = 0; -static s32 sTex = 0; - -static const struct -{ - u16 blk1; // 12 bit shift - u16 blk2; // 12 bit shift - u16 szBlk1; // 12 bit shift -} sTexStartAddrTable[16] = { - {0, 0, 0}, - {0x06800000 >> 12, 0, 0}, - {0x06820000 >> 12, 0, 0}, - {0x06800000 >> 12, 0, 0}, - {0x06840000 >> 12, 0, 0}, - {0x06800000 >> 12, 0x06840000 >> 12, 0x00020000 >> 12}, - {0x06820000 >> 12, 0, 0}, - {0x06800000 >> 12, 0, 0}, - {0x06860000 >> 12, 0, 0}, - {0x06800000 >> 12, 0x06860000 >> 12, 0x00020000 >> 12}, - {0x06820000 >> 12, 0x06860000 >> 12, 0x00020000 >> 12}, - {0x06800000 >> 12, 0x06860000 >> 12, 0x00040000 >> 12}, - {0x06840000 >> 12, 0, 0}, - {0x06800000 >> 12, 0x06840000 >> 12, 0x00020000 >> 12}, - {0x06820000 >> 12, 0, 0}, - {0x06800000 >> 12, 0, 0}, -}; - -static s32 sTexPltt = 0; -static u32 sTexPlttLCDCBlk = 0; - -static const u16 sTexPlttStartAddrTable[8] = { - 0, - 0x06880000 >> 12, - 0x06890000 >> 12, - 0x06880000 >> 12, - 0x06894000 >> 12, - 0, - 0x06890000 >> 12, - 0x06880000 >> 12 -}; - -static s32 sClrImg = 0; -static u32 sClrImgLCDCBlk = 0; - -ARM_FUNC void GX_BeginLoadTex(){ - u32 temp = GX_ResetBankForTex(); - sTex = (s32)temp; - sTexLCDCBlk1 = (u32)(sTexStartAddrTable[temp].blk1 << 0xC); - sTexLCDCBlk2 = (u32)(sTexStartAddrTable[temp].blk2 << 0xC); - sSzTexBlk1 = (u32)(sTexStartAddrTable[temp].szBlk1 << 0xC); -} - -ARM_FUNC void GX_LoadTex(void *src, u32 offset, u32 size){ - void *temp; - if (!sTexLCDCBlk2) - { - temp = (void *)(sTexLCDCBlk1 + offset); - } - else - { - if ((offset + size) < sSzTexBlk1) - { - temp = (void *)(sTexLCDCBlk1 + offset); - } - else if (offset >= sSzTexBlk1) - { - temp = (void *)(sTexLCDCBlk2 + offset - sSzTexBlk1); - } - else - { - void *temp2 = (void *)sTexLCDCBlk2; - u32 temp1 = sSzTexBlk1 - offset; - temp = (void *)(sTexLCDCBlk1 + offset); - GXi_DmaCopy32(GXi_DmaId, src, temp, temp1); - GXi_DmaCopy32Async(GXi_DmaId, (void *)((u8 *)src + temp1), temp2, (size - temp1), NULL, NULL); - return; - } - } - GXi_DmaCopy32Async(GXi_DmaId, src, temp, size, NULL, NULL); -} - -ARM_FUNC void GX_EndLoadTex(){ - GXi_WaitDma(GXi_DmaId); - GX_SetBankForTex(sTex); - sSzTexBlk1 = 0x0; - sTexLCDCBlk2 = 0x0; - sTexLCDCBlk1 = 0x0; - sTex = 0x0; -} - -ARM_FUNC void GX_BeginLoadTexPltt(){ - s32 temp = (s32)GX_ResetBankForTexPltt(); - sTexPltt = temp; - sTexPlttLCDCBlk = (u32)(sTexPlttStartAddrTable[temp >> 4] << 0xC); -} - -ARM_FUNC void GX_LoadTexPltt(void *src, u32 offset, u32 size){ - GXi_DmaCopy32Async(GXi_DmaId, src, (void *)(sTexPlttLCDCBlk + offset), size, NULL, NULL); -} - -ARM_FUNC void GX_EndLoadTexPltt(){ - GXi_WaitDma(GXi_DmaId); - GX_SetBankForTexPltt(sTexPltt); - sTexPltt = 0x0; - sTexPlttLCDCBlk = 0x0; -} - -ARM_FUNC void GX_BeginLoadClearImage(){ - u32 temp = GX_ResetBankForClearImage(); - sClrImg = (s32)temp; - switch (temp) - { - case 2: - case 3: - sClrImgLCDCBlk = 0x6800000; - return; - case 8: - case 12: - sClrImgLCDCBlk = 0x6840000; - return; - case 1: - sClrImgLCDCBlk = 0x67E0000; - return; - case 4: - sClrImgLCDCBlk = 0x6820000; - } -} - -ARM_FUNC void GX_LoadClearImageColor(void *src, u32 size){ - GXi_DmaCopy32Async(GXi_DmaId, src, (void *)(sClrImgLCDCBlk), size, NULL, NULL); -} - -ARM_FUNC void GX_LoadClearImageDepth(void *src, u32 size){ - GXi_DmaCopy32Async(GXi_DmaId, src, (void *)(sClrImgLCDCBlk + 0x20000), size, NULL, NULL); -} - -ARM_FUNC void GX_EndLoadClearImage(){ - GXi_WaitDma(GXi_DmaId); - GX_SetBankForClearImage(sClrImg); - sClrImg = 0x0; - sClrImgLCDCBlk = 0x0; -} |