summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMade <made111@gmx.de>2020-05-18 02:58:04 +0200
committerMade <made111@gmx.de>2020-05-18 02:58:04 +0200
commit02abe0000a06299e32557591fa9e3396a6135242 (patch)
treede81ffd576aad14256389d24f4456ebb451e2b31
parent88e486100e449d8960894c9e30c4f21489ccbc31 (diff)
Add proper struct for static data
-rw-r--r--arm9/data/rom2_2.s10
-rw-r--r--arm9/lib/src/GX_load3d.c20
2 files changed, 13 insertions, 17 deletions
diff --git a/arm9/data/rom2_2.s b/arm9/data/rom2_2.s
index 67a4d325..cf2f03ea 100644
--- a/arm9/data/rom2_2.s
+++ b/arm9/data/rom2_2.s
@@ -5081,15 +5081,7 @@ sTexPlttStartAddrTable: ; 0x02103B3C
.global sTexStartAddrTable
sTexStartAddrTable: ; 0x02103B4C
- .incbin "baserom.nds", 0x107b4c, 0x2
-
- .global sTexStartAddrTable
-sTexStartAddrTable: ; 0x02103B4E
- .incbin "baserom.nds", 0x107b4e, 0x2
-
- .global sTexStartAddrTable
-sTexStartAddrTable: ; 0x02103B50
- .incbin "baserom.nds", 0x107b50, 0x5c
+ .incbin "baserom.nds", 0x107b4c, 0x60
.global UNK_02103BAC
UNK_02103BAC: ; 0x02103BAC
diff --git a/arm9/lib/src/GX_load3d.c b/arm9/lib/src/GX_load3d.c
index 5f13deda..5aa15581 100644
--- a/arm9/lib/src/GX_load3d.c
+++ b/arm9/lib/src/GX_load3d.c
@@ -9,14 +9,18 @@ extern u32 sTexLCDCBlk1;
extern u32 sTexLCDCBlk2;
extern u32 sSzTexBlk1;
-//probably structs of length 0x6
-extern u16 sTexStartAddrTable[];
-extern u16 sTexStartAddrTable[];
-extern u16 sTexStartAddrTable[];
+static const struct _TexStartAddrTable
+{
+ u16 blk1; // 12 bit shift
+ u16 blk2; // 12 bit shift
+ u16 szBlk1; // 12 bit shift
+};
+extern struct _TexStartAddrTable sTexStartAddrTable[16];
+
extern u32 sTexPltt;
extern u32 sTexPlttLCDCBlk;
-extern u16 sTexPlttStartAddrTable[];
+extern u16 sTexPlttStartAddrTable[8];
extern s32 sClrImg;
extern u32 sClrImgLCDCBlk;
@@ -24,9 +28,9 @@ extern u32 sClrImgLCDCBlk;
ARM_FUNC void GX_BeginLoadTex(){
u32 temp = GX_ResetBankForTex();
sTex = temp;
- sTexLCDCBlk1 = sTexStartAddrTable[temp * 3] << 0xC;
- sTexLCDCBlk2 = sTexStartAddrTable[temp * 3] << 0xC;
- sSzTexBlk1 = sTexStartAddrTable[temp * 3] << 0xC;
+ sTexLCDCBlk1 = sTexStartAddrTable[temp].blk1 << 0xC;
+ sTexLCDCBlk2 = sTexStartAddrTable[temp].blk2 << 0xC;
+ sSzTexBlk1 = sTexStartAddrTable[temp].szBlk1 << 0xC;
}
ARM_FUNC void GX_LoadTex(void *src, u32 offset, u32 size){