From a865cbdf177d8f205a4eb1e87d9194cc2e75cd57 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sun, 29 Aug 2021 22:44:17 +0900 Subject: [PATCH] Trigger funcs (#405) * remove old tools, fix warnings * almost match si_handle_print_debug_var * si_goto_end_loop and warnings * is_trigger_bound and create_trigger * Cleanup + matching 2 non-matchings * update_triggers (trigger.c complete) * fix warnings * PR comments, m2ctx.py fix --- include/common_structs.h | 8 +- include/functions.h | 27 +- include/variables.h | 6 +- src/190B20.c | 16 +- src/battle/partner/goombario.c | 15 +- src/battle/partner/twink.c | 19 +- src/dbd70_len_700.c | 94 ------ src/evt/script_list.c | 22 +- src/evt/si.c | 188 +++++++++-- src/hud_element.c | 12 +- src/hud_element.h | 2 +- src/trigger.c | 293 ++++++++++++++++++ src/world/action/ultra_boots.c | 28 +- tools/assist_copy_paste.py | 283 ----------------- tools/exit_helper.py | 18 -- tools/fixc.py | 54 ---- tools/m2ctx.py | 2 +- tools/mapheaders.py | 76 ----- tools/substitute2.py | 136 -------- .../partner/goombario/func_802380E4_6F11C4.s | 43 --- .../partner/twink/func_80238028_714D18.s | 46 --- .../dbd70_len_700/create_trigger.s | 72 ----- .../dbd70_len_700/is_trigger_bound.s | 32 -- .../dbd70_len_700/update_triggers.s | 255 --------------- .../nonmatchings/evt/si/si_goto_end_loop.s | 40 --- .../evt/si/si_handle_print_debug_var.s | 92 +++--- ver/us/splat.yaml | 2 +- ver/us/symbol_addrs.txt | 6 +- ver/us/undefined_syms.txt | 6 +- 29 files changed, 592 insertions(+), 1301 deletions(-) delete mode 100644 src/dbd70_len_700.c create mode 100644 src/trigger.c delete mode 100644 tools/assist_copy_paste.py delete mode 100755 tools/exit_helper.py delete mode 100755 tools/fixc.py delete mode 100755 tools/mapheaders.py delete mode 100644 tools/substitute2.py delete mode 100644 ver/us/asm/nonmatchings/battle/partner/goombario/func_802380E4_6F11C4.s delete mode 100644 ver/us/asm/nonmatchings/battle/partner/twink/func_80238028_714D18.s delete mode 100644 ver/us/asm/nonmatchings/dbd70_len_700/create_trigger.s delete mode 100644 ver/us/asm/nonmatchings/dbd70_len_700/is_trigger_bound.s delete mode 100644 ver/us/asm/nonmatchings/dbd70_len_700/update_triggers.s delete mode 100644 ver/us/asm/nonmatchings/evt/si/si_goto_end_loop.s diff --git a/include/common_structs.h b/include/common_structs.h index 27eb0f1c2d..16c40233d8 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -275,12 +275,12 @@ typedef struct Trigger { /* 0x00 */ TriggerFlags flags; /* 0x04 */ s32 params1; /* 0x08 */ s32 params2; - /* 0x0C */ UNK_FUN_PTR(functionHandler); + /* 0x0C */ s32 (*functionHandler)(struct Trigger*); /* 0x10 */ EvtSource* scriptSource; /* 0x14 */ struct Evt* runningScript; /* 0x18 */ s32 priority; /* 0x1C */ s32 scriptVars[3]; - /* 0x28 */ char unk_28[4]; + /* 0x28 */ s32 unk_28; /* 0x2C */ s32 unk_2C; /* 0x30 */ u8 unk_30; /* 0x31 */ char unk_31[3]; @@ -1483,7 +1483,7 @@ typedef struct FontRasterSet { /* 0x02 */ char unk_02[10]; } FontRasterSet; // size = 0x0C -typedef s32(*TriggerHandlerFunc)(struct Trigger*); +typedef s32 (*TriggerHandlerFunc)(Trigger*); typedef struct TriggerDefinition { /* 0x00 */ s32 flags; @@ -1512,7 +1512,7 @@ typedef struct CollisionStatus { /* 0x16 */ s16 touchingWallTrigger; /* 0/1 */ /* 0x18 */ s16 bombetteExploded; /* 0 = yes, FFFF = no */ /* 0x1A */ char unk_1A[2]; - /* 0x1C */ f32 bombetteExplositionPos[3]; + /* 0x1C */ Vec3f bombetteExplosionPos; } CollisionStatus; // size = 0x28 typedef struct DecorationTable { diff --git a/include/functions.h b/include/functions.h index a456c9d156..0784682228 100644 --- a/include/functions.h +++ b/include/functions.h @@ -155,7 +155,7 @@ s32 npc_test_move_simple_without_slipping(s32, f32*, f32*, f32*, f32, f32, f32, void update_collider_transform(s16 colliderID); void get_collider_center(s32 colliderID, f32* x, f32* y, f32* z); -s32 is_trigger_bound(Trigger*, Bytecode* script); +s32 is_trigger_bound(Trigger*, EvtSource* script); Trigger* create_trigger(TriggerDefinition* def); s32 _bound_script_trigger_handler(Trigger* trigger); Trigger* get_trigger_by_id(s32 triggerID); @@ -164,6 +164,8 @@ Actor* get_actor(ActorID actorID); ActorPart* get_actor_part(Actor* actor, s32 partIndex); s32 add_coins(s32 amt); +s32 phys_can_player_interact(void); + void ai_enemy_play_sound(Npc* npc, s32 arg1, s32 arg2); s32 player_test_move_without_slipping(PlayerStatus*, f32*, f32*, f32*, s32, f32, s32*); @@ -205,7 +207,25 @@ void set_game_mode(s16 idx); f32 get_xz_dist_to_player(f32, f32); void func_800E06C0(s32); void close_status_menu(void); +Evt* func_802C39F8(Evt* parentScript, Bytecode* nextLine, s32 newState); +Evt* start_child_script(Evt* parentScript, EvtSource* source, s32 initialState); +Evt* restart_script(Evt* script); +void clear_virtual_entity_list(void); +void reset_model_animators(void); +void init_virtual_entity_list(void); +void init_model_animators(void); +s32 heap_free(void* ptr); void btl_state_update_switch_to_partner(void); +void switch_to_partner(s32 arg0); + +void delete_trigger(Trigger* toDelete); +void kill_script_by_ID(s32 id); +void set_script_priority(Evt* script, s32 priority); +void set_script_group(Evt* script, s32 groupFlags); +void suspend_group_others(Evt* script, s32 groupFlags); +void resume_group_others(Evt* script, s32 groupFlags); +s32 suspend_all_script(s32 id); +s32 resume_all_script(s32 id); Shadow* create_shadow_type(s32 type, f32 x, f32 y, f32 z); s32 is_point_within_region(s32 shape, f32 pointX, f32 pointY, f32 centerX, f32 centerY, f32 sizeX, f32 sizeZ); @@ -260,6 +280,11 @@ s32 is_ability_active(s32 arg0); f32 update_lerp(Easing easing, f32 start, f32 end, s32 elapsed, s32 duration); void sin_cos_deg(f32 rad, f32* outSinTheta, f32* outCosTheta); +void set_main_pan_u(s32 texPannerID, s32 value); +void set_main_pan_v(s32 texPannerID, s32 value); +void set_aux_pan_u(s32 texPannerID, s32 value); +void set_aux_pan_v(s32 texPannerID, s32 value); + void enable_world_fog(void); void set_world_fog_dist(s32 start, s32 end); void set_world_fog_color(s32 r, s32 g, s32 b, s32 a); diff --git a/include/variables.h b/include/variables.h index cdb3b2a2c0..d7f7dc2970 100644 --- a/include/variables.h +++ b/include/variables.h @@ -138,8 +138,8 @@ extern AnimatedModelList* gCurrentMeshAnimationListPtr; // Triggers extern s16 gTriggerCount; -extern TriggerList gTriggerList1; -extern TriggerList gTriggerList2; +extern TriggerList wTriggerList; +extern TriggerList bTriggerList; extern TriggerList* gCurrentTriggerListPtr; // Map transition data. Should probably be a struct @@ -298,7 +298,7 @@ extern Temp8010F250 D_8010F250; // sfx_play_sound state struct? extern SaveData gCurrentSaveFile; extern u32* gMapFlags; -extern u32* gMapVars; +extern s32* gMapVars; extern f32 D_80286540; diff --git a/src/190B20.c b/src/190B20.c index 6a013d1053..a95a8e18b6 100644 --- a/src/190B20.c +++ b/src/190B20.c @@ -1493,10 +1493,9 @@ INCLUDE_ASM(s32, "190B20", func_80266F60); INCLUDE_ASM(s32, "190B20", func_80266F8C); void func_80266FD8(ActorPart* part, s32 arg1) { - DecorationTable* decorationTable; - if (part->idleAnimations != NULL && !(part->flags & 2)) { - decorationTable = part->decorationTable; + DecorationTable* decorationTable = part->decorationTable; + if (decorationTable->unk_764 != arg1) { decorationTable->unk_764 = arg1; decorationTable->unk_766 = 0; @@ -1508,12 +1507,13 @@ void func_80266FD8(ActorPart* part, s32 arg1) { void func_80267018(Actor* actor, s32 arg1) { ActorPart* actorPart = &actor->partsTable[0]; - while (actorPart != NULL) { - if (!(actorPart->flags & 0x100001) && actorPart->decorationTable != NULL && !(actorPart->flags & 2) && actorPart->idleAnimations != NULL) { - func_80266FD8(actorPart, arg1); - } - actorPart = actorPart->nextPart; + while (actorPart != NULL) { + if (!(actorPart->flags & 0x100001) && actorPart->decorationTable != NULL && !(actorPart->flags & 2) && + actorPart->idleAnimations != NULL) { + func_80266FD8(actorPart, arg1); } + actorPart = actorPart->nextPart; + } } INCLUDE_ASM(s32, "190B20", func_8026709C); diff --git a/src/battle/partner/goombario.c b/src/battle/partner/goombario.c index f10abd19c5..3faa6c08e8 100644 --- a/src/battle/partner/goombario.c +++ b/src/battle/partner/goombario.c @@ -29,10 +29,10 @@ extern EvtSource N(idle_80239350); extern EvtSource N(nextTurn_80239A3C); extern EvtSource N(takeTurn_802396D8); -void func_802380E4_6F11C4(); -void func_8023817C_6F125C(); -void func_80238BCC_6F1CAC(); -void func_80238EDC_6F1FBC(); +ApiStatus func_802380E4_6F11C4(Evt* script, s32 isInitialCall); +ApiStatus func_8023817C_6F125C(Evt* script, s32 isInitialCall); +ApiStatus func_80238BCC_6F1CAC(Evt* script, s32 isInitialCall); +ApiStatus func_80238EDC_6F1FBC(Evt* script, s32 isInitialCall); ApiStatus N(func_80238000_6F10E0)(Evt* script, s32 isInitialCall) { BattleStatus* battleStatus = &gBattleStatus; @@ -61,21 +61,18 @@ ApiStatus N(func_80238000_6F10E0)(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -#ifdef NON_MATCHING ApiStatus func_802380E4_6F11C4(Evt* script, s32 isInitialCall) { Actor* targetActor = get_actor(get_actor(script->owner1.actorID)->targetActorID); script->varTable[0] = 99; - D_8023BB98_6ECC78 = ((D_8023BB98_6ECC78 * targetActor->staticActorData->powerBounceChance) * 0x51EB851F) >> 5 - (D_8023BB98_6ECC78 * targetActor->staticActorData->powerBounceChance >> 31); + D_8023BB98_6ECC78 *= targetActor->staticActorData->powerBounceChance; + D_8023BB98_6ECC78 /= 100; if (D_8023BB98_6ECC78 < rand_int(100)) { script->varTable[0] = 0; } return ApiStatus_DONE2; } -#else -INCLUDE_ASM(s32, "battle/partner/goombario", func_802380E4_6F11C4); -#endif INCLUDE_ASM(s32, "battle/partner/goombario", func_8023817C_6F125C); diff --git a/src/battle/partner/twink.c b/src/battle/partner/twink.c index 99a7aadcbb..9c435357ad 100644 --- a/src/battle/partner/twink.c +++ b/src/battle/partner/twink.c @@ -1,6 +1,6 @@ #include "common.h" -extern s32* D_802382F8_714FE8[]; +extern s32 D_802382F8_714FE8; ApiStatus func_80238000_714CF0(Evt* script, s32 isInitialCall) { BattleStatus* battleStatus = &gBattleStatus; @@ -14,22 +14,11 @@ ApiStatus func_80238000_714CF0(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -#ifdef NON_MATCHING ApiStatus func_80238028_714D18(Evt* script, s32 isInitialCall) { Actor* actor = get_actor(script->owner1.actorID); - s32* var0 = &D_802382F8_714FE8[0]; - s32 var4 = *D_802382F8_714FE8[1]; - //s32* var4 = (*&var0); - s32 var1 = *var0 + 18; - f32 var2; - - var1 = clamp_angle(var4 + 18); - var2 = var1 * 6.28318f; - - actor->unk_19A = 2.0f * sin_rad(var2 / 360.0f); + D_802382F8_714FE8 += 18; + D_802382F8_714FE8 = clamp_angle(D_802382F8_714FE8); + actor->unk_19A = 2.0f * sin_rad(D_802382F8_714FE8 * TAU / 360.0f); return ApiStatus_DONE2; } -#else -INCLUDE_ASM(s32, "battle/partner/twink", func_80238028_714D18); -#endif diff --git a/src/dbd70_len_700.c b/src/dbd70_len_700.c deleted file mode 100644 index 12a8e09927..0000000000 --- a/src/dbd70_len_700.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "common.h" - -void default_trigger_delegate(s32* arg0) { - arg0[0] |= 2; -} - -void clear_trigger_data(void) { - CollisionStatus* collisionStatus = &gCollisionStatus; - s32 i; - - if (!gGameStatusPtr->isBattle) { - gCurrentTriggerListPtr = &gTriggerList1; - } else { - gCurrentTriggerListPtr = &gTriggerList2; - } - - for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { - (*gCurrentTriggerListPtr)[i] = NULL; - } - - gTriggerCount = 0; - collisionStatus->pushingAgainstWall = -1; - collisionStatus->currentFloor = -1; - collisionStatus->lastTouchedFloor = -1; - collisionStatus->currentCeiling = -1; - collisionStatus->unk_0A = -1; - collisionStatus->unk_0C = -1; - collisionStatus->unk_0E = -1; - collisionStatus->unk_10 = -1; - collisionStatus->currentWall = -1; - collisionStatus->lastWallHammered = -1; - collisionStatus->touchingWallTrigger = 0; - collisionStatus->bombetteExploded = -1; - collisionStatus->bombetteExplositionPos[0] = 0.0f; - collisionStatus->bombetteExplositionPos[1] = 0.0f; - collisionStatus->bombetteExplositionPos[2] = 0.0f; -} - -void init_trigger_list(void) { - if (!gGameStatusPtr->isBattle) { - gCurrentTriggerListPtr = &gTriggerList1; - } else { - gCurrentTriggerListPtr = &gTriggerList2; - } - - gTriggerCount = 0; -} - -INCLUDE_ASM(Trigger*, "dbd70_len_700", create_trigger, TriggerDefinition* def); - -INCLUDE_ASM(s32, "dbd70_len_700", update_triggers); - -void delete_trigger(Trigger* toDelete) { - s32 i; - TriggerList** currentTriggerListPtr = &gCurrentTriggerListPtr; - - for (i = 0; i < MAX_TRIGGERS; i++) { - if ((**currentTriggerListPtr)[i] == toDelete) { - break; - } - } - - if (i < MAX_TRIGGERS) { - heap_free((**currentTriggerListPtr)[i]); - (**currentTriggerListPtr)[i] = NULL; - } -} - -INCLUDE_ASM(s32, "dbd70_len_700", is_trigger_bound, Trigger* trigger, Bytecode* script); - -Trigger* get_trigger_by_id(s32 triggerID) { - return (*gCurrentTriggerListPtr)[triggerID]; -} - -/// @returns TRUE if colliderID is bound to an interaction trigger (press A) and the player can use it. -s32 should_collider_allow_interact(s32 colliderID) { - s32 i; - - if (phys_can_player_interact() == 0) { - return 0; - } - - for (i = 0; i < MAX_TRIGGERS; i++) { - Trigger* trigger = (*gCurrentTriggerListPtr)[i]; - - if ((trigger != NULL) && - (trigger->unk_30 != 0) && - (trigger->params2 == colliderID) && - (trigger->flags.flags & 0x100)) { - return 1; - } - } - return 0; -} diff --git a/src/evt/script_list.c b/src/evt/script_list.c index f52dd0d290..0a20255197 100644 --- a/src/evt/script_list.c +++ b/src/evt/script_list.c @@ -172,9 +172,9 @@ Evt* start_script(EvtSource* source, s32 priority, s32 initialState) { newScript->state = initialState | 1; newScript->currentOpcode = 0; newScript->priority = priority; - newScript->ptrNextLine = source; - newScript->ptrFirstLine = source; - newScript->ptrCurrentLine = source; + newScript->ptrNextLine = (Bytecode*)source; + newScript->ptrFirstLine = (Bytecode*)source; + newScript->ptrCurrentLine = (Bytecode*)source; newScript->userData = NULL; newScript->blockingParent = NULL; newScript->childScript = NULL; @@ -245,9 +245,9 @@ Evt* start_script_in_group(EvtSource* source, u8 priority, u8 initialState, u8 g newScript->currentOpcode = 0; newScript->priority = priority; newScript->id = gStaticScriptCounter++; - newScript->ptrNextLine = source; - newScript->ptrFirstLine = source; - newScript->ptrCurrentLine = source; + newScript->ptrNextLine = (Bytecode*)source; + newScript->ptrFirstLine = (Bytecode*)source; + newScript->ptrCurrentLine = (Bytecode*)source; newScript->userData = 0; newScript->blockingParent = 0; newScript->childScript = 0; @@ -311,7 +311,7 @@ Evt* start_child_script(Evt* parentScript, EvtSource* source, s32 initialState) parentScript->childScript = child; parentScript->state |= 0x10; child->state = initialState | 1; - child->ptrCurrentLine = child->ptrFirstLine = child->ptrNextLine = source; + child->ptrCurrentLine = child->ptrFirstLine = child->ptrNextLine = (Bytecode*)source; child->currentOpcode = 0; @@ -630,7 +630,7 @@ s32 does_script_exist_by_ref(Evt* script) { return FALSE; } -void set_script_priority(Evt* script, s8 priority) { +void set_script_priority(Evt* script, s32 priority) { script->priority = priority; } @@ -646,11 +646,11 @@ f32 get_global_timespace(void) { return gGlobalTimeSpace; } -void set_script_group(Evt* script, s8 groupFlags) { +void set_script_group(Evt* script, s32 groupFlags) { script->groupFlags = groupFlags; } -Trigger* bind_trigger(Bytecode* script, s32 flags, s32 triggerFlagIndex, s32 triggerVar0, s32 triggerVar1, +Trigger* bind_trigger(EvtSource* script, s32 flags, s32 triggerFlagIndex, s32 triggerVar0, s32 triggerVar1, s32 priority, s32 arg6) { Trigger* trigger; TriggerDefinition def; @@ -670,7 +670,7 @@ Trigger* bind_trigger(Bytecode* script, s32 flags, s32 triggerFlagIndex, s32 tri return trigger; } -Trigger* bind_trigger_1(Bytecode* script, s32 flags, s32 triggerFlagIndex, s32 triggerVar0, s32 triggerVar1, +Trigger* bind_trigger_1(EvtSource* script, s32 flags, s32 triggerFlagIndex, s32 triggerVar0, s32 triggerVar1, s32 priority) { return bind_trigger(script, flags, triggerFlagIndex, triggerVar0, triggerVar1, priority, 1); } diff --git a/src/evt/si.c b/src/evt/si.c index 788e14cb43..0fc9696ff9 100644 --- a/src/evt/si.c +++ b/src/evt/si.c @@ -13,6 +13,9 @@ u8 D_802D9D71 = 0xFE; u8 D_802D9D72 = 0x00; u8 D_802D9D73 = 0xFF; +// BSS +extern s8 evtDebugPrintBuffer[]; + f32 fixed_var_to_float(Bytecode scriptVar) { if (scriptVar <= -220000000) { return (scriptVar + 230000000) / 1024.0f; @@ -46,7 +49,7 @@ ApiStatus si_handle_loop(Evt* script) { ASSERT(loopDepth < 8); - script->loopStartTable[loopDepth] = args; + script->loopStartTable[loopDepth] = (s32)args; script->loopCounterTable[loopDepth] = var; return ApiStatus_DONE2; @@ -61,7 +64,7 @@ ApiStatus si_handle_end_loop(Evt* script) { loopCounter = script->loopCounterTable[loopDepth]; if (loopCounter == 0) { - script->ptrNextLine = script->loopStartTable[loopDepth]; + script->ptrNextLine = (Bytecode*)script->loopStartTable[loopDepth]; return ApiStatus_DONE2; } @@ -74,7 +77,7 @@ ApiStatus si_handle_end_loop(Evt* script) { } if (loopCounter != 0) { - script->ptrNextLine = script->loopStartTable[loopDepth]; + script->ptrNextLine = (Bytecode*)script->loopStartTable[loopDepth]; return ApiStatus_DONE2; } else { script->loopDepth--; @@ -225,12 +228,13 @@ ApiStatus si_handle_switch(Evt* script) { } ApiStatus si_handle_switch_const(Evt* script) { - Bytecode* args = *script->ptrReadPos; + Bytecode* args = script->ptrReadPos; + s32 a0 = *args++; s32 switchDepth = ++script->switchDepth; ASSERT(switchDepth < 8); - script->switchBlockValue[switchDepth] = args; + script->switchBlockValue[switchDepth] = a0; script->switchBlockState[switchDepth] = 1; return ApiStatus_DONE2; @@ -657,12 +661,16 @@ ApiStatus si_handle_divideF(Evt* script) { } ApiStatus si_handle_set_int_buffer_ptr(Evt* script) { - script->buffer = get_variable(script, *script->ptrReadPos); + Bytecode* args = script->ptrReadPos; + + script->buffer = (s32*)get_variable(script, *args++); return ApiStatus_DONE2; } ApiStatus si_handle_set_float_buffer_ptr(Evt* script) { - script->buffer = get_variable(script, *script->ptrReadPos); + Bytecode* args = script->ptrReadPos; + + script->buffer = (s32*)get_variable(script, *args++); return ApiStatus_DONE2; } @@ -829,7 +837,7 @@ ApiStatus si_handle_allocate_array(Evt* script) { s32 size = get_variable(script, *args++); Bytecode var = *args++; - script->array = (s32)heap_malloc(size * 4); + script->array = (s32*)heap_malloc(size * 4); set_variable(script, var, (s32)script->array); return ApiStatus_DONE2; } @@ -903,7 +911,7 @@ ApiStatus si_handle_exec1(Evt* script) { Evt* newScript; s32 i; - newScript = start_script_in_group((Evt*)get_variable(script, *script->ptrReadPos), script->priority, 0, + newScript = start_script_in_group((EvtSource*)get_variable(script, *script->ptrReadPos), script->priority, 0, script->groupFlags); newScript->owner1 = script->owner1; @@ -927,12 +935,12 @@ ApiStatus si_handle_exec1(Evt* script) { ApiStatus si_handle_exec1_get_id(Evt* script) { Bytecode* args = script->ptrReadPos; - Evt* var = (Evt*)get_variable(script, *args++); + EvtSource* evtSource = (EvtSource*)get_variable(script, *args++); Bytecode arg2 = *args++; Evt* newScript; s32 i; - newScript = start_script_in_group(var, script->priority, 0, script->groupFlags); + newScript = start_script_in_group(evtSource, script->priority, 0, script->groupFlags); newScript->owner1 = script->owner1; newScript->owner2 = script->owner2; @@ -954,19 +962,23 @@ ApiStatus si_handle_exec1_get_id(Evt* script) { } ApiStatus si_handle_exec_wait(Evt* script) { - start_child_script(script, get_variable(script, *script->ptrReadPos), 0); + Bytecode* args = script->ptrReadPos; + + start_child_script(script, (EvtSource*)get_variable(script, *args++), 0); script->currentOpcode = 0; return ApiStatus_FINISH; } ApiStatus si_handle_jump(Evt* script) { - script->ptrFirstLine = (Bytecode*)get_variable(script, *script->ptrReadPos); + Bytecode* args = script->ptrReadPos; + + script->ptrFirstLine = (Bytecode*)get_variable(script, *args++); restart_script(script); return ApiStatus_DONE2; } s32 _bound_script_trigger_handler(Trigger* trigger) { - Bytecode* scriptStart; + EvtSource* scriptStart; Evt* script; if (trigger->runningScript == NULL) { @@ -975,7 +987,7 @@ s32 _bound_script_trigger_handler(Trigger* trigger) { return 0; } - script = start_script(scriptStart, trigger->priority, 0x20); + script = start_script((EvtSource*)scriptStart, trigger->priority, 0x20); trigger->runningScript = script; trigger->runningScriptID = script->id; script->varTable[0] = trigger->scriptVars[0]; @@ -995,7 +1007,7 @@ s32 _bound_script_trigger_handler(Trigger* trigger) { ApiStatus si_handle_bind(Evt* script) { Bytecode* args = script->ptrReadPos; Trigger* trigger; - Bytecode* triggerScript = get_variable(script, *args++); + Bytecode* triggerScript = (Bytecode*)get_variable(script, *args++); Bytecode eventType = *args++; Bytecode colliderIDVar = *args++; Bytecode a3 = *args++; @@ -1010,7 +1022,7 @@ ApiStatus si_handle_bind(Evt* script) { def.function = _bound_script_trigger_handler; trigger = create_trigger(&def); - trigger->scriptSource = triggerScript; + trigger->scriptSource = (EvtSource*)triggerScript; trigger->runningScript = NULL; trigger->priority = script->priority; trigger->scriptVars[0] = get_variable(script, script->varTable[0]); @@ -1018,14 +1030,14 @@ ApiStatus si_handle_bind(Evt* script) { trigger->scriptVars[2] = get_variable(script, script->varTable[2]); if (triggerOut != 0) { - set_variable(script, triggerOut, trigger); + set_variable(script, triggerOut, (s32)trigger); } return ApiStatus_DONE2; } ApiStatus DeleteTrigger(Evt* script, s32 isInitialCall) { - delete_trigger(get_variable(script, *script->ptrReadPos)); + delete_trigger((Trigger*)get_variable(script, *script->ptrReadPos)); return ApiStatus_DONE2; } @@ -1113,10 +1125,10 @@ void si_standard_trigger_executor(Trigger* trigger) { ApiStatus si_handle_bind_lock(Evt* script) { Bytecode* args = script->ptrReadPos; Trigger* trigger; - Bytecode* triggerScript = get_variable(script, *args++); + Bytecode* triggerScript = (Bytecode*)get_variable(script, *args++); Bytecode eventType = *args++; Bytecode colliderIDVar = *args++; - s32* itemList = get_variable(script, *args++); + s32* itemList = (s32*)get_variable(script, *args++); Bytecode triggerOut = *args++; s32 a5 = *args++; TriggerDefinition def; @@ -1130,7 +1142,7 @@ ApiStatus si_handle_bind_lock(Evt* script) { def.inputArg3 = a5; trigger = create_trigger(&def); - trigger->scriptSource = triggerScript; + trigger->scriptSource = (EvtSource*)triggerScript; trigger->runningScript = NULL; trigger->priority = script->priority; trigger->scriptVars[0] = get_variable(script, script->varTable[0]); @@ -1161,7 +1173,108 @@ ApiStatus func_802C6E14(Evt* script) { } ApiStatus si_handle_print_debug_var(Evt* script); +// Almost, some ordering stuff and such +#ifdef NON_MATCHING +s32 si_handle_print_debug_var(Evt* script) { + Bytecode* args = script->ptrReadPos; + s32 var = *args++; + s32 phi_t0; + + if (var <= -270000000) { + sprintf(&evtDebugPrintBuffer, "ADDR [%08X]", var); + } else if (var <= -220000000) { + sprintf(&evtDebugPrintBuffer, "FLOAT [%4.2f]", fixed_var_to_float(var)); + } else if (var <= -200000000) { + var += 210000000; + phi_t0 = var % 32; + sprintf(&evtDebugPrintBuffer, "UF(%3d) [%d]", var, script->flagArray[var / 32] & (1 << phi_t0)); + } else if (var <= -180000000) { + s32 arrayVal; + + var += 190000000; + arrayVal = script->array[var]; + + if (script->array[var] <= -270000000) { + sprintf(&evtDebugPrintBuffer, "UW(%3d) [%08X]", var, arrayVal); + } else if (arrayVal <= -220000000) { + sprintf(&evtDebugPrintBuffer, "UW(%3d) [%4.2f]", var, fixed_var_to_float(arrayVal)); + } else { + sprintf(&evtDebugPrintBuffer, "UW(%3d) [%d]", var, arrayVal); + } + } else if (var <= -160000000) { + s32 globalByte; + + var += 170000000; + globalByte = get_global_byte(var); + + if (globalByte <= -270000000) { + sprintf(&evtDebugPrintBuffer, "GSW(%3d) [%08X]", var, globalByte); + } else if (globalByte <= -220000000) { + sprintf(&evtDebugPrintBuffer, "GSW(%3d) [%4.2f]", var, fixed_var_to_float(globalByte)); + } else { + sprintf(&evtDebugPrintBuffer, "GSW(%3d) [%d]", var, globalByte); + } + } else if (var <= -140000000) { + s32 areaByte; + + var += 150000000; + areaByte = get_area_byte(var); + + if (areaByte <= -270000000) { + sprintf(&evtDebugPrintBuffer, "LSW(%3d) [%08X]", var, areaByte); + } else if (areaByte <= -220000000) { + sprintf(&evtDebugPrintBuffer, "LSW(%3d) [%4.2f]", var, fixed_var_to_float(areaByte)); + } else { + sprintf(&evtDebugPrintBuffer, "LSW(%3d) [%d]", var, areaByte); + } + } else if (var <= -120000000) { + var += 130000000; + sprintf(&evtDebugPrintBuffer, "GSWF(%3d)[%d]", var, get_global_flag(var)); + } else if (var <= -100000000) { + var += 110000000; + sprintf(&evtDebugPrintBuffer, "LSWF(%3d)[%d]", var, get_area_flag(var)); + } else if (var <= -80000000) { + var += 90000000; + phi_t0 = var % 32; + sprintf(&evtDebugPrintBuffer, "GF(%3d) [%d]", var, gMapFlags[var / 32] & (1 << phi_t0)); + } else if (var <= -60000000) { + var += 70000000; + phi_t0 = var % 32; + sprintf(&evtDebugPrintBuffer, "LF(%3d) [%d]", var, script->varFlags[var / 32] & (1 << phi_t0)); + } else if (var <= -40000000) { + s32 mapVar; + + var += 50000000; + mapVar = gMapVars[var]; + + if (mapVar <= -270000000) { + sprintf(&evtDebugPrintBuffer, "GW(%3d) [%08X]", var, mapVar); + } else if (mapVar <= -220000000) { + sprintf(&evtDebugPrintBuffer, "GW(%3d) [%4.2f]", var, fixed_var_to_float(mapVar)); + } else { + sprintf(&evtDebugPrintBuffer, "GW(%3d) [%d]", var, mapVar); + } + } else if (var <= -20000000) { + s32 tableVar; + + var += 30000000; + tableVar = script->varTable[var]; + + if (tableVar <= -270000000) { + sprintf(&evtDebugPrintBuffer, "LW(%3d) [%08X]", var, tableVar); + } else if (tableVar <= -220000000) { + sprintf(&evtDebugPrintBuffer, "LW(%3d) [%4.2f]", var, fixed_var_to_float(tableVar)); + } else { + sprintf(&evtDebugPrintBuffer, "LW(%3d) [%d]", var, tableVar); + } + } else { + sprintf(&evtDebugPrintBuffer, " [%d]", var); + } + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(ApiStatus, "evt/si", si_handle_print_debug_var, Evt* script); +#endif ApiStatus func_802C739C(Evt* script) { script->ptrSavedPosition = (Bytecode*)*script->ptrReadPos; @@ -1840,6 +1953,7 @@ Bytecode* si_goto_next_case(Evt* script) { switch (*opcode) { case EVT_OP_END: PANIC(); + break; case EVT_OP_MATCH: switchDepth++; break; @@ -1863,9 +1977,35 @@ Bytecode* si_goto_next_case(Evt* script) { if (switchDepth == 1) { return opcode; } - break; + break; } } while(1); } -INCLUDE_ASM(Bytecode*, "evt/si", si_goto_end_loop, Evt* script); +Bytecode* si_goto_end_loop(Evt* script) { + s32 loopDepth = 0; + Bytecode* pos = script->ptrNextLine; + s32 opcode; + s32 nargs; + + do { + opcode = *pos++; + nargs = *pos++; + pos += nargs; + + switch (opcode) { + case EVT_OP_END: + PANIC(); + break; + case EVT_OP_END_LOOP: + loopDepth--; + if (loopDepth < 0) { + return pos; + } + break; + case EVT_OP_LOOP: + loopDepth++; + break; + } + } while(1); +} diff --git a/src/hud_element.c b/src/hud_element.c index c2c4128062..6c6bf3127b 100644 --- a/src/hud_element.c +++ b/src/hud_element.c @@ -39,9 +39,9 @@ extern void* D_80157F70; extern void* D_80158574; extern void* D_80158580; extern void* D_80158B80; -extern void* D_80157964; -extern void* D_80158570; -extern void* D_80151314; +extern s32 D_80157964; +extern s32 D_80158570; +extern s32 D_80151314; INCLUDE_ASM(void, "hud_element", load_hud_element, HudElement* hudElement, const HudElementAnim* anim); @@ -190,7 +190,7 @@ void set_hud_element_anim(s32 id, const HudElementAnim* anim) { HudElement* hudElement = hudElements[id & ~0x800]; if (anim == NULL) { - anim = hud_element_defaultAnim; + anim = &hud_element_defaultAnim; } hudElement->updateTimer = 1; @@ -198,7 +198,7 @@ void set_hud_element_anim(s32 id, const HudElementAnim* anim) { hudElement->heightScale = 1024; hudElement->readPos = anim; hudElement->anim = anim; - hudElement->ptrPropertyList = anim; + hudElement->ptrPropertyList = (s32*)anim; hudElement->screenPosOffset.x = 0; hudElement->screenPosOffset.y = 0; hudElement->worldPosOffset.x = 0; @@ -328,4 +328,4 @@ INCLUDE_ASM(void, "hud_element", set_hud_element_transform_rotation_pivot, s32 i INCLUDE_ASM(void, "hud_element", copy_world_hud_element_ref_to_battle, s32 worldID, s32 battleID); -INCLUDE_ASM(void, "hud_element", set_hud_element_nonworld_cache, void* base, size_t size); +INCLUDE_ASM(void, "hud_element", set_hud_element_nonworld_cache, void* base, s32 size); diff --git a/src/hud_element.h b/src/hud_element.h index 1e91a1ce06..a5a075efbe 100644 --- a/src/hud_element.h +++ b/src/hud_element.h @@ -232,6 +232,6 @@ void set_hud_element_transform_rotation_pivot(s32 id, s32 dx, s32 dy); void copy_world_hud_element_ref_to_battle(s32 worldID, s32 battleID); -void set_hud_element_nonworld_cache(void* base, size_t size); +void set_hud_element_nonworld_cache(void* base, s32 size); #endif diff --git a/src/trigger.c b/src/trigger.c new file mode 100644 index 0000000000..4e5f2fe32e --- /dev/null +++ b/src/trigger.c @@ -0,0 +1,293 @@ +#include "common.h" + +void default_trigger_delegate(Trigger* self) { + self->flags.flags |= 2; +} + +void clear_trigger_data(void) { + CollisionStatus* collisionStatus = &gCollisionStatus; + s32 i; + + if (!gGameStatusPtr->isBattle) { + gCurrentTriggerListPtr = &wTriggerList; + } else { + gCurrentTriggerListPtr = &bTriggerList; + } + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + (*gCurrentTriggerListPtr)[i] = NULL; + } + + gTriggerCount = 0; + collisionStatus->pushingAgainstWall = -1; + collisionStatus->currentFloor = -1; + collisionStatus->lastTouchedFloor = -1; + collisionStatus->currentCeiling = -1; + collisionStatus->unk_0A = -1; + collisionStatus->unk_0C = -1; + collisionStatus->unk_0E = -1; + collisionStatus->unk_10 = -1; + collisionStatus->currentWall = -1; + collisionStatus->lastWallHammered = -1; + collisionStatus->touchingWallTrigger = 0; + collisionStatus->bombetteExploded = -1; + collisionStatus->bombetteExplosionPos.x = 0.0f; + collisionStatus->bombetteExplosionPos.y = 0.0f; + collisionStatus->bombetteExplosionPos.z = 0.0f; +} + +void init_trigger_list(void) { + if (!gGameStatusPtr->isBattle) { + gCurrentTriggerListPtr = &wTriggerList; + } else { + gCurrentTriggerListPtr = &bTriggerList; + } + + gTriggerCount = 0; +} + +Trigger* create_trigger(TriggerDefinition* def) { + Trigger* ret; + s32 i; + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + Trigger* listTrigger = (*gCurrentTriggerListPtr)[i]; + + if (listTrigger == NULL) { + break; + } + } + + ASSERT(i < ARRAY_COUNT(*gCurrentTriggerListPtr)); + + (*gCurrentTriggerListPtr)[i] = ret = heap_malloc(sizeof(*ret)); + gTriggerCount++; + + ASSERT(ret != NULL); + + ret->flags.flags = def->flags | 1; + ret->params1 = def->colliderIndex; + ret->params2 = def->flagIndex; + ret->unk_28 = def->unk_1C; + ret->unk_2C = def->unk_14; + ret->unk_30 = def->inputArg3; + + ret->functionHandler = def->function; + if (ret->functionHandler == NULL) { + ret->functionHandler = default_trigger_delegate; + } + + return ret; +} + +void update_triggers(void) { + CollisionStatus* collisionStatus = &gCollisionStatus; + Trigger* listTrigger; + s32 i; + + collisionStatus->touchingWallTrigger = 0; + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + listTrigger = (*gCurrentTriggerListPtr)[i]; + + if (listTrigger == NULL) { + continue; + } + + if (!(listTrigger->flags.flags & 1)) { + continue; + } + + if (listTrigger->flags.flags & 0x10) { + listTrigger->flags.flags |= 2; + continue; + } + + if (listTrigger->flags.flags & 0x40) { + if (listTrigger->params2 == collisionStatus->currentWall) { + func_800E06C0(1); + } + if (listTrigger->params2 == collisionStatus->pushingAgainstWall) { + func_800E06C0(0); + } else { + continue; + } + } + + if (listTrigger->flags.flags & 0x80) { + if (listTrigger->params2 != collisionStatus->currentFloor) { + continue; + } + } + + if (listTrigger->flags.flags & 0x80000) { + if (listTrigger->params2 != collisionStatus->floorBelow) { + continue; + } + } + + if (listTrigger->flags.flags & 0x100) { + if (listTrigger->params2 == collisionStatus->currentWall) { + collisionStatus->touchingWallTrigger = 1; + } + if ((listTrigger->params2 != collisionStatus->unk_0A) || !phys_can_player_interact()) { + continue; + } + } + + if (listTrigger->flags.flags & 0x400) { + if (listTrigger->params2 != collisionStatus->currentWall) { + continue; + } + } + + if (listTrigger->flags.flags & 0x200) { + if (listTrigger->params2 != collisionStatus->lastTouchedFloor) { + continue; + } + } + + if (listTrigger->flags.flags & 0x800) { + if ((listTrigger->params2 != collisionStatus->currentFloor) || + !(gGameStatusPtr->pressedButtons & 0x8000) || (gPlayerStatus.flags & 0x2000)) { + continue; + } + } + + if (listTrigger->flags.flags & 0x1000) { + if (listTrigger->params2 != collisionStatus->lastWallHammered) { + continue; + } + } + + if (listTrigger->flags.flags & 0x40000) { + if (listTrigger->params2 != collisionStatus->currentCeiling) { + continue; + } + } + + if (listTrigger->flags.flags & 0x2000) { + if (listTrigger->params2 != collisionStatus->unk_0C) { + continue; + } + } + + if (listTrigger->flags.flags & 0x4000) { + if (listTrigger->params2 != collisionStatus->unk_0E) { + continue; + } + } + + if (listTrigger->flags.flags & 0x8000) { + if (listTrigger->params2 != collisionStatus->unk_10) { + continue; + } + } + + if (listTrigger->flags.flags & 0x100000) { + f32* floats; + f32 dist; + + if (collisionStatus->bombetteExploded < 0) { + continue; + } + + floats = (f32*)listTrigger->params2; + dist = dist3D(floats[0], floats[1], floats[2], + collisionStatus->bombetteExplosionPos.x, collisionStatus->bombetteExplosionPos.y, + collisionStatus->bombetteExplosionPos.z); + + if ((floats[3] * 0.5f) + 50.0f < dist) { + continue; + } + } + + if (listTrigger->flags.flags & 0x10000 && get_global_flag(listTrigger->params1) == 0) { + continue; + } + + if (listTrigger->flags.flags & 0x20000 && get_area_flag(listTrigger->params1) == 0) { + continue; + } + + listTrigger->flags.flags |= 2; + } + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + listTrigger = (*gCurrentTriggerListPtr)[i]; + + if (listTrigger == NULL) { + continue; + } + + if (listTrigger->flags.flags & 1) { + if (listTrigger->flags.flags & 2) { + if (listTrigger->functionHandler(listTrigger) == 0) { + listTrigger->flags.flags &= ~2; + } + } + } + } +} + +void delete_trigger(Trigger* toDelete) { + s32 i; + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + if ((*gCurrentTriggerListPtr)[i] == toDelete) { + break; + } + } + + if (i < ARRAY_COUNT(*gCurrentTriggerListPtr)) { + heap_free((*gCurrentTriggerListPtr)[i]); + (*gCurrentTriggerListPtr)[i] = NULL; + } +} + +s32 is_trigger_bound(Trigger* trigger, EvtSource* script) { + s32 i; + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + Trigger* listTrigger = (*gCurrentTriggerListPtr)[i]; + + if (listTrigger == NULL || listTrigger == trigger) { + continue; + } + + if (listTrigger->flags.flags & 1) { + if (listTrigger->flags.flags & 2) { + if (listTrigger->scriptSource == script) { + return TRUE; + } + } + } + } + + return FALSE; +} + +Trigger* get_trigger_by_id(s32 triggerID) { + return (*gCurrentTriggerListPtr)[triggerID]; +} + +/// @returns TRUE if colliderID is bound to an interaction trigger (press A) and the player can use it. +s32 should_collider_allow_interact(s32 colliderID) { + s32 i; + + if (!phys_can_player_interact()) { + return FALSE; + } + + for (i = 0; i < ARRAY_COUNT(*gCurrentTriggerListPtr); i++) { + Trigger* trigger = (*gCurrentTriggerListPtr)[i]; + + if (trigger != NULL && + trigger->unk_30 != 0 && + trigger->params2 == colliderID && + trigger->flags.flags & 0x100) { + return TRUE; + } + } + return FALSE; +} diff --git a/src/world/action/ultra_boots.c b/src/world/action/ultra_boots.c index 3e80a16141..42b9491cd1 100644 --- a/src/world/action/ultra_boots.c +++ b/src/world/action/ultra_boots.c @@ -3,7 +3,7 @@ extern s32 gSpinHistoryBufferPos; extern s32 gSpinHistoryPosY[5]; extern s16 gSpinHistoryPosAngle[5]; -extern s32 D_8015A578; +extern struct struct8015A578 D_8015A578; typedef struct struct8015A578 { /* 0x00 */ u8 unk_00; @@ -11,18 +11,17 @@ typedef struct struct8015A578 { /* 0x08 */ f32 unk_08; } struct8015A578; +s32 func_802B65F8_E26D08(void); + void func_802B6000_E26710(void) { PlayerStatus* playerStatus = &gPlayerStatus; CollisionStatus* collisionStatus = &gCollisionStatus; struct8015A578* tempStruct; struct8015A578* tempStruct2; - Entity* currentFloorEntity; f32 temp_f0; f32 temp_f20; - s32 temp_v0_2; - u8 temp_v1_2; + u8 colliderType; f32 phi_f4; - s32 sp12; s32 sp10; u32 entityType; @@ -77,8 +76,7 @@ void func_802B6000_E26710(void) { if (sp10 >= 0 && collisionStatus->currentFloor & 0x4000 ) { entityType = get_entity_type(collisionStatus->currentFloor); if(entityType == 7 || entityType == 8) { - currentFloorEntity = get_entity_by_index(collisionStatus->currentFloor); - currentFloorEntity->collisionFlags |= 1; + get_entity_by_index(collisionStatus->currentFloor)->collisionFlags |= 1; disable_player_input(); playerStatus->fallState = 0xB; break; @@ -132,19 +130,18 @@ void func_802B6000_E26710(void) { } } - temp_v1_2 = get_collider_type_by_id(sp10); - if (temp_v1_2 == 3) { + colliderType = get_collider_type_by_id(sp10); + if (colliderType == 3) { playerStatus->unk_BF = 1; playerStatus->flags &= ~0x00020008; set_action_state(ACTION_STATE_HIT_LAVA); playerStatus->flags |= 0x800; return; - } else if (temp_v1_2 == 2) { + } else if (colliderType == 2) { set_action_state(ACTION_STATE_HIT_LAVA); playerStatus->flags &= ~0x00020008; return; } - playerStatus->framesOnGround = 8; playerStatus->decorationList = 0; playerStatus->actionState = 0x10; @@ -176,16 +173,15 @@ void func_802B6000_E26710(void) { } if (playerStatus->gravityIntegrator[0] < 0.0f) { - temp_v0_2 = func_802B65F8_E26D08(); - sp10 = temp_v0_2; - if (temp_v0_2 >= 0) { + sp10 = func_802B65F8_E26D08(); + if (sp10 >= 0) { collisionStatus->lastTouchedFloor = -1; collisionStatus->currentFloor = sp10; } } } -void func_802B65F8_E26D08(void) { +s32 func_802B65F8_E26D08(void) { f32 sp28; f32 sp2C; f32 sp30; @@ -199,5 +195,5 @@ void func_802B65F8_E26D08(void) { sp34 = gPlayerStatus.colliderHeight; sp30 = gPlayerStatus.position.z; sp2C = gPlayerStatus.position.y + (sp34 * 0.5f); - player_raycast_below_cam_relative(&gPlayerStatus, &sp28, &sp2C, &sp30, &sp34, &sp38, &sp3C, &sp40, &sp44); + return player_raycast_below_cam_relative(&gPlayerStatus, &sp28, &sp2C, &sp30, &sp34, &sp38, &sp3C, &sp40, &sp44); } diff --git a/tools/assist_copy_paste.py b/tools/assist_copy_paste.py deleted file mode 100644 index 7202275246..0000000000 --- a/tools/assist_copy_paste.py +++ /dev/null @@ -1,283 +0,0 @@ -import sys -from pathlib import Path -import re - -RUN_ME = False -if not RUN_ME: - print(f"Are you sure yo uwant to run this? Edit RUN_ME in the script if so") - exit() - -WRITE_FILE = True -DO_OVERWRITE = True -DO_OVERWRITE_DECOMP = False - -def get_file_name(name): - out = "" - decomp = False - if name: - if "matches total" in name: - name = name.split(" - ",1)[0] - decomp = True - if name[3] == "_": - name = name[7:] - else: - name = name.split(" - ",1)[1] - if "(decompiled)" in name: - decomp = True - name = name.split(" ",1)[0] - if name[3] == "_": - name = name[7:] - name = name.strip() - out = name - return out, decomp - -def find_file_path(looking_for): - global map_ - file_name, decomp = get_file_name(looking_for) - file_path = "" - if file_name: - for i,line in enumerate(map_): - if file_name in line: - x = i - while not map_[x].startswith(" .text"): - x -= 1 - x -= 1 - file_path = map_[x].split(".o",1)[0].split("build/",1)[1].strip() - break - if not "src/world/area_" in file_path: - file_path = "" - return file_name, file_path, decomp - - - -map_file = (Path(__file__).parent.parent / "ver" / "current" / "build" / "papermario.map").read_text().splitlines() -# cut out half the map -map_ = [] -found_header = False -for line in map_file: - if line.startswith(".header"): - found_header = True - if found_header: - map_.append(line) - -del map_file - -files = sys.stdin.read().splitlines() - -if not files or "found no matches" in files[0]: - print(f"Could not find any matching functions") - exit() - -#first get the decomped code -function_text = "" - -function, file_path, decomp = find_file_path(files[0]) -if decomp and file_path != "": - file_path = (Path(__file__).parent.parent / file_path).resolve() - func_file = file_path.read_text().splitlines() - for i,line in enumerate(func_file): - if line: - line = line.strip() - split_line = line.split(" ") - if len(split_line) > 2 and function in split_line[1] and (split_line[0] == "void" or split_line[0] == "s32" or split_line[0] == "ApiStatus"): - out = ["/*"] - while not func_file[i].startswith("}"): - out.append(func_file[i]) - i += 1 - out.append("}") - out.append("*/") - - func_name_start = out[1].find("N(") - func_name_end = out[1].find(")") - out[1] = out[1][:func_name_start+2] + out[1][func_name_end:] - - function_text = "\n".join(out) - -if function_text == "": - print(f"Unable to find a decompiled function to copy code from") - exit() - -for file in files[1:]: - if not file: - continue - function, file_path, decomp = find_file_path(file) - - if file_path == "": - continue - - if not function: - print(f"Failed to find {file}") - continue - - if function[3] == "_" and function[6] == "_" and function.startswith(Path(file_path).parts[3]): - function = function[len("xxx_yy_"):] - - print(f"Func:\"{function}\" path:\"{file_path}\" Decomped: {decomp}") - - asm_path = Path(__file__).parent.parent / "ver" / "us" / "asm" / "nonmatchings" - fixed = list(Path(file_path).parts[1:]) - fixed[-1] = fixed[-1][:-2] - asm_path = asm_path / "/".join(fixed) / function - asm_path = asm_path.with_suffix(".s") - - file_path = (Path(__file__).parent.parent / file_path).resolve() - - # don't want to try and replace already-decompiled functions - if decomp and not DO_OVERWRITE: - print(f"{file_path} already has this function decompiled and not overwriting") - continue - - func_file = file_path.read_text().splitlines() - new_func_file = [] - i = 0 - while i < len(func_file): - line = func_file[i] - if line: - stripped_line = line.strip() - split_line = stripped_line.split(" ") - - if DO_OVERWRITE_DECOMP and decomp and len(split_line) > 2 and decomp and function in split_line[1]: - if DO_OVERWRITE: - x = i - while not (func_file[x] == "}"): - x += 1 - x += 1 - - old_data_name = "" - new_data_name = "" - - #if "ptr" in func_file[i+1]: - # new_func_data = function_text.splitlines()[1:-1] - # old_data_name = new_func_data[3].split("if (",1)[1].split(" == ",1)[0] - # new_data_name = func_file[i+1].split(" = ",1)[1][1:-1] - - func_data = function_text.replace(old_data_name, new_data_name) - - func_data = func_data.splitlines()[1:-1] - func_data[0] = func_data[0].replace("N()", f"N({function})") - new_func_file.append("\n".join(func_data)) - - i = x-1 - #print("\n".join(temp)) - #print() - else: - new_func_file.append(line) - - elif len(split_line) > 2 and "INCLUDE_ASM" in split_line[0] and function in split_line[2] and ((i+1 < len(func_file) and "/*" not in func_file[i+1] and not func_file[i+1].startswith("#endif")) or (i+1 == len(func_file))): - func_data = function_text.splitlines() - - ''' - if asm_path.is_file(): - asm_data = asm_path.read_text().splitlines() - for asm_line in asm_data: - if "lui" in asm_line and "ldc1" in asm_data[x+1] and asm_line.count("_") == 2: - new_data_name = asm_line.split(" ")[-1] - break - else: - print(f"Failed to find new data name") - exit() - - old_data_name = "N(" + func_data[8].split("N(",1)[1].split(")",1)[0] + ")" - func_data = function_text.replace(old_data_name, "N(" + new_data_name + ")").splitlines() - ''' - ''' - if asm_path.is_file(): - asm_data = asm_path.read_text().splitlines() - for x,asm_line in enumerate(asm_data): - if "lui" in asm_line and "addiu" in asm_data[x+1] and "D_" in asm_line and asm_line.count("_") == 1: - new_data_name1 = asm_line.split("(",1)[1].split(")",1)[0] - elif "lui" in asm_line and "sw" in asm_data[x+1] and "D_" in asm_line and asm_line.count("_") == 1: - new_data_name2 = asm_line.split("(",1)[1].split(")",1)[0] - break - else: - print(f"Failed to find new data name") - exit() - - old_data_name1 = func_data[5].split("N(",1)[1].split(")",1)[0] - old_data_name2 = func_data[8].split("N(",1)[1].split(")",1)[0] - - ft2 = function_text - ft2 = ft2.replace("N(" + old_data_name1 + ")", old_data_name1) - ft2 = ft2.replace("N(" + old_data_name2 + ")", old_data_name2) - ft2 = ft2.replace(old_data_name1, "N(" + new_data_name1 + ")") - func_data = ft2.replace(old_data_name2, "N(" + new_data_name2 + ")").splitlines() - ''' - - new_func_file.append(stripped_line) - func_data[1] = func_data[1].replace("N()", f"N({function})") - new_func_file.append("\n".join(func_data)) - - #print("\n".join(func_data)) - #print() - - elif len(split_line) > 2 and "INCLUDE_ASM" in split_line[0] and function in split_line[2] and func_file[i+1].startswith("#endif"): - if DO_OVERWRITE: - #a NON_MATCHING func - x = i - while not func_file[x].startswith("#ifdef NON_MATCHING"): - x -= 1 - # strip away lines already added - new_func_file = new_func_file[:x] - new_func_file.append(stripped_line) - func_data = function_text.splitlines() - func_data[1] = func_data[1].replace("N()", f"N({function})") - new_func_file.append("\n".join(func_data)) - i += 1 - else: - new_func_file.append(line) - - elif len(split_line) > 2 and "INCLUDE_ASM" in split_line[0] and function in split_line[2] and i+1 < len(func_file) and "/*" in func_file[i+1]: - if DO_OVERWRITE: - while not (func_file[i] == "}" and func_file[i+1] == "*/"): - i += 1 - i += 1 - - func_data = function_text.splitlines() - - ''' - if asm_path.is_file(): - #print(f"Reading asm file {asm_path}") - asm_data = asm_path.read_text().splitlines() - for x,asm_line in enumerate(asm_data): - if "lui" in asm_line and "addu" in asm_data[x+1] and "D_" in asm_line and asm_line.count("_") == 2: - new_data_name1 = asm_line.split("(",1)[1].split(")",1)[0] - break - else: - print(f"Failed to find new data name") - exit() - - #print(func_data[5]) - - old_data_name1 = func_data[5].split("N(",1)[1].split(")",1)[0] - - ft2 = function_text - ft2 = ft2.replace("N(" + old_data_name1 + ")", old_data_name1) - func_data = ft2.replace(old_data_name1, "N(" + new_data_name1 + ")").splitlines() - ''' - - new_func_file.append(stripped_line) - func_data[1] = func_data[1].replace("N()", f"N({function})") - new_func_file.append("\n".join(func_data)) - - #print("\n".join(func_data)) - #print() - else: - print(f"{file_path} already has this function commented out") - new_func_file.append(line) - else: - new_func_file.append(line) - else: - new_func_file.append(line) - i += 1 - - if new_func_file[-1] != "": - new_func_file.append("") - - #print("===========") - #print(f"Altering {file_path}") - #print("\n".join(new_func_file)) - #print("===========") - if WRITE_FILE: - file_path.write_text("\n".join(new_func_file)) - #if "dro_02" in str(file_path): - # exit() diff --git a/tools/exit_helper.py b/tools/exit_helper.py deleted file mode 100755 index 65374779ca..0000000000 --- a/tools/exit_helper.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/python3 - -def qc(words_string): - words = words_string.split(",") - byte_array = b"" - for word in words: - data = word.strip()[2:] - byte_array += bytearray.fromhex(data) - strings = byte_array.split(b"\0") - - idx = 0 - for string in strings: - if len(string) > 0: - dec = string.decode("ascii") - print(f"static char* N(exit_str_{idx}) = \"{dec}\";") - idx += 1 - -qc("0x6D61635F, 0x30310000, 0x00000000, 0x00000000") diff --git a/tools/fixc.py b/tools/fixc.py deleted file mode 100755 index ab84375d41..0000000000 --- a/tools/fixc.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/python3 - -import argparse -from collections import OrderedDict -import os -import re -import pickle -import sys -from pathlib import Path - -script_dir = os.path.dirname(os.path.realpath(__file__)) -root_dir = script_dir + "/../" -src_dir = root_dir + "src/world/" -asm_dir = root_dir + "ver/current/asm/nonmatchings/world/" - - -def sub_func(match): - m_str = match.group() - m_str_split = m_str.split(", ") - func_name = m_str_split[-1][:-2] - - path_elems = m_str_split[-2].split("/")[1:] - - asmd = os.path.join(asm_dir, path_elems[0], path_elems[1], path_elems[2][:-1]) - - for root, dirs, files in os.walk(asmd): - for f_name in files: - f_name = f_name[:-2] - if f_name.startswith(func_name) and len(f_name) > len(func_name): - return m_str.replace(func_name, f_name) - return m_str - - -for root, dirs, files in os.walk(src_dir): - for f_name in files: - if f_name.endswith(".c"): - f_path = os.path.join(root, f_name) - area_name = Path(f_path).parent.name - with open(f_path) as f: - f_text_orig = f.readlines() - - f_text = [] - - if f_name == "DF6A20.c": - dog = 5 - - for line in f_text_orig: - new_line = re.sub(r"INCLUDE_ASM.*\);", sub_func, line) - f_text.append(new_line) - - if f_text != f_text_orig: - with open(f_path, "w", newline="\n") as f: - f.writelines(f_text) - diff --git a/tools/m2ctx.py b/tools/m2ctx.py index 892ee5bac5..e891545318 100755 --- a/tools/m2ctx.py +++ b/tools/m2ctx.py @@ -27,7 +27,7 @@ def get_c_file(directory): def import_c_file(in_file): in_file = os.path.relpath(in_file, root_dir) cpp_command = ["gcc", "-E", "-P", "-Iinclude", "-Isrc", "-Iver/current/build/include" ,"-D_LANGUAGE_C", - "-ffreestanding", "-DF3DEX_GBI_2", "-DSCRIPT(...)={}", in_file] + "-ffreestanding", "-DF3DEX_GBI_2", "-D_MIPS_SZLONG=32", "-DSCRIPT(...)={}", in_file] try: return subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8") except subprocess.CalledProcessError: diff --git a/tools/mapheaders.py b/tools/mapheaders.py deleted file mode 100755 index d5b61e5f72..0000000000 --- a/tools/mapheaders.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python3 - -import argparse -from collections import OrderedDict -import os -import re -import pickle -import sys -from pathlib import Path - -script_dir = os.path.dirname(os.path.realpath(__file__)) -root_dir = script_dir + "/../" -src_dir = root_dir + "src/world/" -asm_dir = root_dir + "ver/current/asm/nonmatchings/world/" - -if len(sys.argv) <= 1 or not (sys.argv[1] == "y" or sys.argv[1] == "-y"): - print(f"Warning! This script is destructive, pass -y if you really want to run it") - exit() - -for root, dirs, files in os.walk(src_dir): - for dir_name in dirs: - dir_path = os.path.join(root, dir_name) - map_name = Path(dir_path).parent.name - if map_name.startswith("area_"): - common_funcs = [] - - for c_file in os.scandir(dir_path): - if c_file.name.endswith(".c"): - with open(c_file) as f: - c_lines = f.readlines() - for line in c_lines: - if "world/common" in line: - common_funcs.append(line.split("/")[-1].split(".")[0]) - - header_name = dir_name + ".h" - guard_name = f"_{dir_name.upper()}_" - - out_lines = [] - # out_lines.append(f"#ifndef {guard_name}") - # out_lines.append(f"#define {guard_name}") - # out_lines.append("") - out_lines.append("#include \"common.h\"") - out_lines.append("#include \"map.h\"") - out_lines.append("") - out_lines.append(f"#define NAMESPACE {dir_name}") - out_lines.append("") - - # if len(common_funcs) > 0: - # for func_name in common_funcs: - # out_lines.append(f"#include \"world/common/{func_name}.h\"") - # out_lines.append("#endif") - # out_lines.append("") - - with open(os.path.join(dir_path, header_name), "w", newline="\n") as f: - f.write("\n".join(out_lines)) - -# for root, dirs, files in os.walk(src_dir): -# for f_name in files: -# if f_name.endswith(".c"): -# f_path = os.path.join(root, f_name) -# area_name = Path(f_path).parent.name -# with open(f_path) as f: -# f_text_orig = f.readlines() - -# f_text = [] -# f_text.append(f"#include \"{area_name}.h\"\n") - -# for line in f_text_orig: -# if not line.startswith("#include") or line.startswith("#include \"world"): -# f_text.append(line) -# #new_line = re.sub(r"INCLUDE_ASM.*\);", sub_func, line) - -# if f_text != f_text_orig: -# with open(f_path, "w", newline="\n") as f: -# f.writelines(f_text) - diff --git a/tools/substitute2.py b/tools/substitute2.py deleted file mode 100644 index b7da77db96..0000000000 --- a/tools/substitute2.py +++ /dev/null @@ -1,136 +0,0 @@ -from pathlib import Path - -RUN_ME = False -if not RUN_ME: - print(f"Are you sure yo uwant to run this? Edit RUN_ME in the script if so") - exit() - -FUNC=""" Enemy* enemy = script->owner1.enemy; - Npc* npc = get_npc_unsafe(enemy->npcID); - - npc->duration--; - if (npc->duration <= 0) { - enemy->varTable[2] = 0; - npc->duration = 0; - script->functionTemp[0] = 0; - } -}""".splitlines() - -NEW_FUNC_NAME = f"UnkFunc45" -NEW_INCLUDE = f"#include \"world/common/{NEW_FUNC_NAME}.inc.c\"" - -RENAMED = [] -def parse_folder(path): - for entry in path.iterdir(): - if entry.is_dir(): - parse_folder(entry) - continue - - if not "area" in str(entry): - continue - - area_name = entry.parts[3] - fd = entry.read_text().splitlines() - - i = 0 - while i < len(fd): - if (#i+2 < len(fd) and - fd[i].startswith("INCLUDE_ASM") or - fd[i].startswith("ApiStatus N(") or - fd[i].startswith("void N(")): - #and fd[i+1] == "/*"): - if fd[i].startswith("INCLUDE_ASM"): - base_fd = i+3 - base_name = i+2 - elif fd[i].startswith("ApiStatus N(") or fd[i].startswith("void N("): - base_fd = i+1 - base_name = i - - if len(fd[base_fd:]) < len(FUNC): - i += 1 - continue - - #print(f"Starting from {fd[base_fd]}") - - for func, test in zip(fd[base_fd:], FUNC): - if func != test: - break - else: - print(f"Found a match in {entry}: {fd[i]}") - #print("\n".join(fd[i:i+3+len(FUNC)+1])) - #print("\n".join(fd)) - - include_path = Path("src/world/common/") / (NEW_FUNC_NAME + ".inc.c") - if not include_path.is_file(): - name_start = fd[base_name].find("N(") - name_end = fd[base_name].find("(",name_start+2) - new_file_name = fd[base_name][:name_start] + "N(" + NEW_FUNC_NAME + ")" + fd[base_name][name_end:] - - new_fd = ["#include \"common.h\"", - "#include \"map.h\"", - "", - new_file_name, - ] - new_fd.extend(FUNC) - include_path.write_text("\n".join(new_fd)) - - if fd[i].startswith("INCLUDE_ASM"): - old_func_name = fd[i].split(",")[2].strip().replace(");", "") - else: - old_func_name = fd[i].split("N(",1)[1].split(")",1)[0] - - RENAMED.append({"name":old_func_name, "area":area_name}) - - fd = fd[:i] + [NEW_INCLUDE] + fd[base_fd+len(FUNC)+1:] - - if i+1 < len(fd) and fd[i+1] != "": - fd = fd[:i+1] + [""] + fd[i+1:] - - if fd[-1] != "": - fd.append("") - - #print("\n".join(fd)) - - entry.write_text("\n".join(fd)) - - break - - i += 1 - -parse_folder(Path("src/world")) - -def do_renames_asm(path): - for entry in path.iterdir(): - if entry.is_dir(): - do_renames_asm(entry) - continue - - fd = entry.read_text() - for rename in RENAMED: - if rename["name"] in fd: - fd = fd.replace(rename["name"], f"{rename['area']}_{NEW_FUNC_NAME}") - entry.write_text(fd) -do_renames_asm(Path("ver/us/asm")) - -def do_renames_src(path): - for entry in path.iterdir(): - if entry.is_dir(): - do_renames_src(entry) - continue - - fd = entry.read_text().splitlines() - i = 0 - renamed = False - while i < len(fd): - for rename in RENAMED: - start = fd[i].find(rename["name"]) - if start > -1: - renamed = True - if fd[i][start-1] == "(": - fd[i] = fd[i].replace(rename["name"], f"{NEW_FUNC_NAME}") - else: - fd[i] = fd[i].replace(rename["name"], f"N({NEW_FUNC_NAME})") - i += 1 - if renamed: - entry.write_text("\n".join(fd)) -do_renames_src(Path("src/world")) diff --git a/ver/us/asm/nonmatchings/battle/partner/goombario/func_802380E4_6F11C4.s b/ver/us/asm/nonmatchings/battle/partner/goombario/func_802380E4_6F11C4.s deleted file mode 100644 index 23f8b01037..0000000000 --- a/ver/us/asm/nonmatchings/battle/partner/goombario/func_802380E4_6F11C4.s +++ /dev/null @@ -1,43 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802380E4_6F11C4 -/* 6F11C4 802380E4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 6F11C8 802380E8 AFB10014 */ sw $s1, 0x14($sp) -/* 6F11CC 802380EC 0080882D */ daddu $s1, $a0, $zero -/* 6F11D0 802380F0 AFBF0018 */ sw $ra, 0x18($sp) -/* 6F11D4 802380F4 AFB00010 */ sw $s0, 0x10($sp) -/* 6F11D8 802380F8 0C09A75B */ jal get_actor -/* 6F11DC 802380FC 8E240148 */ lw $a0, 0x148($s1) -/* 6F11E0 80238100 0C09A75B */ jal get_actor -/* 6F11E4 80238104 84440428 */ lh $a0, 0x428($v0) -/* 6F11E8 80238108 24030063 */ addiu $v1, $zero, 0x63 -/* 6F11EC 8023810C 3C108024 */ lui $s0, %hi(D_8023BB98_6ECC78) -/* 6F11F0 80238110 2610BB98 */ addiu $s0, $s0, %lo(D_8023BB98_6ECC78) -/* 6F11F4 80238114 AE230084 */ sw $v1, 0x84($s1) -/* 6F11F8 80238118 8C420008 */ lw $v0, 8($v0) -/* 6F11FC 8023811C 8E030000 */ lw $v1, ($s0) -/* 6F1200 80238120 9042001E */ lbu $v0, 0x1e($v0) -/* 6F1204 80238124 00620018 */ mult $v1, $v0 -/* 6F1208 80238128 00001812 */ mflo $v1 -/* 6F120C 8023812C 3C0251EB */ lui $v0, 0x51eb -/* 6F1210 80238130 3442851F */ ori $v0, $v0, 0x851f -/* 6F1214 80238134 00620018 */ mult $v1, $v0 -/* 6F1218 80238138 24040064 */ addiu $a0, $zero, 0x64 -/* 6F121C 8023813C 00031FC3 */ sra $v1, $v1, 0x1f -/* 6F1220 80238140 00003010 */ mfhi $a2 -/* 6F1224 80238144 00061143 */ sra $v0, $a2, 5 -/* 6F1228 80238148 00431023 */ subu $v0, $v0, $v1 -/* 6F122C 8023814C 0C00A67F */ jal rand_int -/* 6F1230 80238150 AE020000 */ sw $v0, ($s0) -/* 6F1234 80238154 8E030000 */ lw $v1, ($s0) -/* 6F1238 80238158 0062182A */ slt $v1, $v1, $v0 -/* 6F123C 8023815C 54600001 */ bnel $v1, $zero, .L80238164 -/* 6F1240 80238160 AE200084 */ sw $zero, 0x84($s1) -.L80238164: -/* 6F1244 80238164 8FBF0018 */ lw $ra, 0x18($sp) -/* 6F1248 80238168 8FB10014 */ lw $s1, 0x14($sp) -/* 6F124C 8023816C 8FB00010 */ lw $s0, 0x10($sp) -/* 6F1250 80238170 24020002 */ addiu $v0, $zero, 2 -/* 6F1254 80238174 03E00008 */ jr $ra -/* 6F1258 80238178 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/battle/partner/twink/func_80238028_714D18.s b/ver/us/asm/nonmatchings/battle/partner/twink/func_80238028_714D18.s deleted file mode 100644 index 94ca0a76bf..0000000000 --- a/ver/us/asm/nonmatchings/battle/partner/twink/func_80238028_714D18.s +++ /dev/null @@ -1,46 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80238028_714D18 -/* 714D18 80238028 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 714D1C 8023802C AFBF0018 */ sw $ra, 0x18($sp) -/* 714D20 80238030 AFB10014 */ sw $s1, 0x14($sp) -/* 714D24 80238034 AFB00010 */ sw $s0, 0x10($sp) -/* 714D28 80238038 0C09A75B */ jal get_actor -/* 714D2C 8023803C 8C840148 */ lw $a0, 0x148($a0) -/* 714D30 80238040 3C108024 */ lui $s0, %hi(D_802382F8_714FE8) -/* 714D34 80238044 261082F8 */ addiu $s0, $s0, %lo(D_802382F8_714FE8) -/* 714D38 80238048 8E030000 */ lw $v1, ($s0) -/* 714D3C 8023804C 0040882D */ daddu $s1, $v0, $zero -/* 714D40 80238050 24630012 */ addiu $v1, $v1, 0x12 -/* 714D44 80238054 44836000 */ mtc1 $v1, $f12 -/* 714D48 80238058 00000000 */ nop -/* 714D4C 8023805C 46806320 */ cvt.s.w $f12, $f12 -/* 714D50 80238060 0C00A6C9 */ jal clamp_angle -/* 714D54 80238064 AE030000 */ sw $v1, ($s0) -/* 714D58 80238068 4600008D */ trunc.w.s $f2, $f0 -/* 714D5C 8023806C 44021000 */ mfc1 $v0, $f2 -/* 714D60 80238070 3C0140C9 */ lui $at, 0x40c9 -/* 714D64 80238074 34210FD0 */ ori $at, $at, 0xfd0 -/* 714D68 80238078 44810000 */ mtc1 $at, $f0 -/* 714D6C 8023807C 44826000 */ mtc1 $v0, $f12 -/* 714D70 80238080 00000000 */ nop -/* 714D74 80238084 46806320 */ cvt.s.w $f12, $f12 -/* 714D78 80238088 46006302 */ mul.s $f12, $f12, $f0 -/* 714D7C 8023808C 00000000 */ nop -/* 714D80 80238090 3C0143B4 */ lui $at, 0x43b4 -/* 714D84 80238094 44810000 */ mtc1 $at, $f0 -/* 714D88 80238098 AE020000 */ sw $v0, ($s0) -/* 714D8C 8023809C 0C00A85B */ jal sin_rad -/* 714D90 802380A0 46006303 */ div.s $f12, $f12, $f0 -/* 714D94 802380A4 46000000 */ add.s $f0, $f0, $f0 -/* 714D98 802380A8 4600008D */ trunc.w.s $f2, $f0 -/* 714D9C 802380AC 44031000 */ mfc1 $v1, $f2 -/* 714DA0 802380B0 00000000 */ nop -/* 714DA4 802380B4 A223019A */ sb $v1, 0x19a($s1) -/* 714DA8 802380B8 8FBF0018 */ lw $ra, 0x18($sp) -/* 714DAC 802380BC 8FB10014 */ lw $s1, 0x14($sp) -/* 714DB0 802380C0 8FB00010 */ lw $s0, 0x10($sp) -/* 714DB4 802380C4 24020002 */ addiu $v0, $zero, 2 -/* 714DB8 802380C8 03E00008 */ jr $ra -/* 714DBC 802380CC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/dbd70_len_700/create_trigger.s b/ver/us/asm/nonmatchings/dbd70_len_700/create_trigger.s deleted file mode 100644 index 53c833994b..0000000000 --- a/ver/us/asm/nonmatchings/dbd70_len_700/create_trigger.s +++ /dev/null @@ -1,72 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel create_trigger -/* DBE6C 8014576C 3C038016 */ lui $v1, %hi(gCurrentTriggerListPtr) -/* DBE70 80145770 8C639390 */ lw $v1, %lo(gCurrentTriggerListPtr)($v1) -/* DBE74 80145774 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* DBE78 80145778 AFB10014 */ sw $s1, 0x14($sp) -/* DBE7C 8014577C 0080882D */ daddu $s1, $a0, $zero -/* DBE80 80145780 AFB00010 */ sw $s0, 0x10($sp) -/* DBE84 80145784 0000802D */ daddu $s0, $zero, $zero -/* DBE88 80145788 AFBF0018 */ sw $ra, 0x18($sp) -.L8014578C: -/* DBE8C 8014578C 8C620000 */ lw $v0, ($v1) -/* DBE90 80145790 10400006 */ beqz $v0, .L801457AC -/* DBE94 80145794 2A020040 */ slti $v0, $s0, 0x40 -/* DBE98 80145798 26100001 */ addiu $s0, $s0, 1 -/* DBE9C 8014579C 2A020040 */ slti $v0, $s0, 0x40 -/* DBEA0 801457A0 1440FFFA */ bnez $v0, .L8014578C -/* DBEA4 801457A4 24630004 */ addiu $v1, $v1, 4 -/* DBEA8 801457A8 2A020040 */ slti $v0, $s0, 0x40 -.L801457AC: -/* DBEAC 801457AC 14400003 */ bnez $v0, .L801457BC -/* DBEB0 801457B0 00000000 */ nop -.L801457B4: -/* DBEB4 801457B4 080515ED */ j .L801457B4 -/* DBEB8 801457B8 00000000 */ nop -.L801457BC: -/* DBEBC 801457BC 0C00AB39 */ jal heap_malloc -/* DBEC0 801457C0 24040038 */ addiu $a0, $zero, 0x38 -/* DBEC4 801457C4 00102080 */ sll $a0, $s0, 2 -/* DBEC8 801457C8 3C038016 */ lui $v1, %hi(gCurrentTriggerListPtr) -/* DBECC 801457CC 8C639390 */ lw $v1, %lo(gCurrentTriggerListPtr)($v1) -/* DBED0 801457D0 3C058015 */ lui $a1, %hi(gTriggerCount) -/* DBED4 801457D4 24A51334 */ addiu $a1, $a1, %lo(gTriggerCount) -/* DBED8 801457D8 00832021 */ addu $a0, $a0, $v1 -/* DBEDC 801457DC 94A30000 */ lhu $v1, ($a1) -/* DBEE0 801457E0 0040302D */ daddu $a2, $v0, $zero -/* DBEE4 801457E4 AC860000 */ sw $a2, ($a0) -/* DBEE8 801457E8 24630001 */ addiu $v1, $v1, 1 -/* DBEEC 801457EC 14C00003 */ bnez $a2, .L801457FC -/* DBEF0 801457F0 A4A30000 */ sh $v1, ($a1) -.L801457F4: -/* DBEF4 801457F4 080515FD */ j .L801457F4 -/* DBEF8 801457F8 00000000 */ nop -.L801457FC: -/* DBEFC 801457FC 8E220000 */ lw $v0, ($s1) -/* DBF00 80145800 34420001 */ ori $v0, $v0, 1 -/* DBF04 80145804 ACC20000 */ sw $v0, ($a2) -/* DBF08 80145808 86220004 */ lh $v0, 4($s1) -/* DBF0C 8014580C ACC20004 */ sw $v0, 4($a2) -/* DBF10 80145810 8E220008 */ lw $v0, 8($s1) -/* DBF14 80145814 ACC20008 */ sw $v0, 8($a2) -/* DBF18 80145818 8E22001C */ lw $v0, 0x1c($s1) -/* DBF1C 8014581C ACC20028 */ sw $v0, 0x28($a2) -/* DBF20 80145820 8E220014 */ lw $v0, 0x14($s1) -/* DBF24 80145824 ACC2002C */ sw $v0, 0x2c($a2) -/* DBF28 80145828 9222001B */ lbu $v0, 0x1b($s1) -/* DBF2C 8014582C A0C20030 */ sb $v0, 0x30($a2) -/* DBF30 80145830 8E22000C */ lw $v0, 0xc($s1) -/* DBF34 80145834 14400004 */ bnez $v0, .L80145848 -/* DBF38 80145838 ACC2000C */ sw $v0, 0xc($a2) -/* DBF3C 8014583C 3C028014 */ lui $v0, %hi(default_trigger_delegate) -/* DBF40 80145840 24425670 */ addiu $v0, $v0, %lo(default_trigger_delegate) -/* DBF44 80145844 ACC2000C */ sw $v0, 0xc($a2) -.L80145848: -/* DBF48 80145848 8FBF0018 */ lw $ra, 0x18($sp) -/* DBF4C 8014584C 8FB10014 */ lw $s1, 0x14($sp) -/* DBF50 80145850 8FB00010 */ lw $s0, 0x10($sp) -/* DBF54 80145854 00C0102D */ daddu $v0, $a2, $zero -/* DBF58 80145858 03E00008 */ jr $ra -/* DBF5C 8014585C 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/dbd70_len_700/is_trigger_bound.s b/ver/us/asm/nonmatchings/dbd70_len_700/is_trigger_bound.s deleted file mode 100644 index bd7ffb0c5e..0000000000 --- a/ver/us/asm/nonmatchings/dbd70_len_700/is_trigger_bound.s +++ /dev/null @@ -1,32 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel is_trigger_bound -/* DC36C 80145C6C 0000402D */ daddu $t0, $zero, $zero -/* DC370 80145C70 3C078016 */ lui $a3, %hi(gCurrentTriggerListPtr) -/* DC374 80145C74 8CE79390 */ lw $a3, %lo(gCurrentTriggerListPtr)($a3) -.L80145C78: -/* DC378 80145C78 8CE30000 */ lw $v1, ($a3) -/* DC37C 80145C7C 5060000F */ beql $v1, $zero, .L80145CBC -/* DC380 80145C80 25080001 */ addiu $t0, $t0, 1 -/* DC384 80145C84 5064000D */ beql $v1, $a0, .L80145CBC -/* DC388 80145C88 25080001 */ addiu $t0, $t0, 1 -/* DC38C 80145C8C 8C660000 */ lw $a2, ($v1) -/* DC390 80145C90 30C20001 */ andi $v0, $a2, 1 -/* DC394 80145C94 10400009 */ beqz $v0, .L80145CBC -/* DC398 80145C98 25080001 */ addiu $t0, $t0, 1 -/* DC39C 80145C9C 30C20002 */ andi $v0, $a2, 2 -/* DC3A0 80145CA0 10400006 */ beqz $v0, .L80145CBC -/* DC3A4 80145CA4 00000000 */ nop -/* DC3A8 80145CA8 8C620010 */ lw $v0, 0x10($v1) -/* DC3AC 80145CAC 14450004 */ bne $v0, $a1, .L80145CC0 -/* DC3B0 80145CB0 29020040 */ slti $v0, $t0, 0x40 -/* DC3B4 80145CB4 03E00008 */ jr $ra -/* DC3B8 80145CB8 24020001 */ addiu $v0, $zero, 1 -.L80145CBC: -/* DC3BC 80145CBC 29020040 */ slti $v0, $t0, 0x40 -.L80145CC0: -/* DC3C0 80145CC0 1440FFED */ bnez $v0, .L80145C78 -/* DC3C4 80145CC4 24E70004 */ addiu $a3, $a3, 4 -/* DC3C8 80145CC8 03E00008 */ jr $ra -/* DC3CC 80145CCC 0000102D */ daddu $v0, $zero, $zero diff --git a/ver/us/asm/nonmatchings/dbd70_len_700/update_triggers.s b/ver/us/asm/nonmatchings/dbd70_len_700/update_triggers.s deleted file mode 100644 index a9b62a543f..0000000000 --- a/ver/us/asm/nonmatchings/dbd70_len_700/update_triggers.s +++ /dev/null @@ -1,255 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel update_triggers -/* DBF60 80145860 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* DBF64 80145864 AFB20020 */ sw $s2, 0x20($sp) -/* DBF68 80145868 3C128016 */ lui $s2, %hi(gCollisionStatus) -/* DBF6C 8014586C 2652A550 */ addiu $s2, $s2, %lo(gCollisionStatus) -/* DBF70 80145870 AFB30024 */ sw $s3, 0x24($sp) -/* DBF74 80145874 0000982D */ daddu $s3, $zero, $zero -/* DBF78 80145878 AFBF0028 */ sw $ra, 0x28($sp) -/* DBF7C 8014587C AFB1001C */ sw $s1, 0x1c($sp) -/* DBF80 80145880 AFB00018 */ sw $s0, 0x18($sp) -/* DBF84 80145884 A6400016 */ sh $zero, 0x16($s2) -.L80145888: -/* DBF88 80145888 3C038016 */ lui $v1, %hi(gCurrentTriggerListPtr) -/* DBF8C 8014588C 8C639390 */ lw $v1, %lo(gCurrentTriggerListPtr)($v1) -/* DBF90 80145890 00131080 */ sll $v0, $s3, 2 -/* DBF94 80145894 00431021 */ addu $v0, $v0, $v1 -/* DBF98 80145898 8C510000 */ lw $s1, ($v0) -/* DBF9C 8014589C 522000B1 */ beql $s1, $zero, .L80145B64 -/* DBFA0 801458A0 26730001 */ addiu $s3, $s3, 1 -/* DBFA4 801458A4 8E230000 */ lw $v1, ($s1) -/* DBFA8 801458A8 30620001 */ andi $v0, $v1, 1 -/* DBFAC 801458AC 504000AD */ beql $v0, $zero, .L80145B64 -/* DBFB0 801458B0 26730001 */ addiu $s3, $s3, 1 -/* DBFB4 801458B4 30620010 */ andi $v0, $v1, 0x10 -/* DBFB8 801458B8 144000A8 */ bnez $v0, .L80145B5C -/* DBFBC 801458BC 34620002 */ ori $v0, $v1, 2 -/* DBFC0 801458C0 30620040 */ andi $v0, $v1, 0x40 -/* DBFC4 801458C4 1040000D */ beqz $v0, .L801458FC -/* DBFC8 801458C8 00000000 */ nop -/* DBFCC 801458CC 86430012 */ lh $v1, 0x12($s2) -/* DBFD0 801458D0 8E220008 */ lw $v0, 8($s1) -/* DBFD4 801458D4 14430003 */ bne $v0, $v1, .L801458E4 -/* DBFD8 801458D8 00000000 */ nop -/* DBFDC 801458DC 0C0381B0 */ jal func_800E06C0 -/* DBFE0 801458E0 24040001 */ addiu $a0, $zero, 1 -.L801458E4: -/* DBFE4 801458E4 86430000 */ lh $v1, ($s2) -/* DBFE8 801458E8 8E220008 */ lw $v0, 8($s1) -/* DBFEC 801458EC 5443009D */ bnel $v0, $v1, .L80145B64 -/* DBFF0 801458F0 26730001 */ addiu $s3, $s3, 1 -/* DBFF4 801458F4 0C0381B0 */ jal func_800E06C0 -/* DBFF8 801458F8 0000202D */ daddu $a0, $zero, $zero -.L801458FC: -/* DBFFC 801458FC 8E240000 */ lw $a0, ($s1) -/* DC000 80145900 30820080 */ andi $v0, $a0, 0x80 -/* DC004 80145904 10400006 */ beqz $v0, .L80145920 -/* DC008 80145908 3C020008 */ lui $v0, 8 -/* DC00C 8014590C 86430002 */ lh $v1, 2($s2) -/* DC010 80145910 8E220008 */ lw $v0, 8($s1) -/* DC014 80145914 54430093 */ bnel $v0, $v1, .L80145B64 -/* DC018 80145918 26730001 */ addiu $s3, $s3, 1 -/* DC01C 8014591C 3C020008 */ lui $v0, 8 -.L80145920: -/* DC020 80145920 00821024 */ and $v0, $a0, $v0 -/* DC024 80145924 10400006 */ beqz $v0, .L80145940 -/* DC028 80145928 30820100 */ andi $v0, $a0, 0x100 -/* DC02C 8014592C 86430006 */ lh $v1, 6($s2) -/* DC030 80145930 8E220008 */ lw $v0, 8($s1) -/* DC034 80145934 5443008B */ bnel $v0, $v1, .L80145B64 -/* DC038 80145938 26730001 */ addiu $s3, $s3, 1 -/* DC03C 8014593C 30820100 */ andi $v0, $a0, 0x100 -.L80145940: -/* DC040 80145940 1040000E */ beqz $v0, .L8014597C -/* DC044 80145944 00000000 */ nop -/* DC048 80145948 86430012 */ lh $v1, 0x12($s2) -/* DC04C 8014594C 8E220008 */ lw $v0, 8($s1) -/* DC050 80145950 14430002 */ bne $v0, $v1, .L8014595C -/* DC054 80145954 24020001 */ addiu $v0, $zero, 1 -/* DC058 80145958 A6420016 */ sh $v0, 0x16($s2) -.L8014595C: -/* DC05C 8014595C 8643000A */ lh $v1, 0xa($s2) -/* DC060 80145960 8E220008 */ lw $v0, 8($s1) -/* DC064 80145964 5443007F */ bnel $v0, $v1, .L80145B64 -/* DC068 80145968 26730001 */ addiu $s3, $s3, 1 -/* DC06C 8014596C 0C0394BE */ jal phys_can_player_interact -/* DC070 80145970 00000000 */ nop -/* DC074 80145974 5040007B */ beql $v0, $zero, .L80145B64 -/* DC078 80145978 26730001 */ addiu $s3, $s3, 1 -.L8014597C: -/* DC07C 8014597C 8E240000 */ lw $a0, ($s1) -/* DC080 80145980 30820400 */ andi $v0, $a0, 0x400 -/* DC084 80145984 10400006 */ beqz $v0, .L801459A0 -/* DC088 80145988 30820200 */ andi $v0, $a0, 0x200 -/* DC08C 8014598C 86430012 */ lh $v1, 0x12($s2) -/* DC090 80145990 8E220008 */ lw $v0, 8($s1) -/* DC094 80145994 54430073 */ bnel $v0, $v1, .L80145B64 -/* DC098 80145998 26730001 */ addiu $s3, $s3, 1 -/* DC09C 8014599C 30820200 */ andi $v0, $a0, 0x200 -.L801459A0: -/* DC0A0 801459A0 10400006 */ beqz $v0, .L801459BC -/* DC0A4 801459A4 30820800 */ andi $v0, $a0, 0x800 -/* DC0A8 801459A8 86430004 */ lh $v1, 4($s2) -/* DC0AC 801459AC 8E220008 */ lw $v0, 8($s1) -/* DC0B0 801459B0 5443006C */ bnel $v0, $v1, .L80145B64 -/* DC0B4 801459B4 26730001 */ addiu $s3, $s3, 1 -/* DC0B8 801459B8 30820800 */ andi $v0, $a0, 0x800 -.L801459BC: -/* DC0BC 801459BC 10400011 */ beqz $v0, .L80145A04 -/* DC0C0 801459C0 30821000 */ andi $v0, $a0, 0x1000 -/* DC0C4 801459C4 86430002 */ lh $v1, 2($s2) -/* DC0C8 801459C8 8E220008 */ lw $v0, 8($s1) -/* DC0CC 801459CC 54430065 */ bnel $v0, $v1, .L80145B64 -/* DC0D0 801459D0 26730001 */ addiu $s3, $s3, 1 -/* DC0D4 801459D4 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* DC0D8 801459D8 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* DC0DC 801459DC 8C420010 */ lw $v0, 0x10($v0) -/* DC0E0 801459E0 30428000 */ andi $v0, $v0, 0x8000 -/* DC0E4 801459E4 5040005F */ beql $v0, $zero, .L80145B64 -/* DC0E8 801459E8 26730001 */ addiu $s3, $s3, 1 -/* DC0EC 801459EC 3C028011 */ lui $v0, %hi(gPlayerStatus) -/* DC0F0 801459F0 8C42EFC8 */ lw $v0, %lo(gPlayerStatus)($v0) -/* DC0F4 801459F4 30422000 */ andi $v0, $v0, 0x2000 -/* DC0F8 801459F8 5440005A */ bnel $v0, $zero, .L80145B64 -/* DC0FC 801459FC 26730001 */ addiu $s3, $s3, 1 -/* DC100 80145A00 30821000 */ andi $v0, $a0, 0x1000 -.L80145A04: -/* DC104 80145A04 10400006 */ beqz $v0, .L80145A20 -/* DC108 80145A08 3C020004 */ lui $v0, 4 -/* DC10C 80145A0C 86430014 */ lh $v1, 0x14($s2) -/* DC110 80145A10 8E220008 */ lw $v0, 8($s1) -/* DC114 80145A14 54430053 */ bnel $v0, $v1, .L80145B64 -/* DC118 80145A18 26730001 */ addiu $s3, $s3, 1 -/* DC11C 80145A1C 3C020004 */ lui $v0, 4 -.L80145A20: -/* DC120 80145A20 00821024 */ and $v0, $a0, $v0 -/* DC124 80145A24 10400006 */ beqz $v0, .L80145A40 -/* DC128 80145A28 30822000 */ andi $v0, $a0, 0x2000 -/* DC12C 80145A2C 86430008 */ lh $v1, 8($s2) -/* DC130 80145A30 8E220008 */ lw $v0, 8($s1) -/* DC134 80145A34 5443004B */ bnel $v0, $v1, .L80145B64 -/* DC138 80145A38 26730001 */ addiu $s3, $s3, 1 -/* DC13C 80145A3C 30822000 */ andi $v0, $a0, 0x2000 -.L80145A40: -/* DC140 80145A40 10400006 */ beqz $v0, .L80145A5C -/* DC144 80145A44 30824000 */ andi $v0, $a0, 0x4000 -/* DC148 80145A48 8643000C */ lh $v1, 0xc($s2) -/* DC14C 80145A4C 8E220008 */ lw $v0, 8($s1) -/* DC150 80145A50 54430044 */ bnel $v0, $v1, .L80145B64 -/* DC154 80145A54 26730001 */ addiu $s3, $s3, 1 -/* DC158 80145A58 30824000 */ andi $v0, $a0, 0x4000 -.L80145A5C: -/* DC15C 80145A5C 10400006 */ beqz $v0, .L80145A78 -/* DC160 80145A60 30828000 */ andi $v0, $a0, 0x8000 -/* DC164 80145A64 8643000E */ lh $v1, 0xe($s2) -/* DC168 80145A68 8E220008 */ lw $v0, 8($s1) -/* DC16C 80145A6C 5443003D */ bnel $v0, $v1, .L80145B64 -/* DC170 80145A70 26730001 */ addiu $s3, $s3, 1 -/* DC174 80145A74 30828000 */ andi $v0, $a0, 0x8000 -.L80145A78: -/* DC178 80145A78 10400006 */ beqz $v0, .L80145A94 -/* DC17C 80145A7C 3C020010 */ lui $v0, 0x10 -/* DC180 80145A80 86430010 */ lh $v1, 0x10($s2) -/* DC184 80145A84 8E220008 */ lw $v0, 8($s1) -/* DC188 80145A88 54430036 */ bnel $v0, $v1, .L80145B64 -/* DC18C 80145A8C 26730001 */ addiu $s3, $s3, 1 -/* DC190 80145A90 3C020010 */ lui $v0, 0x10 -.L80145A94: -/* DC194 80145A94 00821024 */ and $v0, $a0, $v0 -/* DC198 80145A98 1040001C */ beqz $v0, .L80145B0C -/* DC19C 80145A9C 00000000 */ nop -/* DC1A0 80145AA0 86420018 */ lh $v0, 0x18($s2) -/* DC1A4 80145AA4 0442002F */ bltzl $v0, .L80145B64 -/* DC1A8 80145AA8 26730001 */ addiu $s3, $s3, 1 -/* DC1AC 80145AAC C6420020 */ lwc1 $f2, 0x20($s2) -/* DC1B0 80145AB0 8E300008 */ lw $s0, 8($s1) -/* DC1B4 80145AB4 C6400024 */ lwc1 $f0, 0x24($s2) -/* DC1B8 80145AB8 E7A20010 */ swc1 $f2, 0x10($sp) -/* DC1BC 80145ABC E7A00014 */ swc1 $f0, 0x14($sp) -/* DC1C0 80145AC0 C60C0000 */ lwc1 $f12, ($s0) -/* DC1C4 80145AC4 C60E0004 */ lwc1 $f14, 4($s0) -/* DC1C8 80145AC8 8E060008 */ lw $a2, 8($s0) -/* DC1CC 80145ACC 0C00A7CB */ jal dist3D -/* DC1D0 80145AD0 8E47001C */ lw $a3, 0x1c($s2) -/* DC1D4 80145AD4 C604000C */ lwc1 $f4, 0xc($s0) -/* DC1D8 80145AD8 3C013F00 */ lui $at, 0x3f00 -/* DC1DC 80145ADC 44811000 */ mtc1 $at, $f2 -/* DC1E0 80145AE0 00000000 */ nop -/* DC1E4 80145AE4 46022102 */ mul.s $f4, $f4, $f2 -/* DC1E8 80145AE8 00000000 */ nop -/* DC1EC 80145AEC 3C014248 */ lui $at, 0x4248 -/* DC1F0 80145AF0 44811000 */ mtc1 $at, $f2 -/* DC1F4 80145AF4 00000000 */ nop -/* DC1F8 80145AF8 46022100 */ add.s $f4, $f4, $f2 -/* DC1FC 80145AFC 4600203C */ c.lt.s $f4, $f0 -/* DC200 80145B00 00000000 */ nop -/* DC204 80145B04 45030017 */ bc1tl .L80145B64 -/* DC208 80145B08 26730001 */ addiu $s3, $s3, 1 -.L80145B0C: -/* DC20C 80145B0C 8E220000 */ lw $v0, ($s1) -/* DC210 80145B10 3C030001 */ lui $v1, 1 -/* DC214 80145B14 00431024 */ and $v0, $v0, $v1 -/* DC218 80145B18 10400005 */ beqz $v0, .L80145B30 -/* DC21C 80145B1C 00000000 */ nop -/* DC220 80145B20 0C05152F */ jal get_global_flag -/* DC224 80145B24 8E240004 */ lw $a0, 4($s1) -/* DC228 80145B28 5040000E */ beql $v0, $zero, .L80145B64 -/* DC22C 80145B2C 26730001 */ addiu $s3, $s3, 1 -.L80145B30: -/* DC230 80145B30 8E220000 */ lw $v0, ($s1) -/* DC234 80145B34 3C030002 */ lui $v1, 2 -/* DC238 80145B38 00431024 */ and $v0, $v0, $v1 -/* DC23C 80145B3C 10400005 */ beqz $v0, .L80145B54 -/* DC240 80145B40 00000000 */ nop -/* DC244 80145B44 0C05157C */ jal get_area_flag -/* DC248 80145B48 8E240004 */ lw $a0, 4($s1) -/* DC24C 80145B4C 50400005 */ beql $v0, $zero, .L80145B64 -/* DC250 80145B50 26730001 */ addiu $s3, $s3, 1 -.L80145B54: -/* DC254 80145B54 8E220000 */ lw $v0, ($s1) -/* DC258 80145B58 34420002 */ ori $v0, $v0, 2 -.L80145B5C: -/* DC25C 80145B5C AE220000 */ sw $v0, ($s1) -/* DC260 80145B60 26730001 */ addiu $s3, $s3, 1 -.L80145B64: -/* DC264 80145B64 2A620040 */ slti $v0, $s3, 0x40 -/* DC268 80145B68 1440FF47 */ bnez $v0, .L80145888 -/* DC26C 80145B6C 2410FFFD */ addiu $s0, $zero, -3 -/* DC270 80145B70 0000982D */ daddu $s3, $zero, $zero -.L80145B74: -/* DC274 80145B74 3C038016 */ lui $v1, %hi(gCurrentTriggerListPtr) -/* DC278 80145B78 8C639390 */ lw $v1, %lo(gCurrentTriggerListPtr)($v1) -/* DC27C 80145B7C 00131080 */ sll $v0, $s3, 2 -/* DC280 80145B80 00431021 */ addu $v0, $v0, $v1 -/* DC284 80145B84 8C510000 */ lw $s1, ($v0) -/* DC288 80145B88 52200010 */ beql $s1, $zero, .L80145BCC -/* DC28C 80145B8C 26730001 */ addiu $s3, $s3, 1 -/* DC290 80145B90 8E230000 */ lw $v1, ($s1) -/* DC294 80145B94 30620001 */ andi $v0, $v1, 1 -/* DC298 80145B98 5040000C */ beql $v0, $zero, .L80145BCC -/* DC29C 80145B9C 26730001 */ addiu $s3, $s3, 1 -/* DC2A0 80145BA0 30620002 */ andi $v0, $v1, 2 -/* DC2A4 80145BA4 50400009 */ beql $v0, $zero, .L80145BCC -/* DC2A8 80145BA8 26730001 */ addiu $s3, $s3, 1 -/* DC2AC 80145BAC 8E22000C */ lw $v0, 0xc($s1) -/* DC2B0 80145BB0 0040F809 */ jalr $v0 -/* DC2B4 80145BB4 0220202D */ daddu $a0, $s1, $zero -/* DC2B8 80145BB8 14400004 */ bnez $v0, .L80145BCC -/* DC2BC 80145BBC 26730001 */ addiu $s3, $s3, 1 -/* DC2C0 80145BC0 8E220000 */ lw $v0, ($s1) -/* DC2C4 80145BC4 00501024 */ and $v0, $v0, $s0 -/* DC2C8 80145BC8 AE220000 */ sw $v0, ($s1) -.L80145BCC: -/* DC2CC 80145BCC 2A620040 */ slti $v0, $s3, 0x40 -/* DC2D0 80145BD0 1440FFE8 */ bnez $v0, .L80145B74 -/* DC2D4 80145BD4 00000000 */ nop -/* DC2D8 80145BD8 8FBF0028 */ lw $ra, 0x28($sp) -/* DC2DC 80145BDC 8FB30024 */ lw $s3, 0x24($sp) -/* DC2E0 80145BE0 8FB20020 */ lw $s2, 0x20($sp) -/* DC2E4 80145BE4 8FB1001C */ lw $s1, 0x1c($sp) -/* DC2E8 80145BE8 8FB00018 */ lw $s0, 0x18($sp) -/* DC2EC 80145BEC 03E00008 */ jr $ra -/* DC2F0 80145BF0 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/evt/si/si_goto_end_loop.s b/ver/us/asm/nonmatchings/evt/si/si_goto_end_loop.s deleted file mode 100644 index 699252e99f..0000000000 --- a/ver/us/asm/nonmatchings/evt/si/si_goto_end_loop.s +++ /dev/null @@ -1,40 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel si_goto_end_loop -/* ED494 802C8AE4 0000282D */ daddu $a1, $zero, $zero -/* ED498 802C8AE8 8C830008 */ lw $v1, 8($a0) -/* ED49C 802C8AEC 24080005 */ addiu $t0, $zero, 5 -/* ED4A0 802C8AF0 24070001 */ addiu $a3, $zero, 1 -/* ED4A4 802C8AF4 24060006 */ addiu $a2, $zero, 6 -.L802C8AF8: -/* ED4A8 802C8AF8 8C640000 */ lw $a0, ($v1) -/* ED4AC 802C8AFC 24630004 */ addiu $v1, $v1, 4 -/* ED4B0 802C8B00 8C620000 */ lw $v0, ($v1) -/* ED4B4 802C8B04 24630004 */ addiu $v1, $v1, 4 -/* ED4B8 802C8B08 00021080 */ sll $v0, $v0, 2 -/* ED4BC 802C8B0C 10880012 */ beq $a0, $t0, .L802C8B58 -/* ED4C0 802C8B10 00621821 */ addu $v1, $v1, $v0 -/* ED4C4 802C8B14 28820006 */ slti $v0, $a0, 6 -/* ED4C8 802C8B18 10400005 */ beqz $v0, .L802C8B30 -/* ED4CC 802C8B1C 00000000 */ nop -/* ED4D0 802C8B20 10870007 */ beq $a0, $a3, .L802C8B40 -/* ED4D4 802C8B24 00000000 */ nop -/* ED4D8 802C8B28 080B22BE */ j .L802C8AF8 -/* ED4DC 802C8B2C 00000000 */ nop -.L802C8B30: -/* ED4E0 802C8B30 50860005 */ beql $a0, $a2, .L802C8B48 -/* ED4E4 802C8B34 24A5FFFF */ addiu $a1, $a1, -1 -/* ED4E8 802C8B38 080B22BE */ j .L802C8AF8 -/* ED4EC 802C8B3C 00000000 */ nop -.L802C8B40: -/* ED4F0 802C8B40 080B22D0 */ j .L802C8B40 -/* ED4F4 802C8B44 00000000 */ nop -.L802C8B48: -/* ED4F8 802C8B48 04A1FFEB */ bgez $a1, .L802C8AF8 -/* ED4FC 802C8B4C 0060102D */ daddu $v0, $v1, $zero -/* ED500 802C8B50 03E00008 */ jr $ra -/* ED504 802C8B54 00000000 */ nop -.L802C8B58: -/* ED508 802C8B58 080B22BE */ j .L802C8AF8 -/* ED50C 802C8B5C 24A50001 */ addiu $a1, $a1, 1 diff --git a/ver/us/asm/nonmatchings/evt/si/si_handle_print_debug_var.s b/ver/us/asm/nonmatchings/evt/si/si_handle_print_debug_var.s index 66d4dd2be5..96ba58125c 100644 --- a/ver/us/asm/nonmatchings/evt/si/si_handle_print_debug_var.s +++ b/ver/us/asm/nonmatchings/evt/si/si_handle_print_debug_var.s @@ -88,8 +88,8 @@ glabel si_handle_print_debug_var /* EB7F4 802C6E44 0230102A */ slt $v0, $s1, $s0 /* EB7F8 802C6E48 14400007 */ bnez $v0, .L802C6E68 /* EB7FC 802C6E4C 3C12F2E3 */ lui $s2, 0xf2e3 -/* EB800 802C6E50 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB804 802C6E54 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB800 802C6E50 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB804 802C6E54 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB808 802C6E58 3C05802E */ lui $a1, %hi(D_802D9D98) /* EB80C 802C6E5C 24A59D98 */ addiu $a1, $a1, %lo(D_802D9D98) /* EB810 802C6E60 080B1CDE */ j .L802C7378 @@ -101,8 +101,8 @@ glabel si_handle_print_debug_var /* EB824 802C6E74 3C02F414 */ lui $v0, 0xf414 /* EB828 802C6E78 0C0B1248 */ jal fixed_var_to_float /* EB82C 802C6E7C 0200202D */ daddu $a0, $s0, $zero -/* EB830 802C6E80 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB834 802C6E84 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB830 802C6E80 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB834 802C6E84 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB838 802C6E88 460000A1 */ cvt.d.s $f2, $f0 /* EB83C 802C6E8C 44071000 */ mfc1 $a3, $f2 /* EB840 802C6E90 44061800 */ mfc1 $a2, $f3 @@ -127,8 +127,8 @@ glabel si_handle_print_debug_var /* EB884 802C6ED4 0100182D */ daddu $v1, $t0, $zero /* EB888 802C6ED8 00031140 */ sll $v0, $v1, 5 /* EB88C 802C6EDC 02024023 */ subu $t0, $s0, $v0 -/* EB890 802C6EE0 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB894 802C6EE4 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB890 802C6EE0 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB894 802C6EE4 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB898 802C6EE8 3C05802E */ lui $a1, %hi(D_802D9DBC) /* EB89C 802C6EEC 24A59DBC */ addiu $a1, $a1, %lo(D_802D9DBC) /* EB8A0 802C6EF0 0200302D */ daddu $a2, $s0, $zero @@ -153,8 +153,8 @@ glabel si_handle_print_debug_var /* EB8E8 802C6F38 0227102A */ slt $v0, $s1, $a3 /* EB8EC 802C6F3C 14400007 */ bnez $v0, .L802C6F5C /* EB8F0 802C6F40 0247102A */ slt $v0, $s2, $a3 -/* EB8F4 802C6F44 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB8F8 802C6F48 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB8F4 802C6F44 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB8F8 802C6F48 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB8FC 802C6F4C 3C05802E */ lui $a1, %hi(D_802D9DCC) /* EB900 802C6F50 24A59DCC */ addiu $a1, $a1, %lo(D_802D9DCC) /* EB904 802C6F54 080B1CDE */ j .L802C7378 @@ -166,14 +166,14 @@ glabel si_handle_print_debug_var /* EB918 802C6F68 00E0202D */ daddu $a0, $a3, $zero /* EB91C 802C6F6C 46000021 */ cvt.d.s $f0, $f0 /* EB920 802C6F70 F7A00010 */ sdc1 $f0, 0x10($sp) -/* EB924 802C6F74 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB928 802C6F78 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB924 802C6F74 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB928 802C6F78 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB92C 802C6F7C 3C05802E */ lui $a1, %hi(D_802D9DDC) /* EB930 802C6F80 080B1CCE */ j .L802C7338 /* EB934 802C6F84 24A59DDC */ addiu $a1, $a1, %lo(D_802D9DDC) .L802C6F88: -/* EB938 802C6F88 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB93C 802C6F8C 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB938 802C6F88 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB93C 802C6F8C 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB940 802C6F90 3C05802E */ lui $a1, %hi(D_802D9DF0) /* EB944 802C6F94 080B1CD6 */ j .L802C7358 /* EB948 802C6F98 24A59DF0 */ addiu $a1, $a1, %lo(D_802D9DF0) @@ -191,8 +191,8 @@ glabel si_handle_print_debug_var /* EB974 802C6FC4 0227102A */ slt $v0, $s1, $a3 /* EB978 802C6FC8 14400007 */ bnez $v0, .L802C6FE8 /* EB97C 802C6FCC 0247102A */ slt $v0, $s2, $a3 -/* EB980 802C6FD0 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB984 802C6FD4 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB980 802C6FD0 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB984 802C6FD4 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB988 802C6FD8 3C05802E */ lui $a1, %hi(D_802D9E00) /* EB98C 802C6FDC 24A59E00 */ addiu $a1, $a1, %lo(D_802D9E00) /* EB990 802C6FE0 080B1CDE */ j .L802C7378 @@ -204,14 +204,14 @@ glabel si_handle_print_debug_var /* EB9A4 802C6FF4 00E0202D */ daddu $a0, $a3, $zero /* EB9A8 802C6FF8 46000021 */ cvt.d.s $f0, $f0 /* EB9AC 802C6FFC F7A00010 */ sdc1 $f0, 0x10($sp) -/* EB9B0 802C7000 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB9B4 802C7004 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB9B0 802C7000 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB9B4 802C7004 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB9B8 802C7008 3C05802E */ lui $a1, %hi(D_802D9E10) /* EB9BC 802C700C 080B1CCE */ j .L802C7338 /* EB9C0 802C7010 24A59E10 */ addiu $a1, $a1, %lo(D_802D9E10) .L802C7014: -/* EB9C4 802C7014 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EB9C8 802C7018 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EB9C4 802C7014 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EB9C8 802C7018 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EB9CC 802C701C 3C05802E */ lui $a1, %hi(D_802D9E24) /* EB9D0 802C7020 080B1CD6 */ j .L802C7358 /* EB9D4 802C7024 24A59E24 */ addiu $a1, $a1, %lo(D_802D9E24) @@ -229,8 +229,8 @@ glabel si_handle_print_debug_var /* EBA00 802C7050 0227102A */ slt $v0, $s1, $a3 /* EBA04 802C7054 14400007 */ bnez $v0, .L802C7074 /* EBA08 802C7058 0247102A */ slt $v0, $s2, $a3 -/* EBA0C 802C705C 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBA10 802C7060 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBA0C 802C705C 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBA10 802C7060 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBA14 802C7064 3C05802E */ lui $a1, %hi(D_802D9E34) /* EBA18 802C7068 24A59E34 */ addiu $a1, $a1, %lo(D_802D9E34) /* EBA1C 802C706C 080B1CDE */ j .L802C7378 @@ -242,14 +242,14 @@ glabel si_handle_print_debug_var /* EBA30 802C7080 00E0202D */ daddu $a0, $a3, $zero /* EBA34 802C7084 46000021 */ cvt.d.s $f0, $f0 /* EBA38 802C7088 F7A00010 */ sdc1 $f0, 0x10($sp) -/* EBA3C 802C708C 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBA40 802C7090 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBA3C 802C708C 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBA40 802C7090 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBA44 802C7094 3C05802E */ lui $a1, %hi(D_802D9E44) /* EBA48 802C7098 080B1CCE */ j .L802C7338 /* EBA4C 802C709C 24A59E44 */ addiu $a1, $a1, %lo(D_802D9E44) .L802C70A0: -/* EBA50 802C70A0 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBA54 802C70A4 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBA50 802C70A0 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBA54 802C70A4 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBA58 802C70A8 3C05802E */ lui $a1, %hi(D_802D9E58) /* EBA5C 802C70AC 080B1CD6 */ j .L802C7358 /* EBA60 802C70B0 24A59E58 */ addiu $a1, $a1, %lo(D_802D9E58) @@ -263,8 +263,8 @@ glabel si_handle_print_debug_var /* EBA7C 802C70CC 02028021 */ addu $s0, $s0, $v0 /* EBA80 802C70D0 0C05152F */ jal get_global_flag /* EBA84 802C70D4 0200202D */ daddu $a0, $s0, $zero -/* EBA88 802C70D8 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBA8C 802C70DC 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBA88 802C70D8 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBA8C 802C70DC 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBA90 802C70E0 3C05802E */ lui $a1, %hi(D_802D9E68) /* EBA94 802C70E4 24A59E68 */ addiu $a1, $a1, %lo(D_802D9E68) /* EBA98 802C70E8 080B1C4A */ j .L802C7128 @@ -279,8 +279,8 @@ glabel si_handle_print_debug_var /* EBAB8 802C7108 02028021 */ addu $s0, $s0, $v0 /* EBABC 802C710C 0C05157C */ jal get_area_flag /* EBAC0 802C7110 0200202D */ daddu $a0, $s0, $zero -/* EBAC4 802C7114 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBAC8 802C7118 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBAC4 802C7114 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBAC8 802C7118 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBACC 802C711C 3C05802E */ lui $a1, %hi(D_802D9E78) /* EBAD0 802C7120 24A59E78 */ addiu $a1, $a1, %lo(D_802D9E78) /* EBAD4 802C7124 0200302D */ daddu $a2, $s0, $zero @@ -305,8 +305,8 @@ glabel si_handle_print_debug_var /* EBB14 802C7164 0100182D */ daddu $v1, $t0, $zero /* EBB18 802C7168 00031140 */ sll $v0, $v1, 5 /* EBB1C 802C716C 02024023 */ subu $t0, $s0, $v0 -/* EBB20 802C7170 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBB24 802C7174 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBB20 802C7170 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBB24 802C7174 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBB28 802C7178 3C05802E */ lui $a1, %hi(D_802D9E88) /* EBB2C 802C717C 24A59E88 */ addiu $a1, $a1, %lo(D_802D9E88) /* EBB30 802C7180 0200302D */ daddu $a2, $s0, $zero @@ -333,8 +333,8 @@ glabel si_handle_print_debug_var /* EBB7C 802C71CC 0100182D */ daddu $v1, $t0, $zero /* EBB80 802C71D0 00031140 */ sll $v0, $v1, 5 /* EBB84 802C71D4 02024023 */ subu $t0, $s0, $v0 -/* EBB88 802C71D8 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBB8C 802C71DC 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBB88 802C71D8 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBB8C 802C71DC 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBB90 802C71E0 3C05802E */ lui $a1, %hi(D_802D9E98) /* EBB94 802C71E4 24A59E98 */ addiu $a1, $a1, %lo(D_802D9E98) /* EBB98 802C71E8 0200302D */ daddu $a2, $s0, $zero @@ -366,8 +366,8 @@ glabel si_handle_print_debug_var /* EBBF8 802C7248 0087202A */ slt $a0, $a0, $a3 /* EBBFC 802C724C 14800007 */ bnez $a0, .L802C726C /* EBC00 802C7250 3C02F2E3 */ lui $v0, 0xf2e3 -/* EBC04 802C7254 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBC08 802C7258 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBC04 802C7254 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBC08 802C7258 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBC0C 802C725C 3C05802E */ lui $a1, %hi(D_802D9EA8) /* EBC10 802C7260 24A59EA8 */ addiu $a1, $a1, %lo(D_802D9EA8) /* EBC14 802C7264 080B1CDE */ j .L802C7378 @@ -381,14 +381,14 @@ glabel si_handle_print_debug_var /* EBC30 802C7280 00E0202D */ daddu $a0, $a3, $zero /* EBC34 802C7284 46000021 */ cvt.d.s $f0, $f0 /* EBC38 802C7288 F7A00010 */ sdc1 $f0, 0x10($sp) -/* EBC3C 802C728C 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBC40 802C7290 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBC3C 802C728C 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBC40 802C7290 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBC44 802C7294 3C05802E */ lui $a1, %hi(D_802D9EB8) /* EBC48 802C7298 080B1CCE */ j .L802C7338 /* EBC4C 802C729C 24A59EB8 */ addiu $a1, $a1, %lo(D_802D9EB8) .L802C72A0: -/* EBC50 802C72A0 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBC54 802C72A4 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBC50 802C72A0 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBC54 802C72A4 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBC58 802C72A8 3C05802E */ lui $a1, %hi(D_802D9ECC) /* EBC5C 802C72AC 080B1CD6 */ j .L802C7358 /* EBC60 802C72B0 24A59ECC */ addiu $a1, $a1, %lo(D_802D9ECC) @@ -408,8 +408,8 @@ glabel si_handle_print_debug_var /* EBC94 802C72E4 0047102A */ slt $v0, $v0, $a3 /* EBC98 802C72E8 14400007 */ bnez $v0, .L802C7308 /* EBC9C 802C72EC 3C02F2E3 */ lui $v0, 0xf2e3 -/* EBCA0 802C72F0 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBCA4 802C72F4 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBCA0 802C72F0 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBCA4 802C72F4 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBCA8 802C72F8 3C05802E */ lui $a1, %hi(D_802D9EDC) /* EBCAC 802C72FC 24A59EDC */ addiu $a1, $a1, %lo(D_802D9EDC) /* EBCB0 802C7300 080B1CDE */ j .L802C7378 @@ -423,8 +423,8 @@ glabel si_handle_print_debug_var /* EBCCC 802C731C 00E0202D */ daddu $a0, $a3, $zero /* EBCD0 802C7320 46000021 */ cvt.d.s $f0, $f0 /* EBCD4 802C7324 F7A00010 */ sdc1 $f0, 0x10($sp) -/* EBCD8 802C7328 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBCDC 802C732C 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBCD8 802C7328 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBCDC 802C732C 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBCE0 802C7330 3C05802E */ lui $a1, %hi(D_802D9EEC) /* EBCE4 802C7334 24A59EEC */ addiu $a1, $a1, %lo(D_802D9EEC) .L802C7338: @@ -433,8 +433,8 @@ glabel si_handle_print_debug_var /* EBCF0 802C7340 080B1CE0 */ j .L802C7380 /* EBCF4 802C7344 00000000 */ nop .L802C7348: -/* EBCF8 802C7348 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBCFC 802C734C 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBCF8 802C7348 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBCFC 802C734C 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBD00 802C7350 3C05802E */ lui $a1, %hi(D_802D9F00) /* EBD04 802C7354 24A59F00 */ addiu $a1, $a1, %lo(D_802D9F00) .L802C7358: @@ -443,8 +443,8 @@ glabel si_handle_print_debug_var /* EBD10 802C7360 080B1CE0 */ j .L802C7380 /* EBD14 802C7364 00000000 */ nop .L802C7368: -/* EBD18 802C7368 3C04802E */ lui $a0, %hi(D_802DACA0) -/* EBD1C 802C736C 2484ACA0 */ addiu $a0, $a0, %lo(D_802DACA0) +/* EBD18 802C7368 3C04802E */ lui $a0, %hi(evtDebugPrintBuffer) +/* EBD1C 802C736C 2484ACA0 */ addiu $a0, $a0, %lo(evtDebugPrintBuffer) /* EBD20 802C7370 3C05802E */ lui $a1, %hi(D_802D9F10) /* EBD24 802C7374 24A59F10 */ addiu $a1, $a1, %lo(D_802D9F10) .L802C7378: diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index caffc2f6df..9fb15c73c5 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -702,7 +702,7 @@ segments: - [0xd0a70, c, d0a70_len_4fe0] - [0xd5a50, c, hud_element] - [0xdba20, c, dba20_len_350] - - [0xdbd70, c, dbd70_len_700] + - [0xdbd70, c, trigger] - [0xdc470, c, dc470_len_14c0] - [0xdd930, c, dd930_len_1c0] - [0xddaf0, c, ddaf0_len_c50] diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 71b494d862..ea93420ab2 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -19037,8 +19037,8 @@ D_80158574 = 0x80158574; // type:data D_80158580 = 0x80158580; // type:data D_80158B80 = 0x80158B80; // type:data D_80159180 = 0x80159180; // type:data -gTriggerList1 = 0x80159190; // -gTriggerList2 = 0x80159290; // +wTriggerList = 0x80159190; // +bTriggerList = 0x80159290; // gCurrentTriggerListPtr = 0x80159390; // D_801593A0 = 0x801593A0; // type:data D_8015959E = 0x8015959E; // type:data @@ -20450,7 +20450,7 @@ gCurrentScriptListPtr = 0x802DA890; // gScriptIndexList = 0x802DA898; // gScriptIdList = 0x802DAA98; // gScriptListCount = 0x802DAC98; // -D_802DACA0 = 0x802DACA0; // type:data +evtDebugPrintBuffer = 0x802DACA0; // type:data gLavaResetList = 0x802DADA0; // type:data D_802DADA4 = 0x802DADA4; // type:data gBattleMeshAnimationList = 0x802DADB0; // size:0x40 diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index 4c57c85336..c8429763bb 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -260,8 +260,8 @@ D_80158574 = 0x80158574; D_80158580 = 0x80158580; D_80158B80 = 0x80158B80; D_80159180 = 0x80159180; -gTriggerList1 = 0x80159190; -gTriggerList2 = 0x80159290; +wTriggerList = 0x80159190; +bTriggerList = 0x80159290; gCurrentTriggerListPtr = 0x80159390; D_801593A0 = 0x801593A0; D_8015959E = 0x8015959E; @@ -1185,7 +1185,7 @@ gCurrentScriptListPtr = 0x802DA890; gScriptIndexList = 0x802DA898; gScriptIdList = 0x802DAA98; gScriptListCount = 0x802DAC98; -D_802DACA0 = 0x802DACA0; +evtDebugPrintBuffer = 0x802DACA0; gLavaResetList = 0x802DADA0; D_802DADA4 = 0x802DADA4; gBattleMeshAnimationList = 0x802DADB0;