d_file_select, JASResArcLoader, d_a_obj_stone, d_a_obj_stone_mark (#309)

* setup TU

* JASResArcLoader OK

* d_a_obj_stoneMark work

* some funcs in d_a_obj_stoneMark

* many changes

* quat, d_a_obj_stone, d_a_alink, fix python script, tidy makefile

* d_file_select functions + pr cleanup
This commit is contained in:
Pheenoh
2023-03-17 21:05:06 -06:00
committed by GitHub
parent a01d65b0b9
commit 3cdef97cb8
79 changed files with 2315 additions and 2996 deletions
+11 -11
View File
@@ -12285,12 +12285,12 @@ void daAlink_c::setSelectEquipItem(int param_0) {
}
if (checkWoodSwordEquip()) {
if (mEquipItem == 0x103 || param_0 != 0) {
if (mEquipItem == EQUIP_SWORD || param_0 != 0) {
mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide();
} else {
mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->show();
}
} else if (mEquipItem == 0x103 || param_0 != 0) {
} else if (mEquipItem == EQUIP_SWORD || param_0 != 0) {
mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->show();
} else {
mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide();
@@ -13911,7 +13911,7 @@ const daAlink_BckData* daAlink_c::getMainBckData(daAlink_c::daAlink_ANM i_anmID)
return &m_mainBckShield[i_anmID];
}
if ((mEquipItem == 0x103 && i_anmID < 0x15 && i_anmID >= 0x10) ||
if ((mEquipItem == EQUIP_SWORD && i_anmID < 0x15 && i_anmID >= 0x10) ||
(i_anmID == ANM_SWIM_WAIT && mEquipItem != NO_ITEM))
{
return &m_mainBckSword[i_anmID - 0x10];
@@ -15569,7 +15569,7 @@ asm int daAlink_c::checkItemActionInitStart() {
/* 800B7090-800B7168 0B19D0 00D8+00 1/1 0/0 0/0 .text checkItemChangeAutoAction__9daAlink_cFv */
int daAlink_c::checkItemChangeAutoAction() {
if (i_checkResetFlg0(RFLG0_UNK_80)) {
if (mEquipItem == 0x103) {
if (mEquipItem == EQUIP_SWORD) {
if (i_checkModeFlg(0x40000)) {
return 0;
}
@@ -16030,9 +16030,9 @@ void daAlink_c::allUnequip(int param_0) {
itemEquip(KANTERA);
i_onNoResetFlg1(FLG1_UNK_40);
return;
} else if (mEquipItem == 0x103) {
} else if (mEquipItem == EQUIP_SWORD) {
swordUnequip();
} else if (mEquipItem == 0x102) {
} else if (mEquipItem == noentry71) {
deleteEquipItem(0, 0);
field_0x2060->initOldFrameMorf(lit_7808, 0, 35);
} else {
@@ -16072,7 +16072,7 @@ BOOL daAlink_c::checkItemChangeFromButton() {
if (doTrigger() && i_dComIfGp_getDoStatus() == 4) {
if (mEquipItem != KANTERA && i_checkNoResetFlg2(FLG2_UNK_1)) {
offKandelaarModel();
} else if (mSwordFlourishTimer != 0 && mEquipItem == 0x103 &&
} else if (mSwordFlourishTimer != 0 && mEquipItem == EQUIP_SWORD &&
!checkWoodSwordEquip() && !i_checkModeFlg(0x402))
{
return procSwordUnequipSpInit();
@@ -16246,7 +16246,7 @@ int daAlink_c::checkNextAction(int param_0) {
setSpeedAndAngleAtn();
} else if (((!checkUpperReadyThrowAnime() || mFastShotTime != 0) ||
(checkBoomerangThrowAnime() &&
(mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == 0x102 ||
(mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == noentry71 ||
i_checkNoResetFlg1(FLG1_UNK_2)))) ||
(checkCopyRodThrowAnime() &&
(mCopyRodAcKeep.getActor() != NULL || i_checkNoResetFlg1(FLG1_UNK_10000))))
@@ -17059,7 +17059,7 @@ void daAlink_c::setLastSceneMode(u32* o_mode) {
*o_mode |= 0x200000;
}
if (mEquipItem == 0x103) {
if (mEquipItem == EQUIP_SWORD) {
*o_mode |= 0x28000000;
} else if (mEquipItem < NO_ITEM) {
*o_mode |= mEquipItem << 0x18;
@@ -17531,7 +17531,7 @@ BOOL daAlink_c::setItemModel() {
return 1;
}
if (mEquipItem == 0x103) {
if (mEquipItem == EQUIP_SWORD) {
setSwordModel();
return 1;
}
@@ -18300,7 +18300,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) {
i_dComIfGp_clearPlayerStatus1(0,0x7fb7b78);
cancelHookshotShot();
if (mEquipItem == 0x109) {
if (mEquipItem == noentry77) {
deleteEquipItem(0, 0);
}
+1 -1
View File
@@ -141,7 +141,7 @@ BOOL daAlink_c::checkBoomerangAnime() const {
/* 800E04AC-800E04E8 0DADEC 003C+00 13/13 0/0 0/0 .text checkBoomerangThrowAnime__9daAlink_cCFv */
BOOL daAlink_c::checkBoomerangThrowAnime() const {
return (mEquipItem == BOOMERANG || i_checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == 0x102) &&
return (mEquipItem == BOOMERANG || i_checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == noentry71) &&
checkUpperAnime(0x53);
}
+1 -1
View File
@@ -109,7 +109,7 @@ BOOL daAlink_c::checkFishingRodGrab(fopAc_ac_c* param_0) const {
/* 800F3EB8-800F3F38 0EE7F8 0080+00 0/0 0/0 2/2 .text
* checkCanoePaddleGrab__9daAlink_cCFP10fopAc_ac_c */
BOOL daAlink_c::checkCanoePaddleGrab(fopAc_ac_c* param_0) const {
return mEquipItem == 0x10B && checkCanoeRideOwn(param_0);
return mEquipItem == noentry79 && checkCanoeRideOwn(param_0);
}
/* 800F3F38-800F3FC4 0EE878 008C+00 0/0 0/0 1/1 .text checkCanoeFishingRodGrabOrPut__9daAlink_cCFv
+6 -6
View File
@@ -972,7 +972,7 @@ int daAlink_c::procBackJump() {
offModeFlg(0x2000);
}
if (checkCutTurnInput() && mEquipItem == 0x103) {
if (checkCutTurnInput() && mEquipItem == EQUIP_SWORD) {
field_0x3198 = getCutTurnDirection();
}
@@ -1031,7 +1031,7 @@ int daAlink_c::procBackJumpLand() {
checkNextAction(0);
}
} else if (frameCtrl->getFrame() > daAlinkHIO_backJump_c0::m.mLandAnm.mCheckFrame) {
if (mEquipItem == 0x103 && (field_0x3198 != 2 || checkCutTurnInput())) {
if (mEquipItem == EQUIP_SWORD && (field_0x3198 != 2 || checkCutTurnInput())) {
return procCutTurnInit(1, field_0x3198);
}
@@ -1795,7 +1795,7 @@ int daAlink_c::execute() {
if (dComIfGp_event_runCheck()) {
field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0);
if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == 0x102) {
if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == noentry71) {
deleteEquipItem(FALSE, FALSE);
}
}
@@ -1870,7 +1870,7 @@ int daAlink_c::execute() {
field_0x2f9d = 0;
field_0x2fc1 = 6;
if (!checkSwordGet() && mEquipItem == 0x103) {
if (!checkSwordGet() && mEquipItem == EQUIP_SWORD) {
deleteEquipItem(FALSE, FALSE);
}
@@ -2068,7 +2068,7 @@ int daAlink_c::execute() {
}
}
if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == 0x103) {
if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == EQUIP_SWORD) {
mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime;
}
@@ -3648,7 +3648,7 @@ s32 daAlink_c::getItemID() const {
/* 800D0370-800D038C 0CACB0 001C+00 1/0 0/0 0/0 .text getGrabActorID__9daAlink_cCFv */
s32 daAlink_c::getGrabActorID() const {
if (mEquipItem == 0x102) {
if (mEquipItem == noentry71) {
return mItemAcKeep.getID();
} else {
return mGrabItemAcKeep.getID();
+5 -2
View File
@@ -77,8 +77,11 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
/* ############################################################################################## */
/* 803A7240-803A7250 004360 0010+00 0/0 0/0 6/6 .data ZeroQuat */
SECTION_DATA extern u8 ZeroQuat[16] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
Quaternion ZeroQuat = {
0.0f,
0.0f,
0.0f,
1.0f
};
/* 803A7250-803A7260 004370 0010+00 0/0 1/1 0/0 .data __vt__10CSTControl */
File diff suppressed because it is too large Load Diff
+1
View File
@@ -6,6 +6,7 @@
#include "d/s/d_s_name.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
// #include "d/file/d_file_select.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "f_op/f_op_overlap_mng.h"
+10 -8
View File
@@ -3530,26 +3530,28 @@ asm void mDoExt_removeSubFont() {
/* 80014C54-80014D5C 00F594 0108+00 3/3 14/14 445/445 .text
* mDoExt_J3DModel__create__FP12J3DModelDataUlUl */
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 param_1, u32 param_2) {
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 modelFlag, u32 differedDlistFlag) {
if (i_modelData != NULL) {
J3DModel* model = new J3DModel();
if (model != NULL) {
// Update the modelFlag if the model data passed in has a shared dlist object
if (i_modelData->getMaterialNodePointer(0)->getSharedDisplayListObj() != NULL) {
if (i_modelData->isLocked()) {
param_1 = 0x20000;
} else if (param_1 == 0x20000) {
param_1 |= 0x40000;
modelFlag = J3DMdlFlag_Unk20000;
} else if (modelFlag == J3DMdlFlag_Unk20000) {
modelFlag |= J3DMdlFlag_Unk40000;
} else {
param_1 = 0x80000;
modelFlag = J3DMdlFlag_Unk80000;
}
}
if (!model->entryModelData(i_modelData, param_1, 1)) {
if (param_1 == 0x80000 && model->newDifferedDisplayList(param_2)) {
// Set up the model
if (!model->entryModelData(i_modelData, modelFlag, 1)) {
if (modelFlag == J3DMdlFlag_Unk80000 && model->newDifferedDisplayList(differedDlistFlag)) {
return NULL;
}
model->lock();
return model;
}
+7 -61
View File
@@ -8,14 +8,11 @@
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRAramStream.h"
#include "JSystem/JKernel/JKRDvdAramRipper.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "JSystem/JUtility/JUTDbPrint.h"
#include "JSystem/JUtility/JUTException.h"
#include "SSystem/SComponent/c_API_controller_pad.h"
#include "SSystem/SComponent/c_malloc.h"
#include "SSystem/SComponent/c_math.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_DVDError.h"
#include "m_Do/m_Do_MemCard.h"
#include "m_Do/m_Do_dvd_thread.h"
@@ -46,8 +43,6 @@ extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
// External References:
//
extern "C" void OSReportDisable();
extern "C" void OSReportEnable();
extern "C" void mDoExt_createAssertHeap__FP7JKRHeap();
extern "C" void mDoExt_createDbPrintHeap__FUlP7JKRHeap();
extern "C" void mDoExt_getDbPrintHeap__Fv();
@@ -65,9 +60,7 @@ extern "C" void mDoRst_reset__FiUli();
extern "C" void create__9mDoDvdThdFl();
extern "C" void mDoDvdErr_ThdInit__Fv();
extern "C" void ThdInit__15mDoMemCd_Ctrl_cFv();
extern "C" void exception_addition__FP10JUTConsole();
extern "C" void init__3cMlFP7JKRHeap();
extern "C" void cAPICPad_recalibrate__Fv();
extern "C" void cM_initRnd__Fiii();
extern "C" void firstInit__9JFWSystemFv();
extern "C" void init__9JFWSystemFv();
@@ -124,10 +117,6 @@ extern "C" u8 systemConsole__9JFWSystem[4];
extern "C" u8 sSystemHeap__7JKRHeap[4];
extern "C" u8 sRootHeap__7JKRHeap[4];
extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */];
extern "C" extern bool sResetSwitchPushing__Q210JUTGamePad13C3ButtonReset;
extern "C" u8 sErrorManager__12JUTException[4];
extern "C" u8 sConsole__12JUTException[4];
extern "C" u8 sManager__17JUTConsoleManager[4];
//
// Declarations:
@@ -387,26 +376,7 @@ void myExceptionCallback(u16, OSContext*, u32, u32) {
VIFlush();
}
/* ############################################################################################## */
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80373F89 = "(SRR0-3):%08X %08X %08X %08X\n";
SECTION_DEAD static char const* const stringBase_80373FA7 =
"PUSH START BUTTON TO ADDITIONAL INFOMATION\n";
SECTION_DEAD static char const* const stringBase_80373FD3 =
"--------------------------------------\n";
#pragma pop
/* 80451B00-80451B04 000100 0004+00 1/1 0/0 0/0 .sdata2 @3940 */
SECTION_SDATA2 static f32 lit_3940 = 8.0f;
/* 80451B04-80451B08 000104 0004+00 1/1 0/0 0/0 .sdata2 @3941 */
SECTION_SDATA2 static f32 lit_3941 = 6.0f;
/* 8000B95C-8000BCF4 00629C 0398+00 1/1 0/0 0/0 .text fault_callback_scroll__FUsP9OSContextUlUl */
#ifdef NONMATCHING
// Everything matches but there are issues with dead section
static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
JUTException* manager = JUTException::getManager();
JUTConsole* exConsole = manager->getConsole();
@@ -523,41 +493,17 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) {
} while (true);
} while (true);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void fault_callback_scroll(u16 param_0, OSContext* param_1, u32 param_2, u32 param_3) {
nofralloc
#include "asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s"
}
#pragma pop
#endif
// originally used in my_PrintHeap, but the function body was removed in retail
const char* my_PrintHeapSring = "\x1B[32m%-24s = size=%d KB\n\x1B[m";
/* 8000BCF4-8000BCF8 006634 0004+00 1/1 0/0 0/0 .text my_PrintHeap__FPCcUl */
static void my_PrintHeap(char const* heapName, u32 heapSize) {
/* empty function */
return;
}
/* ############################################################################################## */
/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80373FFB = ""
"\x1B"
"[32m%-24s = size=%d KB\n"
"\x1B"
"[m";
SECTION_DEAD static char const* const stringBase_80374017 = ""
"\x1B"
"[32m%-24s = %08x-%08x size=%d KB\n"
"\x1B"
"[m";
#pragma pop
/* 8000BCF8-8000BD44 006638 004C+00 1/1 0/0 0/0 .text my_SysPrintHeap__FPCcPvUl */
void my_SysPrintHeap(char const* message, void* start, u32 size) {
// "32m%-24s = %08x-%08x size=%d KB\n"
OSReport_System("\x1b[32m%-24s = %08x-%08x size=%d KB\n\x1b[m", message, start,
(u32)start + size, size / 1024);
}
@@ -577,7 +523,7 @@ SECTION_DEAD static char const* const stringBase_8037409E = "/map/Final/Release/
#pragma pop
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {
static _GXRenderModeObj g_ntscZeldaIntDf = {
0,
608,
448,
@@ -605,7 +551,7 @@ SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = {
};
/* 803A2F9C-803A2FD8 0000BC 003C+00 1/1 1/1 0/0 .data g_ntscZeldaProg */
SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {
extern _GXRenderModeObj g_ntscZeldaProg = {
2,
608,
448,
@@ -634,7 +580,7 @@ SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = {
/* 804505A0-804505A8 -00001 0004+04 1/1 3/3 0/0 .sdata mRenderModeObj__15mDoMch_render_c
*/
SECTION_SDATA GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf;
/* 8000BD44-8000C0CC 006684 0388+00 0/0 2/1 0/0 .text mDoMch_Create__Fv */
// reg alloc r30 - r31