mirror of
https://github.com/zeldaret/tp
synced 2026-06-22 17:03:09 -04:00
@@ -247,8 +247,7 @@ J3DDrawPacket::J3DDrawPacket() {
|
||||
}
|
||||
|
||||
/* 803127B0-8031280C 30D0F0 005C+00 3/2 0/0 0/0 .text __dt__13J3DDrawPacketFv */
|
||||
J3DDrawPacket::~J3DDrawPacket() {
|
||||
}
|
||||
J3DDrawPacket::~J3DDrawPacket() {}
|
||||
|
||||
/* 8031280C-80312898 30D14C 008C+00 1/1 1/1 0/0 .text newDisplayList__13J3DDrawPacketFUl
|
||||
*/
|
||||
|
||||
@@ -72,34 +72,34 @@ enum {
|
||||
kVcdVatDLSize = 0xC0,
|
||||
};
|
||||
|
||||
void J3DShape::initialize() {
|
||||
mMaterial = NULL;
|
||||
mIndex = -1;
|
||||
mMtxGroupNum = 0;
|
||||
mFlags = 0;
|
||||
mRadius = 0.0f;
|
||||
mMin.x = 0.0f;
|
||||
mMin.y = 0.0f;
|
||||
mMin.z = 0.0f;
|
||||
mMax.x = 0.0f;
|
||||
mMax.y = 0.0f;
|
||||
mMax.z = 0.0f;
|
||||
mVtxDesc = NULL;
|
||||
mShapeMtx = NULL;
|
||||
mShapeDraw = NULL;
|
||||
mVertexData = NULL;
|
||||
mDrawMtxData = NULL;
|
||||
mScaleFlagArray = NULL;
|
||||
mDrawMtx = NULL;
|
||||
mNrmMtx = NULL;
|
||||
mCurrentViewNo = &j3dDefaultViewNo;
|
||||
mHasNBT = false;
|
||||
mHasPNMTXIdx = false;
|
||||
void J3DShape::initialize() {
|
||||
mMaterial = NULL;
|
||||
mIndex = -1;
|
||||
mMtxGroupNum = 0;
|
||||
mFlags = 0;
|
||||
mRadius = 0.0f;
|
||||
mMin.x = 0.0f;
|
||||
mMin.y = 0.0f;
|
||||
mMin.z = 0.0f;
|
||||
mMax.x = 0.0f;
|
||||
mMax.y = 0.0f;
|
||||
mMax.z = 0.0f;
|
||||
mVtxDesc = NULL;
|
||||
mShapeMtx = NULL;
|
||||
mShapeDraw = NULL;
|
||||
mVertexData = NULL;
|
||||
mDrawMtxData = NULL;
|
||||
mScaleFlagArray = NULL;
|
||||
mDrawMtx = NULL;
|
||||
mNrmMtx = NULL;
|
||||
mCurrentViewNo = &j3dDefaultViewNo;
|
||||
mHasNBT = false;
|
||||
mHasPNMTXIdx = false;
|
||||
}
|
||||
|
||||
/* 80314BB8-80314CBC 30F4F8 0104+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl */
|
||||
void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 valueBase) {
|
||||
u32 kSize[] = { 0, 1, 1, 2 };
|
||||
u32 kSize[] = {0, 1, 1, 2};
|
||||
|
||||
s32 pnmtxidxOffs = -1;
|
||||
s32 attrOffs = -1;
|
||||
@@ -200,8 +200,8 @@ void J3DShape::loadVtxArray() const {
|
||||
|
||||
/* 80314F5C-80314F98 30F89C 003C+00 0/0 1/1 0/0 .text isSameVcdVatCmd__8J3DShapeFP8J3DShape */
|
||||
bool J3DShape::isSameVcdVatCmd(J3DShape* other) {
|
||||
u8 *a = other->mVcdVatCmd;
|
||||
u8 *b = mVcdVatCmd;
|
||||
u8* a = other->mVcdVatCmd;
|
||||
u8* b = mVcdVatCmd;
|
||||
for (u32 i = 0; i < kVcdVatDLSize; i++)
|
||||
if (a[i] != b[i])
|
||||
return false;
|
||||
@@ -210,7 +210,7 @@ bool J3DShape::isSameVcdVatCmd(J3DShape* other) {
|
||||
|
||||
/* 80314F98-80315260 30F8D8 02C8+00 1/1 0/0 0/0 .text makeVtxArrayCmd__8J3DShapeFv */
|
||||
void J3DShape::makeVtxArrayCmd() {
|
||||
GXVtxAttrFmtList *vtxAttr = mVertexData->getVtxAttrFmtList();
|
||||
GXVtxAttrFmtList* vtxAttr = mVertexData->getVtxAttrFmtList();
|
||||
|
||||
u8 stride[0x0C];
|
||||
void* array[0x0C];
|
||||
@@ -221,35 +221,30 @@ void J3DShape::makeVtxArrayCmd() {
|
||||
|
||||
for (; vtxAttr->mAttrib != GX_VA_NULL; vtxAttr++) {
|
||||
switch (vtxAttr->mAttrib) {
|
||||
case GX_VA_POS:
|
||||
{
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxPosArray();
|
||||
mVertexData->setVtxPosFrac(vtxAttr->mCompShift);
|
||||
mVertexData->setVtxPosType((GXCompType) vtxAttr->mCompType);
|
||||
}
|
||||
break;
|
||||
case GX_VA_NRM:
|
||||
{
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxNrmArray();
|
||||
mVertexData->setVtxNrmFrac(vtxAttr->mCompShift);
|
||||
mVertexData->setVtxNrmType((GXCompType) vtxAttr->mCompType);
|
||||
}
|
||||
break;
|
||||
case GX_VA_POS: {
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxPosArray();
|
||||
mVertexData->setVtxPosFrac(vtxAttr->mCompShift);
|
||||
mVertexData->setVtxPosType((GXCompType)vtxAttr->mCompType);
|
||||
} break;
|
||||
case GX_VA_NRM: {
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxNrmArray();
|
||||
mVertexData->setVtxNrmFrac(vtxAttr->mCompShift);
|
||||
mVertexData->setVtxNrmType((GXCompType)vtxAttr->mCompType);
|
||||
} break;
|
||||
case GX_VA_CLR0:
|
||||
case GX_VA_CLR1:
|
||||
{
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxColorArray(vtxAttr->mAttrib - GX_VA_CLR0);
|
||||
}
|
||||
break;
|
||||
case GX_VA_CLR1: {
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] =
|
||||
mVertexData->getVtxColorArray(vtxAttr->mAttrib - GX_VA_CLR0);
|
||||
} break;
|
||||
case GX_VA_TEX0:
|
||||
case GX_VA_TEX1:
|
||||
case GX_VA_TEX2:
|
||||
@@ -257,15 +252,14 @@ void J3DShape::makeVtxArrayCmd() {
|
||||
case GX_VA_TEX4:
|
||||
case GX_VA_TEX5:
|
||||
case GX_VA_TEX6:
|
||||
case GX_VA_TEX7:
|
||||
{
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x08;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxTexCoordArray(vtxAttr->mAttrib - GX_VA_TEX0);
|
||||
}
|
||||
break;
|
||||
case GX_VA_TEX7: {
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x08;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] =
|
||||
mVertexData->getVtxTexCoordArray(vtxAttr->mAttrib - GX_VA_TEX0);
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "MSL_C/MSL_Common/Src/string.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// External References:
|
||||
|
||||
@@ -778,8 +778,7 @@ u32 J3DShapeMtxConcatView::getType() const {
|
||||
}
|
||||
|
||||
/* 80314798-803147E0 30F0D8 0048+00 1/0 0/0 0/0 .text __dt__11J3DShapeMtxFv */
|
||||
J3DShapeMtx::~J3DShapeMtx() {
|
||||
}
|
||||
J3DShapeMtx::~J3DShapeMtx() {}
|
||||
|
||||
/* 803147E0-803147EC 30F120 000C+00 1/0 0/0 0/0 .text getType__11J3DShapeMtxCFv */
|
||||
u32 J3DShapeMtx::getType() const {
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/gx/GXPixel.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
||||
|
||||
@@ -102,8 +102,13 @@ void J3DSys::loadNrmMtxIndx(int addr, u16 indx) const {
|
||||
/* 8030FF0C-803100BC 30A84C 01B0+00 1/1 0/0 0/0 .text setTexCacheRegion__6J3DSysF15_GXTexCacheSize
|
||||
*/
|
||||
void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
const u32 kSize[] = { 0x00008000, 0x00020000, 0x00080000, 0x00000000, };
|
||||
const u32 kRegionNum[] = { 8, 4, 1, 0 };
|
||||
const u32 kSize[] = {
|
||||
0x00008000,
|
||||
0x00020000,
|
||||
0x00080000,
|
||||
0x00000000,
|
||||
};
|
||||
const u32 kRegionNum[] = {8, 4, 1, 0};
|
||||
|
||||
u32 regionNum = kRegionNum[size];
|
||||
mTexCacheRegionNum = regionNum;
|
||||
@@ -111,17 +116,23 @@ void J3DSys::setTexCacheRegion(GXTexCacheSize size) {
|
||||
if (!!(mFlags & 0x80000000)) {
|
||||
for (u32 i = 0; i < regionNum; i++) {
|
||||
if (!!(i & 1)) {
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size] + 0x80000, size, i * kSize[size], size);
|
||||
J3DFifoLoadTexCached((GXTexMapID) i, i * kSize[size] + 0x80000, size, i * kSize[size], size);
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size] + 0x80000, size,
|
||||
i * kSize[size], size);
|
||||
J3DFifoLoadTexCached((GXTexMapID)i, i * kSize[size] + 0x80000, size,
|
||||
i * kSize[size], size);
|
||||
} else {
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size, i * kSize[size] + 0x80000, size);
|
||||
J3DFifoLoadTexCached((GXTexMapID) i, i * kSize[size], size, i * kSize[size] + 0x80000, size);
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size,
|
||||
i * kSize[size] + 0x80000, size);
|
||||
J3DFifoLoadTexCached((GXTexMapID)i, i * kSize[size], size,
|
||||
i * kSize[size] + 0x80000, size);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (u32 i = 0; i < regionNum; i++) {
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size, i * kSize[size] + 0x80000, size);
|
||||
J3DFifoLoadTexCached((GXTexMapID) i, i * kSize[size], size, i * kSize[size] + 0x80000, size);
|
||||
GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size,
|
||||
i * kSize[size] + 0x80000, size);
|
||||
J3DFifoLoadTexCached((GXTexMapID)i, i * kSize[size], size, i * kSize[size] + 0x80000,
|
||||
size);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,9 +144,7 @@ SECTION_DATA static u8 NullTexData[16] = {
|
||||
|
||||
/* 803CD8B0-803CD8E0 02A9D0 0030+00 1/1 0/0 0/0 .data j3dIdentityMtx */
|
||||
SECTION_DATA static Mtx j3dIdentityMtx = {
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
0.0f, 0.0f, 1.0f, 0.0f,
|
||||
1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
};
|
||||
|
||||
/* 803100BC-8031073C 30A9FC 0680+00 0/0 3/3 0/0 .text drawInit__6J3DSysFv */
|
||||
@@ -188,8 +197,8 @@ void J3DSys::drawInit() {
|
||||
GXLoadTexMtxImm(j3dIdentityMtx, GX_TEXMTX0 + i * 3, GX_MTX3x4);
|
||||
|
||||
Mtx23 indTexMtx = {
|
||||
{ 0.5f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.5f, 0.0f },
|
||||
{0.5f, 0.0f, 0.0f},
|
||||
{0.0f, 0.5f, 0.0f},
|
||||
};
|
||||
|
||||
u8 i;
|
||||
@@ -206,7 +215,9 @@ void J3DSys::drawInit() {
|
||||
GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEXMAP; i++)
|
||||
GXSetTexCoordGen2((GXTexCoordID)i, (GXTexGenType) j3dDefaultTexCoordInfo[i].mTexGenType, (GXTexGenSrc) j3dDefaultTexCoordInfo[i].mTexGenSrc, j3dDefaultTexCoordInfo[i].mTexGenMtx, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2((GXTexCoordID)i, (GXTexGenType)j3dDefaultTexCoordInfo[i].mTexGenType,
|
||||
(GXTexGenSrc)j3dDefaultTexCoordInfo[i].mTexGenSrc,
|
||||
j3dDefaultTexCoordInfo[i].mTexGenMtx, GX_FALSE, GX_PTIDENTITY);
|
||||
|
||||
for (i = 0; i < GX_MAX_INDTEXSTAGE; i++)
|
||||
GXSetIndTexCoordScale((GXIndTexStageID)i, GX_ITS_1, GX_ITS_1);
|
||||
@@ -219,9 +230,11 @@ void J3DSys::drawInit() {
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++) {
|
||||
GXSetTevColorIn((GXTevStageID)i, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO);
|
||||
GXSetTevColorOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevColorOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO);
|
||||
GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
}
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++)
|
||||
@@ -233,7 +246,8 @@ void J3DSys::drawInit() {
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
|
||||
for (i = 0; i < GX_MAX_TEVSTAGE; i++)
|
||||
GXSetTevIndirect((GXTevStageID)i, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, GX_ITW_OFF, GX_FALSE, GX_FALSE, GX_ITBA_OFF);
|
||||
GXSetTevIndirect((GXTevStageID)i, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF,
|
||||
GX_ITW_OFF, GX_ITW_OFF, GX_FALSE, GX_FALSE, GX_ITBA_OFF);
|
||||
|
||||
OSInitFastCast();
|
||||
setTexCacheRegion(GX_TEXCACHE_32K);
|
||||
|
||||
@@ -252,7 +252,7 @@ asm void loadTexNo(u32 param_0, u16 const& param_1) {
|
||||
|
||||
/* 8032413C-80324160 31EA7C 0024+00 0/0 2/2 0/0 .text patchTexNo_PtrToIdx__FUlRCUs */
|
||||
void patchTexNo_PtrToIdx(u32 texID, u16 const& idx) {
|
||||
J3DGDSetTexImgPtrRaw((GXTexMapID) texID, idx);
|
||||
J3DGDSetTexImgPtrRaw((GXTexMapID)texID, idx);
|
||||
}
|
||||
|
||||
/* 80324160-80324194 31EAA0 0034+00 0/0 2/2 0/0 .text loadNBTScale__FR11J3DNBTScale */
|
||||
@@ -277,14 +277,10 @@ COMPILER_STRIP_GATE(0x803A1EC8, &j3dDefaultLightInfo);
|
||||
|
||||
/* 803A1EFC-803A1F1C 02E55C 0020+00 0/0 5/5 0/0 .rodata j3dDefaultTexCoordInfo */
|
||||
SECTION_RODATA extern J3DDefaultTexCoordInfo const j3dDefaultTexCoordInfo[8] = {
|
||||
{ GX_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0 },
|
||||
{ GX_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0 },
|
||||
{GX_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0},
|
||||
{GX_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0},
|
||||
{GX_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0},
|
||||
{GX_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A1EFC, &j3dDefaultTexCoordInfo);
|
||||
|
||||
@@ -456,7 +452,7 @@ static asm void J3DGDLoadPostTexMtxImm(f32 (*param_0)[4], u32 param_1) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804563C0-804563C4 0049C0 0004+00 0/0 4/4 0/0 .sdata2 j3dDefaultColInfo */
|
||||
SECTION_SDATA2 extern GXColor j3dDefaultColInfo = { 0xFF, 0xFF, 0xFF, 0xFF };
|
||||
SECTION_SDATA2 extern GXColor j3dDefaultColInfo = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
|
||||
/* 804563C4-804563C8 0049C4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultAmbInfo */
|
||||
SECTION_SDATA2 extern u32 j3dDefaultAmbInfo = 0x32323232;
|
||||
@@ -471,7 +467,7 @@ SECTION_SDATA2 extern u32 j3dDefaultTevOrderInfoNull = 0xFFFFFF00;
|
||||
SECTION_SDATA2 extern u32 j3dDefaultIndTexOrderNull = 0xFFFF0000;
|
||||
|
||||
/* 804563D4-804563D8 0049D4 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevColor */
|
||||
SECTION_SDATA2 extern GXColorS10 j3dDefaultTevColor = { 0xFF, 0xFF, 0xFF, 0xFF };
|
||||
SECTION_SDATA2 extern GXColorS10 j3dDefaultTevColor = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
|
||||
/* 804563DC-804563E0 0049DC 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexCoordScaleInfo */
|
||||
SECTION_SDATA2 extern u8 j3dDefaultIndTexCoordScaleInfo[4] = {
|
||||
@@ -482,7 +478,7 @@ SECTION_SDATA2 extern u8 j3dDefaultIndTexCoordScaleInfo[4] = {
|
||||
};
|
||||
|
||||
/* 804563E0-804563E4 0049E0 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevKColor */
|
||||
SECTION_SDATA2 extern GXColor j3dDefaultTevKColor = { 0xFF, 0xFF, 0xFF, 0xFF };
|
||||
SECTION_SDATA2 extern GXColor j3dDefaultTevKColor = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
|
||||
/* 804563E4-804563E8 0049E4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapMode */
|
||||
SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = {
|
||||
|
||||
@@ -14,23 +14,25 @@ void J3DTexture::loadGX(u16 idx, GXTexMapID texMapID) const {
|
||||
|
||||
if (!timg->palettesEnabled) {
|
||||
GXInitTexObj(&texObj, ((u8*)timg) + timg->texDataOffset, timg->width, timg->height,
|
||||
(GXTexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT,
|
||||
(GXBool)timg->mipmapEnabled);
|
||||
(GXTexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT,
|
||||
(GXBool)timg->mipmapEnabled);
|
||||
} else {
|
||||
GXTlutObj tlutObj;
|
||||
|
||||
GXInitTexObjCI(&texObj, ((u8*)timg) + timg->texDataOffset, timg->width, timg->height,
|
||||
(GXCITexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT,
|
||||
(GXBool)timg->mipmapEnabled, (u32)texMapID);
|
||||
GXInitTlutObj(&tlutObj, ((u8*)timg) + timg->paletteOffset, (GXTlutFmt)timg->paletteFormat, timg->paletteCount);
|
||||
(GXCITexFmt)timg->format, (GXTexWrapMode)timg->wrapS,
|
||||
(GXTexWrapMode)timg->wrapT, (GXBool)timg->mipmapEnabled, (u32)texMapID);
|
||||
GXInitTlutObj(&tlutObj, ((u8*)timg) + timg->paletteOffset, (GXTlutFmt)timg->paletteFormat,
|
||||
timg->paletteCount);
|
||||
GXLoadTlut(&tlutObj, texMapID);
|
||||
}
|
||||
|
||||
const f32 kLODClampScale = 1.0f / 8.0f;
|
||||
const f32 kLODBiasScale = 1.0f / 100.0f;
|
||||
GXInitTexObjLOD(&texObj, (GXTexFilter) timg->minFilter, (GXTexFilter) timg->magFilter,
|
||||
timg->minLOD * kLODClampScale, timg->maxLOD * kLODClampScale, timg->LODBias * kLODBiasScale,
|
||||
(GXBool) timg->biasClamp, (GXBool) timg->doEdgeLOD, (GXAnisotropy) timg->maxAnisotropy);
|
||||
GXInitTexObjLOD(&texObj, (GXTexFilter)timg->minFilter, (GXTexFilter)timg->magFilter,
|
||||
timg->minLOD * kLODClampScale, timg->maxLOD * kLODClampScale,
|
||||
timg->LODBias * kLODBiasScale, (GXBool)timg->biasClamp, (GXBool)timg->doEdgeLOD,
|
||||
(GXAnisotropy)timg->maxAnisotropy);
|
||||
GXLoadTexObj(&texObj, texMapID);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user