mirror of
https://github.com/zeldaret/tp
synced 2026-08-22 06:44:53 -04:00
more various JSystem work (#2046)
* most of J3DAnmLoader done * J3D / JKernel / JUTConsole work * remove asm * fix build * dol 50%
This commit is contained in:
@@ -620,7 +620,7 @@ asm J3DAnmVtxColor::J3DAnmVtxColor() {
|
||||
/* 8032A30C-8032A368 324C4C 005C+00 0/0 1/1 0/0 .text __ct__18J3DAnmVtxColorFullFv */
|
||||
J3DAnmVtxColorFull::J3DAnmVtxColorFull() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x18[i] = 0;
|
||||
mpTable[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -638,7 +638,7 @@ asm void J3DAnmVtxColorFull::getColor(u8 param_0, u16 param_1, _GXColor* param_2
|
||||
/* 8032A4E0-8032A53C 324E20 005C+00 0/0 1/1 0/0 .text __ct__17J3DAnmVtxColorKeyFv */
|
||||
J3DAnmVtxColorKey::J3DAnmVtxColorKey() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
field_0x18[i] = 0;
|
||||
mpTable[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -685,11 +685,11 @@ asm void J3DAnmColor::searchUpdateMaterialID(J3DMaterialTable* param_0) {
|
||||
|
||||
/* 8032A93C-8032A990 32527C 0054+00 0/0 1/1 0/0 .text __ct__15J3DAnmColorFullFv */
|
||||
J3DAnmColorFull::J3DAnmColorFull() {
|
||||
field_0x2c = 0;
|
||||
field_0x30 = 0;
|
||||
field_0x34 = 0;
|
||||
field_0x38 = 0;
|
||||
field_0x3c = 0;
|
||||
mColorR = 0;
|
||||
mColorG = 0;
|
||||
mColorB = 0;
|
||||
mColorA = 0;
|
||||
mAnmTable = 0;
|
||||
}
|
||||
|
||||
/* 8032A990-8032AB00 3252D0 0170+00 1/0 0/0 0/0 .text getColor__15J3DAnmColorFullCFUsP8_GXColor */
|
||||
@@ -804,8 +804,8 @@ void J3DAnmTexPattern::searchUpdateMaterialID(J3DModelData* param_0) {
|
||||
/* 8032B0C0-8032B1D4 325A00 0114+00 1/1 1/1 0/0 .text
|
||||
* searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable */
|
||||
void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* param_0) {
|
||||
for (u16 i = 0; i < u16(field_0x14 / 3); i++) {
|
||||
s32 r3 = param_0->getMaterialName()->getIndex(field_0x30.getName(i));
|
||||
for (u16 i = 0; i < u16(mTrackNum / 3); i++) {
|
||||
s32 r3 = param_0->getMaterialName()->getIndex(mUpdateMaterialName.getName(i));
|
||||
if (r3 != -1) {
|
||||
mUpdateMaterialID[i] = r3;
|
||||
} else {
|
||||
@@ -813,11 +813,11 @@ void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* param_0) {
|
||||
}
|
||||
}
|
||||
for (u16 i = 0; i < u16(field_0x4a / 3); i++) {
|
||||
s32 r3 = param_0->getMaterialName()->getIndex(field_0x64.getName(i));
|
||||
s32 r3 = param_0->getMaterialName()->getIndex(mPostUpdateMaterialName.getName(i));
|
||||
if (r3 != -1) {
|
||||
field_0x60[i] = r3;
|
||||
mPostUpdateMaterialID[i] = r3;
|
||||
} else {
|
||||
field_0x60[i] = -1;
|
||||
mPostUpdateMaterialID[i] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,9 +230,7 @@ s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
|
||||
|
||||
/* 803273CC-803275FC 321D0C 0230+00 1/1 0/0 0/0 .text createMatPacket__8J3DModelFP12J3DModelDataUl
|
||||
*/
|
||||
#if defined NON_MATCHING
|
||||
s32 J3DModel::createMatPacket(J3DModelData* p_modelData, u32 flag) {
|
||||
// regalloc
|
||||
if (p_modelData->getMaterialNum() != 0) {
|
||||
mMatPacket = new J3DMatPacket[p_modelData->getMaterialNum()];
|
||||
|
||||
@@ -243,19 +241,20 @@ s32 J3DModel::createMatPacket(J3DModelData* p_modelData, u32 flag) {
|
||||
|
||||
s32 ret;
|
||||
u16 matNum = p_modelData->getMaterialNum();
|
||||
u16 i = 0;
|
||||
|
||||
u32 singleDLFlag = flag & 0x40000;
|
||||
for (; i < matNum; i++) {
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
J3DMaterial* materialNode = p_modelData->getMaterialNodePointer(i);
|
||||
J3DMatPacket* pkt = getMatPacket(i);
|
||||
J3DMatPacket* pkt = mMatPacket + i;
|
||||
|
||||
u16 shapeIndex = materialNode->getShape()->getIndex();
|
||||
J3DShapePacket* shapePacket = getShapePacket(shapeIndex);
|
||||
pkt->mpMaterial = materialNode;
|
||||
pkt->mpInitShapePacket = shapePacket;
|
||||
J3DShapePacket* shapePacket = mShapePacket + shapeIndex;
|
||||
|
||||
pkt->setMaterial(materialNode);
|
||||
pkt->setInitShapePacket(shapePacket);
|
||||
pkt->addShapePacket(shapePacket);
|
||||
pkt->mpTexture = p_modelData->getMaterialTable().getTexture();
|
||||
pkt->mDiffFlag = materialNode->mDiffFlag;
|
||||
pkt->setTexture(p_modelData->getTexture());
|
||||
pkt->setMaterialID(materialNode->mDiffFlag);
|
||||
|
||||
if (p_modelData->getModelDataType() == 1) {
|
||||
pkt->mFlags |= 0x01;
|
||||
@@ -310,16 +309,6 @@ s32 J3DModel::createMatPacket(J3DModelData* p_modelData, u32 flag) {
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DModel::createMatPacket(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/createMatPacket__8J3DModelFP12J3DModelDataUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803275FC-8032767C 321F3C 0080+00 0/0 1/1 0/0 .text newDifferedDisplayList__8J3DModelFUl */
|
||||
s32 J3DModel::newDifferedDisplayList(u32 flag) {
|
||||
@@ -373,7 +362,7 @@ void J3DModel::calcMaterial() {
|
||||
u16 matNum = mModelData->getMaterialNum();
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
j3dSys.setMatPacket(&mMatPacket[i]);
|
||||
|
||||
|
||||
J3DMaterial* material = mModelData->getMaterialNodePointer(i);
|
||||
if (material->getMaterialAnm() != NULL) {
|
||||
material->getMaterialAnm()->calc(material);
|
||||
@@ -401,7 +390,8 @@ void J3DModel::calcDiffTexMtx() {
|
||||
num = getModelData()->getShapeNum();
|
||||
for (u16 i = 0; i < num; i++) {
|
||||
J3DShapePacket* shapePacket = getShapePacket(i);
|
||||
J3DTexGenBlock* texGenBlock = getModelData()->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
|
||||
J3DTexGenBlock* texGenBlock =
|
||||
getModelData()->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
|
||||
for (u16 j = 0; (int)j < 8; j++) {
|
||||
J3DTexMtx* texMtxNode = texGenBlock->getTexMtx(j);
|
||||
J3DTexMtxObj* texMtxObj = shapePacket->getTexMtxObj();
|
||||
@@ -620,11 +610,13 @@ void J3DModel::viewCalc() {
|
||||
|
||||
if (mModelData->checkFlag(0x10)) {
|
||||
if (getMtxCalcMode() == 2) {
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mInternalView);
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx,
|
||||
(MtxP)&mInternalView);
|
||||
}
|
||||
} else if (isCpuSkinningOn()) {
|
||||
if (getMtxCalcMode() == 2) {
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mInternalView);
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx,
|
||||
(MtxP)&mInternalView);
|
||||
}
|
||||
} else if (checkFlag(J3DMdlFlag_SkinPosCpu)) {
|
||||
mMtxBuffer->calcDrawMtx(getMtxCalcMode(), mBaseScale, mBaseTransformMtx);
|
||||
@@ -663,7 +655,8 @@ void J3DModel::calcBumpMtx() {
|
||||
for (; i < materialNum; i++) {
|
||||
J3DMaterial* material = getModelData()->getMaterialNodePointer(i);
|
||||
if (material->getNBTScale()->mbHasScale == 1) {
|
||||
material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(), getNrmMtxPtr(), getBumpMtxPtr(bumpMtxIdx));
|
||||
material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(),
|
||||
getNrmMtxPtr(), getBumpMtxPtr(bumpMtxIdx));
|
||||
DCStoreRange(getBumpMtxPtr(bumpMtxIdx), getModelData()->getDrawMtxNum() * 0x24);
|
||||
bumpMtxIdx++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user