diff --git a/include/effects_internal.h b/include/effects_internal.h index 50f5a1f64c..6ba30b80bb 100644 --- a/include/effects_internal.h +++ b/include/effects_internal.h @@ -46,7 +46,7 @@ void snowflake_main(f32, f32, f32, s32, s32); EffectInstance* star_main(s32, f32, f32, f32, f32, f32, f32, f32); void emote_main(s32, s32, f32, f32, f32, f32, f32, s32, EffectInstance**); FX_MAIN(sparkles_main); -FX_MAIN(shape_spell_main); +EffectInstance* shape_spell_main(s32, f32, f32, f32, f32, f32, f32, s32); FX_MAIN(gather_energy_pink_main); FX_MAIN(drop_leaves_main); FX_MAIN(dust_main); @@ -66,7 +66,7 @@ FX_MAIN(stars_shimmer_main); FX_MAIN(rising_bubble_main); FX_MAIN(ring_blast_main); FX_MAIN(shockwave_main); -FX_MAIN(music_note_main); +void music_note_main(s32, f32, f32, f32); FX_MAIN(smoke_burst_main); FX_MAIN(sweat_main); FX_MAIN(sleep_bubble_main); @@ -113,7 +113,7 @@ FX_MAIN(energy_orb_wave_main); FX_MAIN(merlin_house_stars_main); FX_MAIN(quizmo_audience_main); FX_MAIN(butterflies_main); -FX_MAIN(stat_change_main); +EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32); FX_MAIN(snaking_static_main); FX_MAIN(thunderbolt_ring_main); FX_MAIN(squirt_main); @@ -134,7 +134,7 @@ FX_MAIN(whirlwind_main); FX_MAIN(red_impact_main); FX_MAIN(floating_cloud_puff_main); FX_MAIN(energy_in_out_main); -FX_MAIN(tattle_window_main); +EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32); FX_MAIN(shiny_flare_main); FX_MAIN(huff_puff_breath_main); FX_MAIN(cold_breath_main); diff --git a/src/effects/music_note.c b/src/effects/music_note.c index efb5f52c49..8037d7cb80 100644 --- a/src/effects/music_note.c +++ b/src/effects/music_note.c @@ -2,13 +2,117 @@ #include "effects_internal.h" void music_note_appendGfx(void* effect); +void music_note_init(EffectInstance* effect); +void music_note_update(EffectInstance* effect); +void music_note_render(EffectInstance* effect); -INCLUDE_ASM(s32, "effects/music_note", music_note_main); +extern Gfx D_09001038[]; +extern Gfx D_090010C0[]; +extern Gfx D_09001148[]; +extern Gfx D_090011D0[]; +extern Gfx D_09001258[]; +extern Gfx D_090012E0[]; +extern Gfx D_09001368[]; -void music_note_init(void) { +Gfx* D_E004C660[] = { D_09001038, D_090010C0, D_09001148, D_090011D0, D_09001258, D_090012E0, D_09001368 }; + +s8 D_E004C67C[] = { 0xFE, 0xAC, 0xAC, 0xFE, 0xAC, 0xD5, 0xFE, 0xB4, 0x9A, 0xD5, 0xB4, 0xFE, 0xB4, 0xB4, 0xFE, 0xB4, 0xDD, 0xFE, 0xB4, 0xFE, 0xFE, 0xB4, 0xFE, 0xD5, 0xB4, 0xFE, 0xB4, 0xD5, 0xFE, 0xB4, 0xFE, 0xFE, 0xB4, 0xFE, 0xD5, 0xAC, }; + +typedef struct MusicNoteFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 timeLeft; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; + /* 0x30 */ f32 unk_30; +} MusicNoteFXData; // size = 0x34 + +void music_note_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { + EffectBlueprint bp; + EffectBlueprint* bpPtr = &bp; + EffectInstance* effect; + MusicNoteFXData* part; + s32 numParts = 1; + s32 randInt; + + bp.unk_00 = 0; + bp.init = music_note_init; + bp.update = music_note_update; + bp.renderWorld = music_note_render; + bp.unk_14 = 0; + bp.effectID = EFFECT_MUSIC_NOTE; + + effect = shim_create_effect_instance(bpPtr); + effect->numParts = numParts; + + part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + + ASSERT(effect->data != NULL); + + part->unk_00 = arg0; + part->pos.x = arg1; + part->pos.y = arg2; + part->pos.z = arg3; + part->unk_10 = 0; + part->timeLeft = 0x40; + part->unk_14 = 0; + part->unk_1C = 0; + part->unk_20 = shim_rand_int(6); + switch (arg0) { + case 0: + part->unk_24 = 0.0f; + part->unk_28 = 1.0f; + part->unk_2C = 0; + part->unk_30 = 1.0f; + break; + case 1: + randInt = shim_rand_int(10); + part->unk_24 = (randInt * 0.1) + -5.0; + part->unk_28 = (shim_rand_int(10) * 0.1) + 0.5; + part->unk_2C = 0; + part->unk_30 = 0.0f; + break; + default: + randInt = shim_rand_int(10); + part->unk_24 = 5.0 - (randInt * 0.1); + part->unk_28 = (shim_rand_int(10) * 0.1) + 1.0; + part->unk_2C = 0; + part->unk_30 = 0.0f; + break; + } } -INCLUDE_ASM(s32, "effects/music_note", music_note_update); +void music_note_init(EffectInstance* effect) { +} + +void music_note_update(EffectInstance* effect) { + MusicNoteFXData* part = effect->data; + s32 timeLeft; + + part->timeLeft--; + part->unk_1C++; + timeLeft = part->timeLeft; + if (timeLeft < 0) { + shim_remove_effect(effect); + return; + } + if (timeLeft >= 6) { + part->unk_14 += (255 - part->unk_14) * 0.3; + part->unk_10 += (1.0f - part->unk_10) * 0.3; + } + if (timeLeft < 10) { + part->unk_14 = timeLeft * 25; + } + part->pos.x += part->unk_24; + part->pos.y += part->unk_28; + part->unk_24 += (part->unk_2C - part->unk_24) * 0.04; + part->unk_28 += (part->unk_30 - part->unk_28) * 0.04; +} void music_note_render(EffectInstance* effect) { RenderTask renderTask; diff --git a/src/effects/recover.c b/src/effects/recover.c index dd5012954c..7c9d70644a 100644 --- a/src/effects/recover.c +++ b/src/effects/recover.c @@ -1,6 +1,27 @@ #include "common.h" #include "effects_internal.h" +void func_E0080448(EffectInstance* effect); + +extern Gfx D_09003540[]; +extern Gfx D_09003580[]; +extern Gfx D_090035C0[]; +extern Gfx D_09003600[]; +extern Gfx D_09003640[]; +extern Gfx D_09003680[]; +extern Gfx D_090036C0[]; +extern Gfx D_09003700[]; +extern Gfx D_09003740[]; +extern Gfx D_09003780[]; +extern Gfx D_090037C0[]; +extern Gfx D_09003800[]; + +Gfx* D_E0080AC0[] = { D_09003540, D_09003580, D_090035C0, D_09003600, D_09003640, D_09003680, D_090036C0, D_09003700, D_09003740, D_09003780, D_090037C0, D_09003800, }; + +f32 D_E0080AF0[] = { 0.25f, 0.5f, 0.75f, 1.0f, 0.9f, 1.1f, 1.0f }; + +f32 D_E0080B0C[] = { 0.25f, 0.5f, 0.75f, 1.0f, 1.2f, 0.9f, 1.0f }; + INCLUDE_ASM(s32, "effects/recover", recover_main); void recover_init(void) { @@ -11,6 +32,8 @@ INCLUDE_ASM(s32, "effects/recover", recover_update); void recover_render(void) { } -INCLUDE_ASM(s32, "effects/recover", func_E008042C); +void func_E008042C(EffectInstance* effect) { + func_E0080448(effect); +} INCLUDE_ASM(s32, "effects/recover", func_E0080448); diff --git a/src/effects/shape_spell.c b/src/effects/shape_spell.c index b21de6b0d7..417cc8b6d8 100644 --- a/src/effects/shape_spell.c +++ b/src/effects/shape_spell.c @@ -1,14 +1,118 @@ #include "common.h" #include "effects_internal.h" +typedef struct ShapeSpellFXData { + /* 0x00 */ s32 isChild; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 timeLeft; + /* 0x34 */ s32 unk_34; +} ShapeSpellFXData; // size = 0x38 + +s32 D_E0024CC0[] = { 0x00FFD01A, 0x09001128, 0x090011A0, 0x784DD0FE, 0x09001150, 0x090011C8, 0xF0FE4C6E, 0x09001178, 0x090011F0, 0x00000000, 0x00000000, 0x00000000 }; + void shape_spell_appendGfx(void* effect); +void shape_spell_init(EffectInstance* effect); +void shape_spell_update(EffectInstance* effect); +void shape_spell_render(EffectInstance* effect); -INCLUDE_ASM(s32, "effects/shape_spell", shape_spell_main); +EffectInstance* shape_spell_main(s32 isChild, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, f32 arg6, s32 arg7) { + EffectBlueprint bp; + EffectBlueprint* bpPtr = &bp; + EffectInstance* effect; + ShapeSpellFXData* part; + s32 numParts = 1; -void shape_spell_init(void) { + bp.init = shape_spell_init; + bp.update = shape_spell_update; + bp.renderWorld = shape_spell_render; + bp.unk_00 = 0; + bp.unk_14 = 0; + bp.effectID = EFFECT_SHAPE_SPELL; + + effect = shim_create_effect_instance(bpPtr); + effect->numParts = numParts; + part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + + ASSERT(effect->data != NULL); + + part->unk_2C = 0; + part->isChild = isChild; + part->unk_34 = 255; + part->pos.x = x; + part->pos.y = y; + part->pos.z = z; + part->unk_28 = 1.0f; + if (!isChild) { + part->unk_10 = 0; + part->unk_14 = 0.0f; + part->unk_18 = 0.0f; + part->timeLeft = arg7; + part->unk_1C = (arg4 - x) * (1.0f / arg7); + part->unk_20 = (arg5 - y) * (1.0f / arg7); + part->unk_24 = (arg6 - z) * (1.0f / arg7); + } else { + part->unk_10 = 29.f; + part->unk_14 = 0.0f; + part->unk_18 = 0.0f; + part->unk_1C = 6.2f; + part->unk_20 = 0.0f; + part->unk_24 = 0.0f; + part->timeLeft = 24; + } + + return effect; } -INCLUDE_ASM(s32, "effects/shape_spell", shape_spell_update); +void shape_spell_init(EffectInstance* effect) { +} + +void shape_spell_update(EffectInstance* effect) { + s32 flags = effect->flags; + ShapeSpellFXData* part = effect->data; + s32 isChild; + + if (flags & 0x10) { + effect->flags = flags & ~0x10; + part->timeLeft = 0; + } + + part->timeLeft--; + part->unk_2C++; + + if (part->timeLeft < 0) { + shim_remove_effect(effect); + return; + } + + isChild = part->isChild; + + if (!isChild && part->timeLeft == 0) { + ShapeSpellFXData* newPart = shape_spell_main( + 1, + part->pos.x + part->unk_10, + part->pos.y + part->unk_14, + part->pos.z + part->unk_18, + 0.0f, 0.0f, 0.0f, 0x18 + )->data; + newPart->unk_28 = part->unk_28; + } + + if (isChild == TRUE) { + part->unk_34 = part->unk_34 * 0.9; + part->unk_1C = part->unk_1C * 0.83; + } + part->unk_10 += part->unk_1C; + part->unk_14 += part->unk_20; + part->unk_18 += part->unk_24; +} void shape_spell_render(EffectInstance* effect) { RenderTask renderTask; @@ -23,8 +127,18 @@ void shape_spell_render(EffectInstance* effect) { retTask->renderMode |= RENDER_MODE_2; } -INCLUDE_ASM(s32, "effects/shape_spell", func_E0024324); +s32 func_E0024324(s32 arg0, s32 arg1) { + s32 frameCounter = gGameStatusPtr->frameCounter * 32; + + return (f32)((shim_sin_deg(frameCounter + arg1) * (255 - arg0) + (255 - arg0)) * 0.5 + arg0); +} -INCLUDE_ASM(s32, "effects/shape_spell", func_E00243BC); +s32 func_E00243BC(s32 arg0, s32 arg1) { + s32 frameCounter = gGameStatusPtr->frameCounter * 32; + + arg1 += 180; + + return (f32)((shim_sin_deg(frameCounter + arg1) * -arg0 + -arg0) * 0.5 + arg0); +} INCLUDE_ASM(s32, "effects/shape_spell", shape_spell_appendGfx); diff --git a/src/effects/stat_change.c b/src/effects/stat_change.c index 1679969d3e..4376ddede3 100644 --- a/src/effects/stat_change.c +++ b/src/effects/stat_change.c @@ -1,28 +1,230 @@ #include "common.h" #include "effects_internal.h" +enum ArrowType { + ARROW_TYPE_ATK_UP = 0, + ARROW_TYPE_ATK_DOWN = 1, + ARROW_TYPE_DEF_UP = 2, +}; + +typedef struct StatChangeFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 scale; + /* 0x14 */ s32 timeLeft; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 arrowType; + /* 0x20 */ s32 arrowValue; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 scaleX; + /* 0x2C */ f32 scaleY; + /* 0x30 */ f32 unk_30; + /* 0x34 */ f32 unk_34; + /* 0x38 */ f32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; +} StatChangeFXData; + +typedef struct ExtraArrowDataEntry { + u8 unk_00; + u8 unk_01; +} ExtraArrowDataEntry; + +typedef struct ArrowDataTableEntry { + s32 type; + s32 value; +} ArrowDataTableEntry; + s32 D_E00AC7B0[] = { 0x09002700, 0x09002700, 0x09002798 }; s32 D_E00AC7BC[] = { 0x09002860, 0x09002880, 0x09002860 }; s32 D_E00AC7C8[] = { 0x09002950, 0x09002990, 0x090029D0, 0x09002A10, 0x09002A50, 0x09002A90, 0x09002AD0, 0x09002B10, 0x09002B50, 0x09002B90, 0x09002BD0, 0x09002C10 }; -s32 D_E00AC7F8[] = { 0xFF96FF82, 0xFF64FF46, 0xFF3CFF50, 0xFF6EFF73, 0xFF6BFF5C, 0xFF5AFF5E, 0xFF67FF68, 0xFF67FF64, 0xFF62FF63, 0xFF65FF64, 0xF064DC64, 0xC864B464, 0xA0648264, 0x64644664, 0x32642864, 0x1E641464, 0x0A640000 }; +ExtraArrowDataEntry D_E00AC7F8[] = { + { .unk_00 = 0xFF, .unk_01 = 0x96 }, + { .unk_00 = 0xFF, .unk_01 = 0x82 }, + { .unk_00 = 0xFF, .unk_01 = 0x64 }, + { .unk_00 = 0xFF, .unk_01 = 0x46 }, + { .unk_00 = 0xFF, .unk_01 = 0x3C }, + { .unk_00 = 0xFF, .unk_01 = 0x50 }, + { .unk_00 = 0xFF, .unk_01 = 0x6E }, + { .unk_00 = 0xFF, .unk_01 = 0x73 }, + { .unk_00 = 0xFF, .unk_01 = 0x6B }, + { .unk_00 = 0xFF, .unk_01 = 0x5C }, + { .unk_00 = 0xFF, .unk_01 = 0x5A }, + { .unk_00 = 0xFF, .unk_01 = 0x5E }, + { .unk_00 = 0xFF, .unk_01 = 0x67 }, + { .unk_00 = 0xFF, .unk_01 = 0x68 }, + { .unk_00 = 0xFF, .unk_01 = 0x67 }, + { .unk_00 = 0xFF, .unk_01 = 0x64 }, + { .unk_00 = 0xFF, .unk_01 = 0x62 }, + { .unk_00 = 0xFF, .unk_01 = 0x63 }, + { .unk_00 = 0xFF, .unk_01 = 0x65 }, + { .unk_00 = 0xFF, .unk_01 = 0x64 }, + { .unk_00 = 0xF0, .unk_01 = 0x64 }, + { .unk_00 = 0xDC, .unk_01 = 0x64 }, + { .unk_00 = 0xC8, .unk_01 = 0x64 }, + { .unk_00 = 0xB4, .unk_01 = 0x64 }, + { .unk_00 = 0xA0, .unk_01 = 0x64 }, + { .unk_00 = 0x82, .unk_01 = 0x64 }, + { .unk_00 = 0x64, .unk_01 = 0x64 }, + { .unk_00 = 0x46, .unk_01 = 0x64 }, + { .unk_00 = 0x32, .unk_01 = 0x64 }, + { .unk_00 = 0x28, .unk_01 = 0x64 }, + { .unk_00 = 0x1E, .unk_01 = 0x64 }, + { .unk_00 = 0x14, .unk_01 = 0x64 }, + { .unk_00 = 0x0A, .unk_01 = 0x64 }, +}; -s32 D_E00AC83C[] = { 0xFF96FF82, 0xFF64FF46, 0xFF3CFF50, 0xFF6EFF73, 0xFF6BFF5C, 0xFF5AFF5E, 0xFF67FF68, 0xFF67FF64, 0xFF62FF63, 0xFF65FF64, 0xF064DC64, 0xC864B464, 0xA0648264, 0x64644664, 0x32642864, 0x1E641464, 0x0A640000 }; +ExtraArrowDataEntry D_E00AC83C[] = { + { .unk_00 = 0xFF, .unk_01 = 0x96 }, + { .unk_00 = 0xFF, .unk_01 = 0x82 }, + { .unk_00 = 0xFF, .unk_01 = 0x64 }, + { .unk_00 = 0xFF, .unk_01 = 0x46 }, + { .unk_00 = 0xFF, .unk_01 = 0x3C }, + { .unk_00 = 0xFF, .unk_01 = 0x50 }, + { .unk_00 = 0xFF, .unk_01 = 0x6E }, + { .unk_00 = 0xFF, .unk_01 = 0x73 }, + { .unk_00 = 0xFF, .unk_01 = 0x6B }, + { .unk_00 = 0xFF, .unk_01 = 0x5C }, + { .unk_00 = 0xFF, .unk_01 = 0x5A }, + { .unk_00 = 0xFF, .unk_01 = 0x5E }, + { .unk_00 = 0xFF, .unk_01 = 0x67 }, + { .unk_00 = 0xFF, .unk_01 = 0x68 }, + { .unk_00 = 0xFF, .unk_01 = 0x67 }, + { .unk_00 = 0xFF, .unk_01 = 0x64 }, + { .unk_00 = 0xFF, .unk_01 = 0x62 }, + { .unk_00 = 0xFF, .unk_01 = 0x63 }, + { .unk_00 = 0xFF, .unk_01 = 0x65 }, + { .unk_00 = 0xFF, .unk_01 = 0x64 }, + { .unk_00 = 0xF0, .unk_01 = 0x64 }, + { .unk_00 = 0xDC, .unk_01 = 0x64 }, + { .unk_00 = 0xC8, .unk_01 = 0x64 }, + { .unk_00 = 0xB4, .unk_01 = 0x64 }, + { .unk_00 = 0xA0, .unk_01 = 0x64 }, + { .unk_00 = 0x82, .unk_01 = 0x64 }, + { .unk_00 = 0x64, .unk_01 = 0x64 }, + { .unk_00 = 0x46, .unk_01 = 0x64 }, + { .unk_00 = 0x32, .unk_01 = 0x64 }, + { .unk_00 = 0x28, .unk_01 = 0x64 }, + { .unk_00 = 0x1E, .unk_01 = 0x64 }, + { .unk_00 = 0x14, .unk_01 = 0x64 }, + { .unk_00 = 0x0A, .unk_01 = 0x64 }, +}; -s32 D_E00AC880[] = { 0x00000000, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000003, 0x00000001, 0xFFFFFFFF, 0x00000001, 0xFFFFFFFE, 0x00000001, 0xFFFFFFFD, 0x00000002, 0x00000001, 0x00000002, 0x00000002, 0x00000002, 0x00000003, 0x00000000, 0x00000000 }; +ArrowDataTableEntry D_E00AC880[] = { + { .type = ARROW_TYPE_ATK_UP, .value = 1 }, + { .type = ARROW_TYPE_ATK_UP, .value = 2 }, + { .type = ARROW_TYPE_ATK_UP, .value = 3 }, + { .type = ARROW_TYPE_ATK_DOWN, .value = -1 }, + { .type = ARROW_TYPE_ATK_DOWN, .value = -2 }, + { .type = ARROW_TYPE_ATK_DOWN, .value = -3 }, + { .type = ARROW_TYPE_DEF_UP, .value = 1 }, + { .type = ARROW_TYPE_DEF_UP, .value = 2 }, + { .type = ARROW_TYPE_DEF_UP, .value = 3 }, + { .type = ARROW_TYPE_ATK_UP, .value = 0 }, +}; -INCLUDE_ASM(s32, "effects/stat_change", stat_change_main); +void func_E00AC288(EffectInstance* effect); +void func_E00AC2A4(EffectInstance* effect); +void stat_change_init(EffectInstance* effect); +void stat_change_update(EffectInstance* effect); +void stat_change_render(EffectInstance* effect); -void stat_change_init(void) { +EffectInstance* stat_change_main(s32 arg0, f32 x, f32 y, f32 z, f32 scale, s32 time) { + EffectBlueprint bp; + EffectBlueprint* bpPtr = &bp; + EffectInstance* effect; + StatChangeFXData* part; + s32 numParts = 1; + + bp.init = stat_change_init; + bp.update = stat_change_update; + bp.renderWorld = stat_change_render; + bp.unk_14 = func_E00AC288; + bp.unk_00 = 0; + bp.effectID = EFFECT_STAT_CHANGE; + + effect = shim_create_effect_instance(bpPtr); + effect->numParts = numParts; + part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + + ASSERT(effect->data != NULL); + + part->unk_00 = arg0; + part->pos.x = x; + part->pos.y = y; + part->pos.z = z; + part->timeLeft = time; + + part->unk_18 = 0; + part->scale = scale; + part->unk_24 = 255; + part->scaleX = 0; + part->scaleY = 0; + part->unk_30 = 0; + part->unk_38 = 0; + part->unk_34 = 0; + + part->arrowType = D_E00AC880[arg0].type; + part->arrowValue = D_E00AC880[arg0].value; + + return effect; } -INCLUDE_ASM(s32, "effects/stat_change", stat_change_update); - -void stat_change_render(void) { +void stat_change_init(EffectInstance* effect) { } -INCLUDE_ASM(s32, "effects/stat_change", func_E00AC288); +void stat_change_update(EffectInstance* effect) { + StatChangeFXData* part = effect->data; + s32 old_unk18; + + part->timeLeft--; + old_unk18 = part->unk_18++; + + if (part->timeLeft < 0) { + shim_remove_effect(effect); + return; + } + + if (part->arrowType == ARROW_TYPE_ATK_DOWN) { + if (old_unk18 >= ARRAY_COUNT(D_E00AC83C)) { + part->unk_24 = 0; + part->scaleX = 0.0f; + part->scaleY = 0.0f; + } else { + part->unk_24 = D_E00AC83C[old_unk18].unk_00; + part->scaleY = (f32)D_E00AC83C[old_unk18].unk_01 * 0.01; + part->scaleX = 1.0f - part->scaleY + 1.0f; + } + } else { + if (old_unk18 >= ARRAY_COUNT(D_E00AC7F8)) { + part->unk_24 = 0; + part->scaleX = 0.0f; + part->scaleY = 0.0f; + } else { + part->unk_24 = D_E00AC7F8[old_unk18].unk_00; + part->scaleX = (f32)D_E00AC7F8[old_unk18].unk_01 * 0.01; + part->scaleY = 1.0f - part->scaleX + 1.0f; + } + } + + part->unk_3C = 0; + part->unk_40 = 0; + + do {} while (0); // required to match + + part->pos.x += part->unk_30; + part->pos.y += part->unk_38; + part->pos.z += part->unk_34; +} + +void stat_change_render(EffectInstance* effect) { +} + +void func_E00AC288(EffectInstance* effect) { + func_E00AC2A4(effect); +} INCLUDE_ASM(s32, "effects/stat_change", func_E00AC2A4); diff --git a/src/effects/tattle_window.c b/src/effects/tattle_window.c index e7a1abf6a3..56f1846bff 100644 --- a/src/effects/tattle_window.c +++ b/src/effects/tattle_window.c @@ -1,17 +1,154 @@ #include "common.h" #include "effects_internal.h" -INCLUDE_ASM(s32, "effects/tattle_window", tattle_window_main); +void tattle_window_init(EffectInstance* effect); +void tattle_window_update(EffectInstance* effect); +void tattle_window_render(EffectInstance* effect); +void func_E00D8264(EffectInstance* effect); +void func_E00D8630(EffectInstance* effect); -void tattle_window_init(void) { +typedef struct TattleWindowFXData { + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; + /* 0x30 */ f32 unk_30; + /* 0x34 */ u8 unk_34; + /* 0x35 */ u8 unk_35; +} TattleWindowFXData; // size = 0x38 + +typedef struct D_E00D8818_Entry { + s16 unk_00; + u8 unk_02; + u8 unk_03; +} D_E00D8818_Entry; // size = 0x4 + +s32 D_E00D87E0[] = { 0x00000000, 0x00000000, 0x00000000, 0x09000000, 0x31100810, 0x08100810, 0x08000000, 0x00000000, 0xFC317FFF, 0x5FFEF438, 0xFC3135FF, 0x5FFEFE38, 0x3D4ABCFF, 0x00191CFF }; + +D_E00D8818_Entry D_E00D8818[] = { + { .unk_00 = 0xFF38, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFF60, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFF88, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFAB, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFC9, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFE2, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFF0, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFF8, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFFC, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFFE, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0xFFFF, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF }, + { .unk_00 = 0x0000, .unk_02 = 0xE6, .unk_03 = 0xFA }, + { .unk_00 = 0x0000, .unk_02 = 0x78, .unk_03 = 0xF5 }, + { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xF0 }, + { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xD2 }, + { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xAA }, + { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x78 }, + { .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x3C }, +}; + +EffectInstance* tattle_window_main(s32 arg0, f32 x, f32 y, f32 z, f32 arg4, s32 arg5) { + EffectBlueprint bp; + EffectBlueprint* bpPtr = &bp; + EffectInstance* effect; + TattleWindowFXData* part; + s32 numParts = 1; + + bp.init = tattle_window_init; + bp.update = tattle_window_update; + bp.renderWorld = tattle_window_render; + bp.unk_14 = func_E00D8264; + bp.unk_00 = 0; + bp.effectID = EFFECT_TATTLE_WINDOW; + + effect = shim_create_effect_instance(bpPtr); + effect->numParts = numParts; + part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part)); + + ASSERT(effect->data != NULL); + + part->unk_00 = arg0; + part->unk_14 = 0; + if (arg5 <= 0) { + part->unk_10 = 0x3E8; + } else { + part->unk_10 = arg5; + } + part->pos.x = x; + part->pos.y = y; + part->pos.z = z; + part->unk_1C = 0; + part->unk_18 = arg4; + part->unk_28 = 0.0f; + part->unk_2C = part->unk_30 = part->unk_28; + part->unk_20 = 0; + part->unk_24 = 0; + part->unk_34 = 0xFF; + part->unk_35 = 0xFF; + + return effect; } -INCLUDE_ASM(s32, "effects/tattle_window", tattle_window_update); - -void tattle_window_render(void) { +void tattle_window_init(EffectInstance* effect) { } -INCLUDE_ASM(s32, "effects/tattle_window", func_E00D8264); +void tattle_window_update(EffectInstance* effect) { + s32 unk_10, unk_10_2; + s32 old_unk_14; + TattleWindowFXData* part = effect->data; + + if (effect->flags & 0x10) { + effect->flags &= ~0x10; + part->unk_10 = 23; + } + + if (part->unk_10 < 1000) { + part->unk_10--; + } + + old_unk_14 = part->unk_14++; + unk_10 = part->unk_10; + + if (unk_10 < 0) { + shim_remove_effect(effect); + return; + } + unk_10_2 = unk_10; + part->unk_28 = 0; + part->unk_2C = 0; + part->unk_1C = part->unk_18; + if (old_unk_14 < 23) { + part->unk_30 = D_E00D8818[old_unk_14].unk_00; + part->unk_34 = D_E00D8818[old_unk_14].unk_02; + part->unk_35 = D_E00D8818[old_unk_14].unk_03; + } else { + part->unk_30 = D_E00D8818[0x16].unk_00; + part->unk_34 = D_E00D8818[0x16].unk_02; + part->unk_35 = D_E00D8818[0x16].unk_03; + part->unk_14 = 0x18; + } + if (unk_10_2 < 23) { + part->unk_30 = D_E00D8818[unk_10_2].unk_00; + part->unk_34 = D_E00D8818[unk_10_2].unk_02; + part->unk_35 = D_E00D8818[unk_10_2].unk_03; + } +} + +void tattle_window_render(EffectInstance* effect) { +} + +void func_E00D8264(EffectInstance* effect) { + func_E00D8630(effect); +} void func_E00D8280(void) { } diff --git a/ver/us/asm/nonmatchings/effects/music_note/music_note_appendGfx.s b/ver/us/asm/nonmatchings/effects/music_note/music_note_appendGfx.s index d869e6fbe7..02f17513be 100644 --- a/ver/us/asm/nonmatchings/effects/music_note/music_note_appendGfx.s +++ b/ver/us/asm/nonmatchings/effects/music_note/music_note_appendGfx.s @@ -64,12 +64,12 @@ glabel music_note_appendGfx /* 35A3B4 E004C494 3C02E005 */ lui $v0, %hi(D_E004C67C) /* 35A3B8 E004C498 00451021 */ addu $v0, $v0, $a1 /* 35A3BC E004C49C 9042C67C */ lbu $v0, %lo(D_E004C67C)($v0) -/* 35A3C0 E004C4A0 3C03E005 */ lui $v1, %hi(D_E004C67D) +/* 35A3C0 E004C4A0 3C03E005 */ lui $v1, %hi(D_E004C67C+1) /* 35A3C4 E004C4A4 00651821 */ addu $v1, $v1, $a1 -/* 35A3C8 E004C4A8 9063C67D */ lbu $v1, %lo(D_E004C67D)($v1) -/* 35A3CC E004C4AC 3C01E005 */ lui $at, %hi(D_E004C67E) +/* 35A3C8 E004C4A8 9063C67D */ lbu $v1, %lo(D_E004C67C+1)($v1) +/* 35A3CC E004C4AC 3C01E005 */ lui $at, %hi(D_E004C67C+2) /* 35A3D0 E004C4B0 00250821 */ addu $at, $at, $a1 -/* 35A3D4 E004C4B4 9025C67E */ lbu $a1, %lo(D_E004C67E)($at) +/* 35A3D4 E004C4B4 9025C67E */ lbu $a1, %lo(D_E004C67C+2)($at) /* 35A3D8 E004C4B8 00021600 */ sll $v0, $v0, 0x18 /* 35A3DC E004C4BC 00031C00 */ sll $v1, $v1, 0x10 /* 35A3E0 E004C4C0 00431025 */ or $v0, $v0, $v1 diff --git a/ver/us/asm/nonmatchings/effects/music_note/music_note_main.s b/ver/us/asm/nonmatchings/effects/music_note/music_note_main.s deleted file mode 100644 index 28094a0a50..0000000000 --- a/ver/us/asm/nonmatchings/effects/music_note/music_note_main.s +++ /dev/null @@ -1,140 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel music_note_main -/* 359F20 E004C000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 359F24 E004C004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 359F28 E004C008 4485A000 */ mtc1 $a1, $f20 -/* 359F2C E004C00C AFB1002C */ sw $s1, 0x2c($sp) -/* 359F30 E004C010 0080882D */ daddu $s1, $a0, $zero -/* 359F34 E004C014 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 359F38 E004C018 4486B000 */ mtc1 $a2, $f22 -/* 359F3C E004C01C 27A40010 */ addiu $a0, $sp, 0x10 -/* 359F40 E004C020 F7B80048 */ sdc1 $f24, 0x48($sp) -/* 359F44 E004C024 4487C000 */ mtc1 $a3, $f24 -/* 359F48 E004C028 3C02E005 */ lui $v0, %hi(music_note_init) -/* 359F4C E004C02C 2442C204 */ addiu $v0, $v0, %lo(music_note_init) -/* 359F50 E004C030 AFA20018 */ sw $v0, 0x18($sp) -/* 359F54 E004C034 3C02E005 */ lui $v0, %hi(music_note_update) -/* 359F58 E004C038 2442C20C */ addiu $v0, $v0, %lo(music_note_update) -/* 359F5C E004C03C AFA2001C */ sw $v0, 0x1c($sp) -/* 359F60 E004C040 3C02E005 */ lui $v0, %hi(music_note_render) -/* 359F64 E004C044 2442C364 */ addiu $v0, $v0, %lo(music_note_render) -/* 359F68 E004C048 AFA20020 */ sw $v0, 0x20($sp) -/* 359F6C E004C04C 24020026 */ addiu $v0, $zero, 0x26 -/* 359F70 E004C050 AFBF0030 */ sw $ra, 0x30($sp) -/* 359F74 E004C054 AFB00028 */ sw $s0, 0x28($sp) -/* 359F78 E004C058 AFA00010 */ sw $zero, 0x10($sp) -/* 359F7C E004C05C AFA00024 */ sw $zero, 0x24($sp) -/* 359F80 E004C060 0C080124 */ jal shim_create_effect_instance -/* 359F84 E004C064 AFA20014 */ sw $v0, 0x14($sp) -/* 359F88 E004C068 24040034 */ addiu $a0, $zero, 0x34 -/* 359F8C E004C06C 24030001 */ addiu $v1, $zero, 1 -/* 359F90 E004C070 0040802D */ daddu $s0, $v0, $zero -/* 359F94 E004C074 0C08012C */ jal shim_general_heap_malloc -/* 359F98 E004C078 AE030008 */ sw $v1, 8($s0) -/* 359F9C E004C07C AE02000C */ sw $v0, 0xc($s0) -/* 359FA0 E004C080 0040802D */ daddu $s0, $v0, $zero -/* 359FA4 E004C084 16000003 */ bnez $s0, .LE004C094 -/* 359FA8 E004C088 24040006 */ addiu $a0, $zero, 6 -.LE004C08C: -/* 359FAC E004C08C 08013023 */ j .LE004C08C -/* 359FB0 E004C090 00000000 */ nop -.LE004C094: -/* 359FB4 E004C094 24020040 */ addiu $v0, $zero, 0x40 -/* 359FB8 E004C098 AE110000 */ sw $s1, ($s0) -/* 359FBC E004C09C E6140004 */ swc1 $f20, 4($s0) -/* 359FC0 E004C0A0 E6160008 */ swc1 $f22, 8($s0) -/* 359FC4 E004C0A4 E618000C */ swc1 $f24, 0xc($s0) -/* 359FC8 E004C0A8 AE000010 */ sw $zero, 0x10($s0) -/* 359FCC E004C0AC AE020018 */ sw $v0, 0x18($s0) -/* 359FD0 E004C0B0 AE000014 */ sw $zero, 0x14($s0) -/* 359FD4 E004C0B4 0C080138 */ jal shim_rand_int -/* 359FD8 E004C0B8 AE00001C */ sw $zero, 0x1c($s0) -/* 359FDC E004C0BC 12200006 */ beqz $s1, .LE004C0D8 -/* 359FE0 E004C0C0 AE020020 */ sw $v0, 0x20($s0) -/* 359FE4 E004C0C4 24020001 */ addiu $v0, $zero, 1 -/* 359FE8 E004C0C8 1222000A */ beq $s1, $v0, .LE004C0F4 -/* 359FEC E004C0CC 00000000 */ nop -/* 359FF0 E004C0D0 08013059 */ j .LE004C164 -/* 359FF4 E004C0D4 00000000 */ nop -.LE004C0D8: -/* 359FF8 E004C0D8 3C013F80 */ lui $at, 0x3f80 -/* 359FFC E004C0DC 44810000 */ mtc1 $at, $f0 -/* 35A000 E004C0E0 AE000024 */ sw $zero, 0x24($s0) -/* 35A004 E004C0E4 AE00002C */ sw $zero, 0x2c($s0) -/* 35A008 E004C0E8 E6000028 */ swc1 $f0, 0x28($s0) -/* 35A00C E004C0EC 08013079 */ j .LE004C1E4 -/* 35A010 E004C0F0 E6000030 */ swc1 $f0, 0x30($s0) -.LE004C0F4: -/* 35A014 E004C0F4 0C080138 */ jal shim_rand_int -/* 35A018 E004C0F8 2404000A */ addiu $a0, $zero, 0xa -/* 35A01C E004C0FC 3C01E005 */ lui $at, %hi(D_E004C6A0) -/* 35A020 E004C100 D434C6A0 */ ldc1 $f20, %lo(D_E004C6A0)($at) -/* 35A024 E004C104 44820000 */ mtc1 $v0, $f0 -/* 35A028 E004C108 00000000 */ nop -/* 35A02C E004C10C 46800021 */ cvt.d.w $f0, $f0 -/* 35A030 E004C110 46340002 */ mul.d $f0, $f0, $f20 -/* 35A034 E004C114 00000000 */ nop -/* 35A038 E004C118 3C01C014 */ lui $at, 0xc014 -/* 35A03C E004C11C 44811800 */ mtc1 $at, $f3 -/* 35A040 E004C120 44801000 */ mtc1 $zero, $f2 -/* 35A044 E004C124 00000000 */ nop -/* 35A048 E004C128 46220000 */ add.d $f0, $f0, $f2 -/* 35A04C E004C12C 2404000A */ addiu $a0, $zero, 0xa -/* 35A050 E004C130 46200020 */ cvt.s.d $f0, $f0 -/* 35A054 E004C134 0C080138 */ jal shim_rand_int -/* 35A058 E004C138 E6000024 */ swc1 $f0, 0x24($s0) -/* 35A05C E004C13C 44820000 */ mtc1 $v0, $f0 -/* 35A060 E004C140 00000000 */ nop -/* 35A064 E004C144 46800021 */ cvt.d.w $f0, $f0 -/* 35A068 E004C148 46340002 */ mul.d $f0, $f0, $f20 -/* 35A06C E004C14C 00000000 */ nop -/* 35A070 E004C150 3C013FE0 */ lui $at, 0x3fe0 -/* 35A074 E004C154 44811800 */ mtc1 $at, $f3 -/* 35A078 E004C158 44801000 */ mtc1 $zero, $f2 -/* 35A07C E004C15C 08013075 */ j .LE004C1D4 -/* 35A080 E004C160 46220000 */ add.d $f0, $f0, $f2 -.LE004C164: -/* 35A084 E004C164 0C080138 */ jal shim_rand_int -/* 35A088 E004C168 2404000A */ addiu $a0, $zero, 0xa -/* 35A08C E004C16C 3C01E005 */ lui $at, %hi(D_E004C6A8) -/* 35A090 E004C170 D434C6A8 */ ldc1 $f20, %lo(D_E004C6A8)($at) -/* 35A094 E004C174 44821000 */ mtc1 $v0, $f2 -/* 35A098 E004C178 00000000 */ nop -/* 35A09C E004C17C 468010A1 */ cvt.d.w $f2, $f2 -/* 35A0A0 E004C180 46341082 */ mul.d $f2, $f2, $f20 -/* 35A0A4 E004C184 00000000 */ nop -/* 35A0A8 E004C188 3C014014 */ lui $at, 0x4014 -/* 35A0AC E004C18C 44810800 */ mtc1 $at, $f1 -/* 35A0B0 E004C190 44800000 */ mtc1 $zero, $f0 -/* 35A0B4 E004C194 00000000 */ nop -/* 35A0B8 E004C198 46220001 */ sub.d $f0, $f0, $f2 -/* 35A0BC E004C19C 2404000A */ addiu $a0, $zero, 0xa -/* 35A0C0 E004C1A0 46200020 */ cvt.s.d $f0, $f0 -/* 35A0C4 E004C1A4 0C080138 */ jal shim_rand_int -/* 35A0C8 E004C1A8 E6000024 */ swc1 $f0, 0x24($s0) -/* 35A0CC E004C1AC 44820000 */ mtc1 $v0, $f0 -/* 35A0D0 E004C1B0 00000000 */ nop -/* 35A0D4 E004C1B4 46800021 */ cvt.d.w $f0, $f0 -/* 35A0D8 E004C1B8 46340002 */ mul.d $f0, $f0, $f20 -/* 35A0DC E004C1BC 00000000 */ nop -/* 35A0E0 E004C1C0 3C013FF0 */ lui $at, 0x3ff0 -/* 35A0E4 E004C1C4 44811800 */ mtc1 $at, $f3 -/* 35A0E8 E004C1C8 44801000 */ mtc1 $zero, $f2 -/* 35A0EC E004C1CC 00000000 */ nop -/* 35A0F0 E004C1D0 46220000 */ add.d $f0, $f0, $f2 -.LE004C1D4: -/* 35A0F4 E004C1D4 AE00002C */ sw $zero, 0x2c($s0) -/* 35A0F8 E004C1D8 AE000030 */ sw $zero, 0x30($s0) -/* 35A0FC E004C1DC 46200020 */ cvt.s.d $f0, $f0 -/* 35A100 E004C1E0 E6000028 */ swc1 $f0, 0x28($s0) -.LE004C1E4: -/* 35A104 E004C1E4 8FBF0030 */ lw $ra, 0x30($sp) -/* 35A108 E004C1E8 8FB1002C */ lw $s1, 0x2c($sp) -/* 35A10C E004C1EC 8FB00028 */ lw $s0, 0x28($sp) -/* 35A110 E004C1F0 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 35A114 E004C1F4 D7B60040 */ ldc1 $f22, 0x40($sp) -/* 35A118 E004C1F8 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 35A11C E004C1FC 03E00008 */ jr $ra -/* 35A120 E004C200 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/music_note/music_note_update.s b/ver/us/asm/nonmatchings/effects/music_note/music_note_update.s deleted file mode 100644 index ac7c877862..0000000000 --- a/ver/us/asm/nonmatchings/effects/music_note/music_note_update.s +++ /dev/null @@ -1,94 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel music_note_update -/* 35A12C E004C20C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 35A130 E004C210 AFBF0010 */ sw $ra, 0x10($sp) -/* 35A134 E004C214 8C85000C */ lw $a1, 0xc($a0) -/* 35A138 E004C218 8CA20018 */ lw $v0, 0x18($a1) -/* 35A13C E004C21C 2442FFFF */ addiu $v0, $v0, -1 -/* 35A140 E004C220 ACA20018 */ sw $v0, 0x18($a1) -/* 35A144 E004C224 8CA2001C */ lw $v0, 0x1c($a1) -/* 35A148 E004C228 8CA60018 */ lw $a2, 0x18($a1) -/* 35A14C E004C22C 24420001 */ addiu $v0, $v0, 1 -/* 35A150 E004C230 04C10005 */ bgez $a2, .LE004C248 -/* 35A154 E004C234 ACA2001C */ sw $v0, 0x1c($a1) -/* 35A158 E004C238 0C080128 */ jal shim_remove_effect -/* 35A15C E004C23C 00000000 */ nop -/* 35A160 E004C240 080130D6 */ j .LE004C358 -/* 35A164 E004C244 00000000 */ nop -.LE004C248: -/* 35A168 E004C248 28C20006 */ slti $v0, $a2, 6 -/* 35A16C E004C24C 1440001E */ bnez $v0, .LE004C2C8 -/* 35A170 E004C250 28C2000A */ slti $v0, $a2, 0xa -/* 35A174 E004C254 240200FF */ addiu $v0, $zero, 0xff -/* 35A178 E004C258 8CA30014 */ lw $v1, 0x14($a1) -/* 35A17C E004C25C 3C01E005 */ lui $at, %hi(D_E004C6B0) -/* 35A180 E004C260 D424C6B0 */ ldc1 $f4, %lo(D_E004C6B0)($at) -/* 35A184 E004C264 00431023 */ subu $v0, $v0, $v1 -/* 35A188 E004C268 44823000 */ mtc1 $v0, $f6 -/* 35A18C E004C26C 00000000 */ nop -/* 35A190 E004C270 468031A1 */ cvt.d.w $f6, $f6 -/* 35A194 E004C274 46243182 */ mul.d $f6, $f6, $f4 -/* 35A198 E004C278 00000000 */ nop -/* 35A19C E004C27C C4A20010 */ lwc1 $f2, 0x10($a1) -/* 35A1A0 E004C280 3C013F80 */ lui $at, 0x3f80 -/* 35A1A4 E004C284 44810000 */ mtc1 $at, $f0 -/* 35A1A8 E004C288 00000000 */ nop -/* 35A1AC E004C28C 46020001 */ sub.s $f0, $f0, $f2 -/* 35A1B0 E004C290 46000021 */ cvt.d.s $f0, $f0 -/* 35A1B4 E004C294 46240002 */ mul.d $f0, $f0, $f4 -/* 35A1B8 E004C298 00000000 */ nop -/* 35A1BC E004C29C 44832000 */ mtc1 $v1, $f4 -/* 35A1C0 E004C2A0 00000000 */ nop -/* 35A1C4 E004C2A4 46802121 */ cvt.d.w $f4, $f4 -/* 35A1C8 E004C2A8 46262100 */ add.d $f4, $f4, $f6 -/* 35A1CC E004C2AC 460010A1 */ cvt.d.s $f2, $f2 -/* 35A1D0 E004C2B0 46201080 */ add.d $f2, $f2, $f0 -/* 35A1D4 E004C2B4 4620238D */ trunc.w.d $f14, $f4 -/* 35A1D8 E004C2B8 E4AE0014 */ swc1 $f14, 0x14($a1) -/* 35A1DC E004C2BC 462010A0 */ cvt.s.d $f2, $f2 -/* 35A1E0 E004C2C0 E4A20010 */ swc1 $f2, 0x10($a1) -/* 35A1E4 E004C2C4 28C2000A */ slti $v0, $a2, 0xa -.LE004C2C8: -/* 35A1E8 E004C2C8 10400005 */ beqz $v0, .LE004C2E0 -/* 35A1EC E004C2CC 00061040 */ sll $v0, $a2, 1 -/* 35A1F0 E004C2D0 00461021 */ addu $v0, $v0, $a2 -/* 35A1F4 E004C2D4 000210C0 */ sll $v0, $v0, 3 -/* 35A1F8 E004C2D8 00461021 */ addu $v0, $v0, $a2 -/* 35A1FC E004C2DC ACA20014 */ sw $v0, 0x14($a1) -.LE004C2E0: -/* 35A200 E004C2E0 C4A60024 */ lwc1 $f6, 0x24($a1) -/* 35A204 E004C2E4 C4A4002C */ lwc1 $f4, 0x2c($a1) -/* 35A208 E004C2E8 46062101 */ sub.s $f4, $f4, $f6 -/* 35A20C E004C2EC 3C01E005 */ lui $at, %hi(D_E004C6B8) -/* 35A210 E004C2F0 D428C6B8 */ ldc1 $f8, %lo(D_E004C6B8)($at) -/* 35A214 E004C2F4 46002121 */ cvt.d.s $f4, $f4 -/* 35A218 E004C2F8 46282102 */ mul.d $f4, $f4, $f8 -/* 35A21C E004C2FC 00000000 */ nop -/* 35A220 E004C300 C4A20028 */ lwc1 $f2, 0x28($a1) -/* 35A224 E004C304 C4A00030 */ lwc1 $f0, 0x30($a1) -/* 35A228 E004C308 46020001 */ sub.s $f0, $f0, $f2 -/* 35A22C E004C30C 46000021 */ cvt.d.s $f0, $f0 -/* 35A230 E004C310 46280002 */ mul.d $f0, $f0, $f8 -/* 35A234 E004C314 00000000 */ nop -/* 35A238 E004C318 C4AA0004 */ lwc1 $f10, 4($a1) -/* 35A23C E004C31C 46003206 */ mov.s $f8, $f6 -/* 35A240 E004C320 46085280 */ add.s $f10, $f10, $f8 -/* 35A244 E004C324 C4AC0008 */ lwc1 $f12, 8($a1) -/* 35A248 E004C328 46001206 */ mov.s $f8, $f2 -/* 35A24C E004C32C 46086300 */ add.s $f12, $f12, $f8 -/* 35A250 E004C330 460031A1 */ cvt.d.s $f6, $f6 -/* 35A254 E004C334 46243180 */ add.d $f6, $f6, $f4 -/* 35A258 E004C338 460010A1 */ cvt.d.s $f2, $f2 -/* 35A25C E004C33C E4AA0004 */ swc1 $f10, 4($a1) -/* 35A260 E004C340 46201080 */ add.d $f2, $f2, $f0 -/* 35A264 E004C344 E4AC0008 */ swc1 $f12, 8($a1) -/* 35A268 E004C348 462031A0 */ cvt.s.d $f6, $f6 -/* 35A26C E004C34C 462010A0 */ cvt.s.d $f2, $f2 -/* 35A270 E004C350 E4A60024 */ swc1 $f6, 0x24($a1) -/* 35A274 E004C354 E4A20028 */ swc1 $f2, 0x28($a1) -.LE004C358: -/* 35A278 E004C358 8FBF0010 */ lw $ra, 0x10($sp) -/* 35A27C E004C35C 03E00008 */ jr $ra -/* 35A280 E004C360 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/recover/func_E008042C.s b/ver/us/asm/nonmatchings/effects/recover/func_E008042C.s deleted file mode 100644 index 10bf45adef..0000000000 --- a/ver/us/asm/nonmatchings/effects/recover/func_E008042C.s +++ /dev/null @@ -1,11 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_E008042C -/* 3816EC E008042C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3816F0 E0080430 AFBF0010 */ sw $ra, 0x10($sp) -/* 3816F4 E0080434 0C020112 */ jal func_E0080448 -/* 3816F8 E0080438 00000000 */ nop -/* 3816FC E008043C 8FBF0010 */ lw $ra, 0x10($sp) -/* 381700 E0080440 03E00008 */ jr $ra -/* 381704 E0080444 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/recover/recover_update.s b/ver/us/asm/nonmatchings/effects/recover/recover_update.s index 8724598554..cf09683383 100644 --- a/ver/us/asm/nonmatchings/effects/recover/recover_update.s +++ b/ver/us/asm/nonmatchings/effects/recover/recover_update.s @@ -1,6 +1,16 @@ .set noat # allow manual use of $at .set noreorder # don't insert nops after branches +.section .rodata + +dlabel D_E0080B30 +.double 0.05 + +dlabel D_E0080B38 +.double 0.9 + +.section .text + glabel recover_update /* 381490 E00801D0 27BDFFB8 */ addiu $sp, $sp, -0x48 /* 381494 E00801D4 AFB50024 */ sw $s5, 0x24($sp) diff --git a/ver/us/asm/nonmatchings/effects/shape_spell/func_E0024324.s b/ver/us/asm/nonmatchings/effects/shape_spell/func_E0024324.s deleted file mode 100644 index ba90d09bed..0000000000 --- a/ver/us/asm/nonmatchings/effects/shape_spell/func_E0024324.s +++ /dev/null @@ -1,42 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_E0024324 -/* 339574 E0024324 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 339578 E0024328 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 33957C E002432C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 339580 E0024330 AFBF0014 */ sw $ra, 0x14($sp) -/* 339584 E0024334 AFB00010 */ sw $s0, 0x10($sp) -/* 339588 E0024338 94420134 */ lhu $v0, 0x134($v0) -/* 33958C E002433C 00021140 */ sll $v0, $v0, 5 -/* 339590 E0024340 00451021 */ addu $v0, $v0, $a1 -/* 339594 E0024344 44826000 */ mtc1 $v0, $f12 -/* 339598 E0024348 00000000 */ nop -/* 33959C E002434C 46806320 */ cvt.s.w $f12, $f12 -/* 3395A0 E0024350 0C080140 */ jal shim_sin_deg -/* 3395A4 E0024354 0080802D */ daddu $s0, $a0, $zero -/* 3395A8 E0024358 240200FF */ addiu $v0, $zero, 0xff -/* 3395AC E002435C 00501023 */ subu $v0, $v0, $s0 -/* 3395B0 E0024360 44821000 */ mtc1 $v0, $f2 -/* 3395B4 E0024364 00000000 */ nop -/* 3395B8 E0024368 468010A0 */ cvt.s.w $f2, $f2 -/* 3395BC E002436C 46020002 */ mul.s $f0, $f0, $f2 -/* 3395C0 E0024370 00000000 */ nop -/* 3395C4 E0024374 46020000 */ add.s $f0, $f0, $f2 -/* 3395C8 E0024378 3C013FE0 */ lui $at, 0x3fe0 -/* 3395CC E002437C 44811800 */ mtc1 $at, $f3 -/* 3395D0 E0024380 44801000 */ mtc1 $zero, $f2 -/* 3395D4 E0024384 46000021 */ cvt.d.s $f0, $f0 -/* 3395D8 E0024388 46220002 */ mul.d $f0, $f0, $f2 -/* 3395DC E002438C 00000000 */ nop -/* 3395E0 E0024390 44901000 */ mtc1 $s0, $f2 -/* 3395E4 E0024394 00000000 */ nop -/* 3395E8 E0024398 468010A1 */ cvt.d.w $f2, $f2 -/* 3395EC E002439C 46220000 */ add.d $f0, $f0, $f2 -/* 3395F0 E00243A0 8FBF0014 */ lw $ra, 0x14($sp) -/* 3395F4 E00243A4 8FB00010 */ lw $s0, 0x10($sp) -/* 3395F8 E00243A8 46200020 */ cvt.s.d $f0, $f0 -/* 3395FC E00243AC 4600010D */ trunc.w.s $f4, $f0 -/* 339600 E00243B0 44022000 */ mfc1 $v0, $f4 -/* 339604 E00243B4 03E00008 */ jr $ra -/* 339608 E00243B8 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/shape_spell/func_E00243BC.s b/ver/us/asm/nonmatchings/effects/shape_spell/func_E00243BC.s deleted file mode 100644 index b184c5bd52..0000000000 --- a/ver/us/asm/nonmatchings/effects/shape_spell/func_E00243BC.s +++ /dev/null @@ -1,42 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_E00243BC -/* 33960C E00243BC 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 339610 E00243C0 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 339614 E00243C4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 339618 E00243C8 AFB00010 */ sw $s0, 0x10($sp) -/* 33961C E00243CC AFBF0014 */ sw $ra, 0x14($sp) -/* 339620 E00243D0 94420134 */ lhu $v0, 0x134($v0) -/* 339624 E00243D4 24A500B4 */ addiu $a1, $a1, 0xb4 -/* 339628 E00243D8 00021140 */ sll $v0, $v0, 5 -/* 33962C E00243DC 00451021 */ addu $v0, $v0, $a1 -/* 339630 E00243E0 44826000 */ mtc1 $v0, $f12 -/* 339634 E00243E4 00000000 */ nop -/* 339638 E00243E8 46806320 */ cvt.s.w $f12, $f12 -/* 33963C E00243EC 0C080140 */ jal shim_sin_deg -/* 339640 E00243F0 0080802D */ daddu $s0, $a0, $zero -/* 339644 E00243F4 00101023 */ negu $v0, $s0 -/* 339648 E00243F8 44821000 */ mtc1 $v0, $f2 -/* 33964C E00243FC 00000000 */ nop -/* 339650 E0024400 468010A0 */ cvt.s.w $f2, $f2 -/* 339654 E0024404 46020002 */ mul.s $f0, $f0, $f2 -/* 339658 E0024408 00000000 */ nop -/* 33965C E002440C 46020000 */ add.s $f0, $f0, $f2 -/* 339660 E0024410 3C013FE0 */ lui $at, 0x3fe0 -/* 339664 E0024414 44811800 */ mtc1 $at, $f3 -/* 339668 E0024418 44801000 */ mtc1 $zero, $f2 -/* 33966C E002441C 46000021 */ cvt.d.s $f0, $f0 -/* 339670 E0024420 46220002 */ mul.d $f0, $f0, $f2 -/* 339674 E0024424 00000000 */ nop -/* 339678 E0024428 44901000 */ mtc1 $s0, $f2 -/* 33967C E002442C 00000000 */ nop -/* 339680 E0024430 468010A1 */ cvt.d.w $f2, $f2 -/* 339684 E0024434 46220000 */ add.d $f0, $f0, $f2 -/* 339688 E0024438 8FBF0014 */ lw $ra, 0x14($sp) -/* 33968C E002443C 8FB00010 */ lw $s0, 0x10($sp) -/* 339690 E0024440 46200020 */ cvt.s.d $f0, $f0 -/* 339694 E0024444 4600010D */ trunc.w.s $f4, $f0 -/* 339698 E0024448 44022000 */ mfc1 $v0, $f4 -/* 33969C E002444C 03E00008 */ jr $ra -/* 3396A0 E0024450 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_appendGfx.s b/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_appendGfx.s index dfdc24bbd3..835c43d619 100644 --- a/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_appendGfx.s +++ b/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_appendGfx.s @@ -1,6 +1,13 @@ .set noat # allow manual use of $at .set noreorder # don't insert nops after branches +.section .rodata + +dlabel D_E0024D00 +.double 1.2048192771084338 + +.section .text + glabel shape_spell_appendGfx /* 3396A4 E0024454 27BDFF18 */ addiu $sp, $sp, -0xe8 /* 3396A8 E0024458 3C07DB06 */ lui $a3, 0xdb06 diff --git a/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_main.s b/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_main.s deleted file mode 100644 index 95144c2dae..0000000000 --- a/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_main.s +++ /dev/null @@ -1,104 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel shape_spell_main -/* 339250 E0024000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 339254 E0024004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 339258 E0024008 4485A000 */ mtc1 $a1, $f20 -/* 33925C E002400C F7B60040 */ sdc1 $f22, 0x40($sp) -/* 339260 E0024010 4486B000 */ mtc1 $a2, $f22 -/* 339264 E0024014 AFB1002C */ sw $s1, 0x2c($sp) -/* 339268 E0024018 0080882D */ daddu $s1, $a0, $zero -/* 33926C E002401C F7B80048 */ sdc1 $f24, 0x48($sp) -/* 339270 E0024020 4487C000 */ mtc1 $a3, $f24 -/* 339274 E0024024 27A40010 */ addiu $a0, $sp, 0x10 -/* 339278 E0024028 AFB20030 */ sw $s2, 0x30($sp) -/* 33927C E002402C 8FB2006C */ lw $s2, 0x6c($sp) -/* 339280 E0024030 3C02E002 */ lui $v0, %hi(shape_spell_init) -/* 339284 E0024034 24424180 */ addiu $v0, $v0, %lo(shape_spell_init) -/* 339288 E0024038 AFA20018 */ sw $v0, 0x18($sp) -/* 33928C E002403C 3C02E002 */ lui $v0, %hi(shape_spell_update) -/* 339290 E0024040 24424188 */ addiu $v0, $v0, %lo(shape_spell_update) -/* 339294 E0024044 AFA2001C */ sw $v0, 0x1c($sp) -/* 339298 E0024048 3C02E002 */ lui $v0, %hi(shape_spell_render) -/* 33929C E002404C 244242E0 */ addiu $v0, $v0, %lo(shape_spell_render) -/* 3392A0 E0024050 AFA20020 */ sw $v0, 0x20($sp) -/* 3392A4 E0024054 24020012 */ addiu $v0, $zero, 0x12 -/* 3392A8 E0024058 AFBF0034 */ sw $ra, 0x34($sp) -/* 3392AC E002405C AFB00028 */ sw $s0, 0x28($sp) -/* 3392B0 E0024060 AFA00010 */ sw $zero, 0x10($sp) -/* 3392B4 E0024064 AFA00024 */ sw $zero, 0x24($sp) -/* 3392B8 E0024068 0C080124 */ jal shim_create_effect_instance -/* 3392BC E002406C AFA20014 */ sw $v0, 0x14($sp) -/* 3392C0 E0024070 24040038 */ addiu $a0, $zero, 0x38 -/* 3392C4 E0024074 24030001 */ addiu $v1, $zero, 1 -/* 3392C8 E0024078 0040802D */ daddu $s0, $v0, $zero -/* 3392CC E002407C 0C08012C */ jal shim_general_heap_malloc -/* 3392D0 E0024080 AE030008 */ sw $v1, 8($s0) -/* 3392D4 E0024084 0040182D */ daddu $v1, $v0, $zero -/* 3392D8 E0024088 14600003 */ bnez $v1, .LE0024098 -/* 3392DC E002408C AE02000C */ sw $v0, 0xc($s0) -.LE0024090: -/* 3392E0 E0024090 08009024 */ j .LE0024090 -/* 3392E4 E0024094 00000000 */ nop -.LE0024098: -/* 3392E8 E0024098 3C013F80 */ lui $at, 0x3f80 -/* 3392EC E002409C 44810000 */ mtc1 $at, $f0 -/* 3392F0 E00240A0 240200FF */ addiu $v0, $zero, 0xff -/* 3392F4 E00240A4 AC60002C */ sw $zero, 0x2c($v1) -/* 3392F8 E00240A8 AC710000 */ sw $s1, ($v1) -/* 3392FC E00240AC AC620034 */ sw $v0, 0x34($v1) -/* 339300 E00240B0 E4740004 */ swc1 $f20, 4($v1) -/* 339304 E00240B4 E4760008 */ swc1 $f22, 8($v1) -/* 339308 E00240B8 E478000C */ swc1 $f24, 0xc($v1) -/* 33930C E00240BC 16200019 */ bnez $s1, .LE0024124 -/* 339310 E00240C0 E4600028 */ swc1 $f0, 0x28($v1) -/* 339314 E00240C4 C7A60060 */ lwc1 $f6, 0x60($sp) -/* 339318 E00240C8 46143181 */ sub.s $f6, $f6, $f20 -/* 33931C E00240CC 44921000 */ mtc1 $s2, $f2 -/* 339320 E00240D0 00000000 */ nop -/* 339324 E00240D4 468010A0 */ cvt.s.w $f2, $f2 -/* 339328 E00240D8 46020083 */ div.s $f2, $f0, $f2 -/* 33932C E00240DC 46023182 */ mul.s $f6, $f6, $f2 -/* 339330 E00240E0 00000000 */ nop -/* 339334 E00240E4 C7A40064 */ lwc1 $f4, 0x64($sp) -/* 339338 E00240E8 46162101 */ sub.s $f4, $f4, $f22 -/* 33933C E00240EC 46022102 */ mul.s $f4, $f4, $f2 -/* 339340 E00240F0 00000000 */ nop -/* 339344 E00240F4 C7A00068 */ lwc1 $f0, 0x68($sp) -/* 339348 E00240F8 46180001 */ sub.s $f0, $f0, $f24 -/* 33934C E00240FC AC600010 */ sw $zero, 0x10($v1) -/* 339350 E0024100 AC600014 */ sw $zero, 0x14($v1) -/* 339354 E0024104 46020002 */ mul.s $f0, $f0, $f2 -/* 339358 E0024108 00000000 */ nop -/* 33935C E002410C AC600018 */ sw $zero, 0x18($v1) -/* 339360 E0024110 AC720030 */ sw $s2, 0x30($v1) -/* 339364 E0024114 E466001C */ swc1 $f6, 0x1c($v1) -/* 339368 E0024118 E4640020 */ swc1 $f4, 0x20($v1) -/* 33936C E002411C 08009056 */ j .LE0024158 -/* 339370 E0024120 E4600024 */ swc1 $f0, 0x24($v1) -.LE0024124: -/* 339374 E0024124 3C0141E8 */ lui $at, 0x41e8 -/* 339378 E0024128 44810000 */ mtc1 $at, $f0 -/* 33937C E002412C 3C0140C6 */ lui $at, 0x40c6 -/* 339380 E0024130 34216666 */ ori $at, $at, 0x6666 -/* 339384 E0024134 44811000 */ mtc1 $at, $f2 -/* 339388 E0024138 24020018 */ addiu $v0, $zero, 0x18 -/* 33938C E002413C AC600014 */ sw $zero, 0x14($v1) -/* 339390 E0024140 AC600018 */ sw $zero, 0x18($v1) -/* 339394 E0024144 AC600020 */ sw $zero, 0x20($v1) -/* 339398 E0024148 AC600024 */ sw $zero, 0x24($v1) -/* 33939C E002414C AC620030 */ sw $v0, 0x30($v1) -/* 3393A0 E0024150 E4600010 */ swc1 $f0, 0x10($v1) -/* 3393A4 E0024154 E462001C */ swc1 $f2, 0x1c($v1) -.LE0024158: -/* 3393A8 E0024158 0200102D */ daddu $v0, $s0, $zero -/* 3393AC E002415C 8FBF0034 */ lw $ra, 0x34($sp) -/* 3393B0 E0024160 8FB20030 */ lw $s2, 0x30($sp) -/* 3393B4 E0024164 8FB1002C */ lw $s1, 0x2c($sp) -/* 3393B8 E0024168 8FB00028 */ lw $s0, 0x28($sp) -/* 3393BC E002416C D7B80048 */ ldc1 $f24, 0x48($sp) -/* 3393C0 E0024170 D7B60040 */ ldc1 $f22, 0x40($sp) -/* 3393C4 E0024174 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 3393C8 E0024178 03E00008 */ jr $ra -/* 3393CC E002417C 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_update.s b/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_update.s deleted file mode 100644 index 26b6abf12d..0000000000 --- a/ver/us/asm/nonmatchings/effects/shape_spell/shape_spell_update.s +++ /dev/null @@ -1,95 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel shape_spell_update -/* 3393D8 E0024188 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 3393DC E002418C AFBF0028 */ sw $ra, 0x28($sp) -/* 3393E0 E0024190 AFB10024 */ sw $s1, 0x24($sp) -/* 3393E4 E0024194 AFB00020 */ sw $s0, 0x20($sp) -/* 3393E8 E0024198 8C830000 */ lw $v1, ($a0) -/* 3393EC E002419C 8C90000C */ lw $s0, 0xc($a0) -/* 3393F0 E00241A0 30620010 */ andi $v0, $v1, 0x10 -/* 3393F4 E00241A4 10400004 */ beqz $v0, .LE00241B8 -/* 3393F8 E00241A8 2402FFEF */ addiu $v0, $zero, -0x11 -/* 3393FC E00241AC 00621024 */ and $v0, $v1, $v0 -/* 339400 E00241B0 AC820000 */ sw $v0, ($a0) -/* 339404 E00241B4 AE000030 */ sw $zero, 0x30($s0) -.LE00241B8: -/* 339408 E00241B8 8E020030 */ lw $v0, 0x30($s0) -/* 33940C E00241BC 2442FFFF */ addiu $v0, $v0, -1 -/* 339410 E00241C0 AE020030 */ sw $v0, 0x30($s0) -/* 339414 E00241C4 8E02002C */ lw $v0, 0x2c($s0) -/* 339418 E00241C8 8E030030 */ lw $v1, 0x30($s0) -/* 33941C E00241CC 24420001 */ addiu $v0, $v0, 1 -/* 339420 E00241D0 04610005 */ bgez $v1, .LE00241E8 -/* 339424 E00241D4 AE02002C */ sw $v0, 0x2c($s0) -/* 339428 E00241D8 0C080128 */ jal shim_remove_effect -/* 33942C E00241DC 00000000 */ nop -/* 339430 E00241E0 080090B3 */ j .LE00242CC -/* 339434 E00241E4 00000000 */ nop -.LE00241E8: -/* 339438 E00241E8 8E110000 */ lw $s1, ($s0) -/* 33943C E00241EC 16200019 */ bnez $s1, .LE0024254 -/* 339440 E00241F0 24020001 */ addiu $v0, $zero, 1 -/* 339444 E00241F4 14600017 */ bnez $v1, .LE0024254 -/* 339448 E00241F8 24040001 */ addiu $a0, $zero, 1 -/* 33944C E00241FC C6020004 */ lwc1 $f2, 4($s0) -/* 339450 E0024200 C6000010 */ lwc1 $f0, 0x10($s0) -/* 339454 E0024204 C606000C */ lwc1 $f6, 0xc($s0) -/* 339458 E0024208 46001080 */ add.s $f2, $f2, $f0 -/* 33945C E002420C C6040018 */ lwc1 $f4, 0x18($s0) -/* 339460 E0024210 46043180 */ add.s $f6, $f6, $f4 -/* 339464 E0024214 C6000014 */ lwc1 $f0, 0x14($s0) -/* 339468 E0024218 44051000 */ mfc1 $a1, $f2 -/* 33946C E002421C C6020008 */ lwc1 $f2, 8($s0) -/* 339470 E0024220 46001080 */ add.s $f2, $f2, $f0 -/* 339474 E0024224 44073000 */ mfc1 $a3, $f6 -/* 339478 E0024228 44061000 */ mfc1 $a2, $f2 -/* 33947C E002422C 24020018 */ addiu $v0, $zero, 0x18 -/* 339480 E0024230 AFA00010 */ sw $zero, 0x10($sp) -/* 339484 E0024234 AFA00014 */ sw $zero, 0x14($sp) -/* 339488 E0024238 AFA00018 */ sw $zero, 0x18($sp) -/* 33948C E002423C 0C009000 */ jal shape_spell_main -/* 339490 E0024240 AFA2001C */ sw $v0, 0x1c($sp) -/* 339494 E0024244 8C42000C */ lw $v0, 0xc($v0) -/* 339498 E0024248 C6000028 */ lwc1 $f0, 0x28($s0) -/* 33949C E002424C E4400028 */ swc1 $f0, 0x28($v0) -/* 3394A0 E0024250 24020001 */ addiu $v0, $zero, 1 -.LE0024254: -/* 3394A4 E0024254 16220011 */ bne $s1, $v0, .LE002429C -/* 3394A8 E0024258 00000000 */ nop -/* 3394AC E002425C 3C01E002 */ lui $at, %hi(D_E0024CF0) -/* 3394B0 E0024260 D4204CF0 */ ldc1 $f0, %lo(D_E0024CF0)($at) -/* 3394B4 E0024264 C6020034 */ lwc1 $f2, 0x34($s0) -/* 3394B8 E0024268 468010A1 */ cvt.d.w $f2, $f2 -/* 3394BC E002426C 46201082 */ mul.d $f2, $f2, $f0 -/* 3394C0 E0024270 00000000 */ nop -/* 3394C4 E0024274 C600001C */ lwc1 $f0, 0x1c($s0) -/* 3394C8 E0024278 3C01E002 */ lui $at, %hi(D_E0024CF8) -/* 3394CC E002427C D4244CF8 */ ldc1 $f4, %lo(D_E0024CF8)($at) -/* 3394D0 E0024280 46000021 */ cvt.d.s $f0, $f0 -/* 3394D4 E0024284 46240002 */ mul.d $f0, $f0, $f4 -/* 3394D8 E0024288 00000000 */ nop -/* 3394DC E002428C 4620120D */ trunc.w.d $f8, $f2 -/* 3394E0 E0024290 E6080034 */ swc1 $f8, 0x34($s0) -/* 3394E4 E0024294 46200020 */ cvt.s.d $f0, $f0 -/* 3394E8 E0024298 E600001C */ swc1 $f0, 0x1c($s0) -.LE002429C: -/* 3394EC E002429C C6060010 */ lwc1 $f6, 0x10($s0) -/* 3394F0 E00242A0 C600001C */ lwc1 $f0, 0x1c($s0) -/* 3394F4 E00242A4 C6040014 */ lwc1 $f4, 0x14($s0) -/* 3394F8 E00242A8 46003180 */ add.s $f6, $f6, $f0 -/* 3394FC E00242AC C6000020 */ lwc1 $f0, 0x20($s0) -/* 339500 E00242B0 C6020018 */ lwc1 $f2, 0x18($s0) -/* 339504 E00242B4 46002100 */ add.s $f4, $f4, $f0 -/* 339508 E00242B8 C6000024 */ lwc1 $f0, 0x24($s0) -/* 33950C E00242BC 46001080 */ add.s $f2, $f2, $f0 -/* 339510 E00242C0 E6060010 */ swc1 $f6, 0x10($s0) -/* 339514 E00242C4 E6040014 */ swc1 $f4, 0x14($s0) -/* 339518 E00242C8 E6020018 */ swc1 $f2, 0x18($s0) -.LE00242CC: -/* 33951C E00242CC 8FBF0028 */ lw $ra, 0x28($sp) -/* 339520 E00242D0 8FB10024 */ lw $s1, 0x24($sp) -/* 339524 E00242D4 8FB00020 */ lw $s0, 0x20($sp) -/* 339528 E00242D8 03E00008 */ jr $ra -/* 33952C E00242DC 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/effects/stat_change/func_E00AC288.s b/ver/us/asm/nonmatchings/effects/stat_change/func_E00AC288.s deleted file mode 100644 index 6a68a1dcbb..0000000000 --- a/ver/us/asm/nonmatchings/effects/stat_change/func_E00AC288.s +++ /dev/null @@ -1,11 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_E00AC288 -/* 3AF0A8 E00AC288 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3AF0AC E00AC28C AFBF0010 */ sw $ra, 0x10($sp) -/* 3AF0B0 E00AC290 0C02B0A9 */ jal func_E00AC2A4 -/* 3AF0B4 E00AC294 00000000 */ nop -/* 3AF0B8 E00AC298 8FBF0010 */ lw $ra, 0x10($sp) -/* 3AF0BC E00AC29C 03E00008 */ jr $ra -/* 3AF0C0 E00AC2A0 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/stat_change/stat_change_main.s b/ver/us/asm/nonmatchings/effects/stat_change/stat_change_main.s deleted file mode 100644 index a95c59f23f..0000000000 --- a/ver/us/asm/nonmatchings/effects/stat_change/stat_change_main.s +++ /dev/null @@ -1,77 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel stat_change_main -/* 3AEE20 E00AC000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 3AEE24 E00AC004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 3AEE28 E00AC008 4485A000 */ mtc1 $a1, $f20 -/* 3AEE2C E00AC00C AFB1002C */ sw $s1, 0x2c($sp) -/* 3AEE30 E00AC010 0080882D */ daddu $s1, $a0, $zero -/* 3AEE34 E00AC014 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 3AEE38 E00AC018 4486B000 */ mtc1 $a2, $f22 -/* 3AEE3C E00AC01C 27A40010 */ addiu $a0, $sp, 0x10 -/* 3AEE40 E00AC020 F7B80048 */ sdc1 $f24, 0x48($sp) -/* 3AEE44 E00AC024 4487C000 */ mtc1 $a3, $f24 -/* 3AEE48 E00AC028 3C02E00B */ lui $v0, %hi(stat_change_init) -/* 3AEE4C E00AC02C 2442C11C */ addiu $v0, $v0, %lo(stat_change_init) -/* 3AEE50 E00AC030 AFA20018 */ sw $v0, 0x18($sp) -/* 3AEE54 E00AC034 3C02E00B */ lui $v0, %hi(stat_change_update) -/* 3AEE58 E00AC038 2442C124 */ addiu $v0, $v0, %lo(stat_change_update) -/* 3AEE5C E00AC03C AFA2001C */ sw $v0, 0x1c($sp) -/* 3AEE60 E00AC040 3C02E00B */ lui $v0, %hi(stat_change_render) -/* 3AEE64 E00AC044 2442C280 */ addiu $v0, $v0, %lo(stat_change_render) -/* 3AEE68 E00AC048 AFA20020 */ sw $v0, 0x20($sp) -/* 3AEE6C E00AC04C 3C02E00B */ lui $v0, %hi(func_E00AC288) -/* 3AEE70 E00AC050 2442C288 */ addiu $v0, $v0, %lo(func_E00AC288) -/* 3AEE74 E00AC054 AFA20024 */ sw $v0, 0x24($sp) -/* 3AEE78 E00AC058 24020056 */ addiu $v0, $zero, 0x56 -/* 3AEE7C E00AC05C AFBF0030 */ sw $ra, 0x30($sp) -/* 3AEE80 E00AC060 AFB00028 */ sw $s0, 0x28($sp) -/* 3AEE84 E00AC064 AFA00010 */ sw $zero, 0x10($sp) -/* 3AEE88 E00AC068 0C080124 */ jal shim_create_effect_instance -/* 3AEE8C E00AC06C AFA20014 */ sw $v0, 0x14($sp) -/* 3AEE90 E00AC070 24040044 */ addiu $a0, $zero, 0x44 -/* 3AEE94 E00AC074 24030001 */ addiu $v1, $zero, 1 -/* 3AEE98 E00AC078 0040802D */ daddu $s0, $v0, $zero -/* 3AEE9C E00AC07C 0C08012C */ jal shim_general_heap_malloc -/* 3AEEA0 E00AC080 AE030008 */ sw $v1, 8($s0) -/* 3AEEA4 E00AC084 0040202D */ daddu $a0, $v0, $zero -/* 3AEEA8 E00AC088 14800003 */ bnez $a0, .LE00AC098 -/* 3AEEAC E00AC08C AE02000C */ sw $v0, 0xc($s0) -.LE00AC090: -/* 3AEEB0 E00AC090 0802B024 */ j .LE00AC090 -/* 3AEEB4 E00AC094 00000000 */ nop -.LE00AC098: -/* 3AEEB8 E00AC098 AC910000 */ sw $s1, ($a0) -/* 3AEEBC E00AC09C E4940004 */ swc1 $f20, 4($a0) -/* 3AEEC0 E00AC0A0 E4960008 */ swc1 $f22, 8($a0) -/* 3AEEC4 E00AC0A4 E498000C */ swc1 $f24, 0xc($a0) -/* 3AEEC8 E00AC0A8 8FA20064 */ lw $v0, 0x64($sp) -/* 3AEECC E00AC0AC 3C03E00B */ lui $v1, %hi(D_E00AC880) -/* 3AEED0 E00AC0B0 2463C880 */ addiu $v1, $v1, %lo(D_E00AC880) -/* 3AEED4 E00AC0B4 AC800018 */ sw $zero, 0x18($a0) -/* 3AEED8 E00AC0B8 AC820014 */ sw $v0, 0x14($a0) -/* 3AEEDC E00AC0BC C7A00060 */ lwc1 $f0, 0x60($sp) -/* 3AEEE0 E00AC0C0 240200FF */ addiu $v0, $zero, 0xff -/* 3AEEE4 E00AC0C4 AC820024 */ sw $v0, 0x24($a0) -/* 3AEEE8 E00AC0C8 001110C0 */ sll $v0, $s1, 3 -/* 3AEEEC E00AC0CC 00431021 */ addu $v0, $v0, $v1 -/* 3AEEF0 E00AC0D0 AC800028 */ sw $zero, 0x28($a0) -/* 3AEEF4 E00AC0D4 AC80002C */ sw $zero, 0x2c($a0) -/* 3AEEF8 E00AC0D8 AC800030 */ sw $zero, 0x30($a0) -/* 3AEEFC E00AC0DC AC800038 */ sw $zero, 0x38($a0) -/* 3AEF00 E00AC0E0 AC800034 */ sw $zero, 0x34($a0) -/* 3AEF04 E00AC0E4 E4800010 */ swc1 $f0, 0x10($a0) -/* 3AEF08 E00AC0E8 8C430000 */ lw $v1, ($v0) -/* 3AEF0C E00AC0EC AC83001C */ sw $v1, 0x1c($a0) -/* 3AEF10 E00AC0F0 8C430004 */ lw $v1, 4($v0) -/* 3AEF14 E00AC0F4 0200102D */ daddu $v0, $s0, $zero -/* 3AEF18 E00AC0F8 AC830020 */ sw $v1, 0x20($a0) -/* 3AEF1C E00AC0FC 8FBF0030 */ lw $ra, 0x30($sp) -/* 3AEF20 E00AC100 8FB1002C */ lw $s1, 0x2c($sp) -/* 3AEF24 E00AC104 8FB00028 */ lw $s0, 0x28($sp) -/* 3AEF28 E00AC108 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 3AEF2C E00AC10C D7B60040 */ ldc1 $f22, 0x40($sp) -/* 3AEF30 E00AC110 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 3AEF34 E00AC114 03E00008 */ jr $ra -/* 3AEF38 E00AC118 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/stat_change/stat_change_update.s b/ver/us/asm/nonmatchings/effects/stat_change/stat_change_update.s deleted file mode 100644 index f8ce0d55f9..0000000000 --- a/ver/us/asm/nonmatchings/effects/stat_change/stat_change_update.s +++ /dev/null @@ -1,106 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E00AC8D0 -.double 0.01 - -dlabel D_E00AC8D8 -.double 0.01 - -.section .text -glabel stat_change_update -/* 3AEF44 E00AC124 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3AEF48 E00AC128 AFBF0010 */ sw $ra, 0x10($sp) -/* 3AEF4C E00AC12C 8C85000C */ lw $a1, 0xc($a0) -/* 3AEF50 E00AC130 8CA20014 */ lw $v0, 0x14($a1) -/* 3AEF54 E00AC134 8CA60018 */ lw $a2, 0x18($a1) -/* 3AEF58 E00AC138 2442FFFF */ addiu $v0, $v0, -1 -/* 3AEF5C E00AC13C ACA20014 */ sw $v0, 0x14($a1) -/* 3AEF60 E00AC140 0040182D */ daddu $v1, $v0, $zero -/* 3AEF64 E00AC144 24C20001 */ addiu $v0, $a2, 1 -/* 3AEF68 E00AC148 04610005 */ bgez $v1, .LE00AC160 -/* 3AEF6C E00AC14C ACA20018 */ sw $v0, 0x18($a1) -/* 3AEF70 E00AC150 0C080128 */ jal shim_remove_effect -/* 3AEF74 E00AC154 00000000 */ nop -/* 3AEF78 E00AC158 0802B09D */ j .LE00AC274 -/* 3AEF7C E00AC15C 00000000 */ nop -.LE00AC160: -/* 3AEF80 E00AC160 8CA3001C */ lw $v1, 0x1c($a1) -/* 3AEF84 E00AC164 24020001 */ addiu $v0, $zero, 1 -/* 3AEF88 E00AC168 14620019 */ bne $v1, $v0, .LE00AC1D0 -/* 3AEF8C E00AC16C 28C20021 */ slti $v0, $a2, 0x21 -/* 3AEF90 E00AC170 10400019 */ beqz $v0, .LE00AC1D8 -/* 3AEF94 E00AC174 00061040 */ sll $v0, $a2, 1 -/* 3AEF98 E00AC178 3C03E00B */ lui $v1, %hi(D_E00AC83C) -/* 3AEF9C E00AC17C 2463C83C */ addiu $v1, $v1, %lo(D_E00AC83C) -/* 3AEFA0 E00AC180 00431021 */ addu $v0, $v0, $v1 -/* 3AEFA4 E00AC184 90430000 */ lbu $v1, ($v0) -/* 3AEFA8 E00AC188 ACA30024 */ sw $v1, 0x24($a1) -/* 3AEFAC E00AC18C 90420001 */ lbu $v0, 1($v0) -/* 3AEFB0 E00AC190 3C01E00B */ lui $at, %hi(D_E00AC8D0) -/* 3AEFB4 E00AC194 D422C8D0 */ ldc1 $f2, %lo(D_E00AC8D0)($at) -/* 3AEFB8 E00AC198 44820000 */ mtc1 $v0, $f0 -/* 3AEFBC E00AC19C 00000000 */ nop -/* 3AEFC0 E00AC1A0 46800020 */ cvt.s.w $f0, $f0 -/* 3AEFC4 E00AC1A4 46000021 */ cvt.d.s $f0, $f0 -/* 3AEFC8 E00AC1A8 46220002 */ mul.d $f0, $f0, $f2 -/* 3AEFCC E00AC1AC 00000000 */ nop -/* 3AEFD0 E00AC1B0 3C013F80 */ lui $at, 0x3f80 -/* 3AEFD4 E00AC1B4 44812000 */ mtc1 $at, $f4 -/* 3AEFD8 E00AC1B8 46200020 */ cvt.s.d $f0, $f0 -/* 3AEFDC E00AC1BC 46002081 */ sub.s $f2, $f4, $f0 -/* 3AEFE0 E00AC1C0 46041080 */ add.s $f2, $f2, $f4 -/* 3AEFE4 E00AC1C4 E4A0002C */ swc1 $f0, 0x2c($a1) -/* 3AEFE8 E00AC1C8 0802B08F */ j .LE00AC23C -/* 3AEFEC E00AC1CC E4A20028 */ swc1 $f2, 0x28($a1) -.LE00AC1D0: -/* 3AEFF0 E00AC1D0 14400005 */ bnez $v0, .LE00AC1E8 -/* 3AEFF4 E00AC1D4 00061040 */ sll $v0, $a2, 1 -.LE00AC1D8: -/* 3AEFF8 E00AC1D8 ACA00024 */ sw $zero, 0x24($a1) -/* 3AEFFC E00AC1DC ACA00028 */ sw $zero, 0x28($a1) -/* 3AF000 E00AC1E0 0802B08F */ j .LE00AC23C -/* 3AF004 E00AC1E4 ACA0002C */ sw $zero, 0x2c($a1) -.LE00AC1E8: -/* 3AF008 E00AC1E8 3C03E00B */ lui $v1, %hi(D_E00AC7F8) -/* 3AF00C E00AC1EC 2463C7F8 */ addiu $v1, $v1, %lo(D_E00AC7F8) -/* 3AF010 E00AC1F0 00431021 */ addu $v0, $v0, $v1 -/* 3AF014 E00AC1F4 90430000 */ lbu $v1, ($v0) -/* 3AF018 E00AC1F8 ACA30024 */ sw $v1, 0x24($a1) -/* 3AF01C E00AC1FC 90420001 */ lbu $v0, 1($v0) -/* 3AF020 E00AC200 3C01E00B */ lui $at, %hi(D_E00AC8D8) -/* 3AF024 E00AC204 D422C8D8 */ ldc1 $f2, %lo(D_E00AC8D8)($at) -/* 3AF028 E00AC208 44820000 */ mtc1 $v0, $f0 -/* 3AF02C E00AC20C 00000000 */ nop -/* 3AF030 E00AC210 46800020 */ cvt.s.w $f0, $f0 -/* 3AF034 E00AC214 46000021 */ cvt.d.s $f0, $f0 -/* 3AF038 E00AC218 46220002 */ mul.d $f0, $f0, $f2 -/* 3AF03C E00AC21C 00000000 */ nop -/* 3AF040 E00AC220 3C013F80 */ lui $at, 0x3f80 -/* 3AF044 E00AC224 44812000 */ mtc1 $at, $f4 -/* 3AF048 E00AC228 46200020 */ cvt.s.d $f0, $f0 -/* 3AF04C E00AC22C 46002081 */ sub.s $f2, $f4, $f0 -/* 3AF050 E00AC230 46041080 */ add.s $f2, $f2, $f4 -/* 3AF054 E00AC234 E4A00028 */ swc1 $f0, 0x28($a1) -/* 3AF058 E00AC238 E4A2002C */ swc1 $f2, 0x2c($a1) -.LE00AC23C: -/* 3AF05C E00AC23C ACA0003C */ sw $zero, 0x3c($a1) -/* 3AF060 E00AC240 ACA00040 */ sw $zero, 0x40($a1) -/* 3AF064 E00AC244 C4A60004 */ lwc1 $f6, 4($a1) -/* 3AF068 E00AC248 C4A00030 */ lwc1 $f0, 0x30($a1) -/* 3AF06C E00AC24C C4A40008 */ lwc1 $f4, 8($a1) -/* 3AF070 E00AC250 46003180 */ add.s $f6, $f6, $f0 -/* 3AF074 E00AC254 C4A00038 */ lwc1 $f0, 0x38($a1) -/* 3AF078 E00AC258 C4A2000C */ lwc1 $f2, 0xc($a1) -/* 3AF07C E00AC25C 46002100 */ add.s $f4, $f4, $f0 -/* 3AF080 E00AC260 C4A00034 */ lwc1 $f0, 0x34($a1) -/* 3AF084 E00AC264 46001080 */ add.s $f2, $f2, $f0 -/* 3AF088 E00AC268 E4A60004 */ swc1 $f6, 4($a1) -/* 3AF08C E00AC26C E4A40008 */ swc1 $f4, 8($a1) -/* 3AF090 E00AC270 E4A2000C */ swc1 $f2, 0xc($a1) -.LE00AC274: -/* 3AF094 E00AC274 8FBF0010 */ lw $ra, 0x10($sp) -/* 3AF098 E00AC278 03E00008 */ jr $ra -/* 3AF09C E00AC27C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/tattle_window/func_E00D8264.s b/ver/us/asm/nonmatchings/effects/tattle_window/func_E00D8264.s deleted file mode 100644 index 971f5fe869..0000000000 --- a/ver/us/asm/nonmatchings/effects/tattle_window/func_E00D8264.s +++ /dev/null @@ -1,11 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_E00D8264 -/* 3D6A24 E00D8264 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3D6A28 E00D8268 AFBF0010 */ sw $ra, 0x10($sp) -/* 3D6A2C E00D826C 0C03618C */ jal func_E00D8630 -/* 3D6A30 E00D8270 00000000 */ nop -/* 3D6A34 E00D8274 8FBF0010 */ lw $ra, 0x10($sp) -/* 3D6A38 E00D8278 03E00008 */ jr $ra -/* 3D6A3C E00D827C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/tattle_window/tattle_window_main.s b/ver/us/asm/nonmatchings/effects/tattle_window/tattle_window_main.s deleted file mode 100644 index 2efc3b075d..0000000000 --- a/ver/us/asm/nonmatchings/effects/tattle_window/tattle_window_main.s +++ /dev/null @@ -1,80 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel tattle_window_main -/* 3D67C0 E00D8000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 3D67C4 E00D8004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 3D67C8 E00D8008 4485A000 */ mtc1 $a1, $f20 -/* 3D67CC E00D800C F7B60040 */ sdc1 $f22, 0x40($sp) -/* 3D67D0 E00D8010 4486B000 */ mtc1 $a2, $f22 -/* 3D67D4 E00D8014 AFB20030 */ sw $s2, 0x30($sp) -/* 3D67D8 E00D8018 0080902D */ daddu $s2, $a0, $zero -/* 3D67DC E00D801C F7B80048 */ sdc1 $f24, 0x48($sp) -/* 3D67E0 E00D8020 4487C000 */ mtc1 $a3, $f24 -/* 3D67E4 E00D8024 27A40010 */ addiu $a0, $sp, 0x10 -/* 3D67E8 E00D8028 AFB1002C */ sw $s1, 0x2c($sp) -/* 3D67EC E00D802C 8FB10064 */ lw $s1, 0x64($sp) -/* 3D67F0 E00D8030 3C02E00E */ lui $v0, %hi(tattle_window_init) -/* 3D67F4 E00D8034 24428120 */ addiu $v0, $v0, %lo(tattle_window_init) -/* 3D67F8 E00D8038 AFA20018 */ sw $v0, 0x18($sp) -/* 3D67FC E00D803C 3C02E00E */ lui $v0, %hi(tattle_window_update) -/* 3D6800 E00D8040 24428128 */ addiu $v0, $v0, %lo(tattle_window_update) -/* 3D6804 E00D8044 AFA2001C */ sw $v0, 0x1c($sp) -/* 3D6808 E00D8048 3C02E00E */ lui $v0, %hi(tattle_window_render) -/* 3D680C E00D804C 2442825C */ addiu $v0, $v0, %lo(tattle_window_render) -/* 3D6810 E00D8050 AFA20020 */ sw $v0, 0x20($sp) -/* 3D6814 E00D8054 3C02E00E */ lui $v0, %hi(func_E00D8264) -/* 3D6818 E00D8058 24428264 */ addiu $v0, $v0, %lo(func_E00D8264) -/* 3D681C E00D805C AFA20024 */ sw $v0, 0x24($sp) -/* 3D6820 E00D8060 2402006C */ addiu $v0, $zero, 0x6c -/* 3D6824 E00D8064 AFBF0034 */ sw $ra, 0x34($sp) -/* 3D6828 E00D8068 AFB00028 */ sw $s0, 0x28($sp) -/* 3D682C E00D806C AFA00010 */ sw $zero, 0x10($sp) -/* 3D6830 E00D8070 0C080124 */ jal shim_create_effect_instance -/* 3D6834 E00D8074 AFA20014 */ sw $v0, 0x14($sp) -/* 3D6838 E00D8078 24040038 */ addiu $a0, $zero, 0x38 -/* 3D683C E00D807C 24030001 */ addiu $v1, $zero, 1 -/* 3D6840 E00D8080 0040802D */ daddu $s0, $v0, $zero -/* 3D6844 E00D8084 0C08012C */ jal shim_general_heap_malloc -/* 3D6848 E00D8088 AE030008 */ sw $v1, 8($s0) -/* 3D684C E00D808C 0040202D */ daddu $a0, $v0, $zero -/* 3D6850 E00D8090 14800003 */ bnez $a0, .LE00D80A0 -/* 3D6854 E00D8094 AE02000C */ sw $v0, 0xc($s0) -.LE00D8098: -/* 3D6858 E00D8098 08036026 */ j .LE00D8098 -/* 3D685C E00D809C 00000000 */ nop -.LE00D80A0: -/* 3D6860 E00D80A0 AC920000 */ sw $s2, ($a0) -/* 3D6864 E00D80A4 1E200004 */ bgtz $s1, .LE00D80B8 -/* 3D6868 E00D80A8 AC800014 */ sw $zero, 0x14($a0) -/* 3D686C E00D80AC 240203E8 */ addiu $v0, $zero, 0x3e8 -/* 3D6870 E00D80B0 0803602F */ j .LE00D80BC -/* 3D6874 E00D80B4 AC820010 */ sw $v0, 0x10($a0) -.LE00D80B8: -/* 3D6878 E00D80B8 AC910010 */ sw $s1, 0x10($a0) -.LE00D80BC: -/* 3D687C E00D80BC E4940004 */ swc1 $f20, 4($a0) -/* 3D6880 E00D80C0 E4960008 */ swc1 $f22, 8($a0) -/* 3D6884 E00D80C4 E498000C */ swc1 $f24, 0xc($a0) -/* 3D6888 E00D80C8 AC80001C */ sw $zero, 0x1c($a0) -/* 3D688C E00D80CC C7A00060 */ lwc1 $f0, 0x60($sp) -/* 3D6890 E00D80D0 0200102D */ daddu $v0, $s0, $zero -/* 3D6894 E00D80D4 AC800028 */ sw $zero, 0x28($a0) -/* 3D6898 E00D80D8 E4800018 */ swc1 $f0, 0x18($a0) -/* 3D689C E00D80DC C4800028 */ lwc1 $f0, 0x28($a0) -/* 3D68A0 E00D80E0 240300FF */ addiu $v1, $zero, 0xff -/* 3D68A4 E00D80E4 AC800020 */ sw $zero, 0x20($a0) -/* 3D68A8 E00D80E8 AC800024 */ sw $zero, 0x24($a0) -/* 3D68AC E00D80EC A0830034 */ sb $v1, 0x34($a0) -/* 3D68B0 E00D80F0 A0830035 */ sb $v1, 0x35($a0) -/* 3D68B4 E00D80F4 E4800030 */ swc1 $f0, 0x30($a0) -/* 3D68B8 E00D80F8 E480002C */ swc1 $f0, 0x2c($a0) -/* 3D68BC E00D80FC 8FBF0034 */ lw $ra, 0x34($sp) -/* 3D68C0 E00D8100 8FB20030 */ lw $s2, 0x30($sp) -/* 3D68C4 E00D8104 8FB1002C */ lw $s1, 0x2c($sp) -/* 3D68C8 E00D8108 8FB00028 */ lw $s0, 0x28($sp) -/* 3D68CC E00D810C D7B80048 */ ldc1 $f24, 0x48($sp) -/* 3D68D0 E00D8110 D7B60040 */ ldc1 $f22, 0x40($sp) -/* 3D68D4 E00D8114 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 3D68D8 E00D8118 03E00008 */ jr $ra -/* 3D68DC E00D811C 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/tattle_window/tattle_window_update.s b/ver/us/asm/nonmatchings/effects/tattle_window/tattle_window_update.s deleted file mode 100644 index 0e354e18f1..0000000000 --- a/ver/us/asm/nonmatchings/effects/tattle_window/tattle_window_update.s +++ /dev/null @@ -1,87 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel tattle_window_update -/* 3D68E8 E00D8128 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3D68EC E00D812C AFBF0010 */ sw $ra, 0x10($sp) -/* 3D68F0 E00D8130 8C830000 */ lw $v1, ($a0) -/* 3D68F4 E00D8134 8C85000C */ lw $a1, 0xc($a0) -/* 3D68F8 E00D8138 30620010 */ andi $v0, $v1, 0x10 -/* 3D68FC E00D813C 10400005 */ beqz $v0, .LE00D8154 -/* 3D6900 E00D8140 2402FFEF */ addiu $v0, $zero, -0x11 -/* 3D6904 E00D8144 00621024 */ and $v0, $v1, $v0 -/* 3D6908 E00D8148 AC820000 */ sw $v0, ($a0) -/* 3D690C E00D814C 24020017 */ addiu $v0, $zero, 0x17 -/* 3D6910 E00D8150 ACA20010 */ sw $v0, 0x10($a1) -.LE00D8154: -/* 3D6914 E00D8154 8CA30010 */ lw $v1, 0x10($a1) -/* 3D6918 E00D8158 286203E8 */ slti $v0, $v1, 0x3e8 -/* 3D691C E00D815C 10400002 */ beqz $v0, .LE00D8168 -/* 3D6920 E00D8160 2462FFFF */ addiu $v0, $v1, -1 -/* 3D6924 E00D8164 ACA20010 */ sw $v0, 0x10($a1) -.LE00D8168: -/* 3D6928 E00D8168 8CA30014 */ lw $v1, 0x14($a1) -/* 3D692C E00D816C 8CA60010 */ lw $a2, 0x10($a1) -/* 3D6930 E00D8170 24620001 */ addiu $v0, $v1, 1 -/* 3D6934 E00D8174 04C10005 */ bgez $a2, .LE00D818C -/* 3D6938 E00D8178 ACA20014 */ sw $v0, 0x14($a1) -/* 3D693C E00D817C 0C080128 */ jal shim_remove_effect -/* 3D6940 E00D8180 00000000 */ nop -/* 3D6944 E00D8184 08036094 */ j .LE00D8250 -/* 3D6948 E00D8188 00000000 */ nop -.LE00D818C: -/* 3D694C E00D818C 00C0202D */ daddu $a0, $a2, $zero -/* 3D6950 E00D8190 C4A00018 */ lwc1 $f0, 0x18($a1) -/* 3D6954 E00D8194 28620017 */ slti $v0, $v1, 0x17 -/* 3D6958 E00D8198 ACA00028 */ sw $zero, 0x28($a1) -/* 3D695C E00D819C ACA0002C */ sw $zero, 0x2c($a1) -/* 3D6960 E00D81A0 1040000F */ beqz $v0, .LE00D81E0 -/* 3D6964 E00D81A4 E4A0001C */ swc1 $f0, 0x1c($a1) -/* 3D6968 E00D81A8 3C02E00E */ lui $v0, %hi(D_E00D8818) -/* 3D696C E00D81AC 24428818 */ addiu $v0, $v0, %lo(D_E00D8818) -/* 3D6970 E00D81B0 00031880 */ sll $v1, $v1, 2 -/* 3D6974 E00D81B4 00621821 */ addu $v1, $v1, $v0 -/* 3D6978 E00D81B8 84620000 */ lh $v0, ($v1) -/* 3D697C E00D81BC 44820000 */ mtc1 $v0, $f0 -/* 3D6980 E00D81C0 00000000 */ nop -/* 3D6984 E00D81C4 46800020 */ cvt.s.w $f0, $f0 -/* 3D6988 E00D81C8 E4A00030 */ swc1 $f0, 0x30($a1) -/* 3D698C E00D81CC 90620002 */ lbu $v0, 2($v1) -/* 3D6990 E00D81D0 A0A20034 */ sb $v0, 0x34($a1) -/* 3D6994 E00D81D4 90620003 */ lbu $v0, 3($v1) -/* 3D6998 E00D81D8 08036085 */ j .LE00D8214 -/* 3D699C E00D81DC A0A20035 */ sb $v0, 0x35($a1) -.LE00D81E0: -/* 3D69A0 E00D81E0 3C03E00E */ lui $v1, %hi(D_E00D8818) -/* 3D69A4 E00D81E4 24638818 */ addiu $v1, $v1, %lo(D_E00D8818) -/* 3D69A8 E00D81E8 84620058 */ lh $v0, 0x58($v1) -/* 3D69AC E00D81EC 44820000 */ mtc1 $v0, $f0 -/* 3D69B0 E00D81F0 00000000 */ nop -/* 3D69B4 E00D81F4 46800020 */ cvt.s.w $f0, $f0 -/* 3D69B8 E00D81F8 E4A00030 */ swc1 $f0, 0x30($a1) -/* 3D69BC E00D81FC 9062005A */ lbu $v0, 0x5a($v1) -/* 3D69C0 E00D8200 A0A20034 */ sb $v0, 0x34($a1) -/* 3D69C4 E00D8204 9063005B */ lbu $v1, 0x5b($v1) -/* 3D69C8 E00D8208 24020018 */ addiu $v0, $zero, 0x18 -/* 3D69CC E00D820C ACA20014 */ sw $v0, 0x14($a1) -/* 3D69D0 E00D8210 A0A30035 */ sb $v1, 0x35($a1) -.LE00D8214: -/* 3D69D4 E00D8214 28820017 */ slti $v0, $a0, 0x17 -/* 3D69D8 E00D8218 1040000D */ beqz $v0, .LE00D8250 -/* 3D69DC E00D821C 00041880 */ sll $v1, $a0, 2 -/* 3D69E0 E00D8220 3C02E00E */ lui $v0, %hi(D_E00D8818) -/* 3D69E4 E00D8224 24428818 */ addiu $v0, $v0, %lo(D_E00D8818) -/* 3D69E8 E00D8228 00621821 */ addu $v1, $v1, $v0 -/* 3D69EC E00D822C 84620000 */ lh $v0, ($v1) -/* 3D69F0 E00D8230 44820000 */ mtc1 $v0, $f0 -/* 3D69F4 E00D8234 00000000 */ nop -/* 3D69F8 E00D8238 46800020 */ cvt.s.w $f0, $f0 -/* 3D69FC E00D823C E4A00030 */ swc1 $f0, 0x30($a1) -/* 3D6A00 E00D8240 90620002 */ lbu $v0, 2($v1) -/* 3D6A04 E00D8244 A0A20034 */ sb $v0, 0x34($a1) -/* 3D6A08 E00D8248 90620003 */ lbu $v0, 3($v1) -/* 3D6A0C E00D824C A0A20035 */ sb $v0, 0x35($a1) -.LE00D8250: -/* 3D6A10 E00D8250 8FBF0010 */ lw $ra, 0x10($sp) -/* 3D6A14 E00D8254 03E00008 */ jr $ra -/* 3D6A18 E00D8258 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index a21df9cf67..af79489c4c 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -2339,7 +2339,7 @@ segments: vram: 0xE0024000 subsegments: - [0x339250, c, shape_spell] - - [0x339F10, data] + - [0x339F10] - [0x339F60, bin] # shape_spell gfx - name: effect_gather_energy_pink dir: effects @@ -2515,7 +2515,7 @@ segments: vram: 0xE004C000 subsegments: - [0x359F20, c, music_note] - - [0x35A580, data] + - [0x35A580] - [0x35A5E0, bin] # music_note gfx - name: effect_smoke_burst dir: effects @@ -2736,7 +2736,7 @@ segments: vram: 0xE0080000 subsegments: - [0x3812C0, c, recover] - - [0x381D80, data] + - [0x381D80] - [0x381E00, bin] # recover gfx - name: effect_disable_x dir: effects @@ -3125,7 +3125,7 @@ segments: vram: 0xE00D8000 subsegments: - [0x3D67C0, c, tattle_window] - - [0x3D6FA0, data] + - [0x3D6FA0] - [0x3D7040, bin] # tattle_window gfx - name: effect_shiny_flare dir: effects diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index a30311d243..105cf07817 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -169,6 +169,29 @@ D_09000CC8 = 0x09000CC8; D_09000CE8 = 0x09000CE8; D_09000D08 = 0x09000D08; +// effect_music_note +D_09001038 = 0x09001038; +D_090010C0 = 0x090010C0; +D_09001148 = 0x09001148; +D_090011D0 = 0x090011D0; +D_09001258 = 0x09001258; +D_090012E0 = 0x090012E0; +D_09001368 = 0x09001368; + +// effect_recover +D_09003540 = 0x09003540; +D_09003580 = 0x09003580; +D_090035C0 = 0x090035C0; +D_09003600 = 0x09003600; +D_09003640 = 0x09003640; +D_09003680 = 0x09003680; +D_090036C0 = 0x090036C0; +D_09003700 = 0x09003700; +D_09003740 = 0x09003740; +D_09003780 = 0x09003780; +D_090037C0 = 0x090037C0; +D_09003800 = 0x09003800; + // Invalid pointers from dead code dead_atan2 = 0x8002AF70; dead_gCurrentCamID = 0x800A158C;