d_camera / m_Do_ext / d_particle + minor various wip (#210)

This commit is contained in:
TakaRikka
2022-10-03 15:26:26 -07:00
committed by GitHub
parent 0309490521
commit 4913395dbd
267 changed files with 5153 additions and 8112 deletions
+3 -3
View File
@@ -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;
}
+4 -4
View File
@@ -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;
+84 -29
View File
@@ -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() {
+1 -5
View File
@@ -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
+8 -8
View File
@@ -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]);
}
}
+3 -3
View File
@@ -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;
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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;
+14 -14
View File
@@ -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;
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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) {
+1 -1
View File
@@ -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;
+4 -4
View File
@@ -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;
}
+1 -1
View File
@@ -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;
+11 -11
View File
@@ -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;
}
+3 -3
View File
@@ -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());
+14 -20
View File
@@ -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