tp/libs/dolphin/gx/GXTexture.c

465 lines
18 KiB
C

//
// Generated By: dol2asm
// Translation Unit: GXTexture
//
#include "dolphin/gx/GXTexture.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
void __GetImageTileCount();
static void GXLoadTexObjPreLoaded();
void GXLoadTexObj();
void GXLoadTlut();
void GXInitTlutRegion();
void GXInvalidateTexAll();
void __SetSURegs();
void __GXSetSUTexRegs();
void __GXSetTmemConfig();
//
// External References:
//
SECTION_INIT void memset();
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 */
#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
/* ############################################################################################## */
/* 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 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __GetImageTileCount() {
nofralloc
#include "asm/dolphin/gx/GXTexture/__GetImageTileCount.s"
}
#pragma pop
/* ############################################################################################## */
/* 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 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u16 GXGetTexObjWidth(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjWidth.s"
}
#pragma pop
/* 8035E248-8035E258 358B88 0010+00 0/0 3/3 0/0 .text GXGetTexObjHeight */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u16 GXGetTexObjHeight(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjHeight.s"
}
#pragma pop
/* 8035E258-8035E260 358B98 0008+00 0/0 1/1 0/0 .text GXGetTexObjFmt */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm GXTexFmt GXGetTexObjFmt(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjFmt.s"
}
#pragma pop
/* 8035E260-8035E26C 358BA0 000C+00 0/0 1/1 0/0 .text GXGetTexObjWrapS */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm GXTexWrapMode GXGetTexObjWrapS(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjWrapS.s"
}
#pragma pop
/* 8035E26C-8035E278 358BAC 000C+00 0/0 1/1 0/0 .text GXGetTexObjWrapT */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm GXTexWrapMode GXGetTexObjWrapT(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjWrapT.s"
}
#pragma pop
/* 8035E278-8035E290 358BB8 0018+00 0/0 1/1 0/0 .text GXGetTexObjMipMap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm GXBool GXGetTexObjMipMap(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjMipMap.s"
}
#pragma pop
/* 8035E290-8035E298 358BD0 0008+00 0/0 1/1 0/0 .text GXGetTexObjTlut */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 GXGetTexObjTlut(GXTexObj* obj) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXGetTexObjTlut.s"
}
#pragma pop
/* 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 */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void GXInvalidateTexAll(void) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXInvalidateTexAll.s"
}
#pragma pop
/* 8035E6AC-8035E6C0 358FEC 0014+00 0/0 1/1 0/0 .text GXSetTexRegionCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXSetTexRegionCallback.s"
}
#pragma pop
/* 8035E6C0-8035E6D4 359000 0014+00 0/0 1/1 0/0 .text GXSetTlutRegionCallback */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback callback) {
nofralloc
#include "asm/dolphin/gx/GXTexture/GXSetTlutRegionCallback.s"
}
#pragma pop
/* 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