Remove fake matches, fix false equivalencies, and other small matches (#2837)

* Debug matches and remove fake matches

* Fix false equivalencies, regallocs, and vtable orders

* Fix PAL splits
This commit is contained in:
LagoLunatic
2025-11-21 00:17:51 -05:00
committed by GitHub
parent 6f7457a870
commit 91011befd7
41 changed files with 217 additions and 182 deletions
+4 -6
View File
@@ -15,13 +15,11 @@ JAUSeqDataBlock::JAUSeqDataBlock() : field_0x0(this) {}
/* 802A6928-802A6974 2A1268 004C+00 1/1 0/0 0/0 .text getSeqData__16JAUSeqDataBlocksF10JAISoundID
*/
u8* JAUSeqDataBlocks::getSeqData(JAISoundID param_0) {
// fake match. Should be
// if (param_0.isAnonymous()) {
// But doesn't match
if ((u32)param_0 == 0xffffffff) {
if (param_0.isAnonymous()) {
return NULL;
}
for (JSULink<JAUSeqDataBlock>* link = getFirst(); link != NULL;
JSULink<JAUSeqDataBlock>* link;
for (link = getFirst(); link != NULL;
link = link->getNext())
{
if ((u32)link->getObject()->field_0x10 == (u32)param_0) {
@@ -86,7 +84,7 @@ JAUDynamicSeqDataBlocks::JAUDynamicSeqDataBlocks() {
/* 802A6AA0-802A6AA8 -00001 0008+00 0/0 0/0 0/0 .text
* setSeqDataArchive__23JAUDynamicSeqDataBlocksFP10JKRArchive */
void JAUDynamicSeqDataBlocks::setSeqDataArchive(JKRArchive* param_0) {
*(u32*)(((u8*)this) + 36) /* this->field_0x24 */ = (u32)(param_0);
seqDataArchive_ = param_0;
}
/* 802A6AA8-802A6B8C 2A13E8 00E4+00 0/0 1/1 0/0 .text
+12 -4
View File
@@ -29,20 +29,28 @@ void JUTNameTab::setResource(const ResNTAB* pNameTable) {
}
s32 JUTNameTab::getIndex(const char* pName) const {
JUT_ASSERT(101, mNameTable != NULL);
const ResNTAB::Entry* pEntry = mNameTable->mEntries;
u16 keyCode = calcKeyCode(pName);
for (u16 i = 0; i < mNameNum; pEntry++, i++)
if (pEntry->mKeyCode == keyCode &&
strcmp((mNameTable->mEntries[i].mOffs + ((const char*)mNameTable)), pName) == 0)
for (u16 i = 0; i < mNameNum; i++) {
if (
pEntry->mKeyCode == keyCode &&
strcmp((mNameTable->mEntries[i].mOffs + ((const char*)mNameTable)), pName) == 0
) {
return i;
}
pEntry++;
}
return -1;
}
const char* JUTNameTab::getName(u16 index) const {
JUT_ASSERT(138, mNameTable != NULL);
if (index < mNameNum)
return mNameTable->getName(index);
return ((const char*)mNameTable) + mNameTable->mEntries[index].mOffs;
return NULL;
}