Debug version now builds OK and all_source compiles (#2343)

* Fix missing arg to JUT_ASSERT

* Fix some MWCC version diff errors

* Compile m_Do_ext, d_demo, actor_mng

* Add VSCode task to quickly switch between versions

* Unlink magLift for debug

* Update the hash of the debug dol

The old cbea5fa... hash here was for the dol generated by the alf2dol.py script, which produces incorrect alignment.

The dol with the new hash can be obtained by using `dtk elf2dol` to convert the debug .alf file to a dol.

The DOL now builds OK.

* Fix all debug REL dtor splits

All RELs now also build OK, meaning `ninja build/ShieldD/ok` now succeeds.

* Add genMessage declarations to all HIO subclasses

* Fixing more compilation errors

* m_Do_mtx 100% on debug

Cannot be linked due to weak function name mangling?

* Improve various matches

* Fix all remaining compilation errors

* Fix new compilation errors from main

* Fix retail regression

* Link f_pc_profile_lst
This commit is contained in:
LagoLunatic
2025-03-22 21:00:51 -04:00
committed by GitHub
parent d0f89e41b1
commit 4dc0cd9d09
543 changed files with 1413 additions and 1278 deletions
+23 -19
View File
@@ -17,6 +17,8 @@ struct daNpcCd2_HIO_Jnt_c
/* 8015A6E8 */ virtual ~daNpcCd2_HIO_Jnt_c() {}
/* 8015A788 */ daNpcCd2_HIO_Jnt_c();
void genMessage(JORMContext*);
/* 0x04 */ f32 field_0x04[3];
/* 0x10 */ s16 field_0x10[3];
};
@@ -42,6 +44,8 @@ struct daNpcCd2_HIO_c : public fOpAcm_HIO_entry_c {
/* 8015A4D8 */ daNpcCd2_HIO_c();
/* 8015A860 */ virtual ~daNpcCd2_HIO_c() {}
void genMessage(JORMContext*);
/* 0x0004 */ daNpcCd2_HIO_MChild_c field_0x0004[16];
/* 0x20C4 */ daNpcCd2_HIO_WChild_c field_0x20c4[14];
};
@@ -206,13 +210,13 @@ static char* const l_resWANb2[6] = {
"WAN_b2", "WAN_b2_TW", "Wgeneral", "Wspecial", "object", "objectTW",
};
struct tbl_entry {
struct anmTblPrm {
char* name;
int index;
};
/* 80393520-80393588 -00001 0068+00 1/1 0/0 0/0 .rodata l_objTbl */
SECTION_RODATA static tbl_entry const l_objTbl[13] = {
SECTION_RODATA static anmTblPrm const l_objTbl[13] = {
{"object", 9}, {"object", 9}, {"object", 8}, {"object", 3}, {"object", 13},
{"object", 14}, {"object", 12}, {"object", 6}, {"object", 7}, {"object", 10},
{"object", 11}, {"object", 15}, {"object", 16},
@@ -220,14 +224,14 @@ SECTION_RODATA static tbl_entry const l_objTbl[13] = {
COMPILER_STRIP_GATE(0x80393520, &l_objTbl);
/* 80393588-803935F0 -00001 0068+00 1/1 0/0 0/0 .rodata l_objTWTbl */
static tbl_entry const l_objTWTbl[13] = {
static anmTblPrm const l_objTWTbl[13] = {
{"objectTW", 9}, {"objectTW", 9}, {"objectTW", 8}, {"objectTW", 3}, {"objectTW", 13},
{"objectTW", 14}, {"objectTW", 12}, {"objectTW", 6}, {"objectTW", 7}, {"objectTW", 10},
{"objectTW", 11}, {"objectTW", -1}, {"objectTW", -1},
};
/* 803935F0-803937A0 -00001 01B0+00 1/1 0/0 0/0 .rodata l_bckTbl_M */
static tbl_entry const l_bckTbl_M[54] = {
static anmTblPrm const l_bckTbl_M[54] = {
{"Mgeneral", 26}, {"Mgeneral", 27}, {"Mgeneral", 29}, {"Mgeneral", 30}, {"Mgeneral", 8},
{"Mgeneral", 9}, {"Mgeneral", 20}, {"Mgeneral", 21}, {"Mgeneral", 23}, {"Mgeneral", 5},
{"Mgeneral", 6}, {"Mgeneral", 28}, {"Mgeneral", 24}, {"Mgeneral", 22}, {"Mgeneral", 17},
@@ -242,7 +246,7 @@ static tbl_entry const l_bckTbl_M[54] = {
};
/* 803937A0-80393950 -00001 01B0+00 1/1 0/0 0/0 .rodata l_bckTbl_W */
SECTION_RODATA static tbl_entry const l_bckTbl_W[54] = {
SECTION_RODATA static anmTblPrm const l_bckTbl_W[54] = {
{"Wgeneral", 31}, {"Wgeneral", 32}, {"Wgeneral", 34}, {"Wgeneral", 35}, {"Wgeneral", 13},
{"Wgeneral", 14}, {"Wgeneral", 25}, {"Wgeneral", 26}, {"Wgeneral", 28}, {"Wgeneral", 10},
{"Wgeneral", 11}, {"Wgeneral", 33}, {"Wgeneral", 29}, {"Wgeneral", 27}, {"Wgeneral", 22},
@@ -363,7 +367,7 @@ J3DModel* daNpcCd2_c::ChairCreate(f32 param_1) {
/* 801580A8-801580F0 1529E8 0048+00 4/4 0/0 5/5 .text isM___10daNpcCd2_cFv */
bool daNpcCd2_c::isM_() {
if (mpMorf == NULL) {
return field_0xa98 < 16;
return m_type < 16;
}
u16 a_jntNum = mpMorf->getModel()->getModelData()->getJointNum();
JUT_ASSERT(738, (a_jntNum == JntM_NUM_e) || (a_jntNum == JntW_NUM_e));
@@ -385,7 +389,7 @@ static char* const* l_resNameTbl[30] = {
};
/* 803B6244-803B6334 013364 00F0+00 1/2 0/0 0/0 .data l_bmdTbl */
static tbl_entry const l_bmdTbl[30] = {
static anmTblPrm const l_bmdTbl[30] = {
l_resMANa[0], 3, l_resMADa[0], 3, l_resMCNa[0], 4, l_resMONa[0], 4, l_resMANb[0], 3,
l_resMANc[0], 4, l_resMASa[0], 4, l_resMBNa[0], 4, l_resMANa2[0], 4, l_resMADa2[0], 4,
l_resMCNa2[0], 4, l_resMONa2[0], 4, l_resMANb2[0], 3, l_resMANc2[0], 4, l_resMASa2[0], 4,
@@ -395,7 +399,7 @@ static tbl_entry const l_bmdTbl[30] = {
};
/* 803B6334-803B6424 013454 00F0+00 1/2 0/0 0/0 .data l_bmdTWTbl */
static tbl_entry const l_bmdTWTbl[30] = {
static anmTblPrm const l_bmdTWTbl[30] = {
l_resMANa[1], 3, l_resMADa[1], 3, l_resMCNa[1], 4, l_resMONa[1], 4, l_resMANb[1], 3,
l_resMANc[1], 4, l_resMASa[1], 4, l_resMBNa[1], 4, l_resMANa2[1], 4, l_resMADa2[1], 3,
l_resMCNa2[1], 4, l_resMONa2[1], 4, l_resMANb2[1], 3, l_resMANc2[1], 4, l_resMASa2[1], 4,
@@ -405,7 +409,7 @@ static tbl_entry const l_bmdTWTbl[30] = {
};
/* 803B6424-803B6514 013544 00F0+00 1/2 0/0 0/0 .data l_btpTbl */
static tbl_entry const l_btpTbl[30] = {
static anmTblPrm const l_btpTbl[30] = {
l_resMANa[0], -1, l_resMADa[0], -1, l_resMCNa[0], 7, l_resMONa[0], 7, l_resMANb[0], -1,
l_resMANc[0], 7, l_resMASa[0], 7, l_resMBNa[0], 7, l_resMANa2[0], 7, l_resMADa2[0], 7,
l_resMCNa2[0], 7, l_resMONa2[0], 7, l_resMANb2[0], -1, l_resMANc2[0], 7, l_resMASa2[0], 7,
@@ -415,7 +419,7 @@ static tbl_entry const l_btpTbl[30] = {
};
/* 803B6514-803B6604 013634 00F0+00 1/2 0/0 0/0 .data l_btpTWTbl */
static tbl_entry const l_btpTWTbl[30] = {
static anmTblPrm const l_btpTWTbl[30] = {
l_resMANa[1], -1, l_resMADa[1], -1, l_resMCNa[1], 7, l_resMONa[1], 7, l_resMANb[1], -1,
l_resMANc[1], 7, l_resMASa[1], 7, l_resMBNa[1], 7, l_resMANa2[1], 7, l_resMADa2[1], -1,
l_resMCNa2[1], 7, l_resMONa2[1], 7, l_resMANb2[1], -1, l_resMANc2[1], 7, l_resMASa2[1], 7,
@@ -1547,7 +1551,7 @@ void* daNpcCd2_c::getAnmP(int param_1, int param_2) {
case 0x2b:
case 0x2c:
case 0x2e:
//JUT_ASSERT(939, m_type == MdlMANa_e || m_type == MdlMADa_e);
JUT_ASSERT(939, m_type == MdlMANa_e || m_type == MdlMADa_e);
break;
default:
return 0;
@@ -1560,7 +1564,7 @@ void* daNpcCd2_c::getAnmP(int param_1, int param_2) {
name = l_bckTbl_M[a_anmNum].name;
index = l_bckTbl_M[a_anmNum].index;
} else {
JUT_ASSERT(948, 0 <= a_anmNum && a_anmNum < (sizeof(l_bckTbl_W)/sizeof(anmTblPrm)));
JUT_ASSERT(953, 0 <= a_anmNum && a_anmNum < (sizeof(l_bckTbl_W)/sizeof(anmTblPrm)));
name = l_bckTbl_W[a_anmNum].name;
index = l_bckTbl_W[a_anmNum].index;
}
@@ -1844,10 +1848,10 @@ static inline s16 Cd2_HIO_jntRX(int param_1, int param_2) {
*/
int daNpcCd2_c::jntNodeCB(J3DJoint* param_1, J3DModel* param_2) {
int jntNo = param_1->getJntNo();
cXyz cStack_3c(Cd2_HIO_jntTX(field_0xa98, jntNo), Cd2_HIO_jntTY(field_0xa98, jntNo), Cd2_HIO_jntTZ(field_0xa98, jntNo));
s16 rz = Cd2_HIO_jntRZ(field_0xa98, jntNo);
s16 ry = Cd2_HIO_jntRY(field_0xa98, jntNo);
s16 rx = Cd2_HIO_jntRX(field_0xa98, jntNo);
cXyz cStack_3c(Cd2_HIO_jntTX(m_type, jntNo), Cd2_HIO_jntTY(m_type, jntNo), Cd2_HIO_jntTZ(m_type, jntNo));
s16 rz = Cd2_HIO_jntRZ(m_type, jntNo);
s16 ry = Cd2_HIO_jntRY(m_type, jntNo);
s16 rx = Cd2_HIO_jntRX(m_type, jntNo);
csXyz cStack_44(rx, ry, rz);
mDoMtx_stack_c::copy(param_2->getAnmMtx(jntNo));
mDoMtx_stack_c::ZXYrotM(cStack_44);
@@ -1948,7 +1952,7 @@ bool daNpcCd2_c::checkFearSituation() {
/* 801598E8-8015994C 154228 0064+00 1/1 0/0 0/0 .text getNpcMdlDataP__10daNpcCd2_cFi */
J3DModelData* daNpcCd2_c::getNpcMdlDataP(int param_1) {
const tbl_entry* def;
const anmTblPrm* def;
if (field_0xac6) {
def = &l_bmdTWTbl[param_1];
} else {
@@ -1960,7 +1964,7 @@ J3DModelData* daNpcCd2_c::getNpcMdlDataP(int param_1) {
/* 8015994C-801599C4 15428C 0078+00 1/1 0/0 0/0 .text getObjMdlDataP__10daNpcCd2_cFi */
J3DModelData* daNpcCd2_c::getObjMdlDataP(int param_1) {
J3DModelData* model_data = NULL;
const tbl_entry* def;
const anmTblPrm* def;
if (field_0xac6) {
def = &l_objTWTbl[param_1];
} else {
@@ -1974,7 +1978,7 @@ J3DModelData* daNpcCd2_c::getObjMdlDataP(int param_1) {
/* 801599C4-80159A38 154304 0074+00 1/1 0/0 0/0 .text getTexAnmP__10daNpcCd2_cFi */
J3DAnmTexPattern* daNpcCd2_c::getTexAnmP(int param_1) {
const tbl_entry* def;
const anmTblPrm* def;
if (field_0xac6) {
def = &l_btpTWTbl[param_1];
} else {