Files
tp/libs/dolphin/gx/GXTexture.c
T
TakaRikka a7edd19f16 MSL_C fully matched / some SSystem cleanup/ obj_rgate OK (#2011)
* cleanup SSystem files

* MSL_C fully matched

* fix build

* remove asm

* reorganize MSL_C/Runtime libs into more accurate setup

* little more cleanup

* cleanup some MSL headers

* obj_rgate OK

* remove asm

* some rgate documentation
2023-12-25 17:31:05 +02:00

573 lines
20 KiB
C

//
// Generated By: dol2asm
// Translation Unit: GXTexture
//
#include "dolphin/gx/GXTexture.h"
#include "dolphin/gx/GX.h"
#include "string.h"
#include "dol2asm.h"
//
// Forward References:
//
static void GXLoadTexObjPreLoaded();
void GXLoadTexObj();
void GXLoadTlut();
void GXInitTlutRegion();
void GXInvalidateTexAll();
void __SetSURegs();
void __GXSetSUTexRegs();
void __GXSetTmemConfig();
//
// External References:
//
void __GXFlushTextureState();
//
// Declarations:
//
/* ############################################################################################## */
/* 803D2598-803D268C -00001 00F4+00 1/1 0/0 0/0 .data @104 */
SECTION_DATA static void* lit_104[61] = {
(void*)(((char*)GXGetTexBufferSize) + 0x28), (void*)(((char*)GXGetTexBufferSize) + 0x34),
(void*)(((char*)GXGetTexBufferSize) + 0x34), (void*)(((char*)GXGetTexBufferSize) + 0x40),
(void*)(((char*)GXGetTexBufferSize) + 0x40), (void*)(((char*)GXGetTexBufferSize) + 0x40),
(void*)(((char*)GXGetTexBufferSize) + 0x40), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x28), (void*)(((char*)GXGetTexBufferSize) + 0x34),
(void*)(((char*)GXGetTexBufferSize) + 0x40), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x28), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x34),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x40),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x40), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x28), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x34), (void*)(((char*)GXGetTexBufferSize) + 0x40),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x34),
(void*)(((char*)GXGetTexBufferSize) + 0x34), (void*)(((char*)GXGetTexBufferSize) + 0x34),
(void*)(((char*)GXGetTexBufferSize) + 0x34), (void*)(((char*)GXGetTexBufferSize) + 0x40),
(void*)(((char*)GXGetTexBufferSize) + 0x40), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x28), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x4C), (void*)(((char*)GXGetTexBufferSize) + 0x34),
(void*)(((char*)GXGetTexBufferSize) + 0x34), (void*)(((char*)GXGetTexBufferSize) + 0x4C),
(void*)(((char*)GXGetTexBufferSize) + 0x40),
};
/* 8035DC1C-8035DD78 35855C 015C+00 1/0 8/8 0/0 .text GXGetTexBufferSize */
#ifdef NONMATCHING
u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod) {
u32 r0;
u32 r8;
u32 i;
u32 rv;
u32 r7;
u32 r6;
u32 r10;
u32 uVar1;
u32 uVar2;
u32 uVar3;
switch(format) {
case GX_TF_I4:
case GX_TF_CI8:
case GX_TF_CMPR:
case 32:
case 48:
r0 = 3;
r8 = 3;
break;
case GX_TF_I8:
case GX_TF_IA4:
case 17:
case 34:
case 39:
case 40:
case 41:
case 42:
case 57:
case 58:
r0 = 3;
r8 = 2;
break;
case GX_TF_IA8:
case GX_TF_RGB565:
case GX_TF_TGB5A3:
case GX_TF_RGBA8:
case 19:
case 22:
case 35:
case 43:
case 44:
case 60:
r0 = 2;
r8 = 2;
break;
default:
r8 = 0;
r0 = 0;
break;
}
if (format == 6 || format == 0x16) {
uVar3 = 0x40;
} else {
uVar3 = 0x20;
}
if (mipmap == GX_TRUE) {
r7 = (1 << r8) - 1;
r10 = (1 << r0) - 1;
rv = 0;
for (i = 0; i < max_lod; i++) {
rv += uVar3 * (((s32)(width + r10) >> r0) * ((s32)(height + r7) >> r0));
if (width == 1 && height == 1) {
break;
}
width = (width > 1) ? width >> 1 : 1;
height = (height > 1) ? height >> 1 : 1;
}
} else {
rv = uVar3 * (((s32)(width + (1 << r0) - 1) >> r0) * ((s32)(height + (1 << r8) - 1) >> r0));
}
return rv;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexBufferSize.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803D268C-803D2780 -00001 00F4+00 1/1 0/0 0/0 .data @145 */
SECTION_DATA static void* lit_145[61] = {
(void*)(((char*)__GetImageTileCount) + 0x20), (void*)(((char*)__GetImageTileCount) + 0x2C),
(void*)(((char*)__GetImageTileCount) + 0x2C), (void*)(((char*)__GetImageTileCount) + 0x38),
(void*)(((char*)__GetImageTileCount) + 0x38), (void*)(((char*)__GetImageTileCount) + 0x38),
(void*)(((char*)__GetImageTileCount) + 0x38), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x20), (void*)(((char*)__GetImageTileCount) + 0x2C),
(void*)(((char*)__GetImageTileCount) + 0x38), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x20), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x2C),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x38),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x38), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x20), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x2C), (void*)(((char*)__GetImageTileCount) + 0x38),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x2C),
(void*)(((char*)__GetImageTileCount) + 0x2C), (void*)(((char*)__GetImageTileCount) + 0x2C),
(void*)(((char*)__GetImageTileCount) + 0x2C), (void*)(((char*)__GetImageTileCount) + 0x38),
(void*)(((char*)__GetImageTileCount) + 0x38), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x20), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x44), (void*)(((char*)__GetImageTileCount) + 0x2C),
(void*)(((char*)__GetImageTileCount) + 0x2C), (void*)(((char*)__GetImageTileCount) + 0x44),
(void*)(((char*)__GetImageTileCount) + 0x38),
};
/* 8035DD78-8035DE40 3586B8 00C8+00 1/0 1/1 0/0 .text __GetImageTileCount */
#ifdef NONMATCHING
void __GetImageTileCount(u32 arg0, u16 arg1, u16 arg2, s32* arg3, s32* arg4, s32* arg5) {
u32 r0;
u32 r8;
s32 uVar3;
s32 uVar4;
s32 uVar5;
s32 uVar6;
s32 uVar7;
switch(arg0) {
case GX_TF_I4:
case GX_TF_CI8:
case GX_TF_CMPR:
case 32:
case 48:
r0 = 3;
r8 = 3;
break;
case GX_TF_I8:
case GX_TF_IA4:
case 17:
case 34:
case 39:
case 40:
case 41:
case 42:
case 57:
case 58:
r0 = 3;
r8 = 2;
break;
case GX_TF_IA8:
case GX_TF_RGB565:
case GX_TF_TGB5A3:
case GX_TF_RGBA8:
case 19:
case 22:
case 35:
case 43:
case 44:
case 60:
r0 = 2;
r8 = 2;
break;
default:
r8 = 0;
r0 = 0;
break;
}
if (arg1 == 0) {
arg1 = 1;
}
if (arg2 == 0) {
arg2 = 1;
}
uVar3 = 1;
*arg3 = (arg1 + ((1 << r0) - 1)) >> r0;
*arg4 = (arg2 + ((1 << r8) - 1)) >> r8;
if ((s32)arg0 != 6 && (s32)arg0 != 0x16) {
uVar3 = 0;
}
*arg5 = uVar3 ? 2 : 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __GetImageTileCount(u32 arg0, u16 arg1, u16 arg2, s32* arg3, s32* arg4, s32* arg5) {
nofralloc
#include "asm/dolphin/gx/GXTexture/__GetImageTileCount.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803D2780-803D27C0 -00001 003C+04 1/1 0/0 0/0 .data @224 */
SECTION_DATA static void* lit_224[15 + 1 /* padding */] = {
(void*)(((char*)GXInitTexObj) + 0x180),
(void*)(((char*)GXInitTexObj) + 0x194),
(void*)(((char*)GXInitTexObj) + 0x194),
(void*)(((char*)GXInitTexObj) + 0x1A8),
(void*)(((char*)GXInitTexObj) + 0x1A8),
(void*)(((char*)GXInitTexObj) + 0x1A8),
(void*)(((char*)GXInitTexObj) + 0x1BC),
(void*)(((char*)GXInitTexObj) + 0x1E4),
(void*)(((char*)GXInitTexObj) + 0x180),
(void*)(((char*)GXInitTexObj) + 0x194),
(void*)(((char*)GXInitTexObj) + 0x1A8),
(void*)(((char*)GXInitTexObj) + 0x1E4),
(void*)(((char*)GXInitTexObj) + 0x1E4),
(void*)(((char*)GXInitTexObj) + 0x1E4),
(void*)(((char*)GXInitTexObj) + 0x1D0),
/* padding */
NULL,
};
/* 804565E8-804565F0 004BE8 0004+04 2/2 0/0 0/0 .sdata2 @220 */
SECTION_SDATA2 static f32 lit_220[1 + 1 /* padding */] = {
16.0f,
/* padding */
0.0f,
};
/* 804565F0-804565F8 004BF0 0008+00 1/1 0/0 0/0 .sdata2 @222 */
SECTION_SDATA2 static f64 lit_222 = 4503599627370496.0 /* cast u32 to float */;
/* 8035DE40-8035E08C 358780 024C+00 2/1 22/22 3/3 .text GXInitTexObj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInitTexObj(GXTexObj* obj, void* image, u16 width, u16 height, GXTexFmt fmt,
GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInitTexObj.s"
}
#pragma pop
/* 8035E08C-8035E0D4 3589CC 0048+00 0/0 3/3 1/1 .text GXInitTexObjCI */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInitTexObjCI(GXTexObj* obj, void* image, u16 width, u16 height, GXCITexFmt format,
GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap, u32 tlut_name) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInitTexObjCI.s"
}
#pragma pop
/* ############################################################################################## */
/* 80450A90-80450A98 000510 0008+00 1/1 0/0 0/0 .sdata GXTexMode0Ids */
SECTION_SDATA static u8 GXTexMode0Ids[8] = {
0x80, 0x81, 0x82, 0x83, 0xA0, 0xA1, 0xA2, 0xA3,
};
/* 80450A98-80450AA0 000518 0008+00 1/1 0/0 0/0 .sdata GXTexMode1Ids */
SECTION_SDATA static u8 GXTexMode1Ids[8] = {
0x84, 0x85, 0x86, 0x87, 0xA4, 0xA5, 0xA6, 0xA7,
};
/* 80450AA0-80450AA8 000520 0008+00 1/1 0/0 0/0 .sdata GXTexImage0Ids */
SECTION_SDATA static u8 GXTexImage0Ids[8] = {
0x88, 0x89, 0x8A, 0x8B, 0xA8, 0xA9, 0xAA, 0xAB,
};
/* 80450AA8-80450AB0 000528 0008+00 1/1 0/0 0/0 .sdata GXTexImage1Ids */
SECTION_SDATA static u8 GXTexImage1Ids[8] = {
0x8C, 0x8D, 0x8E, 0x8F, 0xAC, 0xAD, 0xAE, 0xAF,
};
/* 80450AB0-80450AB8 000530 0008+00 1/1 0/0 0/0 .sdata GXTexImage2Ids */
SECTION_SDATA static u8 GXTexImage2Ids[8] = {
0x90, 0x91, 0x92, 0x93, 0xB0, 0xB1, 0xB2, 0xB3,
};
/* 80450AB8-80450AC0 000538 0008+00 1/1 0/0 0/0 .sdata GXTexImage3Ids */
SECTION_SDATA static u8 GXTexImage3Ids[8] = {
0x94, 0x95, 0x96, 0x97, 0xB4, 0xB5, 0xB6, 0xB7,
};
/* 80450AC0-80450AC8 000540 0008+00 1/1 0/0 0/0 .sdata GXTexTlutIds */
SECTION_SDATA static u8 GXTexTlutIds[8] = {
0x98, 0x99, 0x9A, 0x9B, 0xB8, 0xB9, 0xBA, 0xBB,
};
/* 80450AC8-80450AD0 000548 0006+02 1/1 0/0 0/0 .sdata GX2HWFiltConv */
SECTION_SDATA static u8 GX2HWFiltConv[6 + 2 /* padding */] = {
0x00,
0x04,
0x01,
0x05,
0x02,
0x06,
/* padding */
0x00,
0x00,
};
/* 804565F8-804565FC 004BF8 0004+00 1/1 0/0 0/0 .sdata2 @288 */
SECTION_SDATA2 static f32 lit_288 = -4.0f;
/* 804565FC-80456600 004BFC 0004+00 1/1 0/0 0/0 .sdata2 @289 */
SECTION_SDATA2 static f32 lit_289 = 4.0f;
/* 80456600-80456604 004C00 0004+00 1/1 0/0 0/0 .sdata2 @290 */
SECTION_SDATA2 static f32 lit_290 = 3.990000009536743f;
/* 80456604-80456608 004C04 0004+00 1/1 0/0 0/0 .sdata2 @291 */
SECTION_SDATA2 static f32 lit_291 = 32.0f;
/* 80456608-8045660C 004C08 0004+00 1/1 0/0 0/0 .sdata2 @292 */
SECTION_SDATA2 static u8 lit_292[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 8045660C-80456610 004C0C 0004+00 1/1 0/0 0/0 .sdata2 @293 */
SECTION_SDATA2 static f32 lit_293 = 10.0f;
/* 8035E0D4-8035E238 358A14 0164+00 0/0 21/21 4/4 .text GXInitTexObjLOD */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInitTexObjLOD(GXTexObj* obj, GXTexFilter min_filter, GXTexFilter max_filter, f32 min_lod,
f32 max_lod, f32 lod_bias, GXBool bias_clamp, GXBool edge_lod,
GXAnisotropy aniso) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInitTexObjLOD.s"
}
#pragma pop
/* 8035E238-8035E248 358B78 0010+00 0/0 4/4 1/1 .text GXGetTexObjWidth */
u16 GXGetTexObjWidth(GXTexObj* obj) {
return (obj->texture_size & 0x3ff) + 1;
}
/* 8035E248-8035E258 358B88 0010+00 0/0 3/3 0/0 .text GXGetTexObjHeight */
u16 GXGetTexObjHeight(GXTexObj* obj) {
return ((obj->texture_size >> 10) & 0x3ff) + 1;
}
/* 8035E258-8035E260 358B98 0008+00 0/0 1/1 0/0 .text GXGetTexObjFmt */
GXTexFmt GXGetTexObjFmt(GXTexObj* obj) {
return obj->texture_format;
}
/* 8035E260-8035E26C 358BA0 000C+00 0/0 1/1 0/0 .text GXGetTexObjWrapS */
GXTexWrapMode GXGetTexObjWrapS(GXTexObj* obj) {
return obj->texture_filter & 0x3;
}
/* 8035E26C-8035E278 358BAC 000C+00 0/0 1/1 0/0 .text GXGetTexObjWrapT */
GXTexWrapMode GXGetTexObjWrapT(GXTexObj* obj) {
return (obj->texture_filter & 0xc) >> 2;
}
/* 8035E278-8035E290 358BB8 0018+00 0/0 1/1 0/0 .text GXGetTexObjMipMap */
GXBool GXGetTexObjMipMap(GXTexObj* obj) {
return (obj->texture_flags & 1) == 1;
}
/* 8035E290-8035E298 358BD0 0008+00 0/0 1/1 0/0 .text GXGetTexObjTlut */
u32 GXGetTexObjTlut(GXTexObj* obj) {
return obj->tlut_name;
}
/* 8035E298-8035E414 358BD8 017C+00 1/1 0/0 0/0 .text GXLoadTexObjPreLoaded */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void GXLoadTexObjPreLoaded(GXTexObj* obj, GXTexRegion* region, GXTexMapID id) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXLoadTexObjPreLoaded.s"
}
#pragma pop
/* 8035E414-8035E468 358D54 0054+00 0/0 33/33 5/5 .text GXLoadTexObj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXLoadTexObj(GXTexObj* obj, GXTexMapID id) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXLoadTexObj.s"
}
#pragma pop
/* 8035E468-8035E4A0 358DA8 0038+00 0/0 4/4 1/1 .text GXInitTlutObj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInitTlutObj(GXTlutObj* obj, void* lut, GXTlutFmt fmt, u16 entry_num) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInitTlutObj.s"
}
#pragma pop
/* 8035E4A0-8035E538 358DE0 0098+00 0/0 4/4 1/1 .text GXLoadTlut */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXLoadTlut(GXTlutObj* obj, u32 tlut_name) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXLoadTlut.s"
}
#pragma pop
/* 8035E538-8035E62C 358E78 00F4+00 0/0 2/2 0/0 .text GXInitTexCacheRegion */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInitTexCacheRegion(GXTexRegion* region, GXBool is_32b_mipmap, u32 tmem_even,
GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInitTexCacheRegion.s"
}
#pragma pop
/* 8035E62C-8035E664 358F6C 0038+00 0/0 1/1 0/0 .text GXInitTlutRegion */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInitTlutRegion(GXTlutRegion* region, u32 tmem_addr, GXTlutSize tlut_size) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInitTlutRegion.s"
}
#pragma pop
/* 8035E664-8035E6AC 358FA4 0048+00 0/0 8/8 1/1 .text GXInvalidateTexAll */
void GXInvalidateTexAll(void) {
__GXFlushTextureState();
GXFIFO.u8 = 0x61;
GXFIFO.u32 = 0x66001000;
GXFIFO.u8 = 0x61;
GXFIFO.u32 = 0x66001100;
__GXFlushTextureState();
}
/* 8035E6AC-8035E6C0 358FEC 0014+00 0/0 1/1 0/0 .text GXSetTexRegionCallback */
GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback) {
GXTexRegionCallback prev = __GXData->texRegionCB;
__GXData->texRegionCB = callback;
return prev;
}
/* 8035E6C0-8035E6D4 359000 0014+00 0/0 1/1 0/0 .text GXSetTlutRegionCallback */
GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback callback) {
GXTlutRegionCallback prev = __GXData->tlutRegionCB;
__GXData->tlutRegionCB = callback;
return prev;
}
/* 8035E6D4-8035E750 359014 007C+00 0/0 1/1 0/0 .text GXSetTexCoordScaleManually */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 s_scale, u16 t_scale) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXSetTexCoordScaleManually.s"
}
#pragma pop
/* 8035E750-8035E7F0 359090 00A0+00 1/1 0/0 0/0 .text __SetSURegs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __SetSURegs() {
nofralloc
#include "asm/dolphin/gx/GXTexture/__SetSURegs.s"
}
#pragma pop
/* 8035E7F0-8035E96C 359130 017C+00 0/0 2/2 0/0 .text __GXSetSUTexRegs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __GXSetSUTexRegs() {
nofralloc
#include "asm/dolphin/gx/GXTexture/__GXSetSUTexRegs.s"
}
#pragma pop
/* 8035E96C-8035ECC0 3592AC 0354+00 0/0 1/1 0/0 .text __GXSetTmemConfig */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __GXSetTmemConfig() {
nofralloc
#include "asm/dolphin/gx/GXTexture/__GXSetTmemConfig.s"
}
#pragma pop