mirror of
https://github.com/pret/pokediamond.git
synced 2026-10-02 23:45:22 -04:00
Add ARM_FUNC to GX
This commit is contained in:
+8
-8
@@ -7,7 +7,7 @@ extern u16 gUnk021D33C0;
|
||||
extern u32 gUnk02106814;
|
||||
extern u16 gUnk02106810;
|
||||
|
||||
void GX_Init(){
|
||||
ARM_FUNC void GX_Init(){
|
||||
SETREG16(HW_REG_POWCNT1, READREG16(HW_REG_POWCNT1) | 0x8000);
|
||||
SETREG16(HW_REG_POWCNT1, (READREG16(HW_REG_POWCNT1) & ~0x20E) | 0x20E);
|
||||
SETREG16(HW_REG_POWCNT1, READREG16(HW_REG_POWCNT1) | 0x1);
|
||||
@@ -46,7 +46,7 @@ void GX_Init(){
|
||||
SETREG16(HW_REG_BG3PD_B, 0x100);
|
||||
}
|
||||
|
||||
u32 GX_HBlankIntr(u32 enable){
|
||||
ARM_FUNC u32 GX_HBlankIntr(u32 enable){
|
||||
u32 temp = READREG16(HW_REG_DISPSTAT) & 0x10;
|
||||
if (enable)
|
||||
{
|
||||
@@ -59,7 +59,7 @@ u32 GX_HBlankIntr(u32 enable){
|
||||
return temp;
|
||||
}
|
||||
|
||||
u32 GX_VBlankIntr(u32 enable){
|
||||
ARM_FUNC u32 GX_VBlankIntr(u32 enable){
|
||||
u32 temp = READREG16(HW_REG_DISPSTAT) & 0x8;
|
||||
if (enable)
|
||||
{
|
||||
@@ -72,14 +72,14 @@ u32 GX_VBlankIntr(u32 enable){
|
||||
return temp;
|
||||
}
|
||||
|
||||
void GX_DispOff(){
|
||||
ARM_FUNC void GX_DispOff(){
|
||||
u32 temp = READREG32(HW_REG_DISPCNT);
|
||||
gUnk02106810 = 0x0;
|
||||
gUnk021D33C0 = (temp & 0x30000) >> 0x10;
|
||||
SETREG32(HW_REG_DISPCNT, temp & ~0x30000);
|
||||
}
|
||||
|
||||
void GX_DispOn(){
|
||||
ARM_FUNC void GX_DispOn(){
|
||||
gUnk02106810 = 0x1;
|
||||
if (gUnk021D33C0)
|
||||
{
|
||||
@@ -92,7 +92,7 @@ void GX_DispOn(){
|
||||
}
|
||||
}
|
||||
|
||||
void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){
|
||||
ARM_FUNC void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){
|
||||
u32 temp2 = READREG32(HW_REG_DISPCNT);
|
||||
gUnk021D33C0 = mode1;
|
||||
if (!gUnk02106810)
|
||||
@@ -102,11 +102,11 @@ void GX_SetGraphicsMode(u32 mode1, u32 mode2, u32 mode3){
|
||||
gUnk02106810 = 0x0;
|
||||
}
|
||||
|
||||
void GXS_SetGraphicsMode(u32 mode){
|
||||
ARM_FUNC void GXS_SetGraphicsMode(u32 mode){
|
||||
SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x7 | mode);
|
||||
}
|
||||
|
||||
void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){
|
||||
ARM_FUNC void GXx_SetMasterBrightness_(vu16 *dst, s32 brightness){
|
||||
if (!brightness)
|
||||
{
|
||||
*dst = 0x0;
|
||||
|
||||
+16
-16
@@ -2,25 +2,25 @@
|
||||
#include "main.h"
|
||||
#include "gx.h"
|
||||
|
||||
void *G2_GetBG0ScrPtr(){
|
||||
ARM_FUNC void *G2_GetBG0ScrPtr(){
|
||||
u32 temp = (((READREG16(HW_REG_BG0CNT_A) & 0x1F00) >> 0x8) << 0xB);
|
||||
return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10) + temp);
|
||||
}
|
||||
|
||||
void *G2S_GetBG0ScrPtr(){
|
||||
ARM_FUNC void *G2S_GetBG0ScrPtr(){
|
||||
return (void *)(0x6200000 + (((READREG16(HW_REG_BG0CNT_B) & 0x1F00) >> 0x8) << 0xB));
|
||||
}
|
||||
|
||||
void *G2_GetBG1ScrPtr(){
|
||||
ARM_FUNC void *G2_GetBG1ScrPtr(){
|
||||
u32 temp = (((READREG16(HW_REG_BG1CNT_A) & 0x1F00) >> 0x8) << 0xB);
|
||||
return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10) + temp);
|
||||
}
|
||||
|
||||
void *G2S_GetBG1ScrPtr(){
|
||||
ARM_FUNC void *G2S_GetBG1ScrPtr(){
|
||||
return (void *)(0x6200000 + (((READREG16(HW_REG_BG1CNT_B) & 0x1F00) >> 0x8) << 0xB));
|
||||
}
|
||||
|
||||
void *G2_GetBG2ScrPtr(){
|
||||
ARM_FUNC void *G2_GetBG2ScrPtr(){
|
||||
u32 temp12 = (READREG32(HW_REG_DISPCNT_A) & 0x7);
|
||||
u32 temp3 = READREG16(HW_REG_BG2CNT_A);
|
||||
u32 temp2 = (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10);
|
||||
@@ -45,7 +45,7 @@ void *G2_GetBG2ScrPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2S_GetBG2ScrPtr(){
|
||||
ARM_FUNC void *G2S_GetBG2ScrPtr(){
|
||||
u32 temp12 = (READREG32(HW_REG_DISPCNT_B) & 0x7);
|
||||
u32 temp3 = READREG16(HW_REG_BG2CNT_B);
|
||||
u32 temp1 = ((temp3 & 0x1F00) >> 0x8);
|
||||
@@ -69,7 +69,7 @@ void *G2S_GetBG2ScrPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2_GetBG3ScrPtr(){
|
||||
ARM_FUNC void *G2_GetBG3ScrPtr(){
|
||||
u32 temp12 = (READREG32(HW_REG_DISPCNT_A) & 0x7);
|
||||
u32 temp3 = READREG16(HW_REG_BG3CNT_A);
|
||||
u32 temp2 = (((READREG32(HW_REG_DISPCNT_A) & 0x38000000) >> 0x1B) << 0x10);
|
||||
@@ -94,7 +94,7 @@ void *G2_GetBG3ScrPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2S_GetBG3ScrPtr(){
|
||||
ARM_FUNC void *G2S_GetBG3ScrPtr(){
|
||||
u32 temp12 = (READREG32(HW_REG_DISPCNT_B) & 0x7);
|
||||
u32 temp3 = READREG16(HW_REG_BG3CNT_B);
|
||||
u32 temp1 = ((temp3 & 0x1F00) >> 0x8);
|
||||
@@ -118,25 +118,25 @@ void *G2S_GetBG3ScrPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2_GetBG0CharPtr(){
|
||||
ARM_FUNC void *G2_GetBG0CharPtr(){
|
||||
u32 temp = (((READREG16(HW_REG_BG0CNT_A) & 0x3C) >> 0x2) << 0xE);
|
||||
return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x7000000) >> 0x18) << 0x10) + temp);
|
||||
}
|
||||
|
||||
void *G2S_GetBG0CharPtr(){
|
||||
ARM_FUNC void *G2S_GetBG0CharPtr(){
|
||||
return (void *)(0x6200000 + (((READREG16(HW_REG_BG0CNT_B) & 0x3C) >> 0x2) << 0xE));
|
||||
}
|
||||
|
||||
void *G2_GetBG1CharPtr(){
|
||||
ARM_FUNC void *G2_GetBG1CharPtr(){
|
||||
u32 temp = (((READREG16(HW_REG_BG1CNT_A) & 0x3C) >> 0x2) << 0xE);
|
||||
return (void *)(0x6000000 + (((READREG32(HW_REG_DISPCNT_A) & 0x7000000) >> 0x18) << 0x10) + temp);
|
||||
}
|
||||
|
||||
void *G2S_GetBG1CharPtr(){
|
||||
ARM_FUNC void *G2S_GetBG1CharPtr(){
|
||||
return (void *)(0x6200000 + (((READREG16(HW_REG_BG1CNT_B) & 0x3C) >> 0x2) << 0xE));
|
||||
}
|
||||
|
||||
void *G2_GetBG2CharPtr(){
|
||||
ARM_FUNC void *G2_GetBG2CharPtr(){
|
||||
s32 temp1 = (READREG32(HW_REG_DISPCNT_A) & 0x7);
|
||||
u32 temp = READREG16(HW_REG_BG2CNT_A);
|
||||
if (temp1 < 5 || !(temp & 0x80))
|
||||
@@ -151,7 +151,7 @@ void *G2_GetBG2CharPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2S_GetBG2CharPtr(){
|
||||
ARM_FUNC void *G2S_GetBG2CharPtr(){
|
||||
s32 temp1 = (READREG32(HW_REG_DISPCNT_B) & 0x7);
|
||||
u32 temp = READREG16(HW_REG_BG2CNT_B);
|
||||
if (temp1 < 5 || !(temp & 0x80))
|
||||
@@ -165,7 +165,7 @@ void *G2S_GetBG2CharPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2_GetBG3CharPtr(){
|
||||
ARM_FUNC void *G2_GetBG3CharPtr(){
|
||||
s32 temp1 = (READREG32(HW_REG_DISPCNT_A) & 0x7);
|
||||
u32 temp = READREG16(HW_REG_BG3CNT_A);
|
||||
if (temp1 < 3 || (temp1 < 6 && !(temp & 0x80)))
|
||||
@@ -180,7 +180,7 @@ void *G2_GetBG3CharPtr(){
|
||||
}
|
||||
}
|
||||
|
||||
void *G2S_GetBG3CharPtr(){
|
||||
ARM_FUNC void *G2S_GetBG3CharPtr(){
|
||||
s32 temp1 = (READREG32(HW_REG_DISPCNT_B) & 0x7);
|
||||
u32 temp = READREG16(HW_REG_BG3CNT_B);
|
||||
if (temp1 < 3 || (temp1 < 6 && !(temp & 0x80)))
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "main.h"
|
||||
#include "gx.h"
|
||||
|
||||
void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){
|
||||
ARM_FUNC void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32 d){
|
||||
fx32 temp0, temp1, temp2, temp3;
|
||||
ptr[0] = ((u16)(fx16)(mtx->_[0] >> 4) | (u16)(fx16)(mtx->_[1] >> 4)<< 0x10);
|
||||
ptr[1] = ((u16)(fx16)(mtx->_[2] >> 4) | (u16)(fx16)(mtx->_[3] >> 4)<< 0x10);
|
||||
@@ -14,11 +14,11 @@ void G2x_SetBGyAffine_(u32 *ptr, struct Mtx22 *mtx, fx32 a, fx32 b, fx32 c, fx32
|
||||
ptr[3] = temp3 >> 4;
|
||||
}
|
||||
|
||||
void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d){
|
||||
ARM_FUNC void G2x_SetBlendAlpha_(u32 *ptr, fx32 a, fx32 b, fx32 c, fx32 d){
|
||||
*ptr = ((a | 0x40) | (b << 0x8)) | ((c | (d << 0x8)) << 0x10);
|
||||
}
|
||||
|
||||
void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness){
|
||||
ARM_FUNC void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness){
|
||||
if (brightness < 0)
|
||||
{
|
||||
ptr[0] = a | 0xC0;
|
||||
@@ -31,7 +31,7 @@ void G2x_SetBlendBrightness_(u16 *ptr, fx32 a, fx32 brightness){
|
||||
}
|
||||
}
|
||||
|
||||
void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 brightness){
|
||||
ARM_FUNC void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 brightness){
|
||||
ptr[1] = c | (d << 0x8);
|
||||
if (brightness < 0)
|
||||
{
|
||||
@@ -45,7 +45,7 @@ void G2x_SetBlendBrightnessExt_(u16 *ptr, fx32 a, fx32 b, fx32 c, fx32 d, fx32 b
|
||||
}
|
||||
}
|
||||
|
||||
void *G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){
|
||||
ARM_FUNC void *G2x_ChangeBlendBrightness_(u16 *ptr, fx32 brightness){
|
||||
u32 temp = *ptr;
|
||||
if (brightness < 0)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "gx.h"
|
||||
|
||||
|
||||
void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){
|
||||
ARM_FUNC void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){
|
||||
displaylist->var0C = r2;
|
||||
displaylist->var08 = r1;
|
||||
displaylist->var00 = r1;
|
||||
@@ -11,7 +11,7 @@ void G3_BeginMakeDL(struct DL *displaylist, void *r1, u32 r2){
|
||||
displaylist->var10 = 0x0;
|
||||
}
|
||||
|
||||
s32 G3_EndMakeDL(struct DL *displaylist){
|
||||
ARM_FUNC s32 G3_EndMakeDL(struct DL *displaylist){
|
||||
if (displaylist->var08 == displaylist->var00)
|
||||
return 0;
|
||||
//pads the buffer with 0 to 4byte alignment if needed
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
#include "gx.h"
|
||||
|
||||
|
||||
|
||||
void G3i_PerspectiveW_(fx32 fovsin, fx32 fovcos, fx32 ratio, fx32 near, fx32 far, fx32 scale, u32 load, struct Mtx44 *mtx){
|
||||
ARM_FUNC void G3i_PerspectiveW_(fx32 fovsin, fx32 fovcos, fx32 ratio, fx32 near, fx32 far, fx32 scale, u32 load, struct Mtx44 *mtx){
|
||||
fx32 fovcot, temp1, temp2;
|
||||
fx64c temp0;
|
||||
vu32 *reg_ptr;
|
||||
@@ -76,7 +75,7 @@ void G3i_PerspectiveW_(fx32 fovsin, fx32 fovcos, fx32 ratio, fx32 near, fx32 far
|
||||
}
|
||||
}
|
||||
|
||||
void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, fx32 scale, u32 load, struct Mtx44 *mtx){
|
||||
ARM_FUNC void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, fx32 scale, u32 load, struct Mtx44 *mtx){
|
||||
fx64c temp1, temp2, temp3;
|
||||
fx32 temp0, temp4, temp5;
|
||||
vu32 *reg_ptr;
|
||||
@@ -167,7 +166,7 @@ void G3i_OrthoW_(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 f
|
||||
}
|
||||
}
|
||||
|
||||
void G3i_LookAt_(struct Vecx32 *a, struct Vecx32 *b, struct Vecx32 *c, u32 load, struct Mtx44 *mtx){
|
||||
ARM_FUNC void G3i_LookAt_(struct Vecx32 *a, struct Vecx32 *b, struct Vecx32 *c, u32 load, struct Mtx44 *mtx){
|
||||
struct Vecx32 temp, temp1, temp2;
|
||||
fx32 c1, c2, c3;
|
||||
vu32 *reg_ptr;
|
||||
@@ -218,7 +217,7 @@ void G3i_LookAt_(struct Vecx32 *a, struct Vecx32 *b, struct Vecx32 *c, u32 load,
|
||||
}
|
||||
}
|
||||
|
||||
void G3_RotX(fx32 sinphi, fx32 cosphi){
|
||||
ARM_FUNC void G3_RotX(fx32 sinphi, fx32 cosphi){
|
||||
vu32 *reg_ptr;
|
||||
reg_ptr = (vu32 *)HW_REG_MTX_MULT_3x3;
|
||||
*reg_ptr = 0x1000;
|
||||
@@ -232,7 +231,7 @@ void G3_RotX(fx32 sinphi, fx32 cosphi){
|
||||
*reg_ptr = cosphi;
|
||||
}
|
||||
|
||||
void G3_RotY(fx32 sinphi, fx32 cosphi){
|
||||
ARM_FUNC void G3_RotY(fx32 sinphi, fx32 cosphi){
|
||||
vu32 *reg_ptr;
|
||||
reg_ptr = (vu32 *)HW_REG_MTX_MULT_3x3;
|
||||
*reg_ptr = cosphi;
|
||||
@@ -246,7 +245,7 @@ void G3_RotY(fx32 sinphi, fx32 cosphi){
|
||||
*reg_ptr = cosphi;
|
||||
}
|
||||
|
||||
void G3_RotZ(fx32 sinphi, fx32 cosphi){
|
||||
ARM_FUNC void G3_RotZ(fx32 sinphi, fx32 cosphi){
|
||||
vu32 *reg_ptr;
|
||||
reg_ptr = (vu32 *)HW_REG_MTX_MULT_3x3;
|
||||
*reg_ptr = cosphi;
|
||||
|
||||
+14
-14
@@ -3,32 +3,32 @@
|
||||
#include "gx.h"
|
||||
|
||||
|
||||
void G3BS_LoadMtx44(struct DL *displaylist, struct Mtx44 *mtx){
|
||||
ARM_FUNC void G3BS_LoadMtx44(struct DL *displaylist, struct Mtx44 *mtx){
|
||||
*(u32 *)displaylist->var00 = 0x16;
|
||||
MI_Copy64B(mtx, displaylist->var04);
|
||||
}
|
||||
|
||||
void G3B_PushMtx(struct DL *displaylist){
|
||||
ARM_FUNC void G3B_PushMtx(struct DL *displaylist){
|
||||
*(u32 *)displaylist->var00 = 0x11;
|
||||
displaylist->var00 = (u8 *)displaylist->var04;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_PopMtx(struct DL *displaylist, void *mtx){
|
||||
ARM_FUNC void G3B_PopMtx(struct DL *displaylist, void *mtx){
|
||||
*(u32 *)displaylist->var00 = 0x12;
|
||||
*displaylist->var04 = (u32)mtx;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_LoadMtx44(struct DL *displaylist, struct Mtx44 *mtx){
|
||||
ARM_FUNC void G3B_LoadMtx44(struct DL *displaylist, struct Mtx44 *mtx){
|
||||
G3BS_LoadMtx44(displaylist, mtx);
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + sizeof(struct Mtx44);
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
//color format is RGB555, stored in the lower bits
|
||||
void G3B_Color(struct DL * displaylist, u32 vtx_col){
|
||||
ARM_FUNC void G3B_Color(struct DL * displaylist, u32 vtx_col){
|
||||
*(u32 *)displaylist->var00 = 0x20;
|
||||
*displaylist->var04 = vtx_col;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
@@ -40,14 +40,14 @@ Only feed normalized Vectors
|
||||
only the fractional part and the sign, which is in the first nonfraction bit
|
||||
since the vector is assumed to be normalized, are used
|
||||
*/
|
||||
void G3B_Normal(struct DL * displaylist, fx16 x, fx16 y, fx16 z){
|
||||
ARM_FUNC void G3B_Normal(struct DL * displaylist, fx16 x, fx16 y, fx16 z){
|
||||
*(u32 *)displaylist->var00 = 0x21;
|
||||
*displaylist->var04 = ((x >> 3) & 0x3FF) | (((y >> 3) & 0x3FF) << 0xA) | (((z >> 3) & 0x3FF) << 0x14) ;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_Vtx(struct DL * displaylist, fx32 x, fx32 y, fx32 z){
|
||||
ARM_FUNC void G3B_Vtx(struct DL * displaylist, fx32 x, fx32 y, fx32 z){
|
||||
*(u32 *)displaylist->var00 = 0x23;
|
||||
displaylist->var04[0] = (u32)(u16)x | (u32)(u16)y << 0x10;
|
||||
displaylist->var04[1] = (u32)(u16)z;
|
||||
@@ -56,14 +56,14 @@ void G3B_Vtx(struct DL * displaylist, fx32 x, fx32 y, fx32 z){
|
||||
}
|
||||
|
||||
//TODO: name arguments
|
||||
void G3B_PolygonAttr(struct DL *displaylist, u32 r1, u32 r2, u32 r3, u32 r4, u32 r5, u32 r6){
|
||||
ARM_FUNC void G3B_PolygonAttr(struct DL *displaylist, u32 r1, u32 r2, u32 r3, u32 r4, u32 r5, u32 r6){
|
||||
*(u32 *)displaylist->var00 = 0x29;
|
||||
*displaylist->var04 = r1 | r2 << 0x4 | r3 << 0x6 | r6 | r4 << 0x18 | r5 << 0x10;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_MaterialColorDiffAmb(struct DL *displaylist, u32 diffuse_col, u32 ambient_col, u32 replace){
|
||||
ARM_FUNC void G3B_MaterialColorDiffAmb(struct DL *displaylist, u32 diffuse_col, u32 ambient_col, u32 replace){
|
||||
*(u32 *)displaylist->var00 = 0x30;
|
||||
u32 replace_vtx_color_with_diffuse;
|
||||
if (replace)
|
||||
@@ -75,7 +75,7 @@ void G3B_MaterialColorDiffAmb(struct DL *displaylist, u32 diffuse_col, u32 ambie
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_MaterialColorSpecEmi(struct DL *displaylist, u32 specular_col, u32 emission_col, u32 shiny_table){
|
||||
ARM_FUNC void G3B_MaterialColorSpecEmi(struct DL *displaylist, u32 specular_col, u32 emission_col, u32 shiny_table){
|
||||
*(u32 *)displaylist->var00 = 0x31;
|
||||
u32 enable_shininess_table;
|
||||
if (shiny_table)
|
||||
@@ -92,28 +92,28 @@ Only feed normalized Vectors
|
||||
only the fractional part and the sign, which is in the first nonfraction bit
|
||||
since the vector is assumed to be normalized, are used
|
||||
*/
|
||||
void G3B_LightVector(struct DL * displaylist, u32 light_num, fx16 x, fx16 y, fx16 z){
|
||||
ARM_FUNC void G3B_LightVector(struct DL * displaylist, u32 light_num, fx16 x, fx16 y, fx16 z){
|
||||
*(u32 *)displaylist->var00 = 0x32;
|
||||
*displaylist->var04 = ((x >> 3) & 0x3FF) | (((y >> 3) & 0x3FF) << 0xA) | (((z >> 3) & 0x3FF) << 0x14) | light_num << 0x1E;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_LightColor(struct DL * displaylist, u32 light_num, u32 col){
|
||||
ARM_FUNC void G3B_LightColor(struct DL * displaylist, u32 light_num, u32 col){
|
||||
*(u32 *)displaylist->var00 = 0x33;
|
||||
*displaylist->var04 = col | light_num << 0x1E;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_Begin(struct DL * displaylist, u32 type){
|
||||
ARM_FUNC void G3B_Begin(struct DL * displaylist, u32 type){
|
||||
*(u32 *)displaylist->var00 = 0x40;
|
||||
*displaylist->var04 = type;
|
||||
displaylist->var00 = (u8 *)displaylist->var04 + 0x4;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
}
|
||||
|
||||
void G3B_End(struct DL * displaylist){
|
||||
ARM_FUNC void G3B_End(struct DL * displaylist){
|
||||
*(u32 *)displaylist->var00 = 0x41;
|
||||
displaylist->var00 = (u8 *)displaylist->var04;
|
||||
displaylist->var04 = (u32 *)displaylist->var00 + 1;
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
#include "main.h"
|
||||
#include "gx.h"
|
||||
|
||||
void G3_LoadMtx43(struct Mtx43 *mtx){
|
||||
ARM_FUNC void G3_LoadMtx43(struct Mtx43 *mtx){
|
||||
SETREG32(HW_REG_GXFIFO, 0x17);
|
||||
GX_SendFifo48B(mtx, (void *)HW_REG_GXFIFO);
|
||||
}
|
||||
|
||||
void G3_MultMtx43(struct Mtx43 *mtx){
|
||||
ARM_FUNC void G3_MultMtx43(struct Mtx43 *mtx){
|
||||
SETREG32(HW_REG_GXFIFO, 0x19);
|
||||
GX_SendFifo48B(mtx, (void *)HW_REG_GXFIFO);
|
||||
}
|
||||
|
||||
void G3_MultMtx33(struct Mtx33 *mtx){
|
||||
ARM_FUNC void G3_MultMtx33(struct Mtx33 *mtx){
|
||||
SETREG32(HW_REG_GXFIFO, 0x1A);
|
||||
MI_Copy36B(mtx, (void *)HW_REG_GXFIFO);
|
||||
}
|
||||
|
||||
+17
-17
@@ -4,7 +4,7 @@
|
||||
|
||||
extern u32 gUnk02106814;
|
||||
|
||||
asm void GXi_NopClearFifo128_(void *reg){
|
||||
ARM_FUNC asm void GXi_NopClearFifo128_(void *reg){
|
||||
mov r1, #0x0
|
||||
mov r2, #0x0
|
||||
mov r3, #0x0
|
||||
@@ -44,7 +44,7 @@ asm void GXi_NopClearFifo128_(void *reg){
|
||||
bx lr
|
||||
}
|
||||
|
||||
void G3X_Init(){
|
||||
ARM_FUNC void G3X_Init(){
|
||||
G3X_ClearFifo();
|
||||
SETREG32(HW_REG_END_VTXS, 0x0);
|
||||
while (READREG32(HW_REG_GXSTAT) & 0x8000000); //wait for geometry engine to not be busy
|
||||
@@ -71,7 +71,7 @@ void G3X_Init(){
|
||||
SETREG32(HW_REG_PLTT_BASE, 0x0);
|
||||
}
|
||||
|
||||
void G3X_ResetMtxStack(){
|
||||
ARM_FUNC void G3X_ResetMtxStack(){
|
||||
while (READREG32(HW_REG_GXSTAT) & 0x8000000);
|
||||
SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000);
|
||||
SETREG16(HW_REG_DISP3DCNT, READREG16(HW_REG_DISP3DCNT) | 0x2000);
|
||||
@@ -82,12 +82,12 @@ void G3X_ResetMtxStack(){
|
||||
SETREG32(HW_REG_PLTT_BASE, 0x0);
|
||||
}
|
||||
|
||||
void G3X_ClearFifo(){
|
||||
ARM_FUNC void G3X_ClearFifo(){
|
||||
GXi_NopClearFifo128_((void *)HW_REG_GXFIFO);
|
||||
while (READREG32(HW_REG_GXSTAT) & 0x8000000);
|
||||
}
|
||||
|
||||
void G3X_InitMtxStack(){
|
||||
ARM_FUNC void G3X_InitMtxStack(){
|
||||
u32 PV_level, PJ_level;
|
||||
SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000);
|
||||
while (G3X_GetMtxStackLevelPV(&PV_level));
|
||||
@@ -105,7 +105,7 @@ void G3X_InitMtxStack(){
|
||||
SETREG32(HW_REG_MTX_IDENTITY, 0x0);
|
||||
}
|
||||
|
||||
void G3X_ResetMtxStack_2(){
|
||||
ARM_FUNC void G3X_ResetMtxStack_2(){
|
||||
u32 PV_level, PJ_level;
|
||||
SETREG32(HW_REG_GXSTAT, READREG32(HW_REG_GXSTAT) | 0x8000);
|
||||
while (G3X_GetMtxStackLevelPV(&PV_level));
|
||||
@@ -124,7 +124,7 @@ void G3X_ResetMtxStack_2(){
|
||||
|
||||
}
|
||||
|
||||
void G3X_SetFog(u32 enable, u32 alphamode, u32 depth, s32 offset){
|
||||
ARM_FUNC void G3X_SetFog(u32 enable, u32 alphamode, u32 depth, s32 offset){
|
||||
if (enable)
|
||||
{
|
||||
SETREG16(HW_REG_FOG_OFFSET, offset);
|
||||
@@ -137,7 +137,7 @@ void G3X_SetFog(u32 enable, u32 alphamode, u32 depth, s32 offset){
|
||||
}
|
||||
}
|
||||
|
||||
u32 G3X_GetClipMtx(struct Mtx44 *dst){
|
||||
ARM_FUNC u32 G3X_GetClipMtx(struct Mtx44 *dst){
|
||||
if (READREG32(HW_REG_GXSTAT) & 0x8000000)
|
||||
{
|
||||
return -1;
|
||||
@@ -149,7 +149,7 @@ u32 G3X_GetClipMtx(struct Mtx44 *dst){
|
||||
}
|
||||
}
|
||||
|
||||
u32 G3X_GetVectorMtx(struct Mtx33 *dst){
|
||||
ARM_FUNC u32 G3X_GetVectorMtx(struct Mtx33 *dst){
|
||||
if (READREG32(HW_REG_GXSTAT) & 0x8000000)
|
||||
{
|
||||
return -1;
|
||||
@@ -161,15 +161,15 @@ u32 G3X_GetVectorMtx(struct Mtx33 *dst){
|
||||
}
|
||||
}
|
||||
|
||||
void G3X_SetEdgeColorTable(void *tbl_ptr){
|
||||
ARM_FUNC void G3X_SetEdgeColorTable(void *tbl_ptr){
|
||||
MIi_CpuCopy16(tbl_ptr, (void *)HW_REG_EDGE_COLOR, 0x10);
|
||||
}
|
||||
|
||||
void G3X_SetFogTable(void *tbl_ptr){
|
||||
ARM_FUNC void G3X_SetFogTable(void *tbl_ptr){
|
||||
MI_Copy16B(tbl_ptr, (void *)HW_REG_FOG_TABLE);
|
||||
}
|
||||
|
||||
void G3X_SetClearColor(u32 col, u32 alpha, u32 depth, u32 polygon_id, u32 enable_fog){
|
||||
ARM_FUNC void G3X_SetClearColor(u32 col, u32 alpha, u32 depth, u32 polygon_id, u32 enable_fog){
|
||||
u32 temp = col | (alpha << 0x10) | (polygon_id << 0x18);
|
||||
if (enable_fog)
|
||||
temp |= 0x8000;
|
||||
@@ -177,7 +177,7 @@ void G3X_SetClearColor(u32 col, u32 alpha, u32 depth, u32 polygon_id, u32 enable
|
||||
SETREG16(HW_REG_CLEAR_DEPTH, depth);
|
||||
}
|
||||
|
||||
void G3X_InitTable(){
|
||||
ARM_FUNC void G3X_InitTable(){
|
||||
if (gUnk02106814 != -1)
|
||||
{
|
||||
MI_DmaFill32Async(gUnk02106814, (void *)HW_REG_EDGE_COLOR, 0x0, 0x10, 0x0, 0x0);
|
||||
@@ -194,7 +194,7 @@ void G3X_InitTable(){
|
||||
}
|
||||
}
|
||||
|
||||
u32 G3X_GetMtxStackLevelPV(u32 *level){
|
||||
ARM_FUNC u32 G3X_GetMtxStackLevelPV(u32 *level){
|
||||
if (READREG32(HW_REG_GXSTAT) & 0x4000)
|
||||
{
|
||||
return -1;
|
||||
@@ -206,7 +206,7 @@ u32 G3X_GetMtxStackLevelPV(u32 *level){
|
||||
}
|
||||
}
|
||||
|
||||
u32 G3X_GetMtxStackLevelPJ(u32 *level){
|
||||
ARM_FUNC u32 G3X_GetMtxStackLevelPJ(u32 *level){
|
||||
if (READREG32(HW_REG_GXSTAT) & 0x4000)
|
||||
{
|
||||
return -1;
|
||||
@@ -218,7 +218,7 @@ u32 G3X_GetMtxStackLevelPJ(u32 *level){
|
||||
}
|
||||
}
|
||||
|
||||
u32 G3X_GetBoxTestResult(u32 *result){
|
||||
ARM_FUNC u32 G3X_GetBoxTestResult(u32 *result){
|
||||
if (READREG32(HW_REG_GXSTAT) & 0x1)
|
||||
{
|
||||
return -1;
|
||||
@@ -230,6 +230,6 @@ u32 G3X_GetBoxTestResult(u32 *result){
|
||||
}
|
||||
}
|
||||
|
||||
void G3X_SetHOffset(u32 offset){
|
||||
ARM_FUNC void G3X_SetHOffset(u32 offset){
|
||||
SETREG32(HW_REG_BG0HOFS, offset);
|
||||
}
|
||||
|
||||
+36
-36
@@ -20,121 +20,121 @@ static inline void *_GXS_OBJ_PTR(){
|
||||
return (void *)0x6600000;
|
||||
}
|
||||
|
||||
void GX_LoadBGPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBGPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(0x5000000 + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBGPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBGPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(0x5000400 + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadOBJPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadOBJPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(0x5000200 + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadOBJPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadOBJPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(0x5000600 + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadOAM(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadOAM(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(0x7000000 + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadOAM(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadOAM(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(0x7000400 + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadOBJ(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadOBJ(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)_GX_OBJ_PTR();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadOBJ(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadOBJ(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)_GXS_OBJ_PTR();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG0Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG0Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG0ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG0Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG0Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG0ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG1Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG1Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG1ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG1Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG1Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG1ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG2Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG2Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG2ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG2Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG2Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG2ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG3Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG3Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG3ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG3Scr(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG3Scr(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG3ScrPtr();
|
||||
_GX_Load_16(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG0Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG0Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG0CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG0Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG0Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG0CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG1Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG1Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG1CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG1Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG1Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG1CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG2Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG2Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG2CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG2Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG2Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG2CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_LoadBG3Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBG3Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2_GetBG3CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GXS_LoadBG3Char(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBG3Char(void *src, u32 offset, u32 size){
|
||||
u32 base = (u32)G2S_GetBG3CharPtr();
|
||||
_GX_Load_32(gUnk02106814, src, (void *)(base + offset), size);
|
||||
}
|
||||
|
||||
void GX_BeginLoadBGExtPltt(){
|
||||
ARM_FUNC void GX_BeginLoadBGExtPltt(){
|
||||
gUnk021D33F4 = GX_ResetBankForBGExtPltt();
|
||||
switch (gUnk021D33F4)
|
||||
{
|
||||
@@ -156,11 +156,11 @@ void GX_BeginLoadBGExtPltt(){
|
||||
}
|
||||
}
|
||||
|
||||
void GX_LoadBGExtPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadBGExtPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(gUnk021D33F0 + offset - gUnk021D33EC), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GX_EndLoadBGExtPltt(){
|
||||
ARM_FUNC void GX_EndLoadBGExtPltt(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForBGExtPltt(gUnk021D33F4);
|
||||
@@ -169,7 +169,7 @@ void GX_EndLoadBGExtPltt(){
|
||||
gUnk021D33EC = 0x0;
|
||||
}
|
||||
|
||||
void GX_BeginLoadOBJExtPltt(){
|
||||
ARM_FUNC void GX_BeginLoadOBJExtPltt(){
|
||||
gUnk021D33E8 = GX_ResetBankForOBJExtPltt();
|
||||
switch (gUnk021D33E8)
|
||||
{
|
||||
@@ -184,11 +184,11 @@ void GX_BeginLoadOBJExtPltt(){
|
||||
}
|
||||
}
|
||||
|
||||
void GX_LoadOBJExtPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadOBJExtPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(gUnk021D33E4 + offset), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GX_EndLoadOBJExtPltt(){
|
||||
ARM_FUNC void GX_EndLoadOBJExtPltt(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForOBJExtPltt(gUnk021D33E8);
|
||||
@@ -196,30 +196,30 @@ void GX_EndLoadOBJExtPltt(){
|
||||
gUnk021D33E4 = 0x0;
|
||||
}
|
||||
|
||||
void GXS_BeginLoadBGExtPltt(){
|
||||
ARM_FUNC void GXS_BeginLoadBGExtPltt(){
|
||||
gUnk021D33E0 = FUN_020C6034();
|
||||
}
|
||||
|
||||
void GXS_LoadBGExtPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadBGExtPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(0x06898000 + offset), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GXS_EndLoadBGExtPltt(){
|
||||
ARM_FUNC void GXS_EndLoadBGExtPltt(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForSubBGExtPltt(gUnk021D33E0);
|
||||
gUnk021D33E0 = 0x0;
|
||||
}
|
||||
|
||||
void GXS_BeginLoadOBJExtPltt(){
|
||||
ARM_FUNC void GXS_BeginLoadOBJExtPltt(){
|
||||
gUnk021D33F8 = GX_ResetBankForSubOBJ();
|
||||
}
|
||||
|
||||
void GXS_LoadOBJExtPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GXS_LoadOBJExtPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(0x068A0000 + offset), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GXS_EndLoadOBJExtPltt(){
|
||||
ARM_FUNC void GXS_EndLoadOBJExtPltt(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForSubOBJExtPltt(gUnk021D33F8);
|
||||
|
||||
+10
-10
@@ -21,7 +21,7 @@ extern u16 gUnk02103B3C[];
|
||||
extern s32 gUnk021D33FC;
|
||||
extern u32 gUnk021D340C;
|
||||
|
||||
void GX_BeginLoadTex(){
|
||||
ARM_FUNC void GX_BeginLoadTex(){
|
||||
u32 temp = GX_ResetBankForTex();
|
||||
gUnk021D3410 = temp;
|
||||
gUnk021D3400 = gUnk02103B4C[temp * 3] << 0xC;
|
||||
@@ -29,7 +29,7 @@ void GX_BeginLoadTex(){
|
||||
gUnk021D3418 = gUnk02103B50[temp * 3] << 0xC;
|
||||
}
|
||||
|
||||
void GX_LoadTex(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadTex(void *src, u32 offset, u32 size){
|
||||
void *temp;
|
||||
if (!gUnk021D3414)
|
||||
{
|
||||
@@ -58,7 +58,7 @@ void GX_LoadTex(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, temp, size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GX_EndLoadTex(){
|
||||
ARM_FUNC void GX_EndLoadTex(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForTex(gUnk021D3410);
|
||||
@@ -68,17 +68,17 @@ void GX_EndLoadTex(){
|
||||
gUnk021D3410 = 0x0;
|
||||
}
|
||||
|
||||
void GX_BeginLoadTexPltt(){
|
||||
ARM_FUNC void GX_BeginLoadTexPltt(){
|
||||
s32 temp = GX_ResetBankForTexPltt();
|
||||
gUnk021D3408 = temp;
|
||||
gUnk021D3404 = gUnk02103B3C[temp >> 4] << 0xC;
|
||||
}
|
||||
|
||||
void GX_LoadTexPltt(void *src, u32 offset, u32 size){
|
||||
ARM_FUNC void GX_LoadTexPltt(void *src, u32 offset, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(gUnk021D3404 + offset), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GX_EndLoadTexPltt(){
|
||||
ARM_FUNC void GX_EndLoadTexPltt(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForTexPltt(gUnk021D3408);
|
||||
@@ -86,7 +86,7 @@ void GX_EndLoadTexPltt(){
|
||||
gUnk021D3404 = 0x0;
|
||||
}
|
||||
|
||||
void GX_BeginLoadClearImage(){
|
||||
ARM_FUNC void GX_BeginLoadClearImage(){
|
||||
s32 temp = GX_ResetBankForClearImage();
|
||||
gUnk021D33FC = temp;
|
||||
switch (temp)
|
||||
@@ -107,15 +107,15 @@ void GX_BeginLoadClearImage(){
|
||||
}
|
||||
}
|
||||
|
||||
void GX_LoadClearImageColor(void *src, u32 size){
|
||||
ARM_FUNC void GX_LoadClearImageColor(void *src, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(gUnk021D340C), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GX_LoadClearImageDepth(void *src, u32 size){
|
||||
ARM_FUNC void GX_LoadClearImageDepth(void *src, u32 size){
|
||||
_GX_Load_32_Async(gUnk02106814, src, (void *)(gUnk021D340C + 0x20000), size, NULL, NULL);
|
||||
}
|
||||
|
||||
void GX_EndLoadClearImage(){
|
||||
ARM_FUNC void GX_EndLoadClearImage(){
|
||||
if (gUnk02106814 != -1)
|
||||
MI_WaitDma(gUnk02106814);
|
||||
GX_SetBankForClearImage(gUnk021D33FC);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
extern struct VRAM_banks gUnk021D33C4;
|
||||
|
||||
void GX_InitGXState(){
|
||||
ARM_FUNC void GX_InitGXState(){
|
||||
gUnk021D33C4.var00 = 0x0;
|
||||
gUnk021D33C4.var02 = 0x0;
|
||||
gUnk021D33C4.var04 = 0x0;
|
||||
|
||||
+51
-51
@@ -5,7 +5,7 @@
|
||||
extern u16 gUnk021D33BC;
|
||||
extern struct VRAM_banks gUnk021D33C4;
|
||||
|
||||
void GX_VRAMCNT_SetLCDC_(u32 mask){
|
||||
ARM_FUNC void GX_VRAMCNT_SetLCDC_(u32 mask){
|
||||
if (mask & (0x1 << 0))
|
||||
SETREG8(HW_REG_VRAMCNT_A, 0x80);
|
||||
if (mask & (0x1 << 1))
|
||||
@@ -26,7 +26,7 @@ void GX_VRAMCNT_SetLCDC_(u32 mask){
|
||||
SETREG8(HW_REG_VRAMCNT_I, 0x80);
|
||||
}
|
||||
|
||||
void GX_SetBankForBG(s32 bg){
|
||||
ARM_FUNC void GX_SetBankForBG(s32 bg){
|
||||
gUnk021D33C4.var00 = (u16)(~bg & (gUnk021D33C4.var00 | gUnk021D33C4.var02));
|
||||
gUnk021D33C4.var02 = bg;
|
||||
switch (bg)
|
||||
@@ -99,7 +99,7 @@ void GX_SetBankForBG(s32 bg){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForOBJ(s32 obj){
|
||||
ARM_FUNC void GX_SetBankForOBJ(s32 obj){
|
||||
gUnk021D33C4.var00 = (u16)(~obj & (gUnk021D33C4.var00 | gUnk021D33C4.var04));
|
||||
gUnk021D33C4.var04 = obj;
|
||||
switch (obj)
|
||||
@@ -138,7 +138,7 @@ void GX_SetBankForOBJ(s32 obj){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForBGExtPltt(s32 bgextpltt){
|
||||
ARM_FUNC void GX_SetBankForBGExtPltt(s32 bgextpltt){
|
||||
gUnk021D33C4.var00 = (u16)(~bgextpltt & (gUnk021D33C4.var00 | gUnk021D33C4.var0E));
|
||||
gUnk021D33C4.var0E = bgextpltt;
|
||||
switch (bgextpltt)
|
||||
@@ -164,7 +164,7 @@ void GX_SetBankForBGExtPltt(s32 bgextpltt){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForOBJExtPltt(s32 objextpltt){
|
||||
ARM_FUNC void GX_SetBankForOBJExtPltt(s32 objextpltt){
|
||||
gUnk021D33C4.var00 = (u16)(~objextpltt & (gUnk021D33C4.var00 | gUnk021D33C4.var10));
|
||||
gUnk021D33C4.var10 = objextpltt;
|
||||
switch (objextpltt)
|
||||
@@ -184,7 +184,7 @@ void GX_SetBankForOBJExtPltt(s32 objextpltt){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForTex(s32 tex){
|
||||
ARM_FUNC void GX_SetBankForTex(s32 tex){
|
||||
gUnk021D33C4.var00 = (u16)(~tex & (gUnk021D33C4.var00 | gUnk021D33C4.var08));
|
||||
gUnk021D33C4.var08 = tex;
|
||||
if (tex == 0)
|
||||
@@ -247,7 +247,7 @@ void GX_SetBankForTex(s32 tex){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForTexPltt(s32 texpltt){
|
||||
ARM_FUNC void GX_SetBankForTexPltt(s32 texpltt){
|
||||
gUnk021D33C4.var00 = (u16)(~texpltt & (gUnk021D33C4.var00 | gUnk021D33C4.var0A));
|
||||
gUnk021D33C4.var0A = texpltt;
|
||||
switch (texpltt)
|
||||
@@ -273,7 +273,7 @@ void GX_SetBankForTexPltt(s32 texpltt){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForClearImage(s32 clearimage){
|
||||
ARM_FUNC void GX_SetBankForClearImage(s32 clearimage){
|
||||
gUnk021D33C4.var00 = (u16)(~clearimage & (gUnk021D33C4.var00 | gUnk021D33C4.var0C));
|
||||
gUnk021D33C4.var0C = clearimage;
|
||||
switch (clearimage)
|
||||
@@ -304,7 +304,7 @@ void GX_SetBankForClearImage(s32 clearimage){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForARM7(s32 arm7){
|
||||
ARM_FUNC void GX_SetBankForARM7(s32 arm7){
|
||||
gUnk021D33C4.var00 = (u16)(~arm7 & (gUnk021D33C4.var00 | gUnk021D33C4.var06));
|
||||
gUnk021D33C4.var06 = arm7;
|
||||
switch (arm7)
|
||||
@@ -324,12 +324,12 @@ void GX_SetBankForARM7(s32 arm7){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForLCDC(s32 lcdc){
|
||||
ARM_FUNC void GX_SetBankForLCDC(s32 lcdc){
|
||||
gUnk021D33C4.var00 |= lcdc;
|
||||
GX_VRAMCNT_SetLCDC_(lcdc);
|
||||
}
|
||||
|
||||
void GX_SetBankForSubBG(s32 subbg){
|
||||
ARM_FUNC void GX_SetBankForSubBG(s32 subbg){
|
||||
gUnk021D33C4.var00 = (u16)(~subbg & (gUnk021D33C4.var00 | gUnk021D33C4.var12));
|
||||
gUnk021D33C4.var12 = subbg;
|
||||
switch (subbg)
|
||||
@@ -348,7 +348,7 @@ void GX_SetBankForSubBG(s32 subbg){
|
||||
}
|
||||
|
||||
|
||||
void GX_SetBankForSubOBJ(s32 subobj){
|
||||
ARM_FUNC void GX_SetBankForSubOBJ(s32 subobj){
|
||||
gUnk021D33C4.var00 = (u16)(~subobj & (gUnk021D33C4.var00 | gUnk021D33C4.var14));
|
||||
gUnk021D33C4.var14 = subobj;
|
||||
switch (subobj)
|
||||
@@ -365,7 +365,7 @@ void GX_SetBankForSubOBJ(s32 subobj){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForSubBGExtPltt(s32 subbgextpltt){
|
||||
ARM_FUNC void GX_SetBankForSubBGExtPltt(s32 subbgextpltt){
|
||||
gUnk021D33C4.var00 = (u16)(~subbgextpltt & (gUnk021D33C4.var00 | gUnk021D33C4.var16));
|
||||
gUnk021D33C4.var16 = subbgextpltt;
|
||||
switch (subbgextpltt)
|
||||
@@ -381,7 +381,7 @@ void GX_SetBankForSubBGExtPltt(s32 subbgextpltt){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){
|
||||
ARM_FUNC void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){
|
||||
gUnk021D33C4.var00 = (u16)(~subobjextpltt & (gUnk021D33C4.var00 | gUnk021D33C4.var18));
|
||||
gUnk021D33C4.var18 = subobjextpltt;
|
||||
switch (subobjextpltt)
|
||||
@@ -397,7 +397,7 @@ void GX_SetBankForSubOBJExtPltt(s32 subobjextpltt){
|
||||
GX_VRAMCNT_SetLCDC_(gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
u32 FUN_020C6130(u16 *ptr){
|
||||
ARM_FUNC u32 FUN_020C6130(u16 *ptr){
|
||||
u16 temp = *ptr;
|
||||
*ptr = 0;
|
||||
gUnk021D33C4.var00 |= temp;
|
||||
@@ -405,55 +405,55 @@ u32 FUN_020C6130(u16 *ptr){
|
||||
return temp;
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForBG(){
|
||||
ARM_FUNC u32 GX_ResetBankForBG(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var02);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForOBJ(){
|
||||
ARM_FUNC u32 GX_ResetBankForOBJ(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var04);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForBGExtPltt(){
|
||||
ARM_FUNC u32 GX_ResetBankForBGExtPltt(){
|
||||
SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x40000000);
|
||||
return FUN_020C6130(&gUnk021D33C4.var0E);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForOBJExtPltt(){
|
||||
ARM_FUNC u32 GX_ResetBankForOBJExtPltt(){
|
||||
SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x80000000);
|
||||
return FUN_020C6130(&gUnk021D33C4.var10);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForTex(){
|
||||
ARM_FUNC u32 GX_ResetBankForTex(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var08);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForTexPltt(){
|
||||
ARM_FUNC u32 GX_ResetBankForTexPltt(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var0A);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForClearImage(){
|
||||
ARM_FUNC u32 GX_ResetBankForClearImage(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var0C);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForSubBG(){
|
||||
ARM_FUNC u32 GX_ResetBankForSubBG(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var12);
|
||||
}
|
||||
|
||||
u32 FUN_020C605C(){
|
||||
ARM_FUNC u32 FUN_020C605C(){
|
||||
return FUN_020C6130(&gUnk021D33C4.var14);
|
||||
}
|
||||
|
||||
u32 FUN_020C6034(){
|
||||
ARM_FUNC u32 FUN_020C6034(){
|
||||
SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x40000000);
|
||||
return FUN_020C6130(&gUnk021D33C4.var16);
|
||||
}
|
||||
|
||||
u32 GX_ResetBankForSubOBJ(){
|
||||
ARM_FUNC u32 GX_ResetBankForSubOBJ(){
|
||||
SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x80000000);
|
||||
return FUN_020C6130(&gUnk021D33C4.var18);
|
||||
}
|
||||
|
||||
u32 FUN_020C5F28(u16 *ptr){
|
||||
ARM_FUNC u32 FUN_020C5F28(u16 *ptr){
|
||||
u32 temp = *ptr;
|
||||
*ptr = 0;
|
||||
if (temp & (0x1 << 0))
|
||||
@@ -478,102 +478,102 @@ u32 FUN_020C5F28(u16 *ptr){
|
||||
return temp;
|
||||
}
|
||||
|
||||
u32 disableBankForX_(){
|
||||
ARM_FUNC u32 disableBankForX_(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var02);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForOBJExtPltt_2(){
|
||||
ARM_FUNC u32 GX_DisableBankForOBJExtPltt_2(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var04);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForBGExtPltt(){
|
||||
ARM_FUNC u32 GX_DisableBankForBGExtPltt(){
|
||||
SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x40000000);
|
||||
return FUN_020C5F28(&gUnk021D33C4.var0E);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForOBJExtPltt(){
|
||||
ARM_FUNC u32 GX_DisableBankForOBJExtPltt(){
|
||||
SETREG32(HW_REG_DISPCNT, READREG32(HW_REG_DISPCNT) & ~0x80000000);
|
||||
return FUN_020C5F28(&gUnk021D33C4.var10);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForTexPltt_2(){
|
||||
ARM_FUNC u32 GX_DisableBankForTexPltt_2(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var08);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForTexPltt(){
|
||||
ARM_FUNC u32 GX_DisableBankForTexPltt(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var0A);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForClearImage(){
|
||||
ARM_FUNC u32 GX_DisableBankForClearImage(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var0C);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForARM7(){
|
||||
ARM_FUNC u32 GX_DisableBankForARM7(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var06);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForLCDC(){
|
||||
ARM_FUNC u32 GX_DisableBankForLCDC(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var00);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForSubBGExtPltt(){
|
||||
ARM_FUNC u32 GX_DisableBankForSubBGExtPltt(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var12);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForSubOBJExtPltt_2(){
|
||||
ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt_2(){
|
||||
return FUN_020C5F28(&gUnk021D33C4.var14);
|
||||
}
|
||||
|
||||
u32 FUN_020C5E04(){
|
||||
ARM_FUNC u32 FUN_020C5E04(){
|
||||
SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x40000000);
|
||||
return FUN_020C5F28(&gUnk021D33C4.var16);
|
||||
}
|
||||
|
||||
u32 GX_DisableBankForSubOBJExtPltt(){
|
||||
ARM_FUNC u32 GX_DisableBankForSubOBJExtPltt(){
|
||||
SETREG32(HW_REG_DISPCNT_2D, READREG32(HW_REG_DISPCNT_2D) & ~0x80000000);
|
||||
return FUN_020C5F28(&gUnk021D33C4.var18);
|
||||
}
|
||||
|
||||
u32 GX_GetBankForBGExtPltt_2(){
|
||||
ARM_FUNC u32 GX_GetBankForBGExtPltt_2(){
|
||||
return gUnk021D33C4.var02;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForOBJ(){
|
||||
ARM_FUNC u32 GX_GetBankForOBJ(){
|
||||
return gUnk021D33C4.var04;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForBGExtPltt(){
|
||||
ARM_FUNC u32 GX_GetBankForBGExtPltt(){
|
||||
return gUnk021D33C4.var0E;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForOBJExtPltt(){
|
||||
ARM_FUNC u32 GX_GetBankForOBJExtPltt(){
|
||||
return gUnk021D33C4.var10;
|
||||
}
|
||||
|
||||
u32 FUN_020C5D8C(){
|
||||
ARM_FUNC u32 FUN_020C5D8C(){
|
||||
return gUnk021D33C4.var08;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForTexPltt(){
|
||||
ARM_FUNC u32 GX_GetBankForTexPltt(){
|
||||
return gUnk021D33C4.var0A;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForLCDC(){
|
||||
ARM_FUNC u32 GX_GetBankForLCDC(){
|
||||
return gUnk021D33C4.var00;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForSubBGExtPltt_2(){
|
||||
ARM_FUNC u32 GX_GetBankForSubBGExtPltt_2(){
|
||||
return gUnk021D33C4.var12;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForSubOBJ(){
|
||||
ARM_FUNC u32 GX_GetBankForSubOBJ(){
|
||||
return gUnk021D33C4.var14;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForSubBGExtPltt(){
|
||||
ARM_FUNC u32 GX_GetBankForSubBGExtPltt(){
|
||||
return gUnk021D33C4.var16;
|
||||
}
|
||||
|
||||
u32 GX_GetBankForSubOBJExtPltt(){
|
||||
ARM_FUNC u32 GX_GetBankForSubOBJExtPltt(){
|
||||
return gUnk021D33C4.var18;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user