mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
more simple J2D/J3D funcs (#166)
* more simple J2D/J3D funcs * JPABaseShape constructor * fmt Co-authored-by: lepelog <25211966+lepelog@users.noreply.github.com>
This commit is contained in:
co-authored by
lepelog
parent
f7916ebde1
commit
c15d8fcb3e
@@ -191,14 +191,10 @@ asm void J2DGrafContext::setColor(JUtility::TColor param_0, JUtility::TColor par
|
||||
|
||||
/* 802E9234-802E9260 2E3B74 002C+00 1/1 2/2 0/0 .text setLineWidth__14J2DGrafContextFUc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DGrafContext::setLineWidth(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DGrafContext/setLineWidth__14J2DGrafContextFUc.s"
|
||||
void J2DGrafContext::setLineWidth(u8 param_0) {
|
||||
mLineWidth = param_0;
|
||||
GXSetLineWidth(mLineWidth, GX_TO_ZERO);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802E9260-802E9368 2E3BA0 0108+00 0/0 2/2 0/0 .text
|
||||
* fillBox__14J2DGrafContextFRCQ29JGeometry8TBox2<f> */
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "JSystem/J2DGraph/J2DTevs.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
@@ -19,8 +20,8 @@ struct J2DTevBlock {
|
||||
/* 802EA14C */ bool getTevKAlphaSel(u32);
|
||||
/* 802EA154 */ bool getTevKColorSel(u32);
|
||||
/* 802EA15C */ bool getTevKColor(u32);
|
||||
/* 802EA164 */ void getFontNo() const;
|
||||
/* 802EA170 */ void getTexNo(u32) const;
|
||||
/* 802EA164 */ u32 getFontNo() const;
|
||||
/* 802EA170 */ u32 getTexNo(u32) const;
|
||||
/* 802EA17C */ bool getTevStageNum() const;
|
||||
/* 802EA184 */ bool getIndTevStage(u32);
|
||||
};
|
||||
@@ -82,11 +83,6 @@ extern "C" extern u16 j2dDefaultAlphaCmp;
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void GXSetTevIndirect();
|
||||
extern "C" void GXSetIndTexMtx();
|
||||
extern "C" void GXSetIndTexCoordScale();
|
||||
extern "C" void GXSetIndTexOrder();
|
||||
extern "C" void GXLoadTexMtxImm();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void cos();
|
||||
@@ -97,24 +93,18 @@ extern "C" void sin();
|
||||
//
|
||||
|
||||
/* 802E9C90-802E9CC4 2E45D0 0034+00 0/0 1/1 0/0 .text load__9J2DTexMtxFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DTexMtx::load(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/load__9J2DTexMtxFUl.s"
|
||||
void J2DTexMtx::load(u32 mtxIdx) {
|
||||
GXLoadTexMtxImm(mTexMtx, mtxIdx * 3 + GX_TEXMTX0, mInfo.getTexMtxType());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802E9CC4-802E9D2C 2E4604 0068+00 0/0 2/2 0/0 .text calc__9J2DTexMtxFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DTexMtx::calc() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/calc__9J2DTexMtxFv.s"
|
||||
void J2DTexMtx::calc() {
|
||||
if (mInfo.mTexMtxDCC == J2DTexMtxInfo::DCC_NONE) {
|
||||
getTextureMtx(mInfo.mTexSRTInfo, mInfo.mCenter, mTexMtx);
|
||||
} else if (mInfo.mTexMtxDCC == J2DTexMtxInfo::DCC_MAYA) {
|
||||
getTextureMtxMaya(mInfo.mTexSRTInfo, mTexMtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456168-8045616C 004768 0004+00 2/2 0/0 0/0 .sdata2 @1488 */
|
||||
@@ -162,44 +152,26 @@ asm void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, f32 (*pa
|
||||
#pragma pop
|
||||
|
||||
/* 802EA044-802EA098 2E4984 0054+00 0/0 5/5 0/0 .text load__14J2DIndTevStageFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DIndTevStage::load(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTevStageFUc.s"
|
||||
void J2DIndTevStage::load(u8 tevStage) {
|
||||
GXSetTevIndirect((GXTevStageID)tevStage, getIndStage(), getIndFormat(), getBiasSel(),
|
||||
getMtxSel(), getWrapS(), getWrapT(), getPrev(), getLod(), getAlphaSel());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802EA098-802EA0CC 2E49D8 0034+00 0/0 1/1 0/0 .text load__12J2DIndTexMtxFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DIndTexMtx::load(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/load__12J2DIndTexMtxFUc.s"
|
||||
void J2DIndTexMtx::load(u8 indTexMtx) {
|
||||
GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + indTexMtx), mIndTexMtxInfo.mMtx,
|
||||
mIndTexMtxInfo.mScaleExp);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802EA0CC-802EA0FC 2E4A0C 0030+00 0/0 1/1 0/0 .text load__19J2DIndTexCoordScaleFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DIndTexCoordScale::load(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/load__19J2DIndTexCoordScaleFUc.s"
|
||||
void J2DIndTexCoordScale::load(u8 indTexStage) {
|
||||
GXSetIndTexCoordScale((GXIndTexStageID)indTexStage, mInfo.getScaleS(), mInfo.getScaleT());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802EA0FC-802EA12C 2E4A3C 0030+00 0/0 1/1 0/0 .text load__14J2DIndTexOrderFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DIndTexOrder::load(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTexOrderFUc.s"
|
||||
void J2DIndTexOrder::load(u8 indTexStage) {
|
||||
GXSetIndTexOrder((GXIndTexStageID)indTexStage, mInfo.getTexCoordID(), mInfo.getTexMapID());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802EA12C-802EA134 2E4A6C 0008+00 0/0 1/0 0/0 .text getTevSwapModeTable__11J2DTevBlockFUl */
|
||||
bool J2DTevBlock::getTevSwapModeTable(u32 param_0) {
|
||||
@@ -239,24 +211,14 @@ bool J2DTevBlock::getTevKColor(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 802EA164-802EA170 2E4AA4 000C+00 0/0 1/0 0/0 .text getFontNo__11J2DTevBlockCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DTevBlock::getFontNo() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/getFontNo__11J2DTevBlockCFv.s"
|
||||
u32 J2DTevBlock::getFontNo() const {
|
||||
return 0xFFFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802EA170-802EA17C 2E4AB0 000C+00 0/0 1/0 0/0 .text getTexNo__11J2DTevBlockCFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DTevBlock::getTexNo(u32 param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DTevs/getTexNo__11J2DTevBlockCFUl.s"
|
||||
u32 J2DTevBlock::getTexNo(u32 param_0) const {
|
||||
return 0xFFFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802EA17C-802EA184 2E4ABC 0008+00 0/0 1/0 0/0 .text getTevStageNum__11J2DTevBlockCFv */
|
||||
bool J2DTevBlock::getTevStageNum() const {
|
||||
|
||||
@@ -58,19 +58,19 @@ extern "C" u8 entryNum__13J3DDrawBuffer[4 + 4 /* padding */];
|
||||
|
||||
/* 8032EC28-8032ECAC 329568 0084+00 0/0 1/1 0/0 .text
|
||||
* init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf */
|
||||
void J3DMtxCalcJ3DSysInitBasic::init(Vec const& param_0, Mtx const& param_1) {
|
||||
J3DSys::mCurrentS = param_0;
|
||||
void J3DMtxCalcJ3DSysInitBasic::init(Vec const& scale, Mtx const& mtx) {
|
||||
J3DSys::mCurrentS = scale;
|
||||
J3DSys::mParentS = (Vec){1.0f, 1.0f, 1.0f};
|
||||
JMAMTXApplyScale(param_1, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
JMAMTXApplyScale(mtx, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
J3DSys::mCurrentS.z);
|
||||
}
|
||||
|
||||
/* 8032ECAC-8032ED30 3295EC 0084+00 0/0 2/2 2/2 .text
|
||||
* init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf */
|
||||
void J3DMtxCalcJ3DSysInitMaya::init(Vec const& param_0, Mtx const& param_1) {
|
||||
void J3DMtxCalcJ3DSysInitMaya::init(Vec const& scale, Mtx const& mtx) {
|
||||
J3DSys::mParentS = (Vec){1.0f, 1.0f, 1.0f};
|
||||
J3DSys::mCurrentS = param_0;
|
||||
JMAMTXApplyScale(param_1, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
J3DSys::mCurrentS = scale;
|
||||
JMAMTXApplyScale(mtx, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
J3DSys::mCurrentS.z);
|
||||
}
|
||||
|
||||
@@ -166,19 +166,19 @@ void J3DMtxCalcCalcTransformMaya::calcTransform(J3DTransformInfo const& transInf
|
||||
}
|
||||
|
||||
if (joint->getScaleCompensate() == 1) {
|
||||
f32 tmp1 = JMath::fastReciprocal(J3DSys::mParentS.x);
|
||||
f32 tmp2 = JMath::fastReciprocal(J3DSys::mParentS.y);
|
||||
f32 tmp3 = JMath::fastReciprocal(J3DSys::mParentS.z);
|
||||
f32 invX = JMath::fastReciprocal(J3DSys::mParentS.x);
|
||||
f32 invY = JMath::fastReciprocal(J3DSys::mParentS.y);
|
||||
f32 invZ = JMath::fastReciprocal(J3DSys::mParentS.z);
|
||||
|
||||
anmMtx[0][0] *= tmp1;
|
||||
anmMtx[0][1] *= tmp1;
|
||||
anmMtx[0][2] *= tmp1;
|
||||
anmMtx[1][0] *= tmp2;
|
||||
anmMtx[1][1] *= tmp2;
|
||||
anmMtx[1][2] *= tmp2;
|
||||
anmMtx[2][0] *= tmp3;
|
||||
anmMtx[2][1] *= tmp3;
|
||||
anmMtx[2][2] *= tmp3;
|
||||
anmMtx[0][0] *= invX;
|
||||
anmMtx[0][1] *= invX;
|
||||
anmMtx[0][2] *= invX;
|
||||
anmMtx[1][0] *= invY;
|
||||
anmMtx[1][1] *= invY;
|
||||
anmMtx[1][2] *= invY;
|
||||
anmMtx[2][0] *= invZ;
|
||||
anmMtx[2][1] *= invZ;
|
||||
anmMtx[2][2] *= invZ;
|
||||
}
|
||||
|
||||
PSMTXConcat(J3DSys::mCurrentMtx, anmMtx, J3DSys::mCurrentMtx);
|
||||
@@ -227,7 +227,7 @@ SECTION_SDATA2 static u8 lit_1220[4] = {
|
||||
/* 8032F170-8032F254 329AB0 00E4+00 0/0 1/1 0/0 .text __ct__8J3DJointFv */
|
||||
#ifdef NONMATCHING
|
||||
J3DJoint::J3DJoint() {
|
||||
field_0x0 = NULL;
|
||||
mCallBackUserData = NULL;
|
||||
mCallBack = NULL;
|
||||
field_0x8 = NULL;
|
||||
mChild = NULL;
|
||||
@@ -236,7 +236,7 @@ J3DJoint::J3DJoint() {
|
||||
mMtxType = 1;
|
||||
mScaleCompensate = false;
|
||||
mTransformInfo = j3dDefaultTransformInfo;
|
||||
field_0x38 = 0.0f;
|
||||
mBoundingSphereRadius = 0.0f;
|
||||
mMtxCalc = NULL;
|
||||
mMesh = NULL;
|
||||
|
||||
|
||||
@@ -99,25 +99,12 @@ SECTION_DATA static void* lit_871[19] = {
|
||||
0xCC),
|
||||
};
|
||||
|
||||
/* 803CECF4-803CED08 02BE14 0010+04 2/2 1/1 0/0 .data __vt__12J3DJointTree */
|
||||
SECTION_DATA extern void* __vt__12J3DJointTree[4 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf,
|
||||
(void*)__dt__12J3DJointTreeFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80325A18-80325A9C 320358 0084+00 0/0 1/1 0/0 .text __ct__12J3DJointTreeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DJointTree::J3DJointTree() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/__ct__12J3DJointTreeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DJointTree::J3DJointTree()
|
||||
: mHierarchy(NULL), mFlags(0), mModelDataType(0), mRootNode(NULL), mBasicMtxCalc(NULL),
|
||||
mJointNodePointer(NULL), mJointNum(0), mWEvlpMtxNum(0), mWEvlpMixMtxNum(0), mWEvlpMixIndex(0),
|
||||
mWEvlpMixWeight(0), mInvJointMtx(NULL), mWEvlpImportantMtxIdx(0), field_0x40(0),
|
||||
mJointName(NULL) {}
|
||||
|
||||
/* 80325A9C-80325C00 3203DC 0164+00 1/0 2/2 0/0 .text
|
||||
* makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable
|
||||
@@ -152,32 +139,23 @@ asm void J3DJointTree::findImportantMtxIndex() {
|
||||
|
||||
/* 80325CAC-80325D1C 3205EC 0070+00 1/0 0/0 0/0 .text
|
||||
* calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DJointTree::calc(J3DMtxBuffer* param_0, Vec const& param_1, f32 const (¶m_2)[3][4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf.s"
|
||||
void J3DJointTree::calc(J3DMtxBuffer* pMtxBuffer, Vec const& scale, f32 const (&mtx)[3][4]) {
|
||||
getBasicMtxCalc()->init(scale, (Mtx*)mtx);
|
||||
J3DMtxCalc::setMtxBuffer(pMtxBuffer);
|
||||
J3DJoint* root = getRootNode();
|
||||
|
||||
if (root == NULL)
|
||||
return;
|
||||
|
||||
root->setCurrentMtxCalc(getBasicMtxCalc());
|
||||
root->recursiveCalc();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80325D1C-80325D24 32065C 0008+00 1/1 0/0 0/0 .text setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxCalc::setMtxBuffer(J3DMtxBuffer* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer.s"
|
||||
void J3DMtxCalc::setMtxBuffer(J3DMtxBuffer* mtxBuffer) {
|
||||
J3DMtxCalc::mMtxBuffer = mtxBuffer;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80325D24-80325D88 320664 0064+00 1/0 0/0 0/0 .text __dt__12J3DJointTreeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DJointTree::~J3DJointTree() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/__dt__12J3DJointTreeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DJointTree::~J3DJointTree() {}
|
||||
|
||||
@@ -73,7 +73,7 @@ void J3DMaterialAnm::calc(J3DMaterial* pMat) const {
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mTexMtxAnm); i++) {
|
||||
if (mTexMtxAnm[i].getAnmFlag()) {
|
||||
J3DTexMtx* texMtx = pMat->getTexGenBlock()->getTexMtx(i);
|
||||
mTexMtxAnm[i].calc(&texMtx->getTexMtxInfo().field_0x10);
|
||||
mTexMtxAnm[i].calc(&texMtx->getTexMtxInfo().mSRT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "JSystem/J3DGraphBase/J3DTransform.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
@@ -79,7 +80,6 @@ extern "C" void calc__15J3DVtxColorCalcFP8J3DModel();
|
||||
extern "C" void offAllFlag__13J3DDeformDataFUl();
|
||||
extern "C" void deform__13J3DDeformDataFP8J3DModel();
|
||||
extern "C" void entryIn__8J3DJointFv();
|
||||
extern "C" void DCStoreRange();
|
||||
extern "C" void DCStoreRangeNoSync();
|
||||
extern "C" void __construct_new_array();
|
||||
extern "C" void _savegpr_23();
|
||||
@@ -111,8 +111,8 @@ SECTION_SDATA2 static f32 lit_896[1 + 1 /* padding */] = {
|
||||
void J3DModel::initialize() {
|
||||
mModelData = NULL;
|
||||
mFlags = 0;
|
||||
field_0x0c = 0;
|
||||
field_0x10 = 0;
|
||||
mDiffFlag = 0;
|
||||
mCalcCallBack = NULL;
|
||||
mUserArea = 0;
|
||||
|
||||
mBaseScale.x = 1.0f;
|
||||
@@ -128,8 +128,8 @@ void J3DModel::initialize() {
|
||||
mDeformData = NULL;
|
||||
mSkinDeform = NULL;
|
||||
mVtxColorCalc = NULL;
|
||||
field_0xd4 = 0;
|
||||
field_0xd8 = 0;
|
||||
mUnkCalc1 = NULL;
|
||||
mUnkCalc2 = NULL;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -207,36 +207,25 @@ s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 param_1, u32 param_2
|
||||
/* 80327300-803273CC 321C40 00CC+00 1/1 0/0 0/0 .text createShapePacket__8J3DModelFP12J3DModelData
|
||||
*/
|
||||
// probably some wrong member types
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getShapeNum() != 0) {
|
||||
u16 shapeNum = p_modelData->getShapeNum();
|
||||
|
||||
J3DShapePacket* packet = new J3DShapePacket[shapeNum];
|
||||
mShapePacket = &packet;
|
||||
mShapePacket = new J3DShapePacket[shapeNum];
|
||||
|
||||
if (mShapePacket == NULL) {
|
||||
return 4;
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_modelData->getShapeNum(); i++) {
|
||||
J3DShape* shapeNode = p_modelData->getShapeNodePointer(i);
|
||||
mShapePacket[i]->setShape(shapeNode);
|
||||
mShapePacket[i]->setModel(this);
|
||||
mShapePacket[i].setShape(shapeNode);
|
||||
mShapePacket[i].setModel(this);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DModel::createShapePacket(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/createShapePacket__8J3DModelFP12J3DModelData.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803273CC-803275FC 321D0C 0230+00 1/1 0/0 0/0 .text createMatPacket__8J3DModelFP12J3DModelDataUl
|
||||
*/
|
||||
@@ -300,14 +289,12 @@ asm void J3DModel::calcDiffTexMtx() {
|
||||
#pragma pop
|
||||
|
||||
/* 803279A0-80327A2C 3222E0 008C+00 0/0 2/2 0/0 .text diff__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::diff() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/diff__8J3DModelFv.s"
|
||||
void J3DModel::diff() {
|
||||
for (u16 n = getModelData()->getMaterialNum(), i = 0; i < n; i++) {
|
||||
j3dSys.setMatPacket(&mMatPacket[i]);
|
||||
getModelData()->getMaterialNodePointer(i)->diff(mDiffFlag);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327A2C-80327AA0 32236C 0074+00 0/0 1/1 2/2 .text setDeformData__8J3DModelFP13J3DDeformDataUl
|
||||
*/
|
||||
@@ -329,55 +316,53 @@ s32 J3DModel::setDeformData(J3DDeformData* p_deformData, u32 param_1) {
|
||||
|
||||
/* 80327AA0-80327BD4 3223E0 0134+00 0/0 0/0 2/2 .text setSkinDeform__8J3DModelFP13J3DSkinDeformUl
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 param_1) {
|
||||
s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 flags) {
|
||||
mSkinDeform = p_skinDeform;
|
||||
|
||||
s32 ret = kJ3DError_Success;
|
||||
|
||||
if (p_skinDeform == NULL) {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
return 5;
|
||||
} else {
|
||||
mSkinDeform->initMtxIndexArray(mModelData);
|
||||
if (mModelData->checkFlag(0x100)) {
|
||||
|
||||
ret = mModelData->checkFlag(0x100);
|
||||
if (ret != 0) {
|
||||
mSkinDeform->changeFastSkinDL(mModelData);
|
||||
param_1 = 0;
|
||||
flags &= ~2;
|
||||
flags &= ~4;
|
||||
mSkinDeform->transformVtxPosNrm(mModelData);
|
||||
mSkinDeform->initSkinInfo(mModelData);
|
||||
}
|
||||
p_skinDeform = NULL;
|
||||
|
||||
if ((~param_1 & 2)) {
|
||||
if (mVertexBuffer.allocTransformedVtxPosArray()) {
|
||||
ret = 0;
|
||||
if ((~flags & 2)) {
|
||||
ret = mVertexBuffer.allocTransformedVtxPosArray();
|
||||
if (ret != kJ3DError_Success) {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
onFlag(J3DMdlFlag_SkinPosCpu);
|
||||
} else {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
}
|
||||
|
||||
if ((~param_1 & 4)) {
|
||||
if (mVertexBuffer.allocTransformedVtxNrmArray()) {
|
||||
onFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
if ((~flags & 4)) {
|
||||
ret = mVertexBuffer.allocTransformedVtxNrmArray();
|
||||
if (ret != kJ3DError_Success) {
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
return ret;
|
||||
}
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
onFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
} else {
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DModel::setSkinDeform(J3DSkinDeform* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/setSkinDeform__8J3DModelFP13J3DSkinDeformUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80327BD4-80327C58 322514 0084+00 1/1 0/0 2/2 .text calcAnmMtx__8J3DModelFv */
|
||||
void J3DModel::calcAnmMtx() {
|
||||
@@ -412,24 +397,78 @@ extern "C" asm void update__8J3DModelFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80327CF0-80327E4C 322630 015C+00 1/0 0/0 0/0 .text calc__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calc() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calc__8J3DModelFv.s"
|
||||
void J3DModel::calc() {
|
||||
j3dSys.setModel(this);
|
||||
|
||||
if (checkFlag(J3DMdlFlag_SkinPosCpu)) {
|
||||
j3dSys.onFlag(J3DSysFlag_SkinPosCpu);
|
||||
} else {
|
||||
j3dSys.offFlag(J3DSysFlag_SkinPosCpu);
|
||||
}
|
||||
|
||||
if (checkFlag(J3DMdlFlag_SkinNrmCpu)) {
|
||||
j3dSys.onFlag(J3DSysFlag_SkinNrmCpu);
|
||||
} else {
|
||||
j3dSys.offFlag(J3DSysFlag_SkinNrmCpu);
|
||||
}
|
||||
|
||||
getModelData()->syncJ3DSysFlags();
|
||||
mVertexBuffer.frameInit();
|
||||
|
||||
if (mUnkCalc2 != NULL) {
|
||||
mUnkCalc2->calc(getModelData());
|
||||
}
|
||||
|
||||
if (mDeformData != NULL) {
|
||||
mDeformData->deform(this);
|
||||
}
|
||||
|
||||
if (mVtxColorCalc != NULL) {
|
||||
mVtxColorCalc->calc(this);
|
||||
}
|
||||
|
||||
if (mUnkCalc1 != NULL) {
|
||||
mUnkCalc1->calc(this);
|
||||
}
|
||||
|
||||
calcAnmMtx();
|
||||
calcWeightEnvelopeMtx();
|
||||
|
||||
if (mSkinDeform != NULL) {
|
||||
mSkinDeform->deform(this);
|
||||
}
|
||||
|
||||
if (mCalcCallBack != NULL) {
|
||||
mCalcCallBack(this, 0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327E4C-80327F40 32278C 00F4+00 1/0 0/0 0/0 .text entry__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::entry() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/entry__8J3DModelFv.s"
|
||||
void J3DModel::entry() {
|
||||
j3dSys.setModel(this);
|
||||
|
||||
if (checkFlag(J3DMdlFlag_SkinPosCpu)) {
|
||||
j3dSys.onFlag(J3DSysFlag_SkinPosCpu);
|
||||
} else {
|
||||
j3dSys.offFlag(J3DSysFlag_SkinPosCpu);
|
||||
}
|
||||
|
||||
if (checkFlag(J3DMdlFlag_SkinNrmCpu)) {
|
||||
j3dSys.onFlag(J3DSysFlag_SkinNrmCpu);
|
||||
} else {
|
||||
j3dSys.offFlag(J3DSysFlag_SkinNrmCpu);
|
||||
}
|
||||
|
||||
getModelData()->syncJ3DSysFlags();
|
||||
j3dSys.setTexture(getModelData()->getTexture());
|
||||
|
||||
for (u16 i = 0; i < getModelData()->getJointNum(); i++) {
|
||||
J3DJoint* joint = getModelData()->getJointNodePointer(i);
|
||||
if (joint->getMesh() != NULL) {
|
||||
joint->entryIn();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327F40-80328190 322880 0250+00 1/0 0/0 0/0 .text viewCalc__8J3DModelFv */
|
||||
#pragma push
|
||||
@@ -447,6 +486,24 @@ void J3DModel::calcNrmMtx() {
|
||||
}
|
||||
|
||||
/* 803281B4-803282B8 322AF4 0104+00 1/1 0/0 0/0 .text calcBumpMtx__8J3DModelFv */
|
||||
#ifdef NONMATCHING
|
||||
void J3DModel::calcBumpMtx() {
|
||||
// comparison (might be b/c of bool rather than u8?)
|
||||
if (!getModelData()->checkBumpFlag())
|
||||
return;
|
||||
|
||||
// loop is a bit different
|
||||
for (u16 n = getModelData()->getMaterialNum(), i = 0; i < n; i++) {
|
||||
J3DMaterial* material = getModelData()->getMaterialNodePointer(i);
|
||||
if (!material->getNBTScale()->mbHasScale)
|
||||
continue;
|
||||
|
||||
material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(), getNrmMtxPtr(),
|
||||
getBumpMtxPtr(i));
|
||||
DCStoreRange(getBumpMtxPtr(i), getModelData()->getDrawMtxNum() * 0x24);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -455,6 +512,7 @@ asm void J3DModel::calcBumpMtx() {
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcBumpMtx__8J3DModelFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803282B8-803282EC 322BF8 0034+00 1/1 0/0 0/0 .text calcBBoardMtx__8J3DModelFv */
|
||||
void J3DModel::calcBBoardMtx() {
|
||||
@@ -464,6 +522,20 @@ void J3DModel::calcBBoardMtx() {
|
||||
}
|
||||
|
||||
/* 803282EC-80328350 322C2C 0064+00 2/2 0/0 0/0 .text prepareShapePackets__8J3DModelFv */
|
||||
#ifdef NONMATCHING
|
||||
void J3DModel::prepareShapePackets() {
|
||||
for (u16 n = getModelData()->getShapeNum(), i = 0; i < n; i++) {
|
||||
// two swapped instructions right around here when calling getShapePacket
|
||||
J3DShapePacket* pkt = getShapePacket(i);
|
||||
pkt->setMtxBuffer(mMtxBuffer);
|
||||
if (getMtxCalcMode() == 2) {
|
||||
pkt->setBaseMtxPtr(&mInternalView);
|
||||
} else {
|
||||
pkt->setBaseMtxPtr(j3dSys.getViewMtx());
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -472,6 +544,7 @@ asm void J3DModel::prepareShapePackets() {
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/prepareShapePackets__8J3DModelFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80328350-803283B4 322C90 0064+00 1/0 0/0 0/0 .text __dt__8J3DModelFv */
|
||||
J3DModel::~J3DModel() {}
|
||||
|
||||
@@ -49,10 +49,10 @@ extern "C" extern void* __vt__12J3DJointTree[4 + 1 /* padding */];
|
||||
|
||||
/* 80325D88-80325DA0 3206C8 0018+00 1/1 2/2 0/0 .text clear__12J3DModelDataFv */
|
||||
void J3DModelData::clear() {
|
||||
field_0x4 = 0;
|
||||
mpRawData = 0;
|
||||
mFlags = 0;
|
||||
field_0xc = 0;
|
||||
field_0xe = 0;
|
||||
mbHasBumpArray = 0;
|
||||
mbHasBillboard = 0;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -182,9 +182,9 @@ void J3DModelData::syncJ3DSysPointers() const {
|
||||
*/
|
||||
void J3DModelData::syncJ3DSysFlags() const {
|
||||
if (checkFlag(0x20)) {
|
||||
j3dSys.onFlag(0x40000000);
|
||||
j3dSys.onFlag(J3DSysFlag_PostTexMtx);
|
||||
} else {
|
||||
j3dSys.offFlag(0x40000000);
|
||||
j3dSys.offFlag(J3DSysFlag_PostTexMtx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ asm void J3DDrawBuffer::entryInvalidSort(J3DMatPacket* param_0) {
|
||||
|
||||
bool J3DDrawBuffer::entryNonSort(J3DMatPacket* pMat) {
|
||||
pMat->clear();
|
||||
pMat->mpFirstShapePacket->clear();
|
||||
pMat->mpShapePacket->clear();
|
||||
|
||||
// inlined copy of entryImm, add to start of buf
|
||||
pMat->mpNextSibling = mpBuf[0];
|
||||
|
||||
@@ -2101,14 +2101,9 @@ void J3DTevBlock::diffTexNo() {
|
||||
}
|
||||
|
||||
/* 8032194C-80321958 31C28C 000C+00 1/0 0/0 0/0 .text getType__14J3DPEBlockFullFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DPEBlockFull::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__14J3DPEBlockFullFv.s"
|
||||
u32 J3DPEBlockFull::getType() {
|
||||
return 'PEFL';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80321958-8032197C 31C298 0024+00 1/0 0/0 0/0 .text setFog__14J3DPEBlockFullFP6J3DFog
|
||||
*/
|
||||
@@ -2358,14 +2353,9 @@ asm void J3DPEBlockFogOff::diff(u32 param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 80321B00-80321B0C 31C440 000C+00 1/0 0/0 0/0 .text getType__16J3DPEBlockFogOffFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DPEBlockFogOff::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__16J3DPEBlockFogOffFv.s"
|
||||
u32 J3DPEBlockFogOff::getType() {
|
||||
return 'PEFG';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80321B0C-80321B28 31C44C 001C+00 1/0 0/0 0/0 .text
|
||||
* setAlphaComp__16J3DPEBlockFogOffFRC12J3DAlphaComp */
|
||||
@@ -2570,14 +2560,9 @@ asm void J3DTevBlock16::indexToPtr() {
|
||||
#pragma pop
|
||||
|
||||
/* 80321C44-80321C50 31C584 000C+00 1/0 0/0 0/0 .text getType__13J3DTevBlock16Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTevBlock16::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DTevBlock16Fv.s"
|
||||
u32 J3DTevBlock16::getType() {
|
||||
return 'TV16';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80321C50-80321C60 31C590 0010+00 1/0 0/0 0/0 .text setTexNo__13J3DTevBlock16FUlUs */
|
||||
#pragma push
|
||||
@@ -3628,14 +3613,9 @@ asm void J3DTevBlock4::indexToPtr() {
|
||||
#pragma pop
|
||||
|
||||
/* 80322010-8032201C 31C950 000C+00 1/0 0/0 0/0 .text getType__12J3DTevBlock4Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTevBlock4::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock4Fv.s"
|
||||
u32 J3DTevBlock4::getType() {
|
||||
return 'TVB4';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032201C-8032202C 31C95C 0010+00 1/0 0/0 0/0 .text setTexNo__12J3DTevBlock4FUlUs */
|
||||
#pragma push
|
||||
@@ -4026,14 +4006,9 @@ asm void J3DTevBlock2::indexToPtr() {
|
||||
#pragma pop
|
||||
|
||||
/* 803223D4-803223E0 31CD14 000C+00 1/0 0/0 0/0 .text getType__12J3DTevBlock2Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTevBlock2::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock2Fv.s"
|
||||
u32 J3DTevBlock2::getType() {
|
||||
return 'TVB2';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803223E0-803223F0 31CD20 0010+00 1/0 0/0 0/0 .text setTexNo__12J3DTevBlock2FUlUs */
|
||||
#pragma push
|
||||
@@ -4424,14 +4399,9 @@ asm void J3DTevBlock1::indexToPtr() {
|
||||
#pragma pop
|
||||
|
||||
/* 80322798-803227A4 31D0D8 000C+00 1/0 0/0 0/0 .text getType__12J3DTevBlock1Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTevBlock1::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock1Fv.s"
|
||||
u32 J3DTevBlock1::getType() {
|
||||
return 'TVB1';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803227A4-803227B4 31D0E4 0010+00 1/0 0/0 0/0 .text setTexNo__12J3DTevBlock1FUlUs */
|
||||
#pragma push
|
||||
@@ -4656,14 +4626,9 @@ asm void J3DTevBlockPatched::indexToPtr() {
|
||||
#pragma pop
|
||||
|
||||
/* 80322998-803229A4 31D2D8 000C+00 1/0 0/0 0/0 .text getType__18J3DTevBlockPatchedFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTevBlockPatched::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__18J3DTevBlockPatchedFv.s"
|
||||
u32 J3DTevBlockPatched::getType() {
|
||||
return 'TVPT';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803229A4-803229AC -00001 0008+00 0/0 0/0 0/0 .text setTevStageNum__18J3DTevBlockPatchedFUc */
|
||||
void J3DTevBlockPatched::setTevStageNum(u8 param_0) {
|
||||
@@ -4950,14 +4915,9 @@ asm J3DTevBlockPatched::~J3DTevBlockPatched() {
|
||||
#pragma pop
|
||||
|
||||
/* 80322C6C-80322C78 31D5AC 000C+00 1/0 0/0 0/0 .text getType__19J3DTexGenBlockBasicFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexGenBlockBasic::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__19J3DTexGenBlockBasicFv.s"
|
||||
u32 J3DTexGenBlockBasic::getType() {
|
||||
return 'TGBC';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80322C78-80322C9C 31D5B8 0024+00 1/0 0/0 0/0 .text
|
||||
* setNBTScale__19J3DTexGenBlockBasicF11J3DNBTScale */
|
||||
@@ -5087,14 +5047,9 @@ void J3DTexGenBlockPatched::setTexMtxOffset(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 80322DA8-80322DB4 31D6E8 000C+00 1/0 0/0 0/0 .text getType__15J3DTexGenBlock4Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexGenBlock4::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DTexGenBlock4Fv.s"
|
||||
u32 J3DTexGenBlock4::getType() {
|
||||
return 'TGB4';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80322DB4-80322DD8 31D6F4 0024+00 1/0 0/0 0/0 .text setNBTScale__15J3DTexGenBlock4F11J3DNBTScale
|
||||
*/
|
||||
@@ -5145,25 +5100,15 @@ void J3DTexGenBlockPatched::load() {
|
||||
|
||||
/* 80322E74-80322E80 31D7B4 000C+00 1/0 0/0 0/0 .text getType__21J3DTexGenBlockPatchedFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexGenBlockPatched::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DTexGenBlockPatchedFv.s"
|
||||
u32 J3DTexGenBlockPatched::getType() {
|
||||
return 'TGPT';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80322E80-80322E8C 31D7C0 000C+00 1/0 0/0 0/0 .text getType__20J3DColorBlockLightOnFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DColorBlockLightOn::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__20J3DColorBlockLightOnFv.s"
|
||||
u32 J3DColorBlockLightOn::getType() {
|
||||
return 'CLON';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80322E8C-80322EB8 31D7CC 002C+00 1/0 0/0 0/0 .text
|
||||
* setMatColor__20J3DColorBlockLightOnFUl10J3DGXColor */
|
||||
@@ -5382,14 +5327,9 @@ asm J3DColorBlockLightOn::~J3DColorBlockLightOn() {
|
||||
|
||||
/* 80323074-80323080 31D9B4 000C+00 1/0 0/0 0/0 .text getType__22J3DColorBlockAmbientOnFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DColorBlockAmbientOn::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__22J3DColorBlockAmbientOnFv.s"
|
||||
u32 J3DColorBlockAmbientOn::getType() {
|
||||
return 'CLAB';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80323080-803230AC 31D9C0 002C+00 1/0 0/0 0/0 .text
|
||||
* setAmbColor__22J3DColorBlockAmbientOnFUl10J3DGXColor */
|
||||
@@ -5628,14 +5568,9 @@ void J3DColorBlockLightOff::setColorChanOffset(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 80323258-80323264 31DB98 000C+00 1/0 0/0 0/0 .text getType__13J3DPEBlockXluFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DPEBlockXlu::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockXluFv.s"
|
||||
u32 J3DPEBlockXlu::getType() {
|
||||
return 'PEXL';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80323264-803232C0 31DBA4 005C+00 1/0 0/0 0/0 .text __dt__13J3DPEBlockXluFv */
|
||||
#pragma push
|
||||
@@ -5648,14 +5583,9 @@ asm J3DPEBlockXlu::~J3DPEBlockXlu() {
|
||||
#pragma pop
|
||||
|
||||
/* 803232C0-803232CC 31DC00 000C+00 1/0 0/0 0/0 .text getType__17J3DPEBlockTexEdgeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DPEBlockTexEdge::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__17J3DPEBlockTexEdgeFv.s"
|
||||
u32 J3DPEBlockTexEdge::getType() {
|
||||
return 'PEED';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803232CC-80323328 31DC0C 005C+00 1/0 0/0 0/0 .text __dt__17J3DPEBlockTexEdgeFv */
|
||||
#pragma push
|
||||
@@ -5668,14 +5598,9 @@ asm J3DPEBlockTexEdge::~J3DPEBlockTexEdge() {
|
||||
#pragma pop
|
||||
|
||||
/* 80323328-80323334 31DC68 000C+00 1/0 0/0 0/0 .text getType__13J3DPEBlockOpaFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DPEBlockOpa::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockOpaFv.s"
|
||||
u32 J3DPEBlockOpa::getType() {
|
||||
return 'PEOP';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80323334-80323390 31DC74 005C+00 1/0 0/0 0/0 .text __dt__13J3DPEBlockOpaFv */
|
||||
#pragma push
|
||||
@@ -5688,14 +5613,9 @@ asm J3DPEBlockOpa::~J3DPEBlockOpa() {
|
||||
#pragma pop
|
||||
|
||||
/* 80323390-8032339C 31DCD0 000C+00 1/0 0/0 0/0 .text getType__15J3DIndBlockFullFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DIndBlockFull::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DIndBlockFullFv.s"
|
||||
u32 J3DIndBlockFull::getType() {
|
||||
return 'IBLF';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032339C-803233A4 -00001 0008+00 0/0 0/0 0/0 .text setIndTexStageNum__15J3DIndBlockFullFUc */
|
||||
void J3DIndBlockFull::setIndTexStageNum(u8 param_0) {
|
||||
@@ -5865,14 +5785,9 @@ bool J3DTevBlock::getTexNoOffset() const {
|
||||
|
||||
/* 80323560-8032356C 31DEA0 000C+00 1/0 0/0 0/0 .text getType__21J3DColorBlockLightOffFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DColorBlockLightOff::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DColorBlockLightOffFv.s"
|
||||
u32 J3DColorBlockLightOff::getType() {
|
||||
return 'CLOF';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032356C-80323590 31DEAC 0024+00 0/0 1/0 0/0 .text __sinit_J3DMatBlock_cpp */
|
||||
#pragma push
|
||||
|
||||
@@ -71,7 +71,7 @@ extern "C" bool countDLSize__10J3DPEBlockFv();
|
||||
extern "C" void load__13J3DColorBlockFv();
|
||||
extern "C" s32 getCullMode__13J3DColorBlockCFv();
|
||||
extern "C" void load__11J3DTevBlockFv();
|
||||
extern "C" bool getNBTScale__14J3DTexGenBlockFv();
|
||||
extern "C" J3DNBTScale* getNBTScale__14J3DTexGenBlockFv();
|
||||
extern "C" void patch__13J3DColorBlockFv();
|
||||
extern "C" void diff__13J3DColorBlockFUl();
|
||||
extern "C" void diff__10J3DPEBlockFUl();
|
||||
@@ -762,14 +762,11 @@ asm void J3DPatchedMaterial::load() {
|
||||
#pragma pop
|
||||
|
||||
/* 80316FFC-8031703C 31193C 0040+00 1/0 0/0 0/0 .text loadSharedDL__18J3DPatchedMaterialFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DPatchedMaterial::loadSharedDL() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__18J3DPatchedMaterialFv.s"
|
||||
void J3DPatchedMaterial::loadSharedDL() {
|
||||
j3dSys.setMaterialMode(mMaterialMode);
|
||||
if (!j3dSys.checkFlag(0x02))
|
||||
mSharedDLObj->callDL();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8031703C-80317040 31197C 0004+00 1/0 0/0 0/0 .text reset__18J3DPatchedMaterialFv */
|
||||
void J3DPatchedMaterial::reset() {
|
||||
@@ -804,6 +801,12 @@ void J3DLockedMaterial::makeSharedDisplayList() {
|
||||
}
|
||||
|
||||
/* 8031706C-80317088 3119AC 001C+00 1/0 0/0 0/0 .text load__17J3DLockedMaterialFv */
|
||||
#ifdef NONMATCHING
|
||||
void J3DLockedMaterial::load() {
|
||||
j3dSys.setMaterialMode(mMaterialMode);
|
||||
// some extra dead code after? wtf?
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -812,17 +815,15 @@ asm void J3DLockedMaterial::load() {
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/load__17J3DLockedMaterialFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80317088-803170C8 3119C8 0040+00 1/0 0/0 0/0 .text loadSharedDL__17J3DLockedMaterialFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DLockedMaterial::loadSharedDL() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__17J3DLockedMaterialFv.s"
|
||||
void J3DLockedMaterial::loadSharedDL() {
|
||||
j3dSys.setMaterialMode(mMaterialMode);
|
||||
if (!j3dSys.checkFlag(0x02))
|
||||
mSharedDLObj->callDL();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803170C8-803170CC 311A08 0004+00 1/0 0/0 0/0 .text patch__17J3DLockedMaterialFv */
|
||||
void J3DLockedMaterial::patch() {
|
||||
@@ -960,8 +961,8 @@ void J3DTevBlock::load() {
|
||||
}
|
||||
|
||||
/* 80317334-8031733C 311C74 0008+00 1/0 2/0 0/0 .text getNBTScale__14J3DTexGenBlockFv */
|
||||
bool J3DTexGenBlock::getNBTScale() {
|
||||
return false;
|
||||
J3DNBTScale* J3DTexGenBlock::getNBTScale() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 8031733C-80317340 311C7C 0004+00 1/0 1/0 0/0 .text patch__13J3DColorBlockFv */
|
||||
@@ -1091,14 +1092,9 @@ extern "C" asm void reset__15J3DIndBlockNullFP11J3DIndBlock() {
|
||||
}
|
||||
|
||||
/* 803173A4-803173B0 311CE4 000C+00 1/0 0/0 0/0 .text getType__15J3DIndBlockNullFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DIndBlockNull::getType() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/getType__15J3DIndBlockNullFv.s"
|
||||
u32 J3DIndBlockNull::getType() {
|
||||
return 'IBLN';
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803173B0-8031740C 311CF0 005C+00 1/0 0/0 0/0 .text __dt__15J3DIndBlockNullFv */
|
||||
#pragma push
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DPacket.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "JSystem/J3DGraphBase/J3DShape.h"
|
||||
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "JSystem/J3DGraphBase/J3DVertex.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h"
|
||||
#include "dol2asm.h"
|
||||
@@ -16,29 +22,10 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DVertexBuffer {
|
||||
/* 8031106C */ void setArray() const;
|
||||
};
|
||||
|
||||
struct J3DShape {
|
||||
/* 80315300 */ void loadPreDrawSetting() const;
|
||||
|
||||
static u8 sOldVcdVatCmd[4];
|
||||
};
|
||||
|
||||
struct J3DDrawBuffer {
|
||||
static u8 sortFuncTable[72];
|
||||
};
|
||||
|
||||
struct J3DModelData {
|
||||
/* 803260F8 */ void syncJ3DSysFlags() const;
|
||||
};
|
||||
|
||||
struct J3DDifferedTexMtx {
|
||||
static u8 sTexGenBlock[4];
|
||||
static u8 sTexMtxObj[4];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -322,8 +309,8 @@ void J3DDrawPacket::draw() {
|
||||
|
||||
/* 80312948-803129A4 30D288 005C+00 0/0 1/1 0/0 .text __ct__12J3DMatPacketFv */
|
||||
J3DMatPacket::J3DMatPacket() {
|
||||
mpInitShapePacket = NULL;
|
||||
mpShapePacket = NULL;
|
||||
mpFirstShapePacket = NULL;
|
||||
mpMaterial = NULL;
|
||||
mSortFlags = -1;
|
||||
mpTexture = NULL;
|
||||
@@ -334,20 +321,20 @@ J3DMatPacket::J3DMatPacket() {
|
||||
J3DMatPacket::~J3DMatPacket() {}
|
||||
|
||||
void J3DMatPacket::addShapePacket(J3DShapePacket* pShape) {
|
||||
if (mpFirstShapePacket == NULL) {
|
||||
mpFirstShapePacket = pShape;
|
||||
if (mpShapePacket == NULL) {
|
||||
mpShapePacket = pShape;
|
||||
} else {
|
||||
pShape->mpNextSibling = mpFirstShapePacket;
|
||||
mpFirstShapePacket = pShape;
|
||||
pShape->mpNextSibling = mpShapePacket;
|
||||
mpShapePacket = pShape;
|
||||
}
|
||||
}
|
||||
|
||||
void J3DMatPacket::beginDiff() {
|
||||
mpShapePacket->mpDisplayListObj->beginDL();
|
||||
mpInitShapePacket->mpDisplayListObj->beginDL();
|
||||
}
|
||||
|
||||
void J3DMatPacket::endDiff() {
|
||||
mpShapePacket->mpDisplayListObj->endDL();
|
||||
mpInitShapePacket->mpDisplayListObj->endDL();
|
||||
}
|
||||
|
||||
/* 80312A74-80312A9C 30D3B4 0028+00 0/0 1/1 0/0 .text isSame__12J3DMatPacketCFP12J3DMatPacket */
|
||||
@@ -361,20 +348,31 @@ bool J3DMatPacket::isSame(J3DMatPacket* pOther) const {
|
||||
}
|
||||
|
||||
/* 80312A9C-80312B20 30D3DC 0084+00 1/0 0/0 0/0 .text draw__12J3DMatPacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMatPacket::draw() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/draw__12J3DMatPacketFv.s"
|
||||
void J3DMatPacket::draw() {
|
||||
mpMaterial->load();
|
||||
callDL();
|
||||
J3DShapePacket* packet = getShapePacket();
|
||||
|
||||
J3DShape* shape = packet->getShape();
|
||||
shape->loadPreDrawSetting();
|
||||
|
||||
while (packet != NULL) {
|
||||
if (packet->getDisplayListObj() != NULL) {
|
||||
packet->getDisplayListObj()->callDL();
|
||||
}
|
||||
|
||||
packet->drawFast();
|
||||
packet = (J3DShapePacket*)packet->getNextPacket();
|
||||
}
|
||||
|
||||
shape->resetVcdVatCache();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312B20-80312B74 30D460 0054+00 0/0 1/1 0/0 .text __ct__14J3DShapePacketFv */
|
||||
J3DShapePacket::J3DShapePacket() {
|
||||
mpShape = NULL;
|
||||
mpMtxBuffer = NULL;
|
||||
mpViewMtx = NULL;
|
||||
mpBaseMtxPtr = NULL;
|
||||
mDiffFlag = 0;
|
||||
mpModel = NULL;
|
||||
}
|
||||
@@ -409,6 +407,40 @@ J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) {
|
||||
}
|
||||
|
||||
/* 80312E08-80312F24 30D748 011C+00 2/2 0/0 0/0 .text prepareDraw__14J3DShapePacketCFv */
|
||||
#ifdef NONMATCHING
|
||||
void J3DShapePacket::prepareDraw() const {
|
||||
mpModel->getVertexBuffer()->setArray();
|
||||
j3dSys.setModel(mpModel);
|
||||
j3dSys.setShapePacket((J3DShapePacket*)this);
|
||||
|
||||
// the way that the LOD flag is set seems to be wrong...
|
||||
J3DShapeMtx::setLODFlag(mpModel->checkFlag(0x10));
|
||||
|
||||
if (mpModel->checkFlag(J3DMdlFlag_SkinPosCpu)) {
|
||||
mpShape->onFlag(J3DShpFlag_SkinPosCpu);
|
||||
} else {
|
||||
mpShape->offFlag(J3DShpFlag_SkinPosCpu);
|
||||
}
|
||||
|
||||
if (mpModel->checkFlag(J3DMdlFlag_SkinNrmCpu) && !mpShape->checkFlag(J3DShpFlag_EnableLod)) {
|
||||
mpShape->onFlag(J3DShpFlag_SkinNrmCpu);
|
||||
} else {
|
||||
mpShape->offFlag(J3DShpFlag_SkinNrmCpu);
|
||||
}
|
||||
|
||||
mpShape->setCurrentViewNoPtr(mpMtxBuffer->getCurrentViewNoPtr());
|
||||
mpShape->setScaleFlagArray(mpMtxBuffer->getScaleFlagArray());
|
||||
mpShape->setDrawMtx(mpMtxBuffer->getDrawMtxPtrPtr());
|
||||
|
||||
if (!mpShape->getNBTFlag()) {
|
||||
mpShape->setNrmMtx(mpMtxBuffer->getNrmMtxPtrPtr());
|
||||
} else {
|
||||
mpShape->setNrmMtx(mpMtxBuffer->getBumpMtxPtrPtr() + mpShape->getBumpMtxOffset());
|
||||
}
|
||||
|
||||
mpModel->getModelData()->syncJ3DSysFlags();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -417,26 +449,40 @@ asm void J3DShapePacket::prepareDraw() const {
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/prepareDraw__14J3DShapePacketCFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80312F24-80312FBC 30D864 0098+00 1/0 0/0 0/0 .text draw__14J3DShapePacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapePacket::draw() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/draw__14J3DShapePacketFv.s"
|
||||
void J3DShapePacket::draw() {
|
||||
if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) {
|
||||
prepareDraw();
|
||||
if (mpTexMtx != NULL) {
|
||||
J3DMaterial* material = mpShape->getMaterial();
|
||||
J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock();
|
||||
J3DDifferedTexMtx::sTexMtxObj = getTexMtxObj();
|
||||
} else {
|
||||
J3DDifferedTexMtx::sTexGenBlock = NULL;
|
||||
}
|
||||
if (mpDisplayListObj != NULL) {
|
||||
mpDisplayListObj->callDL();
|
||||
}
|
||||
mpShape->draw();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312FBC-80313044 30D8FC 0088+00 1/1 2/2 1/1 .text drawFast__14J3DShapePacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapePacket::drawFast() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/drawFast__14J3DShapePacketFv.s"
|
||||
void J3DShapePacket::drawFast() {
|
||||
if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) {
|
||||
prepareDraw();
|
||||
if (mpTexMtx != NULL) {
|
||||
J3DMaterial* material = mpShape->getMaterial();
|
||||
J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock();
|
||||
J3DDifferedTexMtx::sTexMtxObj = getTexMtxObj();
|
||||
} else {
|
||||
J3DDifferedTexMtx::sTexGenBlock = NULL;
|
||||
}
|
||||
mpShape->drawFast();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80313044-80313048 30D984 0004+00 1/0 0/0 0/0 .text draw__9J3DPacketFv */
|
||||
void J3DPacket::draw() {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DShape.h"
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -52,7 +53,6 @@ extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void OSDisableScheduler();
|
||||
extern "C" void OSEnableScheduler();
|
||||
extern "C" void GXSetArray();
|
||||
extern "C" void GDInitGDLObj();
|
||||
extern "C" void GDFlushCurrToMem();
|
||||
extern "C" void GDPadCurr32();
|
||||
@@ -65,12 +65,11 @@ extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" extern u8 j3dDefaultViewNo[4 + 4 /* padding */];
|
||||
extern "C" u8 sCurrentPipeline__11J3DShapeMtx[4];
|
||||
extern "C" u8 sCurrentScaleFlag__11J3DShapeMtx[4];
|
||||
extern "C" u32 sCurrentPipeline__11J3DShapeMtx;
|
||||
extern "C" u32 sCurrentScaleFlag__11J3DShapeMtx;
|
||||
extern "C" extern u8 struct_804515B0[4];
|
||||
extern "C" u8 sTexMtxLoadType__11J3DShapeMtx[4];
|
||||
extern "C" u32 sTexMtxLoadType__11J3DShapeMtx;
|
||||
extern "C" extern u8 __GDCurrentDL[4];
|
||||
|
||||
//
|
||||
@@ -164,14 +163,13 @@ static asm void J3DLoadArrayBasePtr(_GXAttr param_0, void* param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 80314EEC-80314F5C 30F82C 0070+00 3/3 0/0 0/0 .text loadVtxArray__8J3DShapeCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::loadVtxArray() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/loadVtxArray__8J3DShapeCFv.s"
|
||||
void J3DShape::loadVtxArray() const {
|
||||
J3DLoadArrayBasePtr(GX_VA_POS, j3dSys.getVtxPos());
|
||||
if (!mHasNBT) {
|
||||
J3DLoadArrayBasePtr(GX_VA_NRM, j3dSys.getVtxNrm());
|
||||
}
|
||||
J3DLoadArrayBasePtr(GX_VA_CLR0, j3dSys.getVtxCol());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80314F5C-80314F98 30F89C 003C+00 0/0 1/1 0/0 .text isSameVcdVatCmd__8J3DShapeFP8J3DShape */
|
||||
#pragma push
|
||||
@@ -229,14 +227,18 @@ asm void J3DShape::loadPreDrawSetting() const {
|
||||
static u8 data_804515D4[4];
|
||||
|
||||
/* 80315398-8031544C 30FCD8 00B4+00 1/1 0/0 0/0 .text setArrayAndBindPipeline__8J3DShapeCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::setArrayAndBindPipeline() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/setArrayAndBindPipeline__8J3DShapeCFv.s"
|
||||
void J3DShape::setArrayAndBindPipeline() const {
|
||||
J3DShapeMtx::setCurrentPipeline(getPipeline());
|
||||
loadVtxArray();
|
||||
j3dSys.setModelDrawMtx(mDrawMtx[*mCurrentViewNo]);
|
||||
j3dSys.setModelNrmMtx(mNrmMtx[*mCurrentViewNo]);
|
||||
J3DShapeMtx::sCurrentScaleFlag = mScaleFlagArray;
|
||||
// The below struct_804515B0 is actually a continuation of sCurrentScaleFlag, I believe?
|
||||
// Also, there seems to be an extra entry in the array that's only there in DEBUG builds.
|
||||
struct_804515B0[0] = mHasNBT;
|
||||
data_804515D4[0] = mHasPNMTXIdx;
|
||||
J3DShapeMtx::sTexMtxLoadType = getTexMtxLoadType();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8031544C-803155E0 30FD8C 0194+00 1/0 0/0 0/0 .text drawFast__8J3DShapeCFv */
|
||||
#pragma push
|
||||
@@ -259,14 +261,17 @@ asm void J3DShape::draw() const {
|
||||
#pragma pop
|
||||
|
||||
/* 80315628-803156AC 30FF68 0084+00 1/0 0/0 0/0 .text simpleDraw__8J3DShapeCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::simpleDraw() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/simpleDraw__8J3DShapeCFv.s"
|
||||
void J3DShape::simpleDraw() const {
|
||||
resetVcdVatCache();
|
||||
loadPreDrawSetting();
|
||||
J3DShapeMtx::setCurrentPipeline(getPipeline());
|
||||
loadVtxArray();
|
||||
for (u16 n = mMtxGroupNum, i = 0; i < n; i++) {
|
||||
if (mShapeDraw[i] != NULL) {
|
||||
mShapeDraw[i]->draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803156AC-803157A0 30FFEC 00F4+00 1/0 0/0 0/0 .text simpleDrawCache__8J3DShapeCFv */
|
||||
#pragma push
|
||||
@@ -277,11 +282,3 @@ asm void J3DShape::simpleDrawCache() const {
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CDC78-803CDC90 02AD98 0018+00 0/0 1/1 0/0 .data __vt__8J3DShape */
|
||||
SECTION_DATA extern void* __vt__8J3DShape[6] = {
|
||||
(void*)NULL /* RTTI */, (void*)NULL,
|
||||
(void*)draw__8J3DShapeCFv, (void*)drawFast__8J3DShapeCFv,
|
||||
(void*)simpleDraw__8J3DShapeCFv, (void*)simpleDrawCache__8J3DShapeCFv,
|
||||
};
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/gx.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
@@ -25,7 +26,6 @@ SECTION_INIT void memcpy();
|
||||
extern "C" void* __nwa__FUli();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void DCStoreRange();
|
||||
extern "C" void GXCallDisplayList();
|
||||
extern "C" void _savegpr_18();
|
||||
extern "C" void _restgpr_18();
|
||||
|
||||
@@ -53,42 +53,16 @@ asm void J3DShapeDraw::addTexMtxIndexInDL(u32 param_0, u32 param_1, u32 param_2)
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CDC68-803CDC78 02AD88 000C+04 2/2 0/0 0/0 .data __vt__12J3DShapeDraw */
|
||||
SECTION_DATA extern void* __vt__12J3DShapeDraw[3 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DShapeDrawFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80314ABC-80314AD4 30F3FC 0018+00 0/0 1/1 0/0 .text __ct__12J3DShapeDrawFPCUcUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeDraw::J3DShapeDraw(u8 const* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/__ct__12J3DShapeDrawFPCUcUl.s"
|
||||
J3DShapeDraw::J3DShapeDraw(u8 const* displayList, u32 displayListSize) {
|
||||
mDisplayList = (void*)displayList;
|
||||
mDisplayListSize = displayListSize;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80314AD4-80314B00 30F414 002C+00 0/0 3/3 0/0 .text draw__12J3DShapeDrawCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeDraw::draw() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/draw__12J3DShapeDrawCFv.s"
|
||||
void J3DShapeDraw::draw() const {
|
||||
GXCallDisplayList(mDisplayList, mDisplayListSize);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80314B00-80314B48 30F440 0048+00 1/0 0/0 0/0 .text __dt__12J3DShapeDrawFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeDraw::~J3DShapeDraw() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/__dt__12J3DShapeDrawFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DShapeDraw::~J3DShapeDraw() {}
|
||||
|
||||
@@ -18,13 +18,6 @@ struct J3DSys {
|
||||
/* 8030FEE4 */ void loadNrmMtxIndx(int, u16) const;
|
||||
};
|
||||
|
||||
struct J3DDifferedTexMtx {
|
||||
/* 8031322C */ void loadExecute(f32 const (*)[4]);
|
||||
|
||||
static u8 sTexGenBlock[4];
|
||||
static u8 sTexMtxObj[4];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -125,18 +118,22 @@ extern "C" extern u8 j3dSys[284];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434C80-80434C98 0619A0 0014+04 2/2 0/0 0/0 .bss sMtxLoadCache__11J3DShapeMtx */
|
||||
u8 J3DShapeMtx::sMtxLoadCache[20 + 4 /* padding */];
|
||||
u16 J3DShapeMtx::sMtxLoadCache[10 + 2 /* padding */];
|
||||
|
||||
/* 803130A8-803130E4 30D9E8 003C+00 0/0 1/1 0/0 .text resetMtxLoadCache__11J3DShapeMtxFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeMtx::resetMtxLoadCache() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/resetMtxLoadCache__11J3DShapeMtxFv.s"
|
||||
void J3DShapeMtx::resetMtxLoadCache() {
|
||||
sMtxLoadCache[9] = 0xFFFF;
|
||||
sMtxLoadCache[8] = 0xFFFF;
|
||||
sMtxLoadCache[7] = 0xFFFF;
|
||||
sMtxLoadCache[6] = 0xFFFF;
|
||||
sMtxLoadCache[5] = 0xFFFF;
|
||||
sMtxLoadCache[4] = 0xFFFF;
|
||||
sMtxLoadCache[3] = 0xFFFF;
|
||||
sMtxLoadCache[2] = 0xFFFF;
|
||||
sMtxLoadCache[1] = 0xFFFF;
|
||||
sMtxLoadCache[0] = 0xFFFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803130E4-80313128 30DA24 0044+00 1/0 0/0 0/0 .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */
|
||||
#pragma push
|
||||
@@ -365,10 +362,12 @@ SECTION_DATA static void* lit_1034[12] = {
|
||||
};
|
||||
|
||||
/* 804515A8-804515AC 000AA8 0004+00 4/4 2/2 0/0 .sbss sCurrentPipeline__11J3DShapeMtx */
|
||||
u8 J3DShapeMtx::sCurrentPipeline[4];
|
||||
u32 J3DShapeMtx::sCurrentPipeline;
|
||||
|
||||
/* 804515AC-804515B0 000AAC 0004+00 3/3 1/1 0/0 .sbss sCurrentScaleFlag__11J3DShapeMtx */
|
||||
u8 J3DShapeMtx::sCurrentScaleFlag[4];
|
||||
u8* J3DShapeMtx::sCurrentScaleFlag;
|
||||
|
||||
// This below is technically part of J3DScaleFlag.
|
||||
|
||||
/* 804515B0-804515B4 -00001 0004+00 5/5 3/3 0/0 .sbss None */
|
||||
/* 804515B0 0001+00 data_804515B0 None */
|
||||
@@ -377,7 +376,7 @@ extern u8 struct_804515B0[4];
|
||||
u8 struct_804515B0[4];
|
||||
|
||||
/* 804515B4-804515B8 000AB4 0004+00 4/4 1/1 0/0 .sbss sTexMtxLoadType__11J3DShapeMtx */
|
||||
u8 J3DShapeMtx::sTexMtxLoadType[4];
|
||||
u32 J3DShapeMtx::sTexMtxLoadType;
|
||||
|
||||
/* 804515B8-804515C0 000AB8 0008+00 2/2 0/0 0/0 .sbss sMtxPtrTbl__21J3DShapeMtxConcatView
|
||||
*/
|
||||
@@ -385,10 +384,10 @@ u8 J3DShapeMtxConcatView::sMtxPtrTbl[8];
|
||||
|
||||
/* 804515C0-804515C4 000AC0 0004+00 6/6 2/2 0/0 .sbss sTexGenBlock__17J3DDifferedTexMtx
|
||||
*/
|
||||
u8 J3DDifferedTexMtx::sTexGenBlock[4];
|
||||
J3DTexGenBlock* J3DDifferedTexMtx::sTexGenBlock;
|
||||
|
||||
/* 804515C4-804515C8 000AC4 0004+00 1/1 2/2 0/0 .sbss sTexMtxObj__17J3DDifferedTexMtx */
|
||||
u8 J3DDifferedTexMtx::sTexMtxObj[4];
|
||||
J3DTexMtx* J3DDifferedTexMtx::sTexMtxObj;
|
||||
|
||||
/* 80456398-8045639C 004998 0004+00 2/2 0/0 0/0 .sdata2 @1032 */
|
||||
SECTION_SDATA2 static u8 lit_1032[4] = {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GXPixel.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
@@ -42,10 +43,7 @@ extern "C" void makeZModeTable__Fv();
|
||||
extern "C" void makeTevSwapTable__Fv();
|
||||
extern "C" void GXInvalidateVtxCache();
|
||||
extern "C" void GXFlush();
|
||||
extern "C" void GXSetChanAmbColor();
|
||||
extern "C" void GXInitTexCacheRegion();
|
||||
extern "C" void GXSetTevIndirect();
|
||||
extern "C" void GXSetColorUpdate();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_25();
|
||||
@@ -162,122 +160,153 @@ asm void J3DSys::drawInit() {
|
||||
#pragma pop
|
||||
|
||||
/* 8031073C-8031079C 30B07C 0060+00 0/0 16/16 6/6 .text reinitGX__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitGX() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitGX__6J3DSysFv.s"
|
||||
void J3DSys::reinitGX() {
|
||||
reinitGenMode();
|
||||
reinitLighting();
|
||||
reinitTransform();
|
||||
reinitTexture();
|
||||
reinitTevStages();
|
||||
reinitIndStages();
|
||||
reinitPixelProc();
|
||||
GXFlush();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8031079C-803107E8 30B0DC 004C+00 1/1 0/0 0/0 .text reinitGenMode__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitGenMode() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitGenMode__6J3DSysFv.s"
|
||||
void J3DSys::reinitGenMode() {
|
||||
GXSetNumChans(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetNumIndStages(0);
|
||||
GXSetCullMode(GX_CULL_BACK);
|
||||
GXSetCoPlanar(GX_FALSE);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450950-80450954 0003D0 0004+00 2/2 0/0 0/0 .sdata ColorBlack */
|
||||
SECTION_SDATA static u8 ColorBlack[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
SECTION_SDATA static GXColor ColorBlack = {0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
/* 80450954-80450958 0003D4 0004+00 2/2 0/0 0/0 .sdata ColorWhite */
|
||||
SECTION_SDATA static u32 ColorWhite = 0xFFFFFFFF;
|
||||
SECTION_SDATA static GXColor ColorWhite = {0xFF, 0xFF, 0xFF, 0xFF};
|
||||
|
||||
/* 803107E8-80310894 30B128 00AC+00 1/1 0/0 0/0 .text reinitLighting__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitLighting() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitLighting__6J3DSysFv.s"
|
||||
void J3DSys::reinitLighting() {
|
||||
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
GX_AF_NONE);
|
||||
GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
GX_AF_NONE);
|
||||
GXSetChanAmbColor(GX_COLOR0A0, ColorBlack);
|
||||
GXSetChanAmbColor(GX_COLOR1A1, ColorBlack);
|
||||
GXSetChanMatColor(GX_COLOR0A0, ColorWhite);
|
||||
GXSetChanMatColor(GX_COLOR1A1, ColorWhite);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80310894-80310998 30B1D4 0104+00 1/1 0/0 0/0 .text reinitTransform__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitTransform() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitTransform__6J3DSysFv.s"
|
||||
void J3DSys::reinitTransform() {
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD5, GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD6, GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD7, GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80310998-80310A3C 30B2D8 00A4+00 2/2 0/0 0/0 .text reinitTexture__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitTexture() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitTexture__6J3DSysFv.s"
|
||||
void J3DSys::reinitTexture() {
|
||||
GXTexObj texObj;
|
||||
GXInitTexObj(&texObj, NullTexData, 4, 4, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP0);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP1);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP2);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP3);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP4);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP5);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP6);
|
||||
GXLoadTexObj(&texObj, GX_TEXMAP7);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80310A3C-80310D44 30B37C 0308+00 1/1 0/0 0/0 .text reinitTevStages__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitTevStages() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitTevStages__6J3DSysFv.s"
|
||||
void J3DSys::reinitTevStages() {
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
|
||||
|
||||
GXSetTevColor(GX_TEVREG0, ColorWhite);
|
||||
GXSetTevColor(GX_TEVREG1, ColorWhite);
|
||||
GXSetTevColor(GX_TEVREG2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR0, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR1, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR2, ColorWhite);
|
||||
GXSetTevKColor(GX_KCOLOR3, ColorWhite);
|
||||
|
||||
for (u32 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);
|
||||
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);
|
||||
GXSetTevKColorSel((GXTevStageID)i, GX_TEV_KCSEL_1_4);
|
||||
GXSetTevKAlphaSel((GXTevStageID)i, GX_TEV_KASEL_1);
|
||||
GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0);
|
||||
}
|
||||
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
|
||||
GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CD8E0-803CD8F8 02AA00 0018+00 1/1 0/0 0/0 .data IndMtx */
|
||||
SECTION_DATA static u8 IndMtx[24] = {
|
||||
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
SECTION_DATA static Mtx23 IndMtx = {0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f};
|
||||
|
||||
/* 80310D44-80310E3C 30B684 00F8+00 1/1 0/0 0/0 .text reinitIndStages__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitIndStages() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitIndStages__6J3DSysFv.s"
|
||||
void J3DSys::reinitIndStages() {
|
||||
for (u32 i = 0; i < GX_MAX_TEVSTAGE; i++) {
|
||||
GXSetTevDirect((GXTevStageID)i);
|
||||
}
|
||||
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD2, GX_TEXMAP2);
|
||||
GXSetIndTexOrder(GX_INDTEXSTAGE3, GX_TEXCOORD3, GX_TEXMAP3);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1);
|
||||
GXSetIndTexMtx(GX_ITM_0, IndMtx, 1);
|
||||
GXSetIndTexMtx(GX_ITM_1, IndMtx, 1);
|
||||
GXSetIndTexMtx(GX_ITM_2, IndMtx, 1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80456368-8045636C 004968 0004+00 1/1 0/0 0/0 .sdata2 @892 */
|
||||
SECTION_SDATA2 static u8 lit_892[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 8045636C-80456370 00496C 0004+00 1/1 0/0 0/0 .sdata2 @893 */
|
||||
SECTION_SDATA2 static f32 lit_893 = 1.0f;
|
||||
|
||||
/* 80456370-80456378 004970 0004+04 1/1 0/0 0/0 .sdata2 @894 */
|
||||
SECTION_SDATA2 static f32 lit_894[1 + 1 /* padding */] = {
|
||||
1.0f / 10.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80310E3C-80310ED0 30B77C 0094+00 1/1 0/0 0/0 .text reinitPixelProc__6J3DSysFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DSys::reinitPixelProc() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DSys/reinitPixelProc__6J3DSysFv.s"
|
||||
void J3DSys::reinitPixelProc() {
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetColorUpdate(GX_TRUE);
|
||||
GXSetAlphaUpdate(GX_FALSE);
|
||||
GXSetDither(GX_TRUE);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, ColorBlack);
|
||||
GXSetFogRangeAdj(GX_FALSE, 0, NULL);
|
||||
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451598-804515A0 000A98 0004+04 0/0 1/1 0/0 .sbss j3dDefaultViewNo */
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,34 +12,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXTlutSize {};
|
||||
|
||||
struct _GXTlutFmt {};
|
||||
|
||||
struct _GXTexWrapMode {};
|
||||
|
||||
struct _GXTexMtxType {};
|
||||
|
||||
struct _GXTexMapID {};
|
||||
|
||||
struct _GXTexGenType {};
|
||||
|
||||
struct _GXTexGenSrc {};
|
||||
|
||||
struct _GXTexFmt {};
|
||||
|
||||
struct _GXTexFilter {};
|
||||
|
||||
struct _GXLightID {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct _GXAnisotropy {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct J3DTextureSRTInfo {};
|
||||
|
||||
struct J3DTexMtx {
|
||||
/* 803238C4 */ void load(u32) const;
|
||||
/* 80323900 */ void calc(f32 const (*)[4]);
|
||||
@@ -50,10 +23,6 @@ struct J3DTexMtx {
|
||||
|
||||
struct J3DTexCoord {};
|
||||
|
||||
struct J3DSys {
|
||||
static u8 sTexCoordScaleTable[64 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct J3DNBTScale {};
|
||||
|
||||
struct J3DLightObj {
|
||||
@@ -121,13 +90,11 @@ extern "C" void J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f();
|
||||
extern "C" void J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f();
|
||||
extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f();
|
||||
extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f();
|
||||
extern "C" void PSMTXConcat();
|
||||
extern "C" void GDOverflowed();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */];
|
||||
extern "C" extern u8 __GDCurrentDL[4];
|
||||
|
||||
@@ -157,24 +124,18 @@ asm void loadTexCoordGens(u32 param_0, J3DTexCoord* param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 803238C4-80323900 31E204 003C+00 0/0 6/6 0/0 .text load__9J3DTexMtxCFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexMtx::load(u32 param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DTevs/load__9J3DTexMtxCFUl.s"
|
||||
void J3DTexMtx::load(u32 mtxIdx) const {
|
||||
if (j3dSys.checkFlag(J3DSysFlag_PostTexMtx)) {
|
||||
loadPostTexMtx(mtxIdx);
|
||||
} else {
|
||||
loadTexMtx(mtxIdx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80323900-80323920 31E240 0020+00 0/0 2/2 0/0 .text calc__9J3DTexMtxFPA4_Cf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexMtx::calc(f32 const (*param_0)[4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DTevs/calc__9J3DTexMtxFPA4_Cf.s"
|
||||
void J3DTexMtx::calc(f32 const (*param_0)[4]) {
|
||||
calcTexMtx(param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CEAC8-803CEAF8 02BBE8 0030+00 1/1 0/0 0/0 .data qMtx$1001 */
|
||||
|
||||
@@ -130,8 +130,8 @@ void J3DVertexBuffer::setArray() const {
|
||||
|
||||
/* 80311090-803111B0 30B9D0 0120+00 1/1 0/0 0/0 .text copyLocalVtxPosArray__15J3DVertexBufferFUl
|
||||
*/
|
||||
s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 param_0) {
|
||||
if (param_0 & 1) {
|
||||
s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flags) {
|
||||
if (flags & 1) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JParticle/JPAChildShape.h"
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,13 +12,13 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JPAEmitterWorkData {};
|
||||
|
||||
struct JPAChildShape {
|
||||
public:
|
||||
/* 8027B038 */ JPAChildShape(u8 const*);
|
||||
};
|
||||
|
||||
struct JPABaseParticle {};
|
||||
public:
|
||||
u8 const* mpData;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -28,12 +29,6 @@ extern "C" void JPACalcChildAlphaOut__FP18JPAEmitterWorkDataP15JPABaseParticle()
|
||||
extern "C" void JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void __ct__13JPAChildShapeFPCUc();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void GXSetTevColor();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
@@ -69,6 +64,13 @@ asm void JPACalcChildAlphaOut(JPAEmitterWorkData* param_0, JPABaseParticle* para
|
||||
|
||||
/* 8027B008-8027B038 275948 0030+00 0/0 1/1 0/0 .text
|
||||
* JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#ifdef NONMATCHING
|
||||
void JPACalcChildScaleOut(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
// literal
|
||||
ptcl->mParticleScaleX = ptcl->mScaleOut * (1.0f - ptcl->mTime);
|
||||
ptcl->mParticleScaleY = ptcl->mAlphaWaveRandom * (1.0f - ptcl->mTime);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -77,8 +79,9 @@ asm void JPACalcChildScaleOut(JPAEmitterWorkData* param_0, JPABaseParticle* para
|
||||
#include "asm/JSystem/JParticle/JPAChildShape/JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8027B038-8027B040 -00001 0008+00 0/0 0/0 0/0 .text __ct__13JPAChildShapeFPCUc */
|
||||
JPAChildShape::JPAChildShape(u8 const* param_0) {
|
||||
*(u32*)this = (u32)(param_0);
|
||||
JPAChildShape::JPAChildShape(u8 const* pData) {
|
||||
mpData = pData;
|
||||
}
|
||||
|
||||
@@ -13,12 +13,6 @@
|
||||
|
||||
struct JPAEmitterWorkData {};
|
||||
|
||||
struct JPADynamicsBlock {
|
||||
/* 8027BB18 */ JPADynamicsBlock(u8 const*);
|
||||
/* 8027BB4C */ void init();
|
||||
/* 8027BBE8 */ void create(JPAEmitterWorkData*);
|
||||
};
|
||||
|
||||
struct JPABaseEmitter {
|
||||
/* 8027EA40 */ void createParticle();
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user