tp/libs/dolphin/gx/GXTexture.cpp

477 lines
18 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: GXTexture
//
#include "dolphin/gx/GXTexture.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void GXGetTexBufferSize();
extern "C" void __GetImageTileCount();
extern "C" void GXInitTexObj();
extern "C" void GXInitTexObjCI();
extern "C" void GXInitTexObjLOD();
extern "C" void GXGetTexObjWidth();
extern "C" void GXGetTexObjHeight();
extern "C" void GXGetTexObjFmt();
extern "C" void GXGetTexObjWrapS();
extern "C" void GXGetTexObjWrapT();
extern "C" void GXGetTexObjMipMap();
extern "C" void GXGetTexObjTlut();
extern "C" static void GXLoadTexObjPreLoaded();
extern "C" void GXLoadTexObj();
extern "C" void GXInitTlutObj();
extern "C" void GXLoadTlut();
extern "C" void GXInitTexCacheRegion();
extern "C" void GXInitTlutRegion();
extern "C" void GXInvalidateTexAll();
extern "C" void GXSetTexRegionCallback();
extern "C" void GXSetTlutRegionCallback();
extern "C" void GXSetTexCoordScaleManually();
extern "C" void __SetSURegs();
extern "C" void __GXSetSUTexRegs();
extern "C" void __GXSetTmemConfig();
//
// External References:
//
SECTION_INIT void memset();
extern "C" void __GXFlushTextureState();
extern "C" extern void* __GXData;
//
// 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 void GXGetTexBufferSize() {
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() {
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() {
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() {
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 void GXGetTexObjWidth() {
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 void GXGetTexObjHeight() {
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 void GXGetTexObjFmt() {
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 void GXGetTexObjWrapS() {
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 void GXGetTexObjWrapT() {
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 void GXGetTexObjMipMap() {
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 void GXGetTexObjTlut() {
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() {
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() {
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() {
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() {
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() {
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() {
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() {
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 void GXSetTexRegionCallback() {
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 void GXSetTlutRegionCallback() {
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() {
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