From fec4a513acedf2cb293b827ddae8c91cde58d5d8 Mon Sep 17 00:00:00 2001 From: Spencer Vaughn Date: Wed, 12 Oct 2022 07:39:03 -0500 Subject: [PATCH] Matched effects funcs (#818) * thunderbolt_ring: Matched update and main * snowfall_main: Matched * shiny_flare_main: Matched * shiny_flare_update: Matched * thunderbolt_ring_update: clean up * rising_bubble_main: matched * ring_blast: Matched main and update * quizmo_stage: Matched main and update * ring_blast_main: Fixed warning message * PR_818: PR clean up --- include/effects.h | 93 ++++++++++----- include/effects_internal.h | 12 +- src/effects/quizmo_stage.c | 75 +++++++++++- src/effects/ring_blast.c | 60 +++++++++- src/effects/rising_bubble.c | 67 ++++++++--- src/effects/shiny_flare.c | 63 ++++++++++- src/effects/snowfall.c | 44 ++++++- src/effects/thunderbolt_ring.c | 77 ++++++++++++- .../effects/quizmo_stage/quizmo_stage_main.s | 70 ------------ .../quizmo_stage/quizmo_stage_update.s | 64 ----------- .../effects/ring_blast/ring_blast_main.s | 82 -------------- .../effects/ring_blast/ring_blast_update.s | 54 --------- .../rising_bubble/rising_bubble_main.s | 107 ------------------ .../effects/shiny_flare/shiny_flare_main.s | 69 ----------- .../effects/shiny_flare/shiny_flare_update.s | 71 ------------ .../effects/snowfall/snowfall_main.s | 72 ------------ .../thunderbolt_ring/thunderbolt_ring_main.s | 79 ------------- .../thunderbolt_ring_update.s | 69 ----------- 18 files changed, 425 insertions(+), 803 deletions(-) delete mode 100644 ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_main.s delete mode 100644 ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_update.s delete mode 100644 ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_main.s delete mode 100644 ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_update.s delete mode 100644 ver/us/asm/nonmatchings/effects/rising_bubble/rising_bubble_main.s delete mode 100644 ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_main.s delete mode 100644 ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_update.s delete mode 100644 ver/us/asm/nonmatchings/effects/snowfall/snowfall_main.s delete mode 100644 ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_main.s delete mode 100644 ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_update.s diff --git a/include/effects.h b/include/effects.h index 13218a7d68..b523267ce0 100644 --- a/include/effects.h +++ b/include/effects.h @@ -585,20 +585,27 @@ typedef struct StarsShimmerFXData { } StarsShimmerFXData; // size = unknown typedef struct RisingBubbleFXData { - /* 0x00 */ char unk_00[0x08]; - /* 0x08 */ f32 unk_08; - /* 0x0C */ char unk_0C[0x04]; + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; /* 0x10 */ f32 unk_10; /* 0x14 */ s32 unk_14; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 unk_1C; + /* 0x18 */ s32 timeLeft; + /* 0x1C */ s32 lifeTime; /* 0x20 */ s32 unk_20; /* 0x24 */ f32 unk_24; -} RisingBubbleFXData; // size = unknown +} RisingBubbleFXData; // size = 0x28 typedef struct RingBlastFXData { - /* 0x00 */ char todo[0]; -} RingBlastFXData; // size = unknown + /* 0x00 */ u16 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 unk_10; + /* 0x14 */ s32 timeLeft; + /* 0x18 */ s32 lifeTime; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; +} RingBlastFXData; // size = 0x2C // Likely to be the same as GreenImpactFXData and RedImpactFXData typedef struct ShockwaveFXData { @@ -1121,8 +1128,16 @@ typedef struct ConfettiFXData { } ConfettiFXData; // size = 0x34 typedef struct SnowfallFXData { - /* 0x00 */ char todo[0]; -} SnowfallFXData; // size = unknown + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ char unk_0C[0x14]; + /* 0x20 */ s32 timeLeft; + /* 0x24 */ s32 lifeTime; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; +} SnowfallFXData; // size = 0x34 typedef struct Effect46FXData { /* 0x00 */ s32 unk_00; @@ -1272,10 +1287,10 @@ typedef struct ChompDropFXData { } ChompDropFXData; // size = 0x48 typedef struct QuizmoStageFXData { - /* 0x00 */ char unk_00[0x4]; + /* 0x00 */ s32 unk_00; /* 0x04 */ s32 vanishTimer; /* 0x08 */ s32 lifetime; - /* 0x10 */ Vec3f origin; + /* 0x0C */ Vec3f origin; /* 0x18 */ s32 microphoneRaiseAmt; /* 0x1C */ s32 rearWallRaiseAmt; /* 0x20 */ s32 leftWallRaiseAmt; @@ -1286,8 +1301,8 @@ typedef struct QuizmoStageFXData { /* 0x34 */ s32 lightScrollDelay; /* 0x38 */ s32 unkEffectMode; /* 0x3C */ s32 unk_3C; // stage hidden when == 0xFF - /* 0x3C */ char unk_40[0x10]; -} QuizmoStageFXData; // size ~ 0x50 (as allocated on heap) + /* 0x40 */ char unk_40[0x04]; +} QuizmoStageFXData; // size 0x44 typedef struct RadiatingEnergyOrbFXData { /* 0x00 */ char todo[0]; @@ -1381,9 +1396,18 @@ typedef struct SnakingStaticFXData { } SnakingStaticFXData; // size = unknown typedef struct ThunderboltRingFXData { - /* 0x00 */ char unk_00[0x30]; + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ s32 timeLeft; + /* 0x14 */ s32 lifeTime; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; /* 0x30 */ s32 unk_30; -} ThunderboltRingFXData; // size = ? +} ThunderboltRingFXData; // size = 0x34 typedef struct SquirtFXData { /* 0x00 */ char todo[0]; @@ -1672,8 +1696,17 @@ typedef struct TattleWindowFXData { } TattleWindowFXData; // size = 0x38 typedef struct ShinyFlareFXData { - /* 0x00 */ char todo[0]; -} ShinyFlareFXData; // size = unknown + /* 0x00 */ s32 unk_00; + /* 0x04 */ Vec3f pos; + /* 0x10 */ s32 timeLeft; + /* 0x14 */ s32 lifeTime; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; +} ShinyFlareFXData; // size = 0x30 typedef struct HuffPuffBreathFXData { /* 0x00 */ s32 unk_00; @@ -1764,18 +1797,18 @@ typedef struct HieroglyphsFXData { } HieroglyphsFXData; // size = 0x3C typedef struct MiscParticlesFXData { - char unk_00[0x4]; - Vec3f pos; - f32 scaleX; - f32 scaleY; - char unk_18[0x20]; - s32 unk_38; - s32 unk_3C; - s32 unk_40; - char unk_44[0x4]; - s32 unk_48; - s32 unk_4C; - s32 unk_50; + /* 0x00 */ char unk_00[0x4]; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 scaleX; + /* 0x14 */ f32 scaleY; + /* 0x18 */ char unk_18[0x20]; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ char unk_44[0x4]; + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; } MiscParticlesFXData; // size = ? typedef struct StaticStatusFXData { diff --git a/include/effects_internal.h b/include/effects_internal.h index 0738d1af7a..e2b9c58569 100644 --- a/include/effects_internal.h +++ b/include/effects_internal.h @@ -67,8 +67,8 @@ FX_MAIN(purple_ring_main); FX_MAIN(flame_main); void stars_burst_main(s32, f32, f32, f32, f32, f32, s32); FX_MAIN(stars_shimmer_main); -FX_MAIN(rising_bubble_main); -FX_MAIN(ring_blast_main); +void rising_bubble_main(s32, f32, f32, f32, f32); +void ring_blast_main(s32, f32, f32, f32, f32, s32); void shockwave_main(s32, f32, f32, f32); void music_note_main(s32, f32, f32, f32); void smoke_burst_main(s32, f32, f32, f32, f32, s32); @@ -100,7 +100,7 @@ EffectInstance* disable_x_main(s32, f32, f32, f32, s32); EffectInstance* bombette_breaking_main(s32, s32, s32, f32, s32, s32); FX_MAIN(firework_main); FX_MAIN(confetti_main); -FX_MAIN(snowfall_main); +EffectInstance* snowfall_main(s32, s32); FX_MAIN(fx_46_main); EffectInstance* gather_magic_main(s32, f32, f32, f32, f32, s32); EffectInstance* attack_result_text_main(s32, f32, f32, f32, f32, s32); @@ -109,7 +109,7 @@ EffectInstance* flashing_box_shockwave_main(s32, f32, f32, f32, f32, f32); EffectInstance* balloon_main(s32, f32, f32, f32, f32, s32); EffectInstance* floating_rock_main(s32, f32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* chomp_drop_main(s32, f32, f32, f32, f32, s32, f32, s32, f32, s32); -FX_MAIN(quizmo_stage_main); +EffectInstance* quizmo_stage_main(s32, f32, f32, f32); FX_MAIN(radiating_energy_orb_main); FX_MAIN(quizmo_answer_main); FX_MAIN(motion_blur_flame_main); @@ -119,7 +119,7 @@ FX_MAIN(quizmo_audience_main); EffectInstance* butterflies_main(s32, f32, f32, f32); EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32); EffectInstance* snaking_static_main(s32, f32, f32, f32, f32, s32); -FX_MAIN(thunderbolt_ring_main); +EffectInstance* thunderbolt_ring_main(s32, f32, f32, f32, f32, s32); FX_MAIN(squirt_main); FX_MAIN(water_block_main); FX_MAIN(waterfall_main); @@ -139,7 +139,7 @@ EffectInstance* red_impact_main(s32, f32, f32, f32, f32); EffectInstance* floating_cloud_puff_main(s32, f32, f32, f32, f32, s32); FX_MAIN(energy_in_out_main); EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32); -FX_MAIN(shiny_flare_main); +EffectInstance* shiny_flare_main(s32, f32, f32, f32, f32); EffectInstance* huff_puff_breath_main(s32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* cold_breath_main(s32, f32, f32, f32, f32, s32); EffectInstance* embers_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, f32, f32); diff --git a/src/effects/quizmo_stage.c b/src/effects/quizmo_stage.c index 3f7062a5a1..34e9a3df7b 100644 --- a/src/effects/quizmo_stage.c +++ b/src/effects/quizmo_stage.c @@ -3,12 +3,81 @@ void quizmo_stage_appendGfx(void* effect); -INCLUDE_ASM(s32, "effects/quizmo_stage", quizmo_stage_main); +void quizmo_stage_init(EffectInstance* effect); +void quizmo_stage_update(EffectInstance* effect); +void quizmo_stage_render(EffectInstance* effect); -void quizmo_stage_init(void) { +EffectInstance* quizmo_stage_main(s32 arg0, f32 posX, f32 posY, f32 posZ) { + EffectBlueprint effectBp; + EffectInstance* effect; + QuizmoStageFXData* data; + s32 numParts = 1; + + effectBp.init = quizmo_stage_init; + effectBp.update = quizmo_stage_update; + effectBp.renderWorld = quizmo_stage_render; + effectBp.unk_00 = 0; + effectBp.unk_14 = 0; + effectBp.effectID = EFFECT_QUIZMO_STAGE; + + effect = shim_create_effect_instance(&effectBp); + effect->numParts = numParts; + + data = effect->data.quizmoStage = shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(data != NULL); + + data->vanishTimer = 100; + data->microphoneRaiseAmt = 255; + data->rearWallRaiseAmt = 255; + data->leftWallRaiseAmt = 255; + data->rightWallRaiseAmt = 255; + data->podiumRaiseAmt = 255; + data->lightScrollIncrement = 64; + data->unk_00 = arg0; + data->origin.x = posX; + data->origin.y = posY; + data->origin.z = posZ; + data->lightScrollAmt = 0; + data->lightScrollDelay = 15; + data->unkEffectMode = 0; + data->lifetime = 0; + + return effect; } -INCLUDE_ASM(s32, "effects/quizmo_stage", quizmo_stage_update); +void quizmo_stage_init(EffectInstance* effect) { +} + +void quizmo_stage_update(EffectInstance *effect) { + QuizmoStageFXData *data = effect->data.quizmoStage; + s32 lifeTime; + + if (effect->flags & 16) { + effect->flags &= ~16; + data->vanishTimer = 30; + } + + if (data->vanishTimer < 100) { + data->vanishTimer--; + } + + data->lifetime++; + lifeTime = data->lifetime; + + if (data->vanishTimer < 0) { + shim_remove_effect(effect); + return; + } + if (data->vanishTimer < 16) { + data->microphoneRaiseAmt = data->vanishTimer * 16; + } + if ((lifeTime % data->lightScrollDelay) == 0) { + data->lightScrollAmt += data->lightScrollIncrement; + if (data->lightScrollAmt >= 1025) { + data->lightScrollAmt -= 1024; + } + } +} void quizmo_stage_render(EffectInstance* effect) { RenderTask renderTask; diff --git a/src/effects/ring_blast.c b/src/effects/ring_blast.c index f3b4bd89b8..fab1734164 100644 --- a/src/effects/ring_blast.c +++ b/src/effects/ring_blast.c @@ -2,13 +2,67 @@ #include "effects_internal.h" void ring_blast_appendGfx(void* effect); +void ring_blast_init(EffectInstance* effect); +void ring_blast_update(EffectInstance* effect); +void ring_blast_render(EffectInstance* effect); -INCLUDE_ASM(s32, "effects/ring_blast", ring_blast_main); +void ring_blast_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 arg5) { + EffectBlueprint effectBp; + EffectInstance* effect; + RingBlastFXData* data; + s32 numParts = 1; -void ring_blast_init(void) { + effectBp.init = ring_blast_init; + effectBp.update = &ring_blast_update; + effectBp.renderWorld = ring_blast_render; + effectBp.unk_00 = 0; + effectBp.unk_14 = 0; + effectBp.effectID = EFFECT_RING_BLAST; + + effect = shim_create_effect_instance(&effectBp); + effect->numParts = numParts; + data = effect->data.ringBlast = shim_general_heap_malloc(numParts * sizeof(*data)); + + ASSERT(data != NULL); + shim_mem_clear(data, numParts * sizeof(*data)); + + data->timeLeft = arg5; + data->lifeTime = 0; + data->unk_1C = arg5; + data->unk_20 = 0; + data->unk_00 = arg0; + data->pos.x = posX; + data->pos.y = posY; + data->pos.z = posZ; + data->unk_10 = arg4; + data->unk_24 = 0; + if (arg0 == 0) { + data->unk_28 = 0; + return; + } + data->unk_28 = 40; } -INCLUDE_ASM(s32, "effects/ring_blast", ring_blast_update); +void ring_blast_init(EffectInstance* effect) { +} + +void ring_blast_update(EffectInstance* effect) { + RingBlastFXData* data = effect->data.ringBlast; + + data->unk_20 = data->lifeTime * 8.0f / data->unk_1C; + + data->lifeTime++; + data->timeLeft--; + + if (data->timeLeft < 0) { + shim_remove_effect(effect); + return; + } + data->unk_24 += data->unk_28; + if (data->unk_00 == 0) { + data->unk_10 += 0.1; + } +} void ring_blast_render(EffectInstance* effect) { RenderTask renderTask; diff --git a/src/effects/rising_bubble.c b/src/effects/rising_bubble.c index b5f5d46060..ba9485dbdc 100644 --- a/src/effects/rising_bubble.c +++ b/src/effects/rising_bubble.c @@ -1,44 +1,79 @@ #include "common.h" #include "effects_internal.h" +void rising_bubble_init(EffectInstance* effect); +void rising_bubble_update(EffectInstance* effect); +void rising_bubble_render(EffectInstance* effect); void rising_bubble_appendGfx(void* effect); -INCLUDE_ASM(s32, "effects/rising_bubble", rising_bubble_main); +void rising_bubble_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4) { + EffectBlueprint effectBp; + EffectInstance* effect; + RisingBubbleFXData* data; + s32 numParts = 1; -void rising_bubble_init(void) { + effectBp.unk_00 = 0; + effectBp.init = rising_bubble_init; + effectBp.update = rising_bubble_update; + effectBp.renderWorld = rising_bubble_render; + effectBp.unk_14 = 0; + effectBp.effectID = EFFECT_RISING_BUBBLE; + + effect = shim_create_effect_instance(&effectBp); + effect->numParts = numParts; + data = effect->data.risingBubble = shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(data != NULL); + + data->unk_00 = arg0; + data->pos.x = posX; + data->pos.y = posY; + data->pos.z = posZ; + data->unk_14 = 0; + data->lifeTime = 0; + if (arg4 != 0.0f) { + data->unk_10 = ((shim_rand_int(3) * 0.1) + 0.7) * 0.4; + } else { + data->unk_10 = 1.0f; + } + data->timeLeft = 32; + data->unk_20 = shim_rand_int(31); + data->unk_24 = posY + arg4; +} + +void rising_bubble_init(EffectInstance* effect) { } void rising_bubble_update(EffectInstance* effect) { RisingBubbleFXData* data = effect->data.risingBubble; - s32 temp_a2 = data->unk_18; + s32 timeLeft = data->timeLeft; - if (data->unk_08 >= data->unk_24) { - data->unk_18--; - data->unk_1C++; - - if (data->unk_18 < 0) { - shim_remove_effect(effect); + if (data->pos.y >= data->unk_24) { + data->timeLeft--; + data->lifeTime++; + + if (data->timeLeft < 0) { + shim_remove_effect(effect); return; } - - if (temp_a2 >= 6) { + + if (timeLeft >= 6) { data->unk_14 += (120 - data->unk_14) * 0.3; } else { - data->unk_14 = temp_a2 * 20; + data->unk_14 = timeLeft * 20; } data->unk_20++; if (data->unk_20 >= 32) { data->unk_20 -= 32; } - + data->unk_10 += 0.1; return; } - + data->unk_14 = 255; - data->unk_1C++; - data->unk_08 += 2.0f; + data->lifeTime++; + data->pos.y += 2.0f; } void rising_bubble_render(EffectInstance* effect) { diff --git a/src/effects/shiny_flare.c b/src/effects/shiny_flare.c index 724963e0c9..90c5c57dae 100644 --- a/src/effects/shiny_flare.c +++ b/src/effects/shiny_flare.c @@ -2,13 +2,70 @@ #include "effects_internal.h" void shiny_flare_appendGfx(void* effect); +void shiny_flare_init(EffectInstance* effect); +void shiny_flare_update(EffectInstance* effect); +void shiny_flare_render(EffectInstance* effect); -INCLUDE_ASM(s32, "effects/shiny_flare", shiny_flare_main); +EffectInstance* shiny_flare_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + EffectBlueprint effectBp; + EffectInstance* effect; + ShinyFlareFXData* data; + s32 numParts = 1; -void shiny_flare_init(void) { + effectBp.init = shiny_flare_init; + effectBp.update = shiny_flare_update; + effectBp.renderWorld = shiny_flare_render; + effectBp.unk_00 = 0; + effectBp.unk_14 = 0; + effectBp.effectID = EFFECT_SHINY_FLARE; + effect = shim_create_effect_instance(&effectBp); + effect->numParts = numParts; + + data = effect->data.shinyFlare = shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(data != NULL); + + data->unk_00 = arg0; + data->lifeTime = 0; + data->timeLeft = 10; + data->unk_24 = 255; + data->pos.x = arg1; + data->pos.y = arg2; + data->pos.z = arg3; + data->unk_28 = arg4; + data->unk_18 = 70; + data->unk_1C = 180; + data->unk_20 = 120; + data->unk_2C = 0; + + return effect; } -INCLUDE_ASM(s32, "effects/shiny_flare", shiny_flare_update); +void shiny_flare_init(EffectInstance* effect) { +} + +void shiny_flare_update(EffectInstance *effect) { + ShinyFlareFXData *data = effect->data.shinyFlare; + + if (effect->flags & 16) { + effect->flags &= ~16; + data->timeLeft = 10; + } + if (data->timeLeft < 1000) { + data->timeLeft--; + } + + data->lifeTime++; + if (data->timeLeft < 0) { + shim_remove_effect(effect); + return; + } + if (data->timeLeft < 4) { + data->unk_2C *= 0.5; + return; + } + + data->unk_2C = data->lifeTime * 0.2f + 0.3; +} void shiny_flare_render(EffectInstance* effect) { RenderTask renderTask; diff --git a/src/effects/snowfall.c b/src/effects/snowfall.c index d4754eaa46..f89f0aa7ca 100644 --- a/src/effects/snowfall.c +++ b/src/effects/snowfall.c @@ -1,13 +1,53 @@ #include "common.h" #include "effects_internal.h" + +void snowfall_init(EffectInstance* effect); +void snowfall_update(EffectInstance* effect); +void snowfall_render(EffectInstance* effect); void snowfall_appendGfx(void* effect); INCLUDE_ASM(s32, "effects/snowfall", func_E008A000); -INCLUDE_ASM(s32, "effects/snowfall", snowfall_main); +void func_E008A000(SnowfallFXData* data); -void snowfall_init(void) { +EffectInstance* snowfall_main(s32 arg0, s32 arg1) { + EffectBlueprint effectBp; + EffectInstance* effect; + SnowfallFXData* data; + s32 numParts = arg1 + 1; + s32 i; + + effectBp.init = snowfall_init; + effectBp.update = snowfall_update; + effectBp.renderWorld = snowfall_render; + effectBp.unk_00 = 0; + effectBp.unk_14 = 0; + effectBp.effectID = EFFECT_SNOWFALL; + + effect = shim_create_effect_instance(&effectBp); + effect->numParts = numParts; + + data = effect->data.snowfall = shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(data != NULL); + + data->timeLeft = 100; + data->lifeTime = 0; + data->unk_28 = 255; + data->unk_04 = arg0; + data->unk_2C = arg1; + data->unk_00 = 1; + + data++; + for (i = 0; i < arg1; i++, data++) { + func_E008A000(data); + data->unk_30 = 0; + } + + return effect; +} + +void snowfall_init(EffectInstance* effect) { } INCLUDE_ASM(s32, "effects/snowfall", func_E008A290); diff --git a/src/effects/thunderbolt_ring.c b/src/effects/thunderbolt_ring.c index 283973f836..a5e6c7916f 100644 --- a/src/effects/thunderbolt_ring.c +++ b/src/effects/thunderbolt_ring.c @@ -1,14 +1,85 @@ #include "common.h" #include "effects_internal.h" +void thunderbolt_ring_init(EffectInstance* effect); +void thunderbolt_ring_update(EffectInstance* effect); +void thunderbolt_ring_render(EffectInstance* effect); void thunderbolt_ring_appendGfx(void* effect); -INCLUDE_ASM(s32, "effects/thunderbolt_ring", thunderbolt_ring_main); +EffectInstance* thunderbolt_ring_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 lifeTime) { + EffectBlueprint effectBp; + EffectInstance* effect; + ThunderboltRingFXData* data; + s32 numParts = 1; -void thunderbolt_ring_init(void) { + effectBp.init = thunderbolt_ring_init; + effectBp.update = thunderbolt_ring_update; + effectBp.renderWorld = thunderbolt_ring_render; + effectBp.unk_00 = 0; + effectBp.unk_14 = 0; + effectBp.effectID = EFFECT_THUNDERBOLT_RING; + + effect = shim_create_effect_instance(&effectBp); + effect->numParts = numParts; + + data = effect->data.thunderboltRing = shim_general_heap_malloc(numParts * sizeof(*data)); + ASSERT(data != NULL); + + data->unk_00 = arg0; + data->lifeTime = 0; + if (lifeTime <= 0) { + data->timeLeft = 1000; + } else { + data->timeLeft = lifeTime; + } + data->unk_24 = 255; + data->pos.x = posX; + data->pos.y = posY; + data->pos.z = posZ; + data->unk_28 = arg4; + data->unk_18 = 255; + data->unk_1C = 230; + data->unk_20 = 50; + data->unk_30 = 0; + data->unk_2C = 1.0f; + + return effect; } -INCLUDE_ASM(s32, "effects/thunderbolt_ring", thunderbolt_ring_update); +void thunderbolt_ring_init(EffectInstance* effect) { +} + +void thunderbolt_ring_update(EffectInstance *effect) { + ThunderboltRingFXData* data = effect->data.thunderboltRing; + s32 lifeTime; + s32 timeLeft; + + if (effect->flags & 16) { + effect->flags &= ~16; + data->timeLeft = 16; + } + if (data->timeLeft < 1000) { + data->timeLeft--; + } + + timeLeft = data->timeLeft; + data->lifeTime++; + lifeTime = data->lifeTime; + + if (timeLeft < 0) { + shim_remove_effect(effect); + return; + } + if (timeLeft < 8) { + data->unk_2C += (8 - timeLeft) * 0.3; + } + if (lifeTime < 16) { + data->unk_24 = (lifeTime * 16) + 15; + } + if (timeLeft < 8) { + data->unk_24 = (timeLeft * 32) + 31; + } +} void thunderbolt_ring_render(EffectInstance* effect) { RenderTask renderTask; diff --git a/ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_main.s b/ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_main.s deleted file mode 100644 index a95bcf6e64..0000000000 --- a/ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_main.s +++ /dev/null @@ -1,70 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel quizmo_stage_main -/* 3981F0 E009C000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 3981F4 E009C004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 3981F8 E009C008 4485A000 */ mtc1 $a1, $f20 -/* 3981FC E009C00C AFB1002C */ sw $s1, 0x2c($sp) -/* 398200 E009C010 0080882D */ daddu $s1, $a0, $zero -/* 398204 E009C014 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 398208 E009C018 4486B000 */ mtc1 $a2, $f22 -/* 39820C E009C01C 27A40010 */ addiu $a0, $sp, 0x10 -/* 398210 E009C020 F7B80048 */ sdc1 $f24, 0x48($sp) -/* 398214 E009C024 4487C000 */ mtc1 $a3, $f24 -/* 398218 E009C028 3C02E00A */ lui $v0, %hi(quizmo_stage_init) -/* 39821C E009C02C 2442C100 */ addiu $v0, $v0, %lo(quizmo_stage_init) -/* 398220 E009C030 AFA20018 */ sw $v0, 0x18($sp) -/* 398224 E009C034 3C02E00A */ lui $v0, %hi(quizmo_stage_update) -/* 398228 E009C038 2442C108 */ addiu $v0, $v0, %lo(quizmo_stage_update) -/* 39822C E009C03C AFA2001C */ sw $v0, 0x1c($sp) -/* 398230 E009C040 3C02E00A */ lui $v0, %hi(quizmo_stage_render) -/* 398234 E009C044 2442C1DC */ addiu $v0, $v0, %lo(quizmo_stage_render) -/* 398238 E009C048 AFA20020 */ sw $v0, 0x20($sp) -/* 39823C E009C04C 2402004E */ addiu $v0, $zero, 0x4e -/* 398240 E009C050 AFBF0030 */ sw $ra, 0x30($sp) -/* 398244 E009C054 AFB00028 */ sw $s0, 0x28($sp) -/* 398248 E009C058 AFA00010 */ sw $zero, 0x10($sp) -/* 39824C E009C05C AFA00024 */ sw $zero, 0x24($sp) -/* 398250 E009C060 0C080124 */ jal shim_create_effect_instance -/* 398254 E009C064 AFA20014 */ sw $v0, 0x14($sp) -/* 398258 E009C068 24040044 */ addiu $a0, $zero, 0x44 -/* 39825C E009C06C 24030001 */ addiu $v1, $zero, 1 -/* 398260 E009C070 0040802D */ daddu $s0, $v0, $zero -/* 398264 E009C074 0C08012C */ jal shim_general_heap_malloc -/* 398268 E009C078 AE030008 */ sw $v1, 8($s0) -/* 39826C E009C07C 0040202D */ daddu $a0, $v0, $zero -/* 398270 E009C080 14800003 */ bnez $a0, .LE009C090 -/* 398274 E009C084 AE02000C */ sw $v0, 0xc($s0) -.LE009C088: -/* 398278 E009C088 08027022 */ j .LE009C088 -/* 39827C E009C08C 00000000 */ nop -.LE009C090: -/* 398280 E009C090 0200102D */ daddu $v0, $s0, $zero -/* 398284 E009C094 24030064 */ addiu $v1, $zero, 0x64 -/* 398288 E009C098 AC830004 */ sw $v1, 4($a0) -/* 39828C E009C09C 240300FF */ addiu $v1, $zero, 0xff -/* 398290 E009C0A0 AC830018 */ sw $v1, 0x18($a0) -/* 398294 E009C0A4 AC83001C */ sw $v1, 0x1c($a0) -/* 398298 E009C0A8 AC830020 */ sw $v1, 0x20($a0) -/* 39829C E009C0AC AC830024 */ sw $v1, 0x24($a0) -/* 3982A0 E009C0B0 AC830028 */ sw $v1, 0x28($a0) -/* 3982A4 E009C0B4 24030040 */ addiu $v1, $zero, 0x40 -/* 3982A8 E009C0B8 AC830030 */ sw $v1, 0x30($a0) -/* 3982AC E009C0BC 2403000F */ addiu $v1, $zero, 0xf -/* 3982B0 E009C0C0 AC910000 */ sw $s1, ($a0) -/* 3982B4 E009C0C4 E494000C */ swc1 $f20, 0xc($a0) -/* 3982B8 E009C0C8 E4960010 */ swc1 $f22, 0x10($a0) -/* 3982BC E009C0CC E4980014 */ swc1 $f24, 0x14($a0) -/* 3982C0 E009C0D0 AC80002C */ sw $zero, 0x2c($a0) -/* 3982C4 E009C0D4 AC830034 */ sw $v1, 0x34($a0) -/* 3982C8 E009C0D8 AC800038 */ sw $zero, 0x38($a0) -/* 3982CC E009C0DC AC800008 */ sw $zero, 8($a0) -/* 3982D0 E009C0E0 8FBF0030 */ lw $ra, 0x30($sp) -/* 3982D4 E009C0E4 8FB1002C */ lw $s1, 0x2c($sp) -/* 3982D8 E009C0E8 8FB00028 */ lw $s0, 0x28($sp) -/* 3982DC E009C0EC D7B80048 */ ldc1 $f24, 0x48($sp) -/* 3982E0 E009C0F0 D7B60040 */ ldc1 $f22, 0x40($sp) -/* 3982E4 E009C0F4 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 3982E8 E009C0F8 03E00008 */ jr $ra -/* 3982EC E009C0FC 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_update.s b/ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_update.s deleted file mode 100644 index b847ecdb5f..0000000000 --- a/ver/us/asm/nonmatchings/effects/quizmo_stage/quizmo_stage_update.s +++ /dev/null @@ -1,64 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel quizmo_stage_update -/* 3982F8 E009C108 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3982FC E009C10C AFBF0010 */ sw $ra, 0x10($sp) -/* 398300 E009C110 8C830000 */ lw $v1, ($a0) -/* 398304 E009C114 8C85000C */ lw $a1, 0xc($a0) -/* 398308 E009C118 30620010 */ andi $v0, $v1, 0x10 -/* 39830C E009C11C 10400005 */ beqz $v0, .LE009C134 -/* 398310 E009C120 2402FFEF */ addiu $v0, $zero, -0x11 -/* 398314 E009C124 00621024 */ and $v0, $v1, $v0 -/* 398318 E009C128 AC820000 */ sw $v0, ($a0) -/* 39831C E009C12C 2402001E */ addiu $v0, $zero, 0x1e -/* 398320 E009C130 ACA20004 */ sw $v0, 4($a1) -.LE009C134: -/* 398324 E009C134 8CA30004 */ lw $v1, 4($a1) -/* 398328 E009C138 28620064 */ slti $v0, $v1, 0x64 -/* 39832C E009C13C 10400002 */ beqz $v0, .LE009C148 -/* 398330 E009C140 2462FFFF */ addiu $v0, $v1, -1 -/* 398334 E009C144 ACA20004 */ sw $v0, 4($a1) -.LE009C148: -/* 398338 E009C148 8CA20008 */ lw $v0, 8($a1) -/* 39833C E009C14C 8CA60004 */ lw $a2, 4($a1) -/* 398340 E009C150 24430001 */ addiu $v1, $v0, 1 -/* 398344 E009C154 04C10005 */ bgez $a2, .LE009C16C -/* 398348 E009C158 ACA30008 */ sw $v1, 8($a1) -/* 39834C E009C15C 0C080128 */ jal shim_remove_effect -/* 398350 E009C160 00000000 */ nop -/* 398354 E009C164 08027074 */ j .LE009C1D0 -/* 398358 E009C168 00000000 */ nop -.LE009C16C: -/* 39835C E009C16C 28C20010 */ slti $v0, $a2, 0x10 -/* 398360 E009C170 10400002 */ beqz $v0, .LE009C17C -/* 398364 E009C174 00061100 */ sll $v0, $a2, 4 -/* 398368 E009C178 ACA20018 */ sw $v0, 0x18($a1) -.LE009C17C: -/* 39836C E009C17C 8CA20034 */ lw $v0, 0x34($a1) -/* 398370 E009C180 14400002 */ bnez $v0, .LE009C18C -/* 398374 E009C184 0062001A */ div $zero, $v1, $v0 -/* 398378 E009C188 0007000D */ break 7 -.LE009C18C: -/* 39837C E009C18C 2401FFFF */ addiu $at, $zero, -1 -/* 398380 E009C190 14410004 */ bne $v0, $at, .LE009C1A4 -/* 398384 E009C194 3C018000 */ lui $at, 0x8000 -/* 398388 E009C198 14610002 */ bne $v1, $at, .LE009C1A4 -/* 39838C E009C19C 00000000 */ nop -/* 398390 E009C1A0 0006000D */ break 6 -.LE009C1A4: -/* 398394 E009C1A4 00001810 */ mfhi $v1 -/* 398398 E009C1A8 14600009 */ bnez $v1, .LE009C1D0 -/* 39839C E009C1AC 00000000 */ nop -/* 3983A0 E009C1B0 8CA2002C */ lw $v0, 0x2c($a1) -/* 3983A4 E009C1B4 8CA30030 */ lw $v1, 0x30($a1) -/* 3983A8 E009C1B8 00431821 */ addu $v1, $v0, $v1 -/* 3983AC E009C1BC 28620401 */ slti $v0, $v1, 0x401 -/* 3983B0 E009C1C0 14400003 */ bnez $v0, .LE009C1D0 -/* 3983B4 E009C1C4 ACA3002C */ sw $v1, 0x2c($a1) -/* 3983B8 E009C1C8 2462FC00 */ addiu $v0, $v1, -0x400 -/* 3983BC E009C1CC ACA2002C */ sw $v0, 0x2c($a1) -.LE009C1D0: -/* 3983C0 E009C1D0 8FBF0010 */ lw $ra, 0x10($sp) -/* 3983C4 E009C1D4 03E00008 */ jr $ra -/* 3983C8 E009C1D8 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_main.s b/ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_main.s deleted file mode 100644 index daca6297f9..0000000000 --- a/ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_main.s +++ /dev/null @@ -1,82 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel ring_blast_main -/* 356980 E0048000 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 356984 E0048004 F7B40040 */ sdc1 $f20, 0x40($sp) -/* 356988 E0048008 4485A000 */ mtc1 $a1, $f20 -/* 35698C E004800C F7B60048 */ sdc1 $f22, 0x48($sp) -/* 356990 E0048010 4486B000 */ mtc1 $a2, $f22 -/* 356994 E0048014 AFB30034 */ sw $s3, 0x34($sp) -/* 356998 E0048018 0080982D */ daddu $s3, $a0, $zero -/* 35699C E004801C F7B80050 */ sdc1 $f24, 0x50($sp) -/* 3569A0 E0048020 4487C000 */ mtc1 $a3, $f24 -/* 3569A4 E0048024 27A40010 */ addiu $a0, $sp, 0x10 -/* 3569A8 E0048028 AFB20030 */ sw $s2, 0x30($sp) -/* 3569AC E004802C 8FB2006C */ lw $s2, 0x6c($sp) -/* 3569B0 E0048030 3C02E005 */ lui $v0, %hi(ring_blast_init) -/* 3569B4 E0048034 24428128 */ addiu $v0, $v0, %lo(ring_blast_init) -/* 3569B8 E0048038 AFA20018 */ sw $v0, 0x18($sp) -/* 3569BC E004803C 3C02E005 */ lui $v0, %hi(ring_blast_update) -/* 3569C0 E0048040 24428130 */ addiu $v0, $v0, %lo(ring_blast_update) -/* 3569C4 E0048044 AFA2001C */ sw $v0, 0x1c($sp) -/* 3569C8 E0048048 3C02E005 */ lui $v0, %hi(ring_blast_render) -/* 3569CC E004804C 244281D4 */ addiu $v0, $v0, %lo(ring_blast_render) -/* 3569D0 E0048050 AFA20020 */ sw $v0, 0x20($sp) -/* 3569D4 E0048054 24020024 */ addiu $v0, $zero, 0x24 -/* 3569D8 E0048058 AFBF0038 */ sw $ra, 0x38($sp) -/* 3569DC E004805C AFB1002C */ sw $s1, 0x2c($sp) -/* 3569E0 E0048060 AFB00028 */ sw $s0, 0x28($sp) -/* 3569E4 E0048064 AFA00010 */ sw $zero, 0x10($sp) -/* 3569E8 E0048068 AFA00024 */ sw $zero, 0x24($sp) -/* 3569EC E004806C 0C080124 */ jal shim_create_effect_instance -/* 3569F0 E0048070 AFA20014 */ sw $v0, 0x14($sp) -/* 3569F4 E0048074 2404002C */ addiu $a0, $zero, 0x2c -/* 3569F8 E0048078 24110001 */ addiu $s1, $zero, 1 -/* 3569FC E004807C 0040802D */ daddu $s0, $v0, $zero -/* 356A00 E0048080 0C08012C */ jal shim_general_heap_malloc -/* 356A04 E0048084 AE110008 */ sw $s1, 8($s0) -/* 356A08 E0048088 AE02000C */ sw $v0, 0xc($s0) -/* 356A0C E004808C 0040802D */ daddu $s0, $v0, $zero -/* 356A10 E0048090 16000003 */ bnez $s0, .LE00480A0 -/* 356A14 E0048094 0200202D */ daddu $a0, $s0, $zero -.LE0048098: -/* 356A18 E0048098 08012026 */ j .LE0048098 -/* 356A1C E004809C 00000000 */ nop -.LE00480A0: -/* 356A20 E00480A0 00112840 */ sll $a1, $s1, 1 -/* 356A24 E00480A4 00B12821 */ addu $a1, $a1, $s1 -/* 356A28 E00480A8 00052880 */ sll $a1, $a1, 2 -/* 356A2C E00480AC 00B12823 */ subu $a1, $a1, $s1 -/* 356A30 E00480B0 0C080130 */ jal shim_mem_clear -/* 356A34 E00480B4 00052880 */ sll $a1, $a1, 2 -/* 356A38 E00480B8 AE120014 */ sw $s2, 0x14($s0) -/* 356A3C E00480BC AE000018 */ sw $zero, 0x18($s0) -/* 356A40 E00480C0 AE12001C */ sw $s2, 0x1c($s0) -/* 356A44 E00480C4 AE000020 */ sw $zero, 0x20($s0) -/* 356A48 E00480C8 A6130000 */ sh $s3, ($s0) -/* 356A4C E00480CC E6140004 */ swc1 $f20, 4($s0) -/* 356A50 E00480D0 E6160008 */ swc1 $f22, 8($s0) -/* 356A54 E00480D4 E618000C */ swc1 $f24, 0xc($s0) -/* 356A58 E00480D8 C7A00068 */ lwc1 $f0, 0x68($sp) -/* 356A5C E00480DC AE000024 */ sw $zero, 0x24($s0) -/* 356A60 E00480E0 16600003 */ bnez $s3, .LE00480F0 -/* 356A64 E00480E4 E6000010 */ swc1 $f0, 0x10($s0) -/* 356A68 E00480E8 08012040 */ j .LE0048100 -/* 356A6C E00480EC AE000028 */ sw $zero, 0x28($s0) -.LE00480F0: -/* 356A70 E00480F0 3C014220 */ lui $at, 0x4220 -/* 356A74 E00480F4 44810000 */ mtc1 $at, $f0 -/* 356A78 E00480F8 00000000 */ nop -/* 356A7C E00480FC E6000028 */ swc1 $f0, 0x28($s0) -.LE0048100: -/* 356A80 E0048100 8FBF0038 */ lw $ra, 0x38($sp) -/* 356A84 E0048104 8FB30034 */ lw $s3, 0x34($sp) -/* 356A88 E0048108 8FB20030 */ lw $s2, 0x30($sp) -/* 356A8C E004810C 8FB1002C */ lw $s1, 0x2c($sp) -/* 356A90 E0048110 8FB00028 */ lw $s0, 0x28($sp) -/* 356A94 E0048114 D7B80050 */ ldc1 $f24, 0x50($sp) -/* 356A98 E0048118 D7B60048 */ ldc1 $f22, 0x48($sp) -/* 356A9C E004811C D7B40040 */ ldc1 $f20, 0x40($sp) -/* 356AA0 E0048120 03E00008 */ jr $ra -/* 356AA4 E0048124 27BD0058 */ addiu $sp, $sp, 0x58 diff --git a/ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_update.s b/ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_update.s deleted file mode 100644 index 273bed9add..0000000000 --- a/ver/us/asm/nonmatchings/effects/ring_blast/ring_blast_update.s +++ /dev/null @@ -1,54 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E0048A10 -.double 0.1, 0.0 - -.section .text - -glabel ring_blast_update -/* 356AB0 E0048130 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 356AB4 E0048134 AFBF0010 */ sw $ra, 0x10($sp) -/* 356AB8 E0048138 8C85000C */ lw $a1, 0xc($a0) -/* 356ABC E004813C 3C014100 */ lui $at, 0x4100 -/* 356AC0 E0048140 44810000 */ mtc1 $at, $f0 -/* 356AC4 E0048144 8CA20018 */ lw $v0, 0x18($a1) -/* 356AC8 E0048148 8CA30014 */ lw $v1, 0x14($a1) -/* 356ACC E004814C 44821000 */ mtc1 $v0, $f2 -/* 356AD0 E0048150 00000000 */ nop -/* 356AD4 E0048154 468010A0 */ cvt.s.w $f2, $f2 -/* 356AD8 E0048158 24420001 */ addiu $v0, $v0, 1 -/* 356ADC E004815C 46001082 */ mul.s $f2, $f2, $f0 -/* 356AE0 E0048160 00000000 */ nop -/* 356AE4 E0048164 2463FFFF */ addiu $v1, $v1, -1 -/* 356AE8 E0048168 C4A0001C */ lwc1 $f0, 0x1c($a1) -/* 356AEC E004816C 46800020 */ cvt.s.w $f0, $f0 -/* 356AF0 E0048170 ACA20018 */ sw $v0, 0x18($a1) -/* 356AF4 E0048174 ACA30014 */ sw $v1, 0x14($a1) -/* 356AF8 E0048178 46001083 */ div.s $f2, $f2, $f0 -/* 356AFC E004817C 04610005 */ bgez $v1, .LE0048194 -/* 356B00 E0048180 E4A20020 */ swc1 $f2, 0x20($a1) -/* 356B04 E0048184 0C080128 */ jal shim_remove_effect -/* 356B08 E0048188 00000000 */ nop -/* 356B0C E004818C 08012072 */ j .LE00481C8 -/* 356B10 E0048190 00000000 */ nop -.LE0048194: -/* 356B14 E0048194 C4A00024 */ lwc1 $f0, 0x24($a1) -/* 356B18 E0048198 C4A20028 */ lwc1 $f2, 0x28($a1) -/* 356B1C E004819C 46020000 */ add.s $f0, $f0, $f2 -/* 356B20 E00481A0 94A20000 */ lhu $v0, ($a1) -/* 356B24 E00481A4 14400008 */ bnez $v0, .LE00481C8 -/* 356B28 E00481A8 E4A00024 */ swc1 $f0, 0x24($a1) -/* 356B2C E00481AC C4A00010 */ lwc1 $f0, 0x10($a1) -/* 356B30 E00481B0 3C01E005 */ lui $at, %hi(D_E0048A10) -/* 356B34 E00481B4 D4228A10 */ ldc1 $f2, %lo(D_E0048A10)($at) -/* 356B38 E00481B8 46000021 */ cvt.d.s $f0, $f0 -/* 356B3C E00481BC 46220000 */ add.d $f0, $f0, $f2 -/* 356B40 E00481C0 46200020 */ cvt.s.d $f0, $f0 -/* 356B44 E00481C4 E4A00010 */ swc1 $f0, 0x10($a1) -.LE00481C8: -/* 356B48 E00481C8 8FBF0010 */ lw $ra, 0x10($sp) -/* 356B4C E00481CC 03E00008 */ jr $ra -/* 356B50 E00481D0 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/rising_bubble/rising_bubble_main.s b/ver/us/asm/nonmatchings/effects/rising_bubble/rising_bubble_main.s deleted file mode 100644 index 8d111bf80d..0000000000 --- a/ver/us/asm/nonmatchings/effects/rising_bubble/rising_bubble_main.s +++ /dev/null @@ -1,107 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E0046620 -.double 0.1 - -dlabel D_E0046628 -.double 0.7 - -dlabel D_E0046630 -.double 0.4 - -.section .text - -glabel rising_bubble_main -/* 355EE0 E0046000 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 355EE4 E0046004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 355EE8 E0046008 4485A000 */ mtc1 $a1, $f20 -/* 355EEC E004600C F7B80048 */ sdc1 $f24, 0x48($sp) -/* 355EF0 E0046010 4486C000 */ mtc1 $a2, $f24 -/* 355EF4 E0046014 AFB1002C */ sw $s1, 0x2c($sp) -/* 355EF8 E0046018 0080882D */ daddu $s1, $a0, $zero -/* 355EFC E004601C F7B60040 */ sdc1 $f22, 0x40($sp) -/* 355F00 E0046020 4487B000 */ mtc1 $a3, $f22 -/* 355F04 E0046024 27A40010 */ addiu $a0, $sp, 0x10 -/* 355F08 E0046028 F7BA0050 */ sdc1 $f26, 0x50($sp) -/* 355F0C E004602C C7BA0068 */ lwc1 $f26, 0x68($sp) -/* 355F10 E0046030 3C02E004 */ lui $v0, %hi(rising_bubble_init) -/* 355F14 E0046034 24426158 */ addiu $v0, $v0, %lo(rising_bubble_init) -/* 355F18 E0046038 AFA20018 */ sw $v0, 0x18($sp) -/* 355F1C E004603C 3C02E004 */ lui $v0, %hi(rising_bubble_update) -/* 355F20 E0046040 24426160 */ addiu $v0, $v0, %lo(rising_bubble_update) -/* 355F24 E0046044 AFA2001C */ sw $v0, 0x1c($sp) -/* 355F28 E0046048 3C02E004 */ lui $v0, %hi(rising_bubble_render) -/* 355F2C E004604C 2442627C */ addiu $v0, $v0, %lo(rising_bubble_render) -/* 355F30 E0046050 AFA20020 */ sw $v0, 0x20($sp) -/* 355F34 E0046054 24020023 */ addiu $v0, $zero, 0x23 -/* 355F38 E0046058 AFBF0030 */ sw $ra, 0x30($sp) -/* 355F3C E004605C AFB00028 */ sw $s0, 0x28($sp) -/* 355F40 E0046060 AFA00010 */ sw $zero, 0x10($sp) -/* 355F44 E0046064 AFA00024 */ sw $zero, 0x24($sp) -/* 355F48 E0046068 0C080124 */ jal shim_create_effect_instance -/* 355F4C E004606C AFA20014 */ sw $v0, 0x14($sp) -/* 355F50 E0046070 24040028 */ addiu $a0, $zero, 0x28 -/* 355F54 E0046074 24030001 */ addiu $v1, $zero, 1 -/* 355F58 E0046078 0040802D */ daddu $s0, $v0, $zero -/* 355F5C E004607C 0C08012C */ jal shim_general_heap_malloc -/* 355F60 E0046080 AE030008 */ sw $v1, 8($s0) -/* 355F64 E0046084 AE02000C */ sw $v0, 0xc($s0) -/* 355F68 E0046088 0040802D */ daddu $s0, $v0, $zero -/* 355F6C E004608C 56000003 */ bnel $s0, $zero, .LE004609C -/* 355F70 E0046090 AE110000 */ sw $s1, ($s0) -.LE0046094: -/* 355F74 E0046094 08011825 */ j .LE0046094 -/* 355F78 E0046098 00000000 */ nop -.LE004609C: -/* 355F7C E004609C 44800000 */ mtc1 $zero, $f0 -/* 355F80 E00460A0 E6140004 */ swc1 $f20, 4($s0) -/* 355F84 E00460A4 E6180008 */ swc1 $f24, 8($s0) -/* 355F88 E00460A8 E616000C */ swc1 $f22, 0xc($s0) -/* 355F8C E00460AC AE000014 */ sw $zero, 0x14($s0) -/* 355F90 E00460B0 4600D032 */ c.eq.s $f26, $f0 -/* 355F94 E00460B4 00000000 */ nop -/* 355F98 E00460B8 45010013 */ bc1t .LE0046108 -/* 355F9C E00460BC AE00001C */ sw $zero, 0x1c($s0) -/* 355FA0 E00460C0 0C080138 */ jal shim_rand_int -/* 355FA4 E00460C4 24040003 */ addiu $a0, $zero, 3 -/* 355FA8 E00460C8 3C01E004 */ lui $at, %hi(D_E0046620) -/* 355FAC E00460CC D4226620 */ ldc1 $f2, %lo(D_E0046620)($at) -/* 355FB0 E00460D0 44820000 */ mtc1 $v0, $f0 -/* 355FB4 E00460D4 00000000 */ nop -/* 355FB8 E00460D8 46800021 */ cvt.d.w $f0, $f0 -/* 355FBC E00460DC 46220002 */ mul.d $f0, $f0, $f2 -/* 355FC0 E00460E0 00000000 */ nop -/* 355FC4 E00460E4 3C01E004 */ lui $at, %hi(D_E0046628) -/* 355FC8 E00460E8 D4226628 */ ldc1 $f2, %lo(D_E0046628)($at) -/* 355FCC E00460EC 46220000 */ add.d $f0, $f0, $f2 -/* 355FD0 E00460F0 3C01E004 */ lui $at, %hi(D_E0046630) -/* 355FD4 E00460F4 D4226630 */ ldc1 $f2, %lo(D_E0046630)($at) -/* 355FD8 E00460F8 46220002 */ mul.d $f0, $f0, $f2 -/* 355FDC E00460FC 00000000 */ nop -/* 355FE0 E0046100 08011845 */ j .LE0046114 -/* 355FE4 E0046104 46200020 */ cvt.s.d $f0, $f0 -.LE0046108: -/* 355FE8 E0046108 3C013F80 */ lui $at, 0x3f80 -/* 355FEC E004610C 44810000 */ mtc1 $at, $f0 -/* 355FF0 E0046110 00000000 */ nop -.LE0046114: -/* 355FF4 E0046114 E6000010 */ swc1 $f0, 0x10($s0) -/* 355FF8 E0046118 2404001F */ addiu $a0, $zero, 0x1f -/* 355FFC E004611C 24020020 */ addiu $v0, $zero, 0x20 -/* 356000 E0046120 0C080138 */ jal shim_rand_int -/* 356004 E0046124 AE020018 */ sw $v0, 0x18($s0) -/* 356008 E0046128 461AC000 */ add.s $f0, $f24, $f26 -/* 35600C E004612C AE020020 */ sw $v0, 0x20($s0) -/* 356010 E0046130 E6000024 */ swc1 $f0, 0x24($s0) -/* 356014 E0046134 8FBF0030 */ lw $ra, 0x30($sp) -/* 356018 E0046138 8FB1002C */ lw $s1, 0x2c($sp) -/* 35601C E004613C 8FB00028 */ lw $s0, 0x28($sp) -/* 356020 E0046140 D7BA0050 */ ldc1 $f26, 0x50($sp) -/* 356024 E0046144 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 356028 E0046148 D7B60040 */ ldc1 $f22, 0x40($sp) -/* 35602C E004614C D7B40038 */ ldc1 $f20, 0x38($sp) -/* 356030 E0046150 03E00008 */ jr $ra -/* 356034 E0046154 27BD0058 */ addiu $sp, $sp, 0x58 diff --git a/ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_main.s b/ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_main.s deleted file mode 100644 index 22fd34445a..0000000000 --- a/ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_main.s +++ /dev/null @@ -1,69 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel shiny_flare_main -/* 3D7240 E00DA000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 3D7244 E00DA004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 3D7248 E00DA008 4485A000 */ mtc1 $a1, $f20 -/* 3D724C E00DA00C AFB1002C */ sw $s1, 0x2c($sp) -/* 3D7250 E00DA010 0080882D */ daddu $s1, $a0, $zero -/* 3D7254 E00DA014 F7B60040 */ sdc1 $f22, 0x40($sp) -/* 3D7258 E00DA018 4486B000 */ mtc1 $a2, $f22 -/* 3D725C E00DA01C 27A40010 */ addiu $a0, $sp, 0x10 -/* 3D7260 E00DA020 F7B80048 */ sdc1 $f24, 0x48($sp) -/* 3D7264 E00DA024 4487C000 */ mtc1 $a3, $f24 -/* 3D7268 E00DA028 3C02E00E */ lui $v0, %hi(shiny_flare_init) -/* 3D726C E00DA02C 2442A0FC */ addiu $v0, $v0, %lo(shiny_flare_init) -/* 3D7270 E00DA030 AFA20018 */ sw $v0, 0x18($sp) -/* 3D7274 E00DA034 3C02E00E */ lui $v0, %hi(shiny_flare_update) -/* 3D7278 E00DA038 2442A104 */ addiu $v0, $v0, %lo(shiny_flare_update) -/* 3D727C E00DA03C AFA2001C */ sw $v0, 0x1c($sp) -/* 3D7280 E00DA040 3C02E00E */ lui $v0, %hi(shiny_flare_render) -/* 3D7284 E00DA044 2442A1E0 */ addiu $v0, $v0, %lo(shiny_flare_render) -/* 3D7288 E00DA048 AFA20020 */ sw $v0, 0x20($sp) -/* 3D728C E00DA04C 2402006D */ addiu $v0, $zero, 0x6d -/* 3D7290 E00DA050 AFBF0030 */ sw $ra, 0x30($sp) -/* 3D7294 E00DA054 AFB00028 */ sw $s0, 0x28($sp) -/* 3D7298 E00DA058 AFA00010 */ sw $zero, 0x10($sp) -/* 3D729C E00DA05C AFA00024 */ sw $zero, 0x24($sp) -/* 3D72A0 E00DA060 0C080124 */ jal shim_create_effect_instance -/* 3D72A4 E00DA064 AFA20014 */ sw $v0, 0x14($sp) -/* 3D72A8 E00DA068 24040030 */ addiu $a0, $zero, 0x30 -/* 3D72AC E00DA06C 24030001 */ addiu $v1, $zero, 1 -/* 3D72B0 E00DA070 0040802D */ daddu $s0, $v0, $zero -/* 3D72B4 E00DA074 0C08012C */ jal shim_general_heap_malloc -/* 3D72B8 E00DA078 AE030008 */ sw $v1, 8($s0) -/* 3D72BC E00DA07C 0040202D */ daddu $a0, $v0, $zero -/* 3D72C0 E00DA080 14800003 */ bnez $a0, .LE00DA090 -/* 3D72C4 E00DA084 AE02000C */ sw $v0, 0xc($s0) -.LE00DA088: -/* 3D72C8 E00DA088 08036822 */ j .LE00DA088 -/* 3D72CC E00DA08C 00000000 */ nop -.LE00DA090: -/* 3D72D0 E00DA090 0200102D */ daddu $v0, $s0, $zero -/* 3D72D4 E00DA094 2403000A */ addiu $v1, $zero, 0xa -/* 3D72D8 E00DA098 AC830010 */ sw $v1, 0x10($a0) -/* 3D72DC E00DA09C 240300FF */ addiu $v1, $zero, 0xff -/* 3D72E0 E00DA0A0 AC910000 */ sw $s1, ($a0) -/* 3D72E4 E00DA0A4 AC800014 */ sw $zero, 0x14($a0) -/* 3D72E8 E00DA0A8 AC830024 */ sw $v1, 0x24($a0) -/* 3D72EC E00DA0AC E4940004 */ swc1 $f20, 4($a0) -/* 3D72F0 E00DA0B0 E4960008 */ swc1 $f22, 8($a0) -/* 3D72F4 E00DA0B4 E498000C */ swc1 $f24, 0xc($a0) -/* 3D72F8 E00DA0B8 C7A00060 */ lwc1 $f0, 0x60($sp) -/* 3D72FC E00DA0BC 24030046 */ addiu $v1, $zero, 0x46 -/* 3D7300 E00DA0C0 AC830018 */ sw $v1, 0x18($a0) -/* 3D7304 E00DA0C4 240300B4 */ addiu $v1, $zero, 0xb4 -/* 3D7308 E00DA0C8 AC83001C */ sw $v1, 0x1c($a0) -/* 3D730C E00DA0CC 24030078 */ addiu $v1, $zero, 0x78 -/* 3D7310 E00DA0D0 AC830020 */ sw $v1, 0x20($a0) -/* 3D7314 E00DA0D4 AC80002C */ sw $zero, 0x2c($a0) -/* 3D7318 E00DA0D8 E4800028 */ swc1 $f0, 0x28($a0) -/* 3D731C E00DA0DC 8FBF0030 */ lw $ra, 0x30($sp) -/* 3D7320 E00DA0E0 8FB1002C */ lw $s1, 0x2c($sp) -/* 3D7324 E00DA0E4 8FB00028 */ lw $s0, 0x28($sp) -/* 3D7328 E00DA0E8 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 3D732C E00DA0EC D7B60040 */ ldc1 $f22, 0x40($sp) -/* 3D7330 E00DA0F0 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 3D7334 E00DA0F4 03E00008 */ jr $ra -/* 3D7338 E00DA0F8 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_update.s b/ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_update.s deleted file mode 100644 index 56a67d9e07..0000000000 --- a/ver/us/asm/nonmatchings/effects/shiny_flare/shiny_flare_update.s +++ /dev/null @@ -1,71 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E00DA520 -.double 0.3, 0.0 - -.section .text - -glabel shiny_flare_update -/* 3D7344 E00DA104 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3D7348 E00DA108 AFBF0010 */ sw $ra, 0x10($sp) -/* 3D734C E00DA10C 8C850000 */ lw $a1, ($a0) -/* 3D7350 E00DA110 8C83000C */ lw $v1, 0xc($a0) -/* 3D7354 E00DA114 30A20010 */ andi $v0, $a1, 0x10 -/* 3D7358 E00DA118 10400005 */ beqz $v0, .LE00DA130 -/* 3D735C E00DA11C 2402FFEF */ addiu $v0, $zero, -0x11 -/* 3D7360 E00DA120 00A21024 */ and $v0, $a1, $v0 -/* 3D7364 E00DA124 AC820000 */ sw $v0, ($a0) -/* 3D7368 E00DA128 2402000A */ addiu $v0, $zero, 0xa -/* 3D736C E00DA12C AC620010 */ sw $v0, 0x10($v1) -.LE00DA130: -/* 3D7370 E00DA130 8C650010 */ lw $a1, 0x10($v1) -/* 3D7374 E00DA134 28A203E8 */ slti $v0, $a1, 0x3e8 -/* 3D7378 E00DA138 10400002 */ beqz $v0, .LE00DA144 -/* 3D737C E00DA13C 24A2FFFF */ addiu $v0, $a1, -1 -/* 3D7380 E00DA140 AC620010 */ sw $v0, 0x10($v1) -.LE00DA144: -/* 3D7384 E00DA144 8C620014 */ lw $v0, 0x14($v1) -/* 3D7388 E00DA148 8C650010 */ lw $a1, 0x10($v1) -/* 3D738C E00DA14C 24460001 */ addiu $a2, $v0, 1 -/* 3D7390 E00DA150 04A10005 */ bgez $a1, .LE00DA168 -/* 3D7394 E00DA154 AC660014 */ sw $a2, 0x14($v1) -/* 3D7398 E00DA158 0C080128 */ jal shim_remove_effect -/* 3D739C E00DA15C 00000000 */ nop -/* 3D73A0 E00DA160 08036875 */ j .LE00DA1D4 -/* 3D73A4 E00DA164 00000000 */ nop -.LE00DA168: -/* 3D73A8 E00DA168 28A20004 */ slti $v0, $a1, 4 -/* 3D73AC E00DA16C 1040000B */ beqz $v0, .LE00DA19C -/* 3D73B0 E00DA170 00000000 */ nop -/* 3D73B4 E00DA174 C460002C */ lwc1 $f0, 0x2c($v1) -/* 3D73B8 E00DA178 3C013FE0 */ lui $at, 0x3fe0 -/* 3D73BC E00DA17C 44811800 */ mtc1 $at, $f3 -/* 3D73C0 E00DA180 44801000 */ mtc1 $zero, $f2 -/* 3D73C4 E00DA184 46000021 */ cvt.d.s $f0, $f0 -/* 3D73C8 E00DA188 46220002 */ mul.d $f0, $f0, $f2 -/* 3D73CC E00DA18C 00000000 */ nop -/* 3D73D0 E00DA190 46200020 */ cvt.s.d $f0, $f0 -/* 3D73D4 E00DA194 08036875 */ j .LE00DA1D4 -/* 3D73D8 E00DA198 E460002C */ swc1 $f0, 0x2c($v1) -.LE00DA19C: -/* 3D73DC E00DA19C 3C013E4C */ lui $at, 0x3e4c -/* 3D73E0 E00DA1A0 3421CCCD */ ori $at, $at, 0xcccd -/* 3D73E4 E00DA1A4 44810000 */ mtc1 $at, $f0 -/* 3D73E8 E00DA1A8 44861000 */ mtc1 $a2, $f2 -/* 3D73EC E00DA1AC 00000000 */ nop -/* 3D73F0 E00DA1B0 468010A0 */ cvt.s.w $f2, $f2 -/* 3D73F4 E00DA1B4 46001082 */ mul.s $f2, $f2, $f0 -/* 3D73F8 E00DA1B8 00000000 */ nop -/* 3D73FC E00DA1BC 3C01E00E */ lui $at, %hi(D_E00DA520) -/* 3D7400 E00DA1C0 D420A520 */ ldc1 $f0, %lo(D_E00DA520)($at) -/* 3D7404 E00DA1C4 460010A1 */ cvt.d.s $f2, $f2 -/* 3D7408 E00DA1C8 46201080 */ add.d $f2, $f2, $f0 -/* 3D740C E00DA1CC 462010A0 */ cvt.s.d $f2, $f2 -/* 3D7410 E00DA1D0 E462002C */ swc1 $f2, 0x2c($v1) -.LE00DA1D4: -/* 3D7414 E00DA1D4 8FBF0010 */ lw $ra, 0x10($sp) -/* 3D7418 E00DA1D8 03E00008 */ jr $ra -/* 3D741C E00DA1DC 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/asm/nonmatchings/effects/snowfall/snowfall_main.s b/ver/us/asm/nonmatchings/effects/snowfall/snowfall_main.s deleted file mode 100644 index a7d47f40ea..0000000000 --- a/ver/us/asm/nonmatchings/effects/snowfall/snowfall_main.s +++ /dev/null @@ -1,72 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel snowfall_main -/* 38C778 E008A188 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 38C77C E008A18C AFB1002C */ sw $s1, 0x2c($sp) -/* 38C780 E008A190 0080882D */ daddu $s1, $a0, $zero -/* 38C784 E008A194 AFB30034 */ sw $s3, 0x34($sp) -/* 38C788 E008A198 00A0982D */ daddu $s3, $a1, $zero -/* 38C78C E008A19C 27A40010 */ addiu $a0, $sp, 0x10 -/* 38C790 E008A1A0 3C02E009 */ lui $v0, %hi(snowfall_init) -/* 38C794 E008A1A4 2442A288 */ addiu $v0, $v0, %lo(snowfall_init) -/* 38C798 E008A1A8 AFA20018 */ sw $v0, 0x18($sp) -/* 38C79C E008A1AC 3C02E009 */ lui $v0, %hi(snowfall_update) -/* 38C7A0 E008A1B0 2442A53C */ addiu $v0, $v0, %lo(snowfall_update) -/* 38C7A4 E008A1B4 AFA2001C */ sw $v0, 0x1c($sp) -/* 38C7A8 E008A1B8 3C02E009 */ lui $v0, %hi(snowfall_render) -/* 38C7AC E008A1BC 2442A6E4 */ addiu $v0, $v0, %lo(snowfall_render) -/* 38C7B0 E008A1C0 AFA20020 */ sw $v0, 0x20($sp) -/* 38C7B4 E008A1C4 24020045 */ addiu $v0, $zero, 0x45 -/* 38C7B8 E008A1C8 AFB00028 */ sw $s0, 0x28($sp) -/* 38C7BC E008A1CC 26700001 */ addiu $s0, $s3, 1 -/* 38C7C0 E008A1D0 AFBF0038 */ sw $ra, 0x38($sp) -/* 38C7C4 E008A1D4 AFB20030 */ sw $s2, 0x30($sp) -/* 38C7C8 E008A1D8 AFA00010 */ sw $zero, 0x10($sp) -/* 38C7CC E008A1DC AFA00024 */ sw $zero, 0x24($sp) -/* 38C7D0 E008A1E0 0C080124 */ jal shim_create_effect_instance -/* 38C7D4 E008A1E4 AFA20014 */ sw $v0, 0x14($sp) -/* 38C7D8 E008A1E8 00102040 */ sll $a0, $s0, 1 -/* 38C7DC E008A1EC 00902021 */ addu $a0, $a0, $s0 -/* 38C7E0 E008A1F0 00042080 */ sll $a0, $a0, 2 -/* 38C7E4 E008A1F4 00902021 */ addu $a0, $a0, $s0 -/* 38C7E8 E008A1F8 00042080 */ sll $a0, $a0, 2 -/* 38C7EC E008A1FC 0040902D */ daddu $s2, $v0, $zero -/* 38C7F0 E008A200 0C08012C */ jal shim_general_heap_malloc -/* 38C7F4 E008A204 AE500008 */ sw $s0, 8($s2) -/* 38C7F8 E008A208 0040802D */ daddu $s0, $v0, $zero -/* 38C7FC E008A20C 16000003 */ bnez $s0, .LE008A21C -/* 38C800 E008A210 AE50000C */ sw $s0, 0xc($s2) -.LE008A214: -/* 38C804 E008A214 08022885 */ j .LE008A214 -/* 38C808 E008A218 00000000 */ nop -.LE008A21C: -/* 38C80C E008A21C 24020064 */ addiu $v0, $zero, 0x64 -/* 38C810 E008A220 AE020020 */ sw $v0, 0x20($s0) -/* 38C814 E008A224 240200FF */ addiu $v0, $zero, 0xff -/* 38C818 E008A228 AE020028 */ sw $v0, 0x28($s0) -/* 38C81C E008A22C 24020001 */ addiu $v0, $zero, 1 -/* 38C820 E008A230 AE000024 */ sw $zero, 0x24($s0) -/* 38C824 E008A234 AE110004 */ sw $s1, 4($s0) -/* 38C828 E008A238 AE13002C */ sw $s3, 0x2c($s0) -/* 38C82C E008A23C AE020000 */ sw $v0, ($s0) -/* 38C830 E008A240 26100034 */ addiu $s0, $s0, 0x34 -/* 38C834 E008A244 1A600008 */ blez $s3, .LE008A268 -/* 38C838 E008A248 0000882D */ daddu $s1, $zero, $zero -.LE008A24C: -/* 38C83C E008A24C 0C022800 */ jal func_E008A000 -/* 38C840 E008A250 0200202D */ daddu $a0, $s0, $zero -/* 38C844 E008A254 AE000030 */ sw $zero, 0x30($s0) -/* 38C848 E008A258 26310001 */ addiu $s1, $s1, 1 -/* 38C84C E008A25C 0233102A */ slt $v0, $s1, $s3 -/* 38C850 E008A260 1440FFFA */ bnez $v0, .LE008A24C -/* 38C854 E008A264 26100034 */ addiu $s0, $s0, 0x34 -.LE008A268: -/* 38C858 E008A268 0240102D */ daddu $v0, $s2, $zero -/* 38C85C E008A26C 8FBF0038 */ lw $ra, 0x38($sp) -/* 38C860 E008A270 8FB30034 */ lw $s3, 0x34($sp) -/* 38C864 E008A274 8FB20030 */ lw $s2, 0x30($sp) -/* 38C868 E008A278 8FB1002C */ lw $s1, 0x2c($sp) -/* 38C86C E008A27C 8FB00028 */ lw $s0, 0x28($sp) -/* 38C870 E008A280 03E00008 */ jr $ra -/* 38C874 E008A284 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_main.s b/ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_main.s deleted file mode 100644 index 79d2434213..0000000000 --- a/ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_main.s +++ /dev/null @@ -1,79 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel thunderbolt_ring_main -/* 3B3EB0 E00B0000 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 3B3EB4 E00B0004 F7B40038 */ sdc1 $f20, 0x38($sp) -/* 3B3EB8 E00B0008 4485A000 */ mtc1 $a1, $f20 -/* 3B3EBC E00B000C F7B60040 */ sdc1 $f22, 0x40($sp) -/* 3B3EC0 E00B0010 4486B000 */ mtc1 $a2, $f22 -/* 3B3EC4 E00B0014 AFB20030 */ sw $s2, 0x30($sp) -/* 3B3EC8 E00B0018 0080902D */ daddu $s2, $a0, $zero -/* 3B3ECC E00B001C F7B80048 */ sdc1 $f24, 0x48($sp) -/* 3B3ED0 E00B0020 4487C000 */ mtc1 $a3, $f24 -/* 3B3ED4 E00B0024 27A40010 */ addiu $a0, $sp, 0x10 -/* 3B3ED8 E00B0028 AFB1002C */ sw $s1, 0x2c($sp) -/* 3B3EDC E00B002C 8FB10064 */ lw $s1, 0x64($sp) -/* 3B3EE0 E00B0030 3C02E00B */ lui $v0, %hi(thunderbolt_ring_init) -/* 3B3EE4 E00B0034 2442011C */ addiu $v0, $v0, %lo(thunderbolt_ring_init) -/* 3B3EE8 E00B0038 AFA20018 */ sw $v0, 0x18($sp) -/* 3B3EEC E00B003C 3C02E00B */ lui $v0, %hi(thunderbolt_ring_update) -/* 3B3EF0 E00B0040 24420124 */ addiu $v0, $v0, %lo(thunderbolt_ring_update) -/* 3B3EF4 E00B0044 AFA2001C */ sw $v0, 0x1c($sp) -/* 3B3EF8 E00B0048 3C02E00B */ lui $v0, %hi(thunderbolt_ring_render) -/* 3B3EFC E00B004C 244201F8 */ addiu $v0, $v0, %lo(thunderbolt_ring_render) -/* 3B3F00 E00B0050 AFA20020 */ sw $v0, 0x20($sp) -/* 3B3F04 E00B0054 24020058 */ addiu $v0, $zero, 0x58 -/* 3B3F08 E00B0058 AFBF0034 */ sw $ra, 0x34($sp) -/* 3B3F0C E00B005C AFB00028 */ sw $s0, 0x28($sp) -/* 3B3F10 E00B0060 AFA00010 */ sw $zero, 0x10($sp) -/* 3B3F14 E00B0064 AFA00024 */ sw $zero, 0x24($sp) -/* 3B3F18 E00B0068 0C080124 */ jal shim_create_effect_instance -/* 3B3F1C E00B006C AFA20014 */ sw $v0, 0x14($sp) -/* 3B3F20 E00B0070 24040034 */ addiu $a0, $zero, 0x34 -/* 3B3F24 E00B0074 24030001 */ addiu $v1, $zero, 1 -/* 3B3F28 E00B0078 0040802D */ daddu $s0, $v0, $zero -/* 3B3F2C E00B007C 0C08012C */ jal shim_general_heap_malloc -/* 3B3F30 E00B0080 AE030008 */ sw $v1, 8($s0) -/* 3B3F34 E00B0084 0040202D */ daddu $a0, $v0, $zero -/* 3B3F38 E00B0088 14800003 */ bnez $a0, .LE00B0098 -/* 3B3F3C E00B008C AE02000C */ sw $v0, 0xc($s0) -.LE00B0090: -/* 3B3F40 E00B0090 0802C024 */ j .LE00B0090 -/* 3B3F44 E00B0094 00000000 */ nop -.LE00B0098: -/* 3B3F48 E00B0098 AC920000 */ sw $s2, ($a0) -/* 3B3F4C E00B009C 1E200004 */ bgtz $s1, .LE00B00B0 -/* 3B3F50 E00B00A0 AC800014 */ sw $zero, 0x14($a0) -/* 3B3F54 E00B00A4 240203E8 */ addiu $v0, $zero, 0x3e8 -/* 3B3F58 E00B00A8 0802C02D */ j .LE00B00B4 -/* 3B3F5C E00B00AC AC820010 */ sw $v0, 0x10($a0) -.LE00B00B0: -/* 3B3F60 E00B00B0 AC910010 */ sw $s1, 0x10($a0) -.LE00B00B4: -/* 3B3F64 E00B00B4 240300FF */ addiu $v1, $zero, 0xff -/* 3B3F68 E00B00B8 AC830024 */ sw $v1, 0x24($a0) -/* 3B3F6C E00B00BC E4940004 */ swc1 $f20, 4($a0) -/* 3B3F70 E00B00C0 E4960008 */ swc1 $f22, 8($a0) -/* 3B3F74 E00B00C4 E498000C */ swc1 $f24, 0xc($a0) -/* 3B3F78 E00B00C8 C7A00060 */ lwc1 $f0, 0x60($sp) -/* 3B3F7C E00B00CC 0200102D */ daddu $v0, $s0, $zero -/* 3B3F80 E00B00D0 AC830018 */ sw $v1, 0x18($a0) -/* 3B3F84 E00B00D4 240300E6 */ addiu $v1, $zero, 0xe6 -/* 3B3F88 E00B00D8 AC83001C */ sw $v1, 0x1c($a0) -/* 3B3F8C E00B00DC E4800028 */ swc1 $f0, 0x28($a0) -/* 3B3F90 E00B00E0 3C013F80 */ lui $at, 0x3f80 -/* 3B3F94 E00B00E4 44810000 */ mtc1 $at, $f0 -/* 3B3F98 E00B00E8 24030032 */ addiu $v1, $zero, 0x32 -/* 3B3F9C E00B00EC AC830020 */ sw $v1, 0x20($a0) -/* 3B3FA0 E00B00F0 AC800030 */ sw $zero, 0x30($a0) -/* 3B3FA4 E00B00F4 E480002C */ swc1 $f0, 0x2c($a0) -/* 3B3FA8 E00B00F8 8FBF0034 */ lw $ra, 0x34($sp) -/* 3B3FAC E00B00FC 8FB20030 */ lw $s2, 0x30($sp) -/* 3B3FB0 E00B0100 8FB1002C */ lw $s1, 0x2c($sp) -/* 3B3FB4 E00B0104 8FB00028 */ lw $s0, 0x28($sp) -/* 3B3FB8 E00B0108 D7B80048 */ ldc1 $f24, 0x48($sp) -/* 3B3FBC E00B010C D7B60040 */ ldc1 $f22, 0x40($sp) -/* 3B3FC0 E00B0110 D7B40038 */ ldc1 $f20, 0x38($sp) -/* 3B3FC4 E00B0114 03E00008 */ jr $ra -/* 3B3FC8 E00B0118 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_update.s b/ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_update.s deleted file mode 100644 index a1c155d486..0000000000 --- a/ver/us/asm/nonmatchings/effects/thunderbolt_ring/thunderbolt_ring_update.s +++ /dev/null @@ -1,69 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E00B07E0 -.double 0.3 - -.section .text -glabel thunderbolt_ring_update -/* 3B3FD4 E00B0124 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3B3FD8 E00B0128 AFBF0010 */ sw $ra, 0x10($sp) -/* 3B3FDC E00B012C 8C850000 */ lw $a1, ($a0) -/* 3B3FE0 E00B0130 8C83000C */ lw $v1, 0xc($a0) -/* 3B3FE4 E00B0134 30A20010 */ andi $v0, $a1, 0x10 -/* 3B3FE8 E00B0138 10400005 */ beqz $v0, .LE00B0150 -/* 3B3FEC E00B013C 2402FFEF */ addiu $v0, $zero, -0x11 -/* 3B3FF0 E00B0140 00A21024 */ and $v0, $a1, $v0 -/* 3B3FF4 E00B0144 AC820000 */ sw $v0, ($a0) -/* 3B3FF8 E00B0148 24020010 */ addiu $v0, $zero, 0x10 -/* 3B3FFC E00B014C AC620010 */ sw $v0, 0x10($v1) -.LE00B0150: -/* 3B4000 E00B0150 8C650010 */ lw $a1, 0x10($v1) -/* 3B4004 E00B0154 28A203E8 */ slti $v0, $a1, 0x3e8 -/* 3B4008 E00B0158 10400002 */ beqz $v0, .LE00B0164 -/* 3B400C E00B015C 24A2FFFF */ addiu $v0, $a1, -1 -/* 3B4010 E00B0160 AC620010 */ sw $v0, 0x10($v1) -.LE00B0164: -/* 3B4014 E00B0164 8C620014 */ lw $v0, 0x14($v1) -/* 3B4018 E00B0168 8C660010 */ lw $a2, 0x10($v1) -/* 3B401C E00B016C 24450001 */ addiu $a1, $v0, 1 -/* 3B4020 E00B0170 04C10005 */ bgez $a2, .LE00B0188 -/* 3B4024 E00B0174 AC650014 */ sw $a1, 0x14($v1) -/* 3B4028 E00B0178 0C080128 */ jal shim_remove_effect -/* 3B402C E00B017C 00000000 */ nop -/* 3B4030 E00B0180 0802C07B */ j .LE00B01EC -/* 3B4034 E00B0184 00000000 */ nop -.LE00B0188: -/* 3B4038 E00B0188 28C40008 */ slti $a0, $a2, 8 -/* 3B403C E00B018C 1080000E */ beqz $a0, .LE00B01C8 -/* 3B4040 E00B0190 24020008 */ addiu $v0, $zero, 8 -/* 3B4044 E00B0194 00461023 */ subu $v0, $v0, $a2 -/* 3B4048 E00B0198 3C01E00B */ lui $at, %hi(D_E00B07E0) -/* 3B404C E00B019C D42007E0 */ ldc1 $f0, %lo(D_E00B07E0)($at) -/* 3B4050 E00B01A0 44821000 */ mtc1 $v0, $f2 -/* 3B4054 E00B01A4 00000000 */ nop -/* 3B4058 E00B01A8 468010A1 */ cvt.d.w $f2, $f2 -/* 3B405C E00B01AC 46201082 */ mul.d $f2, $f2, $f0 -/* 3B4060 E00B01B0 00000000 */ nop -/* 3B4064 E00B01B4 C460002C */ lwc1 $f0, 0x2c($v1) -/* 3B4068 E00B01B8 46000021 */ cvt.d.s $f0, $f0 -/* 3B406C E00B01BC 46220000 */ add.d $f0, $f0, $f2 -/* 3B4070 E00B01C0 46200020 */ cvt.s.d $f0, $f0 -/* 3B4074 E00B01C4 E460002C */ swc1 $f0, 0x2c($v1) -.LE00B01C8: -/* 3B4078 E00B01C8 28A20010 */ slti $v0, $a1, 0x10 -/* 3B407C E00B01CC 10400003 */ beqz $v0, .LE00B01DC -/* 3B4080 E00B01D0 00051100 */ sll $v0, $a1, 4 -/* 3B4084 E00B01D4 2442000F */ addiu $v0, $v0, 0xf -/* 3B4088 E00B01D8 AC620024 */ sw $v0, 0x24($v1) -.LE00B01DC: -/* 3B408C E00B01DC 10800003 */ beqz $a0, .LE00B01EC -/* 3B4090 E00B01E0 00061140 */ sll $v0, $a2, 5 -/* 3B4094 E00B01E4 2442001F */ addiu $v0, $v0, 0x1f -/* 3B4098 E00B01E8 AC620024 */ sw $v0, 0x24($v1) -.LE00B01EC: -/* 3B409C E00B01EC 8FBF0010 */ lw $ra, 0x10($sp) -/* 3B40A0 E00B01F0 03E00008 */ jr $ra -/* 3B40A4 E00B01F4 27BD0018 */ addiu $sp, $sp, 0x18