mirror of
https://github.com/zeldaret/tp
synced 2026-08-22 06:44:53 -04:00
d_camera / m_Do_ext / d_particle + minor various wip (#210)
This commit is contained in:
@@ -568,10 +568,10 @@ void J2DAnmTexPattern::searchUpdateMaterialID(J2DScreen* pScreen) {
|
||||
}
|
||||
}
|
||||
mTIMGPtrArray[i].mRes = var2;
|
||||
if (var2 != NULL && var2->palettesEnabled) {
|
||||
if (var2 != NULL && var2->indexTexture) {
|
||||
JUTPalette* palette =
|
||||
new JUTPalette(GX_TLUT0, (_GXTlutFmt)var2->paletteFormat,
|
||||
(JUTTransparency)var2->alphaEnabled, var2->paletteCount,
|
||||
new JUTPalette(GX_TLUT0, (_GXTlutFmt)var2->colorFormat,
|
||||
(JUTTransparency)var2->alphaEnabled, var2->numColors,
|
||||
((u8*)var2) + var2->paletteOffset);
|
||||
mTIMGPtrArray[i].mPalette = palette;
|
||||
}
|
||||
|
||||
@@ -1108,9 +1108,9 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
}
|
||||
|
||||
u8 tlutid = 0;
|
||||
if (p_timg->palettesEnabled && p_tlut == NULL) {
|
||||
if (p_timg->indexTexture && p_tlut == NULL) {
|
||||
JUTTexture* tex = mTexture[0];
|
||||
if (tex != NULL && tex->getTexInfo() != NULL && tex->getTexInfo()->palettesEnabled) {
|
||||
if (tex != NULL && tex->getTexInfo() != NULL && tex->getTexInfo()->indexTexture) {
|
||||
int tlutname = tex->getTlutName();
|
||||
if (tlutname == GX_TLUT0 || tlutname == GX_BIGTLUT0) {
|
||||
tlutid = 1;
|
||||
@@ -1235,10 +1235,10 @@ bool J2DTevBlock2::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
}
|
||||
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->palettesEnabled) {
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
if (mTexture[param_0 == 0] != NULL) {
|
||||
const ResTIMG* timg = mTexture[param_0 == 0]->getTexInfo();
|
||||
if (timg != NULL && timg->palettesEnabled) {
|
||||
if (timg != NULL && timg->indexTexture) {
|
||||
int tlutname = mTexture[param_0 == 0]->getTlutName();
|
||||
u8 var_r0 = 0;
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DTransform.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
@@ -241,41 +242,62 @@ asm s32 J3DModel::createMatPacket(J3DModelData* param_0, u32 param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::newDifferedDisplayList(u32 param_0) {
|
||||
asm s32 J3DModel::newDifferedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/newDifferedDisplayList__8J3DModelFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032767C-803276B4 321FBC 0038+00 0/0 4/4 0/0 .text lock__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::lock() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/lock__8J3DModelFv.s"
|
||||
void J3DModel::lock() {
|
||||
u16 matNum = mModelData->getMaterialNum();
|
||||
|
||||
for (int i = 0; i < matNum; i++) {
|
||||
mMatPacket[i].lock();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803276B4-803276EC 321FF4 0038+00 0/0 2/2 0/0 .text unlock__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::unlock() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/unlock__8J3DModelFv.s"
|
||||
void J3DModel::unlock() {
|
||||
u16 matNum = mModelData->getMaterialNum();
|
||||
|
||||
for (int i = 0; i < matNum; i++) {
|
||||
mMatPacket[i].unlock();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803276EC-80327858 32202C 016C+00 1/0 0/0 0/0 .text calcMaterial__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calcMaterial() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcMaterial__8J3DModelFv.s"
|
||||
void J3DModel::calcMaterial() {
|
||||
j3dSys.setModel(this);
|
||||
|
||||
if (checkFlag(4)) {
|
||||
j3dSys.onFlag(4);
|
||||
} else {
|
||||
j3dSys.offFlag(4);
|
||||
}
|
||||
|
||||
if (checkFlag(8)) {
|
||||
j3dSys.onFlag(8);
|
||||
} else {
|
||||
j3dSys.offFlag(8);
|
||||
}
|
||||
|
||||
mModelData->syncJ3DSysFlags();
|
||||
j3dSys.setTexture(mModelData->getTexture());
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
int jntNo = material->getJoint()->getJntNo();
|
||||
material->calc(i_getAnmMtx(jntNo));
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327858-803279A0 322198 0148+00 1/0 0/0 0/0 .text calcDiffTexMtx__8J3DModelFv */
|
||||
#pragma push
|
||||
@@ -385,6 +407,13 @@ void J3DModel::calcWeightEnvelopeMtx() {
|
||||
}
|
||||
|
||||
/* 80327CA4-80327CF0 3225E4 004C+00 1/0 0/0 0/0 .text update__8J3DModelFv */
|
||||
// matches with vtable data
|
||||
#ifdef NONMATCHING
|
||||
void J3DModel::update() {
|
||||
calc();
|
||||
entry();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -394,6 +423,7 @@ extern "C" asm void update__8J3DModelFv() {
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/update__8J3DModelFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80327CF0-80327E4C 322630 015C+00 1/0 0/0 0/0 .text calc__8J3DModelFv */
|
||||
void J3DModel::calc() {
|
||||
@@ -470,14 +500,39 @@ void J3DModel::entry() {
|
||||
}
|
||||
|
||||
/* 80327F40-80328190 322880 0250+00 1/0 0/0 0/0 .text viewCalc__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::viewCalc() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/viewCalc__8J3DModelFv.s"
|
||||
void J3DModel::viewCalc() {
|
||||
mMtxBuffer->swapDrawMtx();
|
||||
mMtxBuffer->swapNrmMtx();
|
||||
|
||||
if (mModelData->checkFlag(0x10)) {
|
||||
if (getMtxCalcMode() == 2) {
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mInternalView);
|
||||
}
|
||||
} else if (isCpuSkinningOn()) {
|
||||
if (getMtxCalcMode() == 2) {
|
||||
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mInternalView);
|
||||
}
|
||||
} else if (checkFlag(4)) {
|
||||
mMtxBuffer->calcDrawMtx(getMtxCalcMode(), mBaseScale, mBaseTransformMtx);
|
||||
calcNrmMtx();
|
||||
calcBumpMtx();
|
||||
DCStoreRangeNoSync(getDrawMtxPtr(), mModelData->getDrawMtxNum() * sizeof(Mtx));
|
||||
DCStoreRange(getNrmMtxPtr(), mModelData->getDrawMtxNum() * sizeof(Mtx33));
|
||||
} else if (checkFlag(8)) {
|
||||
mMtxBuffer->calcDrawMtx(getMtxCalcMode(), mBaseScale, mBaseTransformMtx);
|
||||
calcBBoardMtx();
|
||||
DCStoreRange(getDrawMtxPtr(), mModelData->getDrawMtxNum() * sizeof(Mtx));
|
||||
} else {
|
||||
mMtxBuffer->calcDrawMtx(getMtxCalcMode(), mBaseScale, mBaseTransformMtx);
|
||||
calcNrmMtx();
|
||||
calcBBoardMtx();
|
||||
calcBumpMtx();
|
||||
DCStoreRangeNoSync(getDrawMtxPtr(), mModelData->getDrawMtxNum() * sizeof(Mtx));
|
||||
DCStoreRange(getNrmMtxPtr(), mModelData->getDrawMtxNum() * sizeof(Mtx33));
|
||||
}
|
||||
|
||||
prepareShapePackets();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80328190-803281B4 322AD0 0024+00 1/1 0/0 0/0 .text calcNrmMtx__8J3DModelFv */
|
||||
void J3DModel::calcNrmMtx() {
|
||||
|
||||
@@ -97,8 +97,7 @@ J3DDrawBuffer::~J3DDrawBuffer() {
|
||||
mpBuf = NULL;
|
||||
}
|
||||
|
||||
#if NON_MATCHING
|
||||
|
||||
#ifdef NONMATCHING
|
||||
/* 80325068-8032509C 31F9A8 0034+00 2/2 1/1 0/0 .text frameInit__13J3DDrawBufferFv */
|
||||
void J3DDrawBuffer::frameInit() {
|
||||
// can't make mwcc not generate "mtctr" for this loop
|
||||
@@ -107,9 +106,7 @@ void J3DDrawBuffer::frameInit() {
|
||||
|
||||
mpCallBackPacket = NULL;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* 80325068-8032509C 31F9A8 0034+00 2/2 1/1 0/0 .text frameInit__13J3DDrawBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
@@ -119,7 +116,6 @@ asm void J3DDrawBuffer::frameInit() {
|
||||
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/frameInit__13J3DDrawBufferFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* 8032509C-803251E4 31F9DC 0148+00 2/1 0/0 0/0 .text
|
||||
|
||||
@@ -12,18 +12,18 @@ void J3DTexture::loadGX(u16 idx, GXTexMapID texMapID) const {
|
||||
ResTIMG* timg = getResTIMG(idx);
|
||||
GXTexObj texObj;
|
||||
|
||||
if (!timg->palettesEnabled) {
|
||||
GXInitTexObj(&texObj, ((u8*)timg) + timg->texDataOffset, timg->width, timg->height,
|
||||
if (!timg->indexTexture) {
|
||||
GXInitTexObj(&texObj, ((u8*)timg) + timg->imageOffset, timg->width, timg->height,
|
||||
(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,
|
||||
GXInitTexObjCI(&texObj, ((u8*)timg) + timg->imageOffset, 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);
|
||||
GXInitTlutObj(&tlutObj, ((u8*)timg) + timg->paletteOffset, (GXTlutFmt)timg->colorFormat,
|
||||
timg->numColors);
|
||||
GXLoadTlut(&tlutObj, texMapID);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ void J3DTexture::entryNum(u16 num) {
|
||||
|
||||
for (s32 i = 0; i < mNum; i++) {
|
||||
mpRes[i].paletteOffset = 0;
|
||||
mpRes[i].texDataOffset = 0;
|
||||
mpRes[i].imageOffset = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,13 +59,13 @@ void J3DTexture::addResTIMG(u16 newNum, ResTIMG const* newRes) {
|
||||
|
||||
for (u16 i = 0; i < oldNum; i++) {
|
||||
mpRes[i] = oldRes[i];
|
||||
mpRes[i].texDataOffset = (u32)(&oldRes[i]) + mpRes[i].texDataOffset - (u32)(&mpRes[i]);
|
||||
mpRes[i].imageOffset = (u32)(&oldRes[i]) + mpRes[i].imageOffset - (u32)(&mpRes[i]);
|
||||
mpRes[i].paletteOffset = (u32)(&oldRes[i]) + mpRes[i].paletteOffset - (u32)(&mpRes[i]);
|
||||
}
|
||||
|
||||
for (u16 i = oldNum; i < mNum; i++) {
|
||||
mpRes[i] = newRes[i];
|
||||
mpRes[i].texDataOffset = (u32)(&newRes[i]) + mpRes[i].texDataOffset - (u32)(&mpRes[i]);
|
||||
mpRes[i].imageOffset = (u32)(&newRes[i]) + mpRes[i].imageOffset - (u32)(&mpRes[i]);
|
||||
mpRes[i].paletteOffset = (u32)(&newRes[i]) + mpRes[i].paletteOffset - (u32)(&mpRes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ asm JGadget::TNodeLinkList::~TNodeLinkList() {
|
||||
|
||||
/* 802DCA58-802DCAA0 2D7398 0048+00 0/0 2/2 0/0 .text
|
||||
* erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iterator */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
JGadget::TNodeLinkList::iterator
|
||||
JGadget::TNodeLinkList::erase(JGadget::TNodeLinkList::iterator it) {
|
||||
TLinkListNode* node = it.node;
|
||||
@@ -89,7 +89,7 @@ JGadget::TNodeLinkList::iterator JGadget::TNodeLinkList::erase(iterator start, i
|
||||
/* 802DCB08-802DCBA8 2D7448 00A0+00 1/1 0/0 0/0 .text
|
||||
* splice__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorRQ27JGadget13TNodeLinkListQ37JGadget13TNodeLinkList8iterator
|
||||
*/
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JGadget::TNodeLinkList::splice(iterator myIt, TNodeLinkList& otherList, iterator otherIt) {
|
||||
TLinkListNode* otherNode = otherIt;
|
||||
TLinkListNode* otherNextNode = otherNode->mNext;
|
||||
@@ -141,7 +141,7 @@ JGadget::TNodeLinkList::iterator JGadget::TNodeLinkList::Erase(TLinkListNode* no
|
||||
|
||||
/* 802DCBF8-802DCCC8 2D7538 00D0+00 0/0 2/2 0/0 .text
|
||||
* Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JGadget::TNodeLinkList::Remove(TLinkListNode* node) {
|
||||
TNodeLinkList trashList;
|
||||
TLinkListNode* myNode = this->ocObject_.mNext;
|
||||
|
||||
@@ -154,7 +154,7 @@ inline u32 alignNext(u32 var, u32 align) {
|
||||
}
|
||||
|
||||
/* 802D72A8-802D75E0 2D1BE8 0338+00 1/1 0/0 0/0 .text open__14JKRAramArchiveFl */
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
// r30 <-> r29
|
||||
bool JKRAramArchive::open(s32 entryNum) {
|
||||
mArcInfoBlock = NULL;
|
||||
@@ -288,7 +288,7 @@ void* JKRAramArchive::fetchResource(JKRArchive::SDIFileEntry* pEntry, u32* pOutS
|
||||
|
||||
/* 802D76F4-802D77F8 2D2034 0104+00 1/0 0/0 0/0 .text
|
||||
* fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl */
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
void* JKRAramArchive::fetchResource(void* buffer, u32 bufferSize, JKRArchive::SDIFileEntry* pEntry,
|
||||
u32* resourceSize) {
|
||||
u32 size = pEntry->data_size;
|
||||
@@ -373,7 +373,7 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 src, u32 srcLength, u8* dst, u3
|
||||
|
||||
/* 802D7914-802D7A64 2D2254 0150+00 1/1 1/1 0/0 .text
|
||||
* fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc */
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
u32 JKRAramArchive::fetchResource_subroutine(u32 entryNum, u32 length, JKRHeap* pHeap,
|
||||
int compression, u8** out) {
|
||||
// r28 -> r29, r29 -> r30, r30 -> r31, r31 -> r28
|
||||
|
||||
@@ -265,7 +265,7 @@ asm void JKRDecomp::decodeSZP(u8* param_0, u8* param_1, u32 param_2, u32 param_3
|
||||
#endif
|
||||
|
||||
/* 802DBC14-802DBCF8 2D6554 00E4+00 1/1 0/0 0/0 .text decodeSZS__9JKRDecompFPUcPUcUlUl */
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JKRDecomp::decodeSZS(u8* src_buffer, u8* dst_buffer, u32 param_3, u32 param_4) {
|
||||
int copyByteCount;
|
||||
u8* decompEnd;
|
||||
|
||||
@@ -114,7 +114,7 @@ JKRExpHeap* JKRExpHeap::createRoot(int maxHeaps, bool errorFlag) {
|
||||
|
||||
/* 802CEE2C-802CEF00 2C976C 00D4+00 0/0 19/19 1/1 .text create__10JKRExpHeapFUlP7JKRHeapb
|
||||
*/
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
JKRExpHeap* JKRExpHeap::create(u32 size, JKRHeap* parent, bool errorFlag) {
|
||||
if (!parent) {
|
||||
parent = sRootHeap;
|
||||
@@ -226,7 +226,7 @@ SECTION_DATA extern void* __vt__10JKRExpHeap[24] = {
|
||||
*/
|
||||
JKRExpHeap::JKRExpHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag)
|
||||
: JKRHeap(data, size, parent, errorFlag) {
|
||||
field_0x6c = 0;
|
||||
mAllocMode = 0;
|
||||
mCurrentGroupId = 0xff;
|
||||
mHeadFreeList = (CMemBlock*)data;
|
||||
mTailFreeList = mHeadFreeList;
|
||||
@@ -289,7 +289,7 @@ static JKRExpHeap::CMemBlock* DBnewFreeBlock;
|
||||
static JKRExpHeap::CMemBlock* DBnewUsedBlock;
|
||||
|
||||
/* 802CF234-802CF490 2C9B74 025C+00 1/1 0/0 0/0 .text allocFromHead__10JKRExpHeapFUli */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void* JKRExpHeap::allocFromHead(u32 size, int align) {
|
||||
size = ALIGN_NEXT(size, 4);
|
||||
s32 foundSize = -1;
|
||||
@@ -308,7 +308,7 @@ void* JKRExpHeap::allocFromHead(u32 size, int align) {
|
||||
foundSize = block->getSize();
|
||||
foundBlock = block;
|
||||
foundOffset = offset;
|
||||
if (field_0x6c != 0) {
|
||||
if (mAllocMode != 0) {
|
||||
break;
|
||||
}
|
||||
u32 blockSize = block->getSize();
|
||||
@@ -397,7 +397,7 @@ void* JKRExpHeap::allocFromHead(u32 size) {
|
||||
}
|
||||
foundSize = block->getSize();
|
||||
foundBlock = block;
|
||||
if (field_0x6c != 0) {
|
||||
if (mAllocMode != 0) {
|
||||
break;
|
||||
}
|
||||
if (foundSize == size) {
|
||||
@@ -418,7 +418,7 @@ void* JKRExpHeap::allocFromHead(u32 size) {
|
||||
}
|
||||
|
||||
/* 802CF574-802CF6D4 2C9EB4 0160+00 1/1 0/0 0/0 .text allocFromTail__10JKRExpHeapFUli */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void* JKRExpHeap::allocFromTail(u32 size, int align) {
|
||||
u32 offset = 0;
|
||||
CMemBlock* foundBlock = NULL;
|
||||
@@ -524,7 +524,7 @@ void JKRExpHeap::do_freeAll() {
|
||||
}
|
||||
|
||||
/* 802CF89C-802CF924 2CA1DC 0088+00 1/0 0/0 0/0 .text do_freeTail__10JKRExpHeapFv */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JKRExpHeap::do_freeTail() {
|
||||
lock();
|
||||
CMemBlock* block = mHeadUsedList;
|
||||
@@ -567,7 +567,7 @@ s32 JKRExpHeap::do_changeGroupID(u8 param_0) {
|
||||
}
|
||||
|
||||
/* 802CF978-802CFB24 2CA2B8 01AC+00 1/0 0/0 0/0 .text do_resize__10JKRExpHeapFPvUl */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
s32 JKRExpHeap::do_resize(void* ptr, u32 size) {
|
||||
lock();
|
||||
CMemBlock* block = CMemBlock::getHeapBlock(ptr);
|
||||
@@ -788,7 +788,7 @@ void JKRExpHeap::removeUsedBlock(JKRExpHeap::CMemBlock* block) {
|
||||
|
||||
/* 802CFF1C-802D00B4 2CA85C 0198+00 2/2 0/0 0/0 .text
|
||||
* recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JKRExpHeap::recycleFreeBlock(JKRExpHeap::CMemBlock* block) {
|
||||
u32 size = block->size;
|
||||
void* blockEnd = (u8*)block + size;
|
||||
@@ -857,7 +857,7 @@ SECTION_DEAD static char const* const stringBase_8039CB5F = "Bad Block\n";
|
||||
|
||||
/* 802D00B4-802D0190 2CA9F4 00DC+00 1/1 0/0 0/0 .text
|
||||
* joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JKRExpHeap::joinTwoBlocks(CMemBlock* block) {
|
||||
u32 endAddr = (u32)block->getContent() + block->getSize();
|
||||
CMemBlock* next = block->getNextBlock();
|
||||
@@ -903,7 +903,7 @@ SECTION_DEAD static char const* const stringBase_8039CC67 =
|
||||
#pragma pop
|
||||
|
||||
/* 802D0190-802D03B8 2CAAD0 0228+00 1/0 0/0 0/0 .text check__10JKRExpHeapFv */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
bool JKRExpHeap::check() {
|
||||
lock();
|
||||
int totalBytes = 0;
|
||||
@@ -1011,7 +1011,7 @@ SECTION_SDATA2 static f32 lit_1121[1 + 1 /* padding */] = {
|
||||
SECTION_SDATA2 static f64 lit_1123 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 802D03B8-802D05CC 2CACF8 0214+00 1/0 0/0 0/0 .text dump__10JKRExpHeapFv */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
bool JKRExpHeap::dump() {
|
||||
lock();
|
||||
bool result = check();
|
||||
@@ -1067,7 +1067,7 @@ asm bool JKRExpHeap::dump() {
|
||||
#endif
|
||||
|
||||
/* 802D05CC-802D0810 2CAF0C 0244+00 1/0 0/0 0/0 .text dump_sort__10JKRExpHeapFv */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
bool JKRExpHeap::dump_sort() {
|
||||
lock();
|
||||
bool result = check();
|
||||
@@ -1147,7 +1147,7 @@ void JKRExpHeap::CMemBlock::initiate(JKRExpHeap::CMemBlock* prev, JKRExpHeap::CM
|
||||
|
||||
/* 802D0830-802D0874 2CB170 0044+00 3/3 0/0 0/0 .text
|
||||
* allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc */
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
JKRExpHeap::CMemBlock* JKRExpHeap::CMemBlock::allocFore(u32 size, u8 groupId1, u8 alignment1,
|
||||
u8 groupId2, u8 alignment2) {
|
||||
CMemBlock* block = NULL;
|
||||
|
||||
@@ -133,7 +133,7 @@ SECTION_DATA static u32 twiceBit[4] = {
|
||||
|
||||
/* 802E431C-802E456C 2DEC5C 0250+00 1/1 0/0 0/0 .text drawChar__14JUTDirectPrintFiii */
|
||||
// incorrect reg-alloc
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
void JUTDirectPrint::drawChar(int position_x, int position_y, int ch) {
|
||||
int codepoint;
|
||||
if (100 <= ch)
|
||||
|
||||
@@ -970,7 +970,7 @@ SECTION_DEAD static char const* const pad_8039D99E = "\0";
|
||||
/* 802E3C90-802E3FEC 2DE5D0 035C+00 1/1 0/0 0/0 .text
|
||||
* queryMapAddress_single__12JUTExceptionFPcUllPUlPUlPcUlbb */
|
||||
// 2 additional instructions (addi r5,r1,8) related to section_name variable.
|
||||
#if NONMATCHING
|
||||
#ifdef NONMATCHING
|
||||
bool JUTException::queryMapAddress_single(char* mapPath, u32 address, s32 section_id, u32* out_addr,
|
||||
u32* out_size, char* out_line, u32 line_length,
|
||||
bool print, bool begin_with_newline) {
|
||||
|
||||
@@ -61,7 +61,7 @@ void JUTFont::setGradColor(JUtility::TColor col1, JUtility::TColor col2) {
|
||||
|
||||
/* 802DEE28-802DEF48 2D9768 0120+00 0/0 3/3 0/0 .text drawString_size_scale__7JUTFontFffffPCcUlb
|
||||
*/
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
f32 JUTFont::drawString_size_scale(f32 a1, f32 a2, f32 a3, f32 a4, const char* str, u32 usz,
|
||||
bool a7) {
|
||||
f32 temp = a1;
|
||||
|
||||
@@ -17,7 +17,7 @@ JUTNameTab::JUTNameTab(const ResNTAB* pNameTable) {
|
||||
}
|
||||
|
||||
void JUTNameTab::setResource(const ResNTAB* pNameTable) {
|
||||
mpNameTable = pNameTable;
|
||||
mNameTable = pNameTable;
|
||||
|
||||
if (pNameTable != NULL) {
|
||||
mNameNum = pNameTable->mEntryNum;
|
||||
@@ -29,12 +29,12 @@ void JUTNameTab::setResource(const ResNTAB* pNameTable) {
|
||||
}
|
||||
|
||||
s32 JUTNameTab::getIndex(const char* pName) const {
|
||||
const ResNTAB::Entry* pEntry = mpNameTable->mEntries;
|
||||
const ResNTAB::Entry* pEntry = mNameTable->mEntries;
|
||||
u16 keyCode = calcKeyCode(pName);
|
||||
|
||||
for (u16 i = 0; i < mNameNum; pEntry++, i++)
|
||||
if (pEntry->mKeyCode == keyCode &&
|
||||
strcmp((mpNameTable->mEntries[i].mOffs + ((const char*)mpNameTable)), pName) == 0)
|
||||
strcmp((mNameTable->mEntries[i].mOffs + ((const char*)mNameTable)), pName) == 0)
|
||||
return i;
|
||||
|
||||
return -1;
|
||||
@@ -42,7 +42,7 @@ s32 JUTNameTab::getIndex(const char* pName) const {
|
||||
|
||||
const char* JUTNameTab::getName(u16 index) const {
|
||||
if (index < mNameNum)
|
||||
return mpNameTable->getName(index);
|
||||
return mNameTable->getName(index);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -364,7 +364,7 @@ asm void JUTResFont::getWidthEntry(int param_0, JUTFont::TWidth* param_1) const
|
||||
|
||||
/* 802DFD0C-802DFD58 2DA64C 004C+00 1/0 1/0 0/0 .text getCellWidth__10JUTResFontCFv */
|
||||
// regalloc
|
||||
#ifdef NONMATCING
|
||||
#ifdef NONMATCHING
|
||||
u16 JUTResFont::getCellWidth() const {
|
||||
u16 width;
|
||||
|
||||
|
||||
@@ -54,9 +54,9 @@ void JUTTexture::storeTIMG(ResTIMG const* param_0, u8 param_1) {
|
||||
|
||||
if (param_0 && param_1 < 0x10) {
|
||||
mTexInfo = param_0;
|
||||
mTexData = (void*)((int)mTexInfo + mTexInfo->texDataOffset);
|
||||
mTexData = (void*)((int)mTexInfo + mTexInfo->imageOffset);
|
||||
|
||||
if (mTexInfo->texDataOffset == 0) {
|
||||
if (mTexInfo->imageOffset == 0) {
|
||||
mTexData = (void*)((int)mTexInfo + 0x20);
|
||||
}
|
||||
|
||||
@@ -72,10 +72,10 @@ void JUTTexture::storeTIMG(ResTIMG const* param_0, u8 param_1) {
|
||||
|
||||
ResTIMG* tmp = (ResTIMG*)mTexInfo;
|
||||
|
||||
if (mTexInfo->paletteCount == 0) {
|
||||
if (mTexInfo->numColors == 0) {
|
||||
initTexObj();
|
||||
} else {
|
||||
if (mTexInfo->paletteCount > 0x100) {
|
||||
if (mTexInfo->numColors > 0x100) {
|
||||
tlut = (_GXTlut)param_1;
|
||||
} else {
|
||||
tlut = (_GXTlut)((param_1 & 3) + GX_BIGTLUT0);
|
||||
@@ -84,15 +84,15 @@ void JUTTexture::storeTIMG(ResTIMG const* param_0, u8 param_1) {
|
||||
if (mEmbPalette == NULL || !getEmbPaletteDelFlag()) {
|
||||
JUTPalette* palette = new JUTPalette();
|
||||
if (palette) {
|
||||
palette->storeTLUT(tlut, (_GXTlutFmt)tmp->paletteFormat,
|
||||
(JUTTransparency)tmp->alphaEnabled, tmp->paletteCount,
|
||||
palette->storeTLUT(tlut, (_GXTlutFmt)tmp->colorFormat,
|
||||
(JUTTransparency)tmp->alphaEnabled, tmp->numColors,
|
||||
(void*)(tmp->format + tmp->paletteOffset));
|
||||
}
|
||||
mEmbPalette = palette;
|
||||
mFlags = mFlags & 1 | 2;
|
||||
} else {
|
||||
mEmbPalette->storeTLUT(tlut, (_GXTlutFmt)tmp->paletteFormat,
|
||||
(JUTTransparency)tmp->alphaEnabled, tmp->paletteCount,
|
||||
mEmbPalette->storeTLUT(tlut, (_GXTlutFmt)tmp->colorFormat,
|
||||
(JUTTransparency)tmp->alphaEnabled, tmp->numColors,
|
||||
(void*)(tmp->format + tmp->paletteOffset));
|
||||
}
|
||||
attachPalette(mEmbPalette);
|
||||
@@ -136,7 +136,7 @@ asm void JUTTexture::storeTIMG(ResTIMG const* param_0, JUTPalette* param_1, _GXT
|
||||
|
||||
/* 802DE5B0-802DE608 2D8EF0 0058+00 1/1 7/7 0/0 .text attachPalette__10JUTTextureFP10JUTPalette */
|
||||
void JUTTexture::attachPalette(JUTPalette* param_0) {
|
||||
if (mTexInfo->palettesEnabled) {
|
||||
if (mTexInfo->indexTexture) {
|
||||
if (param_0 == NULL && mEmbPalette != NULL) {
|
||||
field_0x2c = mEmbPalette;
|
||||
} else {
|
||||
@@ -149,7 +149,7 @@ void JUTTexture::attachPalette(JUTPalette* param_0) {
|
||||
|
||||
/* 802DE608-802DE658 2D8F48 0050+00 1/1 0/0 0/0 .text init__10JUTTextureFv */
|
||||
void JUTTexture::init() {
|
||||
if (mTexInfo->paletteCount == 0) {
|
||||
if (mTexInfo->numColors == 0) {
|
||||
initTexObj();
|
||||
} else {
|
||||
if (mEmbPalette != NULL) {
|
||||
@@ -180,7 +180,7 @@ void JUTTexture::initTexObj() {
|
||||
int offset;
|
||||
|
||||
if (mTexInfo->mipmapEnabled) {
|
||||
offset = mTexInfo->texDataOffset;
|
||||
offset = mTexInfo->imageOffset;
|
||||
} else {
|
||||
offset = 0x20;
|
||||
}
|
||||
|
||||
@@ -314,7 +314,7 @@ bool cM3d_Cross_AabCyl(const cM3dGAab* pAab, const cM3dGCyl* pCyl) {
|
||||
|
||||
/* 80268BB4-80268C5C 2634F4 00A8+00 0/0 2/2 0/0 .text cM3d_Cross_AabSph__FPC8cM3dGAabPC8cM3dGSph
|
||||
*/
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
bool cM3d_Cross_AabSph(const cM3dGAab* pAab, const cM3dGSph* pSph) {
|
||||
f32 radius = pSph->GetR();
|
||||
if (pAab->GetMinX() > pSph->GetC().GetX() + radius) { // addition registers are flipped
|
||||
@@ -346,7 +346,7 @@ asm bool cM3d_Cross_AabSph(cM3dGAab const* param_0, cM3dGSph const* param_1) {
|
||||
|
||||
/* 80268C5C-80268ED4 26359C 0278+00 3/3 0/0 0/0 .text
|
||||
* cM3d_Check_LinLin__FPC8cM3dGLinPC8cM3dGLinPfPf */
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
int cM3d_Check_LinLin(const cM3dGLin* pLinA, const cM3dGLin* pLinB, f32* pFloatA, f32* pFloatB) {
|
||||
Vec linAVec;
|
||||
Vec linBVec;
|
||||
@@ -425,7 +425,7 @@ static bool cM3d_CrossInfLineVsInfPlane_proc(f32 pFloatA, f32 pFloatB, const Vec
|
||||
|
||||
/* 80268F34-80269050 263874 011C+00 3/3 1/1 0/0 .text
|
||||
* cM3d_Cross_LinPla__FPC8cM3dGLinPC8cM3dGPlaP3Vecbb */
|
||||
#ifdef NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
bool cM3d_Cross_LinPla(const cM3dGLin* pLine, const cM3dGPla* pPlane, Vec* pVecOut, bool pBoolA,
|
||||
bool pBoolB) {
|
||||
f32 startVal = pPlane->getPlaneFunc(&pLine->GetStartP());
|
||||
|
||||
@@ -11,10 +11,6 @@ extern "C" static void cPhs_UnCompleate__FP30request_of_phase_process_class();
|
||||
extern "C" static void cPhs_Compleate__FP30request_of_phase_process_class();
|
||||
extern "C" static void cPhs_Next__FP30request_of_phase_process_class();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
@@ -22,14 +18,14 @@ extern "C" static void cPhs_Next__FP30request_of_phase_process_class();
|
||||
/* 80266624-80266630 000C+00 s=1 e=2 z=0 None .text
|
||||
* cPhs_Reset__FP30request_of_phase_process_class */
|
||||
void cPhs_Reset(request_of_phase_process_class* pPhase) {
|
||||
pPhase->mPhaseStep = 0;
|
||||
pPhase->id = cPhs_ZERO_e;
|
||||
}
|
||||
|
||||
/* 80266630-80266640 0010+00 s=0 e=3 z=0 None .text
|
||||
* cPhs_Set__FP30request_of_phase_process_classPPFPv_i */
|
||||
void cPhs_Set(request_of_phase_process_class* pPhase, cPhs__Handler* pHandlerTable) {
|
||||
pPhase->mpHandlerTable = pHandlerTable;
|
||||
pPhase->mPhaseStep = 0;
|
||||
pPhase->id = cPhs_ZERO_e;
|
||||
}
|
||||
|
||||
/* 80266640-80266668 0028+00 s=1 e=0 z=0 None .text
|
||||
@@ -50,15 +46,15 @@ int cPhs_Compleate(request_of_phase_process_class* pPhase) {
|
||||
*/
|
||||
int cPhs_Next(request_of_phase_process_class* pPhase) {
|
||||
if (const cPhs__Handler* handlerTable = pPhase->mpHandlerTable) {
|
||||
pPhase->mPhaseStep++;
|
||||
cPhs__Handler handler = handlerTable[pPhase->mPhaseStep];
|
||||
pPhase->id++;
|
||||
cPhs__Handler handler = handlerTable[pPhase->id];
|
||||
|
||||
// Double null check here actually matters for emitted assembly.
|
||||
// Wee old compilers.
|
||||
if (handler == NULL || handler == NULL) {
|
||||
return cPhs_Compleate(pPhase);
|
||||
} else {
|
||||
return 1;
|
||||
return cPhs_ONE_e;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,35 +63,33 @@ int cPhs_Next(request_of_phase_process_class* pPhase) {
|
||||
|
||||
/* 802666D8-802667AC 00D4+00 s=1 e=3 z=0 None .text cPhs_Do__FP30request_of_phase_process_classPv
|
||||
*/
|
||||
#if NON_MATCHING
|
||||
#ifdef NONMATCHING
|
||||
int cPhs_Do(request_of_phase_process_class* pPhase, void* pUserData) {
|
||||
if (const cPhs__Handler* pHandlerTable = pPhase->mpHandlerTable) {
|
||||
// the load of pUserData seems to be slightly scrambled..
|
||||
const cPhs__Handler pHandler = pHandlerTable[pPhase->mPhaseStep];
|
||||
const cPhs__Handler pHandler = pHandlerTable[pPhase->id];
|
||||
const int newStep = pHandler(pUserData);
|
||||
|
||||
switch (newStep) {
|
||||
case 1:
|
||||
case cPhs_ONE_e:
|
||||
return cPhs_Next(pPhase);
|
||||
case 2: {
|
||||
case cPhs_TWO_e:
|
||||
const int step2 = cPhs_Next(pPhase);
|
||||
return step2 == 1 ? 2 : cPhs_COMPLEATE_e;
|
||||
}
|
||||
return step2 == cPhs_ONE_e ? cPhs_TWO_e : cPhs_COMPLEATE_e;
|
||||
case cPhs_COMPLEATE_e:
|
||||
return cPhs_Compleate(pPhase);
|
||||
case 3: {
|
||||
case cPhs_UNK3_e:
|
||||
cPhs_UnCompleate(pPhase);
|
||||
return 3;
|
||||
}
|
||||
return cPhs_UNK3_e;
|
||||
case cPhs_ERROR_e:
|
||||
cPhs_UnCompleate(pPhase);
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return newStep;
|
||||
} else {
|
||||
return cPhs_Compleate(pPhase);
|
||||
}
|
||||
|
||||
return cPhs_Compleate(pPhase);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
|
||||
Reference in New Issue
Block a user