diff --git a/include/effects.h b/include/effects.h index 807d438635..a81cca72b4 100644 --- a/include/effects.h +++ b/include/effects.h @@ -1973,11 +1973,33 @@ typedef struct TubbaHeartAttackFXData { /* 0x734 */ s32 unk_734[25]; } TubbaHeartAttackFXData; // size = 0x798 +#define MAX_WHIRLWIND_SEGMENTS 8 + typedef struct WhirlwindFXData { - /* 0x00 */ char unk_00[0x4]; - /* 0x04 */ Vec3f pos; - /* 0x10 */ char todo[0]; -} WhirlwindFXData; // size = unknown + /* 0x000 */ s32 unk_00; + /* 0x004 */ Vec3f pos; + /* 0x010 */ s32 unk_10; + /* 0x014 */ s32 unk_14; + /* 0x018 */ s32 primR; + /* 0x01C */ s32 primG; + /* 0x020 */ s32 primB; + /* 0x024 */ s32 primAlpha; + /* 0x028 */ s32 envR; + /* 0x02C */ s32 envG; + /* 0x030 */ s32 envB; + /* 0x034 */ f32 unk_34; + /* 0x038 */ f32 unk_38[MAX_WHIRLWIND_SEGMENTS]; + /* 0x058 */ f32 unk_58[MAX_WHIRLWIND_SEGMENTS]; + /* 0x078 */ f32 unk_78[MAX_WHIRLWIND_SEGMENTS]; + /* 0x098 */ f32 unk_98[MAX_WHIRLWIND_SEGMENTS]; + /* 0x0B8 */ f32 unk_B8[MAX_WHIRLWIND_SEGMENTS]; + /* 0x0D8 */ f32 unk_D8[MAX_WHIRLWIND_SEGMENTS]; + /* 0x0F8 */ f32 unk_F8[MAX_WHIRLWIND_SEGMENTS]; + /* 0x118 */ f32 unk_118[MAX_WHIRLWIND_SEGMENTS]; + /* 0x138 */ f32 unk_138; + /* 0x13C */ f32 unk_13C; + /* 0x140 */ f32 unk_140; +} WhirlwindFXData; // size = 0x144 // Likely to be the same as GreenImpactFXData and ShockwaveFXData typedef struct RedImpactFXData { diff --git a/include/effects_internal.h b/include/effects_internal.h index 79ee1b323f..69d7a1823f 100644 --- a/include/effects_internal.h +++ b/include/effects_internal.h @@ -137,7 +137,7 @@ EffectInstance* fx_63_main(s32, f32, f32, f32, f32, f32, f32, f32, s32, s32); EffectInstance* throw_spiny_main(s32, f32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* fx_65_main(s32, f32, f32, f32, f32, s32); EffectInstance* tubba_heart_attack_main(s32, f32, f32, f32, f32, s32); -FX_MAIN(whirlwind_main); +EffectInstance* whirlwind_main(s32, f32, f32, f32, f32, s32); EffectInstance* red_impact_main(s32, f32, f32, f32, f32); EffectInstance* floating_cloud_puff_main(s32, f32, f32, f32, f32, s32); EffectInstance* energy_in_out_main(s32, f32, f32, f32, f32, s32); diff --git a/src/effects.c b/src/effects.c index 7aa85a86c3..2cdd05cc4d 100644 --- a/src/effects.c +++ b/src/effects.c @@ -130,7 +130,7 @@ EffectTableEntry gEffectTable[] = { /* 0x64 */ FX_ENTRY(throw_spiny, effect_gfx_throw_spiny), /* 0x65 */ FX_ENTRY_NUMBERED(65, effect_gfx_effect_65), /* 0x66 */ FX_ENTRY(tubba_heart_attack, effect_gfx_tubba_heart_attack), - /* 0x67 */ FX_ENTRY(whirlwind, _3D3930), + /* 0x67 */ FX_ENTRY(whirlwind, effect_gfx_whirlwind), /* 0x68 */ FX_ENTRY(red_impact, effect_gfx_shockwave), /* 0x69 */ FX_ENTRY(floating_cloud_puff, effect_gfx_floating_cloud_puff), /* 0x6A */ {}, diff --git a/src/effects/gfx/whirlwind.c b/src/effects/gfx/whirlwind.c new file mode 100644 index 0000000000..ef36fedbd0 --- /dev/null +++ b/src/effects/gfx/whirlwind.c @@ -0,0 +1,2 @@ +#include "effects/gfx/D_09000000_3D3930.png.inc.c" +#include "effects/gfx/D_09000400_3D3D30.gfx.inc.c" diff --git a/src/effects/whirlwind.c b/src/effects/whirlwind.c index ce32d52e8f..4f2082c20f 100644 --- a/src/effects/whirlwind.c +++ b/src/effects/whirlwind.c @@ -1,29 +1,283 @@ #include "common.h" #include "effects_internal.h" +void whirlwind_init(EffectInstance* effect); +void whirlwind_update(EffectInstance* effect); +void whirlwind_render(EffectInstance* effect); void whirlwind_appendGfx(void* effect); -INCLUDE_ASM(s32, "effects/whirlwind", whirlwind_main); +extern Gfx D_09000400_3D3D30[]; -void whirlwind_init(void) { +EffectInstance* whirlwind_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) { + EffectBlueprint bp; + EffectBlueprint* bpPtr = &bp; + EffectInstance *effect; + WhirlwindFXData* part; + s32 numParts; + s32 i; + + bp.init = whirlwind_init; + bp.update = whirlwind_update; + bp.renderWorld = whirlwind_render; + bp.unk_00 = 0; + bp.unk_14 = NULL; + bp.effectID = EFFECT_WHIRLWIND; + + numParts = 1; + effect = shim_create_effect_instance(bpPtr); + effect->numParts = numParts; + part = effect->data.whirlwind = shim_general_heap_malloc(effect->numParts * sizeof(*part)); + ASSERT(part != NULL); + + part->unk_00 = arg0; + part->unk_14 = 0; + if (arg5 <= 0) { + part->unk_10 = 1000; + } else { + part->unk_10 = arg5; + } + part->primAlpha = 0; + part->pos.x = arg1; + part->pos.y = arg2; + part->pos.z = arg3; + part->unk_34 = arg4; + + part->primR = 255; + part->primG = 255; + part->primB = 255; + + part->envR = 255; + part->envG = 255; + part->envB = 235; + + for(i = 0; i < MAX_WHIRLWIND_SEGMENTS; i++) { + part->unk_38[i] = arg1; + part->unk_58[i] = arg2; + part->unk_78[i] = arg3; + part->unk_98[i] = i * 0.2 + 1.0; + part->unk_B8[i] = shim_rand_int(360); + part->unk_D8[i] = shim_rand_int(100) * 0.1 + 2.0; + part->unk_F8[i] = shim_rand_int(30) * 0.1; + part->unk_118[i] = 0; + } + part->unk_138 = 0; + part->unk_13C = 0; + part->unk_140 = 0; + + return effect; } -INCLUDE_ASM(s32, "effects/whirlwind", whirlwind_update); +void whirlwind_init(EffectInstance* effect) { +} + +void whirlwind_update(EffectInstance* effect) { + s32 temp_a2; + s32 temp_v1_3; + WhirlwindFXData* part; + s32 i; + f32 temp; + + part = effect->data.whirlwind; + if ((effect->flags & 0x10)) { + effect->flags &= ~0x10; + part->unk_10 = 16; + } + if (part->unk_10 < 1000) { + part->unk_10--; + } + part->unk_14++; + if (part->unk_10 < 0) { + shim_remove_effect(effect); + return; + } + temp = part->unk_34; + temp_v1_3 = part->unk_10; + temp_a2 = part->unk_14; + if (temp_v1_3 < 0x10) { + part->primAlpha = temp_v1_3 * 16; + } + + if (temp_a2 < 0x10) { + part->primAlpha = temp_a2 * 16 + 15; + } + part->unk_38[0] = part->pos.x; + part->unk_58[0] = part->pos.y; + part->unk_78[0] = part->pos.z; + + for (i = MAX_WHIRLWIND_SEGMENTS - 1; i > 0; i--) { + part->unk_118[i] = (part->unk_38[i - 1] - part->unk_38[i]) * 4.0f; + part->unk_38[i] = part->unk_38[i - 1]; + part->unk_58[i] = part->unk_58[i - 1] + temp * 5.0f; + part->unk_78[i] = part->unk_78[i - 1]; + if (part->unk_118[i] > 90.0f) { + part->unk_118[i] = 90.0f; + } else if (part->unk_118[i] < -90.0f) { + part->unk_118[i] = -90.0f; + } + } + + part->unk_138 += 10.0f; + part->unk_13C += 12.96; + part->unk_140 += 17.28; + if (part->unk_13C > 64.0f) { + part->unk_13C -= 64.0f; + } + if (part->unk_140 > 64.0f) { + part->unk_140 -= 64.0f; + } + for(i = 0; i < MAX_WHIRLWIND_SEGMENTS; i++) { + part->unk_B8[i] += part->unk_D8[i]; + } +} void whirlwind_render(EffectInstance* effect) { RenderTask renderTask; - RenderTask* retTask; + RenderTask* queuedTask; renderTask.appendGfx = whirlwind_appendGfx; renderTask.appendGfxArg = effect; renderTask.distance = 10; renderTask.renderMode = RENDER_MODE_2D; - retTask = shim_queue_render_task(&renderTask); - retTask->renderMode |= RENDER_TASK_FLAG_2; + queuedTask = shim_queue_render_task(&renderTask); + queuedTask->renderMode |= RENDER_TASK_FLAG_2; } void func_E00CE470(void) { } -INCLUDE_ASM(s32, "effects/whirlwind", whirlwind_appendGfx); +void whirlwind_appendGfx(void* effect) { + Matrix4f sp20; + Matrix4f sp60; + s32 spA0; + s32 primAlpha; + Gfx* triangleDisplayList; + Vtx* vertexBuffer; + s32 spB0; + s32 spB4; + f32 spB8; + Gfx* whirlwindMainDisplayList; + Gfx* savedPos; + f32 temp_f20_2; + f32 temp_f20_3; + f32 var_f4; + f32 f22; + s32 i; + EffectInstance* eff = (EffectInstance*)effect; + WhirlwindFXData* data = eff->data.whirlwind; + + spA0 = data->unk_10; + primAlpha = data->primAlpha >> 1; + spB8 = data->unk_34; + spB0 = data->unk_13C * 4.0f; + spB4 = data->unk_140 * 4.0f; + gDPPipeSync(gMasterGfxPos++); + gSPSegment(gMasterGfxPos++, 0x09, OS_K0_TO_PHYSICAL(eff->graphics->data)); + + shim_guTranslateF(sp20, 0.0f, 0.0f, 0.0f); + shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(gMasterGfxPos++, D_09000400_3D3D30); + + // Reserve 0x208 bytes (65 commands) for a vertex buffer (2x16 Vtx + space for the current command) + gSPBranchList(gMasterGfxPos, &gMasterGfxPos[65]); + vertexBuffer = (Vtx*)(gMasterGfxPos + 1); + + // set the current position we're writing gfx commands to past the vertex buffer + gMasterGfxPos = &gMasterGfxPos[65]; + + // fill the vertex buffer; 2 sets of 16 verticies + for (i = 0; i <= (360 / 24); i++) { + Vtx* vtx = &vertexBuffer[i]; + vtx->v.ob[0] = shim_cos_deg(i * (360 / 15)) * 100.0f; + vtx->v.ob[1] = 0; + vtx->v.ob[2] = shim_sin_deg(i * (360 / 15)) * 100.0f; + vtx->v.tc[0] = i * 128; + vtx->v.tc[1] = 0; + + vtx = &vertexBuffer[i + (360 / 24 + 1)]; + vtx->v.ob[0] = shim_cos_deg(i * (360 / 15)) * 100.0f; + vtx->v.ob[1] = 0; + vtx->v.ob[2] = shim_sin_deg(i * (360 / 15)) * 100.0f; + vtx->v.tc[0] = i * 512; + vtx->v.tc[1] = 1024; + } + + // Reserve 0x88 bytes (17 commands, including this one) for a separate dynamically generated display list + gSPBranchList(gMasterGfxPos, &gMasterGfxPos[17]); + + // Get a reference to the dynamically generated display list + triangleDisplayList = ++gMasterGfxPos; + + // Generate display list + for (i = 0; i < 15; i++) { + gSP2Triangles(gMasterGfxPos++, i + 0x10, i + 1, i, 0, i + 0x10, i + 0x11, i + 1, 0); + } + + // This marks the end of our dynamically generated display list, return control back to the main display list + gSPEndDisplayList(gMasterGfxPos++); + + shim_guScaleF(sp20, 0.1f, 0.1f, 0.1f); + shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + + // Save position to later insert a branch around the commands that follow this + savedPos = gMasterGfxPos++; + + // Save position of main display list + whirlwindMainDisplayList = gMasterGfxPos; + + // Generate main display list + for(i = 0; i < (MAX_WHIRLWIND_SEGMENTS - 1); i++) { + shim_guPositionF(sp20, 0.0f, 0.0f, data->unk_118[i], 1.0f, data->unk_38[i] * 10.0f, data->unk_58[i] * 10.0f, data->unk_78[i] * 10.0f); + shim_guRotateF(sp60, data->unk_138 + i * i, -0.03f, 1.0f, 0.1f); + shim_guMtxCatF(sp60, sp20, sp20); + var_f4 = data->unk_98[i] * spB8; + if (spA0 < 0x10) { + var_f4 += (127 - primAlpha) * 0.02f; + } + shim_guScaleF(sp60, var_f4, spB8, var_f4); + shim_guMtxCatF(sp60, sp20, sp20); + temp_f20_2 = data->unk_F8[i] * 10.0f; + f22 = data->unk_B8[i]; + shim_guTranslateF(sp60, temp_f20_2 * shim_sin_deg(f22), 0.0f, temp_f20_2 * shim_cos_deg(f22)); + shim_guMtxCatF(sp60, sp20, sp20); + shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPVertex(gMasterGfxPos++, vertexBuffer, 16, 0); + gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); + + shim_guPositionF(sp20, 0.0f, 0.0f, data->unk_118[i + 1], 1.0f, data->unk_38[i + 1] * 10.0f, data->unk_58[i + 1] * 10.0f, data->unk_78[i + 1] * 10.0f); + shim_guRotateF(sp60, data->unk_138 + i * i, 0.03f, 1.0f, 0.0f); + shim_guMtxCatF(sp60, sp20, sp20); + shim_guScaleF(sp60, data->unk_98[i + 1] * spB8, spB8, data->unk_98[i + 1] * spB8); + shim_guMtxCatF(sp60, sp20, sp20); + temp_f20_3 = data->unk_F8[i] * 10.0f; + shim_guTranslateF(sp60, temp_f20_3 * shim_sin_deg(data->unk_B8[i]), 0.0f, temp_f20_3 * shim_cos_deg(data->unk_B8[i])); + shim_guMtxCatF(sp60, sp20, sp20); + shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPVertex(gMasterGfxPos++, &vertexBuffer[16], 16, 16); + gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); + + gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, spB0 + i * 16, 0, (spB0 + i * 16 + 63) << 2, 31 << 2); + gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE + 1, spB4 + i * 8, 0, (spB4 + i * 8 + 63) << 2, 31 << 2); + + // Call the display list to create triangles from the verticies + gSPDisplayList(gMasterGfxPos++, triangleDisplayList); + } + + gSPEndDisplayList(gMasterGfxPos++); + + // Now that the length of our display list is known, insert a branch at the previously saved location + gSPBranchList(savedPos, gMasterGfxPos); + gSPClearGeometryMode(gMasterGfxPos++, G_CULL_BOTH); + gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->primR, data->primG, data->primB, primAlpha); + gDPSetEnvColor(gMasterGfxPos++, data->envR, data->envG, data->envB, 32); + + // Call the main display list + gSPDisplayList(gMasterGfxPos++, whirlwindMainDisplayList); + gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); + gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); +} diff --git a/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_appendGfx.s b/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_appendGfx.s deleted file mode 100644 index 706de8241e..0000000000 --- a/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_appendGfx.s +++ /dev/null @@ -1,638 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel whirlwind_appendGfx -/* 3D2F38 E00CE478 27BDFEE0 */ addiu $sp, $sp, -0x120 -/* 3D2F3C E00CE47C 0080502D */ daddu $t2, $a0, $zero -/* 3D2F40 E00CE480 3C0BDB06 */ lui $t3, 0xdb06 -/* 3D2F44 E00CE484 356B0024 */ ori $t3, $t3, 0x24 -/* 3D2F48 E00CE488 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D2F4C E00CE48C AFB300D4 */ sw $s3, 0xd4($sp) -/* 3D2F50 E00CE490 3C130001 */ lui $s3, 1 -/* 3D2F54 E00CE494 36731630 */ ori $s3, $s3, 0x1630 -/* 3D2F58 E00CE498 AFB400D8 */ sw $s4, 0xd8($sp) -/* 3D2F5C E00CE49C 0000A02D */ daddu $s4, $zero, $zero -/* 3D2F60 E00CE4A0 AFBE00E8 */ sw $fp, 0xe8($sp) -/* 3D2F64 E00CE4A4 241E0400 */ addiu $fp, $zero, 0x400 -/* 3D2F68 E00CE4A8 AFB700E4 */ sw $s7, 0xe4($sp) -/* 3D2F6C E00CE4AC 24170100 */ addiu $s7, $zero, 0x100 -/* 3D2F70 E00CE4B0 AFB500DC */ sw $s5, 0xdc($sp) -/* 3D2F74 E00CE4B4 0280A82D */ daddu $s5, $s4, $zero -/* 3D2F78 E00CE4B8 AFB100CC */ sw $s1, 0xcc($sp) -/* 3D2F7C E00CE4BC 3C11800A */ lui $s1, %hi(gMasterGfxPos) -/* 3D2F80 E00CE4C0 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos) -/* 3D2F84 E00CE4C4 AFBF00EC */ sw $ra, 0xec($sp) -/* 3D2F88 E00CE4C8 AFB600E0 */ sw $s6, 0xe0($sp) -/* 3D2F8C E00CE4CC AFB200D0 */ sw $s2, 0xd0($sp) -/* 3D2F90 E00CE4D0 AFB000C8 */ sw $s0, 0xc8($sp) -/* 3D2F94 E00CE4D4 F7BE0118 */ sdc1 $f30, 0x118($sp) -/* 3D2F98 E00CE4D8 F7BC0110 */ sdc1 $f28, 0x110($sp) -/* 3D2F9C E00CE4DC F7BA0108 */ sdc1 $f26, 0x108($sp) -/* 3D2FA0 E00CE4E0 F7B80100 */ sdc1 $f24, 0x100($sp) -/* 3D2FA4 E00CE4E4 F7B600F8 */ sdc1 $f22, 0xf8($sp) -/* 3D2FA8 E00CE4E8 F7B400F0 */ sdc1 $f20, 0xf0($sp) -/* 3D2FAC E00CE4EC 8E230000 */ lw $v1, ($s1) -/* 3D2FB0 E00CE4F0 44800000 */ mtc1 $zero, $f0 -/* 3D2FB4 E00CE4F4 3C0142C8 */ lui $at, 0x42c8 -/* 3D2FB8 E00CE4F8 4481B000 */ mtc1 $at, $f22 -/* 3D2FBC E00CE4FC 8D56000C */ lw $s6, 0xc($t2) -/* 3D2FC0 E00CE500 3C014080 */ lui $at, 0x4080 -/* 3D2FC4 E00CE504 44812000 */ mtc1 $at, $f4 -/* 3D2FC8 E00CE508 0060402D */ daddu $t0, $v1, $zero -/* 3D2FCC E00CE50C 44050000 */ mfc1 $a1, $f0 -/* 3D2FD0 E00CE510 24630008 */ addiu $v1, $v1, 8 -/* 3D2FD4 E00CE514 AE230000 */ sw $v1, ($s1) -/* 3D2FD8 E00CE518 8ECC0010 */ lw $t4, 0x10($s6) -/* 3D2FDC E00CE51C 3C02E700 */ lui $v0, 0xe700 -/* 3D2FE0 E00CE520 AFAC00A0 */ sw $t4, 0xa0($sp) -/* 3D2FE4 E00CE524 8EC90024 */ lw $t1, 0x24($s6) -/* 3D2FE8 E00CE528 C6C60034 */ lwc1 $f6, 0x34($s6) -/* 3D2FEC E00CE52C 00A0302D */ daddu $a2, $a1, $zero -/* 3D2FF0 E00CE530 E7A600B8 */ swc1 $f6, 0xb8($sp) -/* 3D2FF4 E00CE534 C6C0013C */ lwc1 $f0, 0x13c($s6) -/* 3D2FF8 E00CE538 C6C20140 */ lwc1 $f2, 0x140($s6) -/* 3D2FFC E00CE53C AD020000 */ sw $v0, ($t0) -/* 3D3000 E00CE540 24620008 */ addiu $v0, $v1, 8 -/* 3D3004 E00CE544 AD000004 */ sw $zero, 4($t0) -/* 3D3008 E00CE548 3C088000 */ lui $t0, 0x8000 -/* 3D300C E00CE54C AE220000 */ sw $v0, ($s1) -/* 3D3010 E00CE550 46040002 */ mul.s $f0, $f0, $f4 -/* 3D3014 E00CE554 00000000 */ nop -/* 3D3018 E00CE558 AC6B0000 */ sw $t3, ($v1) -/* 3D301C E00CE55C 8D420010 */ lw $v0, 0x10($t2) -/* 3D3020 E00CE560 00094843 */ sra $t1, $t1, 1 -/* 3D3024 E00CE564 8C42001C */ lw $v0, 0x1c($v0) -/* 3D3028 E00CE568 46041082 */ mul.s $f2, $f2, $f4 -/* 3D302C E00CE56C 00000000 */ nop -/* 3D3030 E00CE570 00481021 */ addu $v0, $v0, $t0 -/* 3D3034 E00CE574 AC620004 */ sw $v0, 4($v1) -/* 3D3038 E00CE578 AFA900A4 */ sw $t1, 0xa4($sp) -/* 3D303C E00CE57C 4600018D */ trunc.w.s $f6, $f0 -/* 3D3040 E00CE580 E7A600B0 */ swc1 $f6, 0xb0($sp) -/* 3D3044 E00CE584 4600118D */ trunc.w.s $f6, $f2 -/* 3D3048 E00CE588 E7A600B4 */ swc1 $f6, 0xb4($sp) -/* 3D304C E00CE58C 0C080108 */ jal shim_guTranslateF -/* 3D3050 E00CE590 00A0382D */ daddu $a3, $a1, $zero -/* 3D3054 E00CE594 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D3058 E00CE598 3C108007 */ lui $s0, %hi(gMatrixListPos) -/* 3D305C E00CE59C 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos) -/* 3D3060 E00CE5A0 3C12800A */ lui $s2, %hi(gDisplayContext) -/* 3D3064 E00CE5A4 2652A674 */ addiu $s2, $s2, %lo(gDisplayContext) -/* 3D3068 E00CE5A8 96050000 */ lhu $a1, ($s0) -/* 3D306C E00CE5AC 8E420000 */ lw $v0, ($s2) -/* 3D3070 E00CE5B0 00052980 */ sll $a1, $a1, 6 -/* 3D3074 E00CE5B4 00B32821 */ addu $a1, $a1, $s3 -/* 3D3078 E00CE5B8 0C080118 */ jal shim_guMtxF2L -/* 3D307C E00CE5BC 00452821 */ addu $a1, $v0, $a1 -/* 3D3080 E00CE5C0 3C03DA38 */ lui $v1, 0xda38 -/* 3D3084 E00CE5C4 34630002 */ ori $v1, $v1, 2 -/* 3D3088 E00CE5C8 8E240000 */ lw $a0, ($s1) -/* 3D308C E00CE5CC 96020000 */ lhu $v0, ($s0) -/* 3D3090 E00CE5D0 0080282D */ daddu $a1, $a0, $zero -/* 3D3094 E00CE5D4 24840008 */ addiu $a0, $a0, 8 -/* 3D3098 E00CE5D8 248C0010 */ addiu $t4, $a0, 0x10 -/* 3D309C E00CE5DC AFAC00AC */ sw $t4, 0xac($sp) -/* 3D30A0 E00CE5E0 AE240000 */ sw $a0, ($s1) -/* 3D30A4 E00CE5E4 ACA30000 */ sw $v1, ($a1) -/* 3D30A8 E00CE5E8 24430001 */ addiu $v1, $v0, 1 -/* 3D30AC E00CE5EC 3042FFFF */ andi $v0, $v0, 0xffff -/* 3D30B0 E00CE5F0 00021180 */ sll $v0, $v0, 6 -/* 3D30B4 E00CE5F4 A6030000 */ sh $v1, ($s0) -/* 3D30B8 E00CE5F8 8E430000 */ lw $v1, ($s2) -/* 3D30BC E00CE5FC 00531021 */ addu $v0, $v0, $s3 -/* 3D30C0 E00CE600 00621821 */ addu $v1, $v1, $v0 -/* 3D30C4 E00CE604 24820008 */ addiu $v0, $a0, 8 -/* 3D30C8 E00CE608 ACA30004 */ sw $v1, 4($a1) -/* 3D30CC E00CE60C AE220000 */ sw $v0, ($s1) -/* 3D30D0 E00CE610 3C02DE00 */ lui $v0, 0xde00 -/* 3D30D4 E00CE614 AC820000 */ sw $v0, ($a0) -/* 3D30D8 E00CE618 3C020900 */ lui $v0, 0x900 -/* 3D30DC E00CE61C 24420400 */ addiu $v0, $v0, 0x400 -/* 3D30E0 E00CE620 AC820004 */ sw $v0, 4($a0) -/* 3D30E4 E00CE624 3C02DE01 */ lui $v0, 0xde01 -/* 3D30E8 E00CE628 AC820008 */ sw $v0, 8($a0) -/* 3D30EC E00CE62C 24820210 */ addiu $v0, $a0, 0x210 -/* 3D30F0 E00CE630 AC82000C */ sw $v0, 0xc($a0) -/* 3D30F4 E00CE634 AE220000 */ sw $v0, ($s1) -/* 3D30F8 E00CE638 00141100 */ sll $v0, $s4, 4 -.LE00CE63C: -/* 3D30FC E00CE63C 4495A000 */ mtc1 $s5, $f20 -/* 3D3100 E00CE640 00000000 */ nop -/* 3D3104 E00CE644 4680A520 */ cvt.s.w $f20, $f20 -/* 3D3108 E00CE648 8FAC00AC */ lw $t4, 0xac($sp) -/* 3D310C E00CE64C 4600A306 */ mov.s $f12, $f20 -/* 3D3110 E00CE650 0C080144 */ jal shim_cos_deg -/* 3D3114 E00CE654 01828021 */ addu $s0, $t4, $v0 -/* 3D3118 E00CE658 46160002 */ mul.s $f0, $f0, $f22 -/* 3D311C E00CE65C 00000000 */ nop -/* 3D3120 E00CE660 4600A306 */ mov.s $f12, $f20 -/* 3D3124 E00CE664 26B50018 */ addiu $s5, $s5, 0x18 -/* 3D3128 E00CE668 A6000002 */ sh $zero, 2($s0) -/* 3D312C E00CE66C 4600018D */ trunc.w.s $f6, $f0 -/* 3D3130 E00CE670 44023000 */ mfc1 $v0, $f6 -/* 3D3134 E00CE674 0C080140 */ jal shim_sin_deg -/* 3D3138 E00CE678 A6020000 */ sh $v0, ($s0) -/* 3D313C E00CE67C 46160002 */ mul.s $f0, $f0, $f22 -/* 3D3140 E00CE680 00000000 */ nop -/* 3D3144 E00CE684 4600A306 */ mov.s $f12, $f20 -/* 3D3148 E00CE688 001411C0 */ sll $v0, $s4, 7 -/* 3D314C E00CE68C A6020008 */ sh $v0, 8($s0) -/* 3D3150 E00CE690 A600000A */ sh $zero, 0xa($s0) -/* 3D3154 E00CE694 4600018D */ trunc.w.s $f6, $f0 -/* 3D3158 E00CE698 44023000 */ mfc1 $v0, $f6 -/* 3D315C E00CE69C 0C080144 */ jal shim_cos_deg -/* 3D3160 E00CE6A0 A6020004 */ sh $v0, 4($s0) -/* 3D3164 E00CE6A4 46160002 */ mul.s $f0, $f0, $f22 -/* 3D3168 E00CE6A8 00000000 */ nop -/* 3D316C E00CE6AC 8FAC00AC */ lw $t4, 0xac($sp) -/* 3D3170 E00CE6B0 4600A306 */ mov.s $f12, $f20 -/* 3D3174 E00CE6B4 01978021 */ addu $s0, $t4, $s7 -/* 3D3178 E00CE6B8 26F70010 */ addiu $s7, $s7, 0x10 -/* 3D317C E00CE6BC A6000002 */ sh $zero, 2($s0) -/* 3D3180 E00CE6C0 4600018D */ trunc.w.s $f6, $f0 -/* 3D3184 E00CE6C4 44023000 */ mfc1 $v0, $f6 -/* 3D3188 E00CE6C8 0C080140 */ jal shim_sin_deg -/* 3D318C E00CE6CC A6020000 */ sh $v0, ($s0) -/* 3D3190 E00CE6D0 46160002 */ mul.s $f0, $f0, $f22 -/* 3D3194 E00CE6D4 00000000 */ nop -/* 3D3198 E00CE6D8 00141240 */ sll $v0, $s4, 9 -/* 3D319C E00CE6DC 26940001 */ addiu $s4, $s4, 1 -/* 3D31A0 E00CE6E0 A6020008 */ sh $v0, 8($s0) -/* 3D31A4 E00CE6E4 A61E000A */ sh $fp, 0xa($s0) -/* 3D31A8 E00CE6E8 4600018D */ trunc.w.s $f6, $f0 -/* 3D31AC E00CE6EC 44023000 */ mfc1 $v0, $f6 -/* 3D31B0 E00CE6F0 00000000 */ nop -/* 3D31B4 E00CE6F4 A6020004 */ sh $v0, 4($s0) -/* 3D31B8 E00CE6F8 2A820010 */ slti $v0, $s4, 0x10 -/* 3D31BC E00CE6FC 1440FFCF */ bnez $v0, .LE00CE63C -/* 3D31C0 E00CE700 00141100 */ sll $v0, $s4, 4 -/* 3D31C4 E00CE704 3C02800A */ lui $v0, %hi(gMasterGfxPos) -/* 3D31C8 E00CE708 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos) -/* 3D31CC E00CE70C 0040402D */ daddu $t0, $v0, $zero -/* 3D31D0 E00CE710 8D030000 */ lw $v1, ($t0) -/* 3D31D4 E00CE714 0000A02D */ daddu $s4, $zero, $zero -/* 3D31D8 E00CE718 24620008 */ addiu $v0, $v1, 8 -/* 3D31DC E00CE71C AFA200A8 */ sw $v0, 0xa8($sp) -/* 3D31E0 E00CE720 3C02DE01 */ lui $v0, 0xde01 -/* 3D31E4 E00CE724 AC620000 */ sw $v0, ($v1) -/* 3D31E8 E00CE728 24620088 */ addiu $v0, $v1, 0x88 -/* 3D31EC E00CE72C AC620004 */ sw $v0, 4($v1) -/* 3D31F0 E00CE730 8FAC00A8 */ lw $t4, 0xa8($sp) -/* 3D31F4 E00CE734 3C090600 */ lui $t1, 0x600 -/* 3D31F8 E00CE738 AD0C0000 */ sw $t4, ($t0) -.LE00CE73C: -/* 3D31FC E00CE73C 26830010 */ addiu $v1, $s4, 0x10 -/* 3D3200 E00CE740 26840001 */ addiu $a0, $s4, 1 -/* 3D3204 E00CE744 00143040 */ sll $a2, $s4, 1 -/* 3D3208 E00CE748 26850011 */ addiu $a1, $s4, 0x11 -/* 3D320C E00CE74C 0080A02D */ daddu $s4, $a0, $zero -/* 3D3210 E00CE750 00031840 */ sll $v1, $v1, 1 -/* 3D3214 E00CE754 306300FF */ andi $v1, $v1, 0xff -/* 3D3218 E00CE758 00031C00 */ sll $v1, $v1, 0x10 -/* 3D321C E00CE75C 00142040 */ sll $a0, $s4, 1 -/* 3D3220 E00CE760 308400FF */ andi $a0, $a0, 0xff -/* 3D3224 E00CE764 30C600FF */ andi $a2, $a2, 0xff -/* 3D3228 E00CE768 00052A40 */ sll $a1, $a1, 9 -/* 3D322C E00CE76C 8D020000 */ lw $v0, ($t0) -/* 3D3230 E00CE770 30A5FE00 */ andi $a1, $a1, 0xfe00 -/* 3D3234 E00CE774 0040382D */ daddu $a3, $v0, $zero -/* 3D3238 E00CE778 24420008 */ addiu $v0, $v0, 8 -/* 3D323C E00CE77C AD020000 */ sw $v0, ($t0) -/* 3D3240 E00CE780 00041200 */ sll $v0, $a0, 8 -/* 3D3244 E00CE784 00621025 */ or $v0, $v1, $v0 -/* 3D3248 E00CE788 00461025 */ or $v0, $v0, $a2 -/* 3D324C E00CE78C 00491025 */ or $v0, $v0, $t1 -/* 3D3250 E00CE790 00651825 */ or $v1, $v1, $a1 -/* 3D3254 E00CE794 00641825 */ or $v1, $v1, $a0 -/* 3D3258 E00CE798 ACE20000 */ sw $v0, ($a3) -/* 3D325C E00CE79C 2A82000F */ slti $v0, $s4, 0xf -/* 3D3260 E00CE7A0 1440FFE6 */ bnez $v0, .LE00CE73C -/* 3D3264 E00CE7A4 ACE30004 */ sw $v1, 4($a3) -/* 3D3268 E00CE7A8 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D326C E00CE7AC 3C100001 */ lui $s0, 1 -/* 3D3270 E00CE7B0 36101630 */ ori $s0, $s0, 0x1630 -/* 3D3274 E00CE7B4 0000A02D */ daddu $s4, $zero, $zero -/* 3D3278 E00CE7B8 27B30060 */ addiu $s3, $sp, 0x60 -/* 3D327C E00CE7BC 3C028007 */ lui $v0, %hi(gMatrixListPos) -/* 3D3280 E00CE7C0 244241F0 */ addiu $v0, $v0, %lo(gMatrixListPos) -/* 3D3284 E00CE7C4 0040B82D */ daddu $s7, $v0, $zero -/* 3D3288 E00CE7C8 3C1E0001 */ lui $fp, 1 -/* 3D328C E00CE7CC 3C02800A */ lui $v0, %hi(gMasterGfxPos) -/* 3D3290 E00CE7D0 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos) -/* 3D3294 E00CE7D4 0040A82D */ daddu $s5, $v0, $zero -/* 3D3298 E00CE7D8 3C0CD838 */ lui $t4, 0xd838 -/* 3D329C E00CE7DC 358C0002 */ ori $t4, $t4, 2 -/* 3D32A0 E00CE7E0 AFAC00C4 */ sw $t4, 0xc4($sp) -/* 3D32A4 E00CE7E4 8EA20000 */ lw $v0, ($s5) -/* 3D32A8 E00CE7E8 4480F000 */ mtc1 $zero, $f30 -/* 3D32AC E00CE7EC 3C013DCC */ lui $at, 0x3dcc -/* 3D32B0 E00CE7F0 3421CCCD */ ori $at, $at, 0xcccd -/* 3D32B4 E00CE7F4 44810000 */ mtc1 $at, $f0 -/* 3D32B8 E00CE7F8 0040182D */ daddu $v1, $v0, $zero -/* 3D32BC E00CE7FC 44050000 */ mfc1 $a1, $f0 -/* 3D32C0 E00CE800 24420008 */ addiu $v0, $v0, 8 -/* 3D32C4 E00CE804 AEA20000 */ sw $v0, ($s5) -/* 3D32C8 E00CE808 3C02DF00 */ lui $v0, 0xdf00 -/* 3D32CC E00CE80C AC620000 */ sw $v0, ($v1) -/* 3D32D0 E00CE810 AC600004 */ sw $zero, 4($v1) -/* 3D32D4 E00CE814 00A0302D */ daddu $a2, $a1, $zero -/* 3D32D8 E00CE818 0C080110 */ jal shim_guScaleF -/* 3D32DC E00CE81C 00A0382D */ daddu $a3, $a1, $zero -/* 3D32E0 E00CE820 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D32E4 E00CE824 96E50000 */ lhu $a1, ($s7) -/* 3D32E8 E00CE828 3C02800A */ lui $v0, %hi(gDisplayContext) -/* 3D32EC E00CE82C 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0) -/* 3D32F0 E00CE830 00052980 */ sll $a1, $a1, 6 -/* 3D32F4 E00CE834 00B02821 */ addu $a1, $a1, $s0 -/* 3D32F8 E00CE838 0C080118 */ jal shim_guMtxF2L -/* 3D32FC E00CE83C 00452821 */ addu $a1, $v0, $a1 -/* 3D3300 E00CE840 8EA20000 */ lw $v0, ($s5) -/* 3D3304 E00CE844 3C014120 */ lui $at, 0x4120 -/* 3D3308 E00CE848 4481D000 */ mtc1 $at, $f26 -/* 3D330C E00CE84C 0040202D */ daddu $a0, $v0, $zero -/* 3D3310 E00CE850 24420008 */ addiu $v0, $v0, 8 -/* 3D3314 E00CE854 AFA200C0 */ sw $v0, 0xc0($sp) -/* 3D3318 E00CE858 8FAC00C0 */ lw $t4, 0xc0($sp) -/* 3D331C E00CE85C 24420008 */ addiu $v0, $v0, 8 -/* 3D3320 E00CE860 AFA200BC */ sw $v0, 0xbc($sp) -/* 3D3324 E00CE864 AEAC0000 */ sw $t4, ($s5) -/* 3D3328 E00CE868 96E20000 */ lhu $v0, ($s7) -/* 3D332C E00CE86C 3C03DA38 */ lui $v1, 0xda38 -/* 3D3330 E00CE870 AC830000 */ sw $v1, ($a0) -/* 3D3334 E00CE874 24430001 */ addiu $v1, $v0, 1 -/* 3D3338 E00CE878 3042FFFF */ andi $v0, $v0, 0xffff -/* 3D333C E00CE87C 00021180 */ sll $v0, $v0, 6 -/* 3D3340 E00CE880 A6E30000 */ sh $v1, ($s7) -/* 3D3344 E00CE884 3C03800A */ lui $v1, %hi(gDisplayContext) -/* 3D3348 E00CE888 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1) -/* 3D334C E00CE88C 00501021 */ addu $v0, $v0, $s0 -/* 3D3350 E00CE890 00621821 */ addu $v1, $v1, $v0 -/* 3D3354 E00CE894 AC830004 */ sw $v1, 4($a0) -/* 3D3358 E00CE898 8FAC00BC */ lw $t4, 0xbc($sp) -/* 3D335C E00CE89C 37DE1630 */ ori $fp, $fp, 0x1630 -/* 3D3360 E00CE8A0 AEAC0000 */ sw $t4, ($s5) -.LE00CE8A4: -/* 3D3364 E00CE8A4 00141080 */ sll $v0, $s4, 2 -/* 3D3368 E00CE8A8 3C013F80 */ lui $at, 0x3f80 -/* 3D336C E00CE8AC 44813000 */ mtc1 $at, $f6 -/* 3D3370 E00CE8B0 02C29021 */ addu $s2, $s6, $v0 -/* 3D3374 E00CE8B4 E7A60010 */ swc1 $f6, 0x10($sp) -/* 3D3378 E00CE8B8 C6400038 */ lwc1 $f0, 0x38($s2) -/* 3D337C E00CE8BC 461A0002 */ mul.s $f0, $f0, $f26 -/* 3D3380 E00CE8C0 00000000 */ nop -/* 3D3384 E00CE8C4 E7A00014 */ swc1 $f0, 0x14($sp) -/* 3D3388 E00CE8C8 C6400058 */ lwc1 $f0, 0x58($s2) -/* 3D338C E00CE8CC 461A0002 */ mul.s $f0, $f0, $f26 -/* 3D3390 E00CE8D0 00000000 */ nop -/* 3D3394 E00CE8D4 E7A00018 */ swc1 $f0, 0x18($sp) -/* 3D3398 E00CE8D8 C6400078 */ lwc1 $f0, 0x78($s2) -/* 3D339C E00CE8DC 461A0002 */ mul.s $f0, $f0, $f26 -/* 3D33A0 E00CE8E0 00000000 */ nop -/* 3D33A4 E00CE8E4 4405F000 */ mfc1 $a1, $f30 -/* 3D33A8 E00CE8E8 4406F000 */ mfc1 $a2, $f30 -/* 3D33AC E00CE8EC E7A0001C */ swc1 $f0, 0x1c($sp) -/* 3D33B0 E00CE8F0 8E470118 */ lw $a3, 0x118($s2) -/* 3D33B4 E00CE8F4 0C080180 */ jal shim_guPositionF -/* 3D33B8 E00CE8F8 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D33BC E00CE8FC 02940018 */ mult $s4, $s4 -/* 3D33C0 E00CE900 00006012 */ mflo $t4 -/* 3D33C4 E00CE904 C6C00138 */ lwc1 $f0, 0x138($s6) -/* 3D33C8 E00CE908 448CE000 */ mtc1 $t4, $f28 -/* 3D33CC E00CE90C 00000000 */ nop -/* 3D33D0 E00CE910 4680E720 */ cvt.s.w $f28, $f28 -/* 3D33D4 E00CE914 461C0000 */ add.s $f0, $f0, $f28 -/* 3D33D8 E00CE918 3C06BCF5 */ lui $a2, 0xbcf5 -/* 3D33DC E00CE91C 34C6C28F */ ori $a2, $a2, 0xc28f -/* 3D33E0 E00CE920 3C073F80 */ lui $a3, 0x3f80 -/* 3D33E4 E00CE924 44050000 */ mfc1 $a1, $f0 -/* 3D33E8 E00CE928 3C013DCC */ lui $at, 0x3dcc -/* 3D33EC E00CE92C 3421CCCD */ ori $at, $at, 0xcccd -/* 3D33F0 E00CE930 44810000 */ mtc1 $at, $f0 -/* 3D33F4 E00CE934 0260202D */ daddu $a0, $s3, $zero -/* 3D33F8 E00CE938 0C080104 */ jal shim_guRotateF -/* 3D33FC E00CE93C E7A00010 */ swc1 $f0, 0x10($sp) -/* 3D3400 E00CE940 0260202D */ daddu $a0, $s3, $zero -/* 3D3404 E00CE944 27A50020 */ addiu $a1, $sp, 0x20 -/* 3D3408 E00CE948 0C080114 */ jal shim_guMtxCatF -/* 3D340C E00CE94C 00A0302D */ daddu $a2, $a1, $zero -/* 3D3410 E00CE950 C6400098 */ lwc1 $f0, 0x98($s2) -/* 3D3414 E00CE954 8FAC00A0 */ lw $t4, 0xa0($sp) -/* 3D3418 E00CE958 C7A600B8 */ lwc1 $f6, 0xb8($sp) -/* 3D341C E00CE95C 29820010 */ slti $v0, $t4, 0x10 -/* 3D3420 E00CE960 46060102 */ mul.s $f4, $f0, $f6 -/* 3D3424 E00CE964 00000000 */ nop -/* 3D3428 E00CE968 1040000C */ beqz $v0, .LE00CE99C -/* 3D342C E00CE96C 2402007F */ addiu $v0, $zero, 0x7f -/* 3D3430 E00CE970 8FAC00A4 */ lw $t4, 0xa4($sp) -/* 3D3434 E00CE974 3C013CA3 */ lui $at, 0x3ca3 -/* 3D3438 E00CE978 3421D70A */ ori $at, $at, 0xd70a -/* 3D343C E00CE97C 44811000 */ mtc1 $at, $f2 -/* 3D3440 E00CE980 004C1023 */ subu $v0, $v0, $t4 -/* 3D3444 E00CE984 44820000 */ mtc1 $v0, $f0 -/* 3D3448 E00CE988 00000000 */ nop -/* 3D344C E00CE98C 46800020 */ cvt.s.w $f0, $f0 -/* 3D3450 E00CE990 46020002 */ mul.s $f0, $f0, $f2 -/* 3D3454 E00CE994 00000000 */ nop -/* 3D3458 E00CE998 46002100 */ add.s $f4, $f4, $f0 -.LE00CE99C: -/* 3D345C E00CE99C 0260202D */ daddu $a0, $s3, $zero -/* 3D3460 E00CE9A0 44052000 */ mfc1 $a1, $f4 -/* 3D3464 E00CE9A4 8FA600B8 */ lw $a2, 0xb8($sp) -/* 3D3468 E00CE9A8 0C080110 */ jal shim_guScaleF -/* 3D346C E00CE9AC 00A0382D */ daddu $a3, $a1, $zero -/* 3D3470 E00CE9B0 0260202D */ daddu $a0, $s3, $zero -/* 3D3474 E00CE9B4 27A50020 */ addiu $a1, $sp, 0x20 -/* 3D3478 E00CE9B8 0C080114 */ jal shim_guMtxCatF -/* 3D347C E00CE9BC 00A0302D */ daddu $a2, $a1, $zero -/* 3D3480 E00CE9C0 C65400F8 */ lwc1 $f20, 0xf8($s2) -/* 3D3484 E00CE9C4 461AA502 */ mul.s $f20, $f20, $f26 -/* 3D3488 E00CE9C8 00000000 */ nop -/* 3D348C E00CE9CC C65600B8 */ lwc1 $f22, 0xb8($s2) -/* 3D3490 E00CE9D0 0C080140 */ jal shim_sin_deg -/* 3D3494 E00CE9D4 4600B306 */ mov.s $f12, $f22 -/* 3D3498 E00CE9D8 4600A602 */ mul.s $f24, $f20, $f0 -/* 3D349C E00CE9DC 00000000 */ nop -/* 3D34A0 E00CE9E0 0C080144 */ jal shim_cos_deg -/* 3D34A4 E00CE9E4 4600B306 */ mov.s $f12, $f22 -/* 3D34A8 E00CE9E8 4600A502 */ mul.s $f20, $f20, $f0 -/* 3D34AC E00CE9EC 00000000 */ nop -/* 3D34B0 E00CE9F0 4406F000 */ mfc1 $a2, $f30 -/* 3D34B4 E00CE9F4 4407A000 */ mfc1 $a3, $f20 -/* 3D34B8 E00CE9F8 4405C000 */ mfc1 $a1, $f24 -/* 3D34BC E00CE9FC 0C080108 */ jal shim_guTranslateF -/* 3D34C0 E00CEA00 0260202D */ daddu $a0, $s3, $zero -/* 3D34C4 E00CEA04 0260202D */ daddu $a0, $s3, $zero -/* 3D34C8 E00CEA08 27A50020 */ addiu $a1, $sp, 0x20 -/* 3D34CC E00CEA0C 0C080114 */ jal shim_guMtxCatF -/* 3D34D0 E00CEA10 00A0302D */ daddu $a2, $a1, $zero -/* 3D34D4 E00CEA14 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D34D8 E00CEA18 96E50000 */ lhu $a1, ($s7) -/* 3D34DC E00CEA1C 3C02800A */ lui $v0, %hi(gDisplayContext) -/* 3D34E0 E00CEA20 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0) -/* 3D34E4 E00CEA24 00052980 */ sll $a1, $a1, 6 -/* 3D34E8 E00CEA28 00BE2821 */ addu $a1, $a1, $fp -/* 3D34EC E00CEA2C 0C080118 */ jal shim_guMtxF2L -/* 3D34F0 E00CEA30 00452821 */ addu $a1, $v0, $a1 -/* 3D34F4 E00CEA34 3C050101 */ lui $a1, 0x101 -/* 3D34F8 E00CEA38 34A50020 */ ori $a1, $a1, 0x20 -/* 3D34FC E00CEA3C 8EA80000 */ lw $t0, ($s5) -/* 3D3500 E00CEA40 96E70000 */ lhu $a3, ($s7) -/* 3D3504 E00CEA44 3C03800A */ lui $v1, %hi(gDisplayContext) -/* 3D3508 E00CEA48 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1) -/* 3D350C E00CEA4C 0100202D */ daddu $a0, $t0, $zero -/* 3D3510 E00CEA50 25080008 */ addiu $t0, $t0, 8 -/* 3D3514 E00CEA54 3C0CDA38 */ lui $t4, 0xda38 -/* 3D3518 E00CEA58 30E2FFFF */ andi $v0, $a3, 0xffff -/* 3D351C E00CEA5C 00021180 */ sll $v0, $v0, 6 -/* 3D3520 E00CEA60 005E1021 */ addu $v0, $v0, $fp -/* 3D3524 E00CEA64 00621821 */ addu $v1, $v1, $v0 -/* 3D3528 E00CEA68 AC8C0000 */ sw $t4, ($a0) -/* 3D352C E00CEA6C AC830004 */ sw $v1, 4($a0) -/* 3D3530 E00CEA70 AD050000 */ sw $a1, ($t0) -/* 3D3534 E00CEA74 8FAC00AC */ lw $t4, 0xac($sp) -/* 3D3538 E00CEA78 26910001 */ addiu $s1, $s4, 1 -/* 3D353C E00CEA7C AD0C0004 */ sw $t4, 4($t0) -/* 3D3540 E00CEA80 8FAC00C4 */ lw $t4, 0xc4($sp) -/* 3D3544 E00CEA84 00118080 */ sll $s0, $s1, 2 -/* 3D3548 E00CEA88 AD0C0008 */ sw $t4, 8($t0) -/* 3D354C E00CEA8C 240C0040 */ addiu $t4, $zero, 0x40 -/* 3D3550 E00CEA90 3C013F80 */ lui $at, 0x3f80 -/* 3D3554 E00CEA94 44813000 */ mtc1 $at, $f6 -/* 3D3558 E00CEA98 02D08021 */ addu $s0, $s6, $s0 -/* 3D355C E00CEA9C AD0C000C */ sw $t4, 0xc($t0) -/* 3D3560 E00CEAA0 E7A60010 */ swc1 $f6, 0x10($sp) -/* 3D3564 E00CEAA4 C6000038 */ lwc1 $f0, 0x38($s0) -/* 3D3568 E00CEAA8 461A0002 */ mul.s $f0, $f0, $f26 -/* 3D356C E00CEAAC 00000000 */ nop -/* 3D3570 E00CEAB0 E7A00014 */ swc1 $f0, 0x14($sp) -/* 3D3574 E00CEAB4 C6000058 */ lwc1 $f0, 0x58($s0) -/* 3D3578 E00CEAB8 461A0002 */ mul.s $f0, $f0, $f26 -/* 3D357C E00CEABC 00000000 */ nop -/* 3D3580 E00CEAC0 4406F000 */ mfc1 $a2, $f30 -/* 3D3584 E00CEAC4 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D3588 E00CEAC8 24E70001 */ addiu $a3, $a3, 1 -/* 3D358C E00CEACC E7A00018 */ swc1 $f0, 0x18($sp) -/* 3D3590 E00CEAD0 C6000078 */ lwc1 $f0, 0x78($s0) -/* 3D3594 E00CEAD4 4405F000 */ mfc1 $a1, $f30 -/* 3D3598 E00CEAD8 461A0002 */ mul.s $f0, $f0, $f26 -/* 3D359C E00CEADC 00000000 */ nop -/* 3D35A0 E00CEAE0 25020008 */ addiu $v0, $t0, 8 -/* 3D35A4 E00CEAE4 AEA80000 */ sw $t0, ($s5) -/* 3D35A8 E00CEAE8 A6E70000 */ sh $a3, ($s7) -/* 3D35AC E00CEAEC AEA20000 */ sw $v0, ($s5) -/* 3D35B0 E00CEAF0 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 3D35B4 E00CEAF4 8E070118 */ lw $a3, 0x118($s0) -/* 3D35B8 E00CEAF8 25080010 */ addiu $t0, $t0, 0x10 -/* 3D35BC E00CEAFC 0C080180 */ jal shim_guPositionF -/* 3D35C0 E00CEB00 AEA80000 */ sw $t0, ($s5) -/* 3D35C4 E00CEB04 C6C00138 */ lwc1 $f0, 0x138($s6) -/* 3D35C8 E00CEB08 461C0000 */ add.s $f0, $f0, $f28 -/* 3D35CC E00CEB0C 3C063CF5 */ lui $a2, 0x3cf5 -/* 3D35D0 E00CEB10 34C6C28F */ ori $a2, $a2, 0xc28f -/* 3D35D4 E00CEB14 3C073F80 */ lui $a3, 0x3f80 -/* 3D35D8 E00CEB18 44050000 */ mfc1 $a1, $f0 -/* 3D35DC E00CEB1C 0260202D */ daddu $a0, $s3, $zero -/* 3D35E0 E00CEB20 0C080104 */ jal shim_guRotateF -/* 3D35E4 E00CEB24 E7BE0010 */ swc1 $f30, 0x10($sp) -/* 3D35E8 E00CEB28 0260202D */ daddu $a0, $s3, $zero -/* 3D35EC E00CEB2C 27A50020 */ addiu $a1, $sp, 0x20 -/* 3D35F0 E00CEB30 0C080114 */ jal shim_guMtxCatF -/* 3D35F4 E00CEB34 00A0302D */ daddu $a2, $a1, $zero -/* 3D35F8 E00CEB38 C6000098 */ lwc1 $f0, 0x98($s0) -/* 3D35FC E00CEB3C C7A600B8 */ lwc1 $f6, 0xb8($sp) -/* 3D3600 E00CEB40 46060002 */ mul.s $f0, $f0, $f6 -/* 3D3604 E00CEB44 00000000 */ nop -/* 3D3608 E00CEB48 0260202D */ daddu $a0, $s3, $zero -/* 3D360C E00CEB4C 44050000 */ mfc1 $a1, $f0 -/* 3D3610 E00CEB50 44063000 */ mfc1 $a2, $f6 -/* 3D3614 E00CEB54 0C080110 */ jal shim_guScaleF -/* 3D3618 E00CEB58 00A0382D */ daddu $a3, $a1, $zero -/* 3D361C E00CEB5C 0260202D */ daddu $a0, $s3, $zero -/* 3D3620 E00CEB60 27A50020 */ addiu $a1, $sp, 0x20 -/* 3D3624 E00CEB64 0C080114 */ jal shim_guMtxCatF -/* 3D3628 E00CEB68 00A0302D */ daddu $a2, $a1, $zero -/* 3D362C E00CEB6C C65400F8 */ lwc1 $f20, 0xf8($s2) -/* 3D3630 E00CEB70 461AA502 */ mul.s $f20, $f20, $f26 -/* 3D3634 E00CEB74 00000000 */ nop -/* 3D3638 E00CEB78 0C080140 */ jal shim_sin_deg -/* 3D363C E00CEB7C C64C00B8 */ lwc1 $f12, 0xb8($s2) -/* 3D3640 E00CEB80 4600A582 */ mul.s $f22, $f20, $f0 -/* 3D3644 E00CEB84 00000000 */ nop -/* 3D3648 E00CEB88 0C080144 */ jal shim_cos_deg -/* 3D364C E00CEB8C C64C00B8 */ lwc1 $f12, 0xb8($s2) -/* 3D3650 E00CEB90 4600A502 */ mul.s $f20, $f20, $f0 -/* 3D3654 E00CEB94 00000000 */ nop -/* 3D3658 E00CEB98 4406F000 */ mfc1 $a2, $f30 -/* 3D365C E00CEB9C 4407A000 */ mfc1 $a3, $f20 -/* 3D3660 E00CEBA0 4405B000 */ mfc1 $a1, $f22 -/* 3D3664 E00CEBA4 0C080108 */ jal shim_guTranslateF -/* 3D3668 E00CEBA8 0260202D */ daddu $a0, $s3, $zero -/* 3D366C E00CEBAC 0260202D */ daddu $a0, $s3, $zero -/* 3D3670 E00CEBB0 27A50020 */ addiu $a1, $sp, 0x20 -/* 3D3674 E00CEBB4 0C080114 */ jal shim_guMtxCatF -/* 3D3678 E00CEBB8 00A0302D */ daddu $a2, $a1, $zero -/* 3D367C E00CEBBC 27A40020 */ addiu $a0, $sp, 0x20 -/* 3D3680 E00CEBC0 96E50000 */ lhu $a1, ($s7) -/* 3D3684 E00CEBC4 3C02800A */ lui $v0, %hi(gDisplayContext) -/* 3D3688 E00CEBC8 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0) -/* 3D368C E00CEBCC 00052980 */ sll $a1, $a1, 6 -/* 3D3690 E00CEBD0 00BE2821 */ addu $a1, $a1, $fp -/* 3D3694 E00CEBD4 0C080118 */ jal shim_guMtxF2L -/* 3D3698 E00CEBD8 00452821 */ addu $a1, $v0, $a1 -/* 3D369C E00CEBDC 3C080101 */ lui $t0, 0x101 -/* 3D36A0 E00CEBE0 35080040 */ ori $t0, $t0, 0x40 -/* 3D36A4 E00CEBE4 3C090100 */ lui $t1, 0x100 -/* 3D36A8 E00CEBE8 3529007C */ ori $t1, $t1, 0x7c -/* 3D36AC E00CEBEC 00142900 */ sll $a1, $s4, 4 -/* 3D36B0 E00CEBF0 8EA40000 */ lw $a0, ($s5) -/* 3D36B4 E00CEBF4 96E30000 */ lhu $v1, ($s7) -/* 3D36B8 E00CEBF8 0080382D */ daddu $a3, $a0, $zero -/* 3D36BC E00CEBFC 24840008 */ addiu $a0, $a0, 8 -/* 3D36C0 E00CEC00 3C0CDA38 */ lui $t4, 0xda38 -/* 3D36C4 E00CEC04 24620001 */ addiu $v0, $v1, 1 -/* 3D36C8 E00CEC08 3063FFFF */ andi $v1, $v1, 0xffff -/* 3D36CC E00CEC0C 00031980 */ sll $v1, $v1, 6 -/* 3D36D0 E00CEC10 AEA40000 */ sw $a0, ($s5) -/* 3D36D4 E00CEC14 ACEC0000 */ sw $t4, ($a3) -/* 3D36D8 E00CEC18 A6E20000 */ sh $v0, ($s7) -/* 3D36DC E00CEC1C 3C02800A */ lui $v0, %hi(gDisplayContext) -/* 3D36E0 E00CEC20 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0) -/* 3D36E4 E00CEC24 007E1821 */ addu $v1, $v1, $fp -/* 3D36E8 E00CEC28 00431021 */ addu $v0, $v0, $v1 -/* 3D36EC E00CEC2C ACE20004 */ sw $v0, 4($a3) -/* 3D36F0 E00CEC30 24820008 */ addiu $v0, $a0, 8 -/* 3D36F4 E00CEC34 AEA20000 */ sw $v0, ($s5) -/* 3D36F8 E00CEC38 AC880000 */ sw $t0, ($a0) -/* 3D36FC E00CEC3C 8FAC00AC */ lw $t4, 0xac($sp) -/* 3D3700 E00CEC40 001430C0 */ sll $a2, $s4, 3 -/* 3D3704 E00CEC44 25820100 */ addiu $v0, $t4, 0x100 -/* 3D3708 E00CEC48 AC820004 */ sw $v0, 4($a0) -/* 3D370C E00CEC4C 24820010 */ addiu $v0, $a0, 0x10 -/* 3D3710 E00CEC50 AEA20000 */ sw $v0, ($s5) -/* 3D3714 E00CEC54 8FAC00C4 */ lw $t4, 0xc4($sp) -/* 3D3718 E00CEC58 24820018 */ addiu $v0, $a0, 0x18 -/* 3D371C E00CEC5C AC8C0008 */ sw $t4, 8($a0) -/* 3D3720 E00CEC60 240C0040 */ addiu $t4, $zero, 0x40 -/* 3D3724 E00CEC64 AC8C000C */ sw $t4, 0xc($a0) -/* 3D3728 E00CEC68 AEA20000 */ sw $v0, ($s5) -/* 3D372C E00CEC6C 8FAC00B0 */ lw $t4, 0xb0($sp) -/* 3D3730 E00CEC70 0220A02D */ daddu $s4, $s1, $zero -/* 3D3734 E00CEC74 01852821 */ addu $a1, $t4, $a1 -/* 3D3738 E00CEC78 30A20FFF */ andi $v0, $a1, 0xfff -/* 3D373C E00CEC7C 00021300 */ sll $v0, $v0, 0xc -/* 3D3740 E00CEC80 3C0CF200 */ lui $t4, 0xf200 -/* 3D3744 E00CEC84 004C1025 */ or $v0, $v0, $t4 -/* 3D3748 E00CEC88 24A5003F */ addiu $a1, $a1, 0x3f -/* 3D374C E00CEC8C 00052880 */ sll $a1, $a1, 2 -/* 3D3750 E00CEC90 30A50FFF */ andi $a1, $a1, 0xfff -/* 3D3754 E00CEC94 00052B00 */ sll $a1, $a1, 0xc -/* 3D3758 E00CEC98 34A5007C */ ori $a1, $a1, 0x7c -/* 3D375C E00CEC9C AC820010 */ sw $v0, 0x10($a0) -/* 3D3760 E00CECA0 24820020 */ addiu $v0, $a0, 0x20 -/* 3D3764 E00CECA4 AC850014 */ sw $a1, 0x14($a0) -/* 3D3768 E00CECA8 AEA20000 */ sw $v0, ($s5) -/* 3D376C E00CECAC 8FAC00B4 */ lw $t4, 0xb4($sp) -/* 3D3770 E00CECB0 3C0ADE00 */ lui $t2, 0xde00 -/* 3D3774 E00CECB4 01863021 */ addu $a2, $t4, $a2 -/* 3D3778 E00CECB8 30C20FFF */ andi $v0, $a2, 0xfff -/* 3D377C E00CECBC 00021300 */ sll $v0, $v0, 0xc -/* 3D3780 E00CECC0 3C0CF200 */ lui $t4, 0xf200 -/* 3D3784 E00CECC4 004C1025 */ or $v0, $v0, $t4 -/* 3D3788 E00CECC8 24C6003F */ addiu $a2, $a2, 0x3f -/* 3D378C E00CECCC 00063080 */ sll $a2, $a2, 2 -/* 3D3790 E00CECD0 30C60FFF */ andi $a2, $a2, 0xfff -/* 3D3794 E00CECD4 00063300 */ sll $a2, $a2, 0xc -/* 3D3798 E00CECD8 00C93025 */ or $a2, $a2, $t1 -/* 3D379C E00CECDC AC820018 */ sw $v0, 0x18($a0) -/* 3D37A0 E00CECE0 24820028 */ addiu $v0, $a0, 0x28 -/* 3D37A4 E00CECE4 AC86001C */ sw $a2, 0x1c($a0) -/* 3D37A8 E00CECE8 AEA20000 */ sw $v0, ($s5) -/* 3D37AC E00CECEC AC8A0020 */ sw $t2, 0x20($a0) -/* 3D37B0 E00CECF0 8FAC00A8 */ lw $t4, 0xa8($sp) -/* 3D37B4 E00CECF4 2A820007 */ slti $v0, $s4, 7 -/* 3D37B8 E00CECF8 1440FEEA */ bnez $v0, .LE00CE8A4 -/* 3D37BC E00CECFC AC8C0024 */ sw $t4, 0x24($a0) -/* 3D37C0 E00CED00 3C05D9FF */ lui $a1, 0xd9ff -/* 3D37C4 E00CED04 34A5F9FF */ ori $a1, $a1, 0xf9ff -/* 3D37C8 E00CED08 3C09D838 */ lui $t1, 0xd838 -/* 3D37CC E00CED0C 3C07800A */ lui $a3, %hi(gMasterGfxPos) -/* 3D37D0 E00CED10 24E7A66C */ addiu $a3, $a3, %lo(gMasterGfxPos) -/* 3D37D4 E00CED14 35290002 */ ori $t1, $t1, 2 -/* 3D37D8 E00CED18 8CE40000 */ lw $a0, ($a3) -/* 3D37DC E00CED1C 3C02DF00 */ lui $v0, 0xdf00 -/* 3D37E0 E00CED20 0080182D */ daddu $v1, $a0, $zero -/* 3D37E4 E00CED24 24840008 */ addiu $a0, $a0, 8 -/* 3D37E8 E00CED28 ACE40000 */ sw $a0, ($a3) -/* 3D37EC E00CED2C AC620000 */ sw $v0, ($v1) -/* 3D37F0 E00CED30 AC600004 */ sw $zero, 4($v1) -/* 3D37F4 E00CED34 8FAC00C0 */ lw $t4, 0xc0($sp) -/* 3D37F8 E00CED38 3C02DE01 */ lui $v0, 0xde01 -/* 3D37FC E00CED3C AD820000 */ sw $v0, ($t4) -/* 3D3800 E00CED40 24820008 */ addiu $v0, $a0, 8 -/* 3D3804 E00CED44 AD840004 */ sw $a0, 4($t4) -/* 3D3808 E00CED48 ACE20000 */ sw $v0, ($a3) -/* 3D380C E00CED4C 24820010 */ addiu $v0, $a0, 0x10 -/* 3D3810 E00CED50 AC850000 */ sw $a1, ($a0) -/* 3D3814 E00CED54 AC800004 */ sw $zero, 4($a0) -/* 3D3818 E00CED58 ACE20000 */ sw $v0, ($a3) -/* 3D381C E00CED5C 3C02FA00 */ lui $v0, 0xfa00 -/* 3D3820 E00CED60 AC820008 */ sw $v0, 8($a0) -/* 3D3824 E00CED64 92C2001B */ lbu $v0, 0x1b($s6) -/* 3D3828 E00CED68 92C5001F */ lbu $a1, 0x1f($s6) -/* 3D382C E00CED6C 92C60023 */ lbu $a2, 0x23($s6) -/* 3D3830 E00CED70 24830018 */ addiu $v1, $a0, 0x18 -/* 3D3834 E00CED74 ACE30000 */ sw $v1, ($a3) -/* 3D3838 E00CED78 3C03FB00 */ lui $v1, 0xfb00 -/* 3D383C E00CED7C AC830010 */ sw $v1, 0x10($a0) -/* 3D3840 E00CED80 8FAC00A4 */ lw $t4, 0xa4($sp) -/* 3D3844 E00CED84 00021600 */ sll $v0, $v0, 0x18 -/* 3D3848 E00CED88 00052C00 */ sll $a1, $a1, 0x10 -/* 3D384C E00CED8C 00451025 */ or $v0, $v0, $a1 -/* 3D3850 E00CED90 00063200 */ sll $a2, $a2, 8 -/* 3D3854 E00CED94 00461025 */ or $v0, $v0, $a2 -/* 3D3858 E00CED98 318300FF */ andi $v1, $t4, 0xff -/* 3D385C E00CED9C 00431025 */ or $v0, $v0, $v1 -/* 3D3860 E00CEDA0 AC82000C */ sw $v0, 0xc($a0) -/* 3D3864 E00CEDA4 92C3002B */ lbu $v1, 0x2b($s6) -/* 3D3868 E00CEDA8 92C6002F */ lbu $a2, 0x2f($s6) -/* 3D386C E00CEDAC 92C80033 */ lbu $t0, 0x33($s6) -/* 3D3870 E00CEDB0 24820020 */ addiu $v0, $a0, 0x20 -/* 3D3874 E00CEDB4 ACE20000 */ sw $v0, ($a3) -/* 3D3878 E00CEDB8 24820028 */ addiu $v0, $a0, 0x28 -/* 3D387C E00CEDBC AC8A0018 */ sw $t2, 0x18($a0) -/* 3D3880 E00CEDC0 8FAC00BC */ lw $t4, 0xbc($sp) -/* 3D3884 E00CEDC4 24050040 */ addiu $a1, $zero, 0x40 -/* 3D3888 E00CEDC8 AC8C001C */ sw $t4, 0x1c($a0) -/* 3D388C E00CEDCC ACE20000 */ sw $v0, ($a3) -/* 3D3890 E00CEDD0 24820030 */ addiu $v0, $a0, 0x30 -/* 3D3894 E00CEDD4 00031E00 */ sll $v1, $v1, 0x18 -/* 3D3898 E00CEDD8 00063400 */ sll $a2, $a2, 0x10 -/* 3D389C E00CEDDC 00661825 */ or $v1, $v1, $a2 -/* 3D38A0 E00CEDE0 00084200 */ sll $t0, $t0, 8 -/* 3D38A4 E00CEDE4 00681825 */ or $v1, $v1, $t0 -/* 3D38A8 E00CEDE8 34630020 */ ori $v1, $v1, 0x20 -/* 3D38AC E00CEDEC AC890020 */ sw $t1, 0x20($a0) -/* 3D38B0 E00CEDF0 AC850024 */ sw $a1, 0x24($a0) -/* 3D38B4 E00CEDF4 ACE20000 */ sw $v0, ($a3) -/* 3D38B8 E00CEDF8 AC890028 */ sw $t1, 0x28($a0) -/* 3D38BC E00CEDFC AC85002C */ sw $a1, 0x2c($a0) -/* 3D38C0 E00CEE00 AC830014 */ sw $v1, 0x14($a0) -/* 3D38C4 E00CEE04 8FBF00EC */ lw $ra, 0xec($sp) -/* 3D38C8 E00CEE08 8FBE00E8 */ lw $fp, 0xe8($sp) -/* 3D38CC E00CEE0C 8FB700E4 */ lw $s7, 0xe4($sp) -/* 3D38D0 E00CEE10 8FB600E0 */ lw $s6, 0xe0($sp) -/* 3D38D4 E00CEE14 8FB500DC */ lw $s5, 0xdc($sp) -/* 3D38D8 E00CEE18 8FB400D8 */ lw $s4, 0xd8($sp) -/* 3D38DC E00CEE1C 8FB300D4 */ lw $s3, 0xd4($sp) -/* 3D38E0 E00CEE20 8FB200D0 */ lw $s2, 0xd0($sp) -/* 3D38E4 E00CEE24 8FB100CC */ lw $s1, 0xcc($sp) -/* 3D38E8 E00CEE28 8FB000C8 */ lw $s0, 0xc8($sp) -/* 3D38EC E00CEE2C D7BE0118 */ ldc1 $f30, 0x118($sp) -/* 3D38F0 E00CEE30 D7BC0110 */ ldc1 $f28, 0x110($sp) -/* 3D38F4 E00CEE34 D7BA0108 */ ldc1 $f26, 0x108($sp) -/* 3D38F8 E00CEE38 D7B80100 */ ldc1 $f24, 0x100($sp) -/* 3D38FC E00CEE3C D7B600F8 */ ldc1 $f22, 0xf8($sp) -/* 3D3900 E00CEE40 D7B400F0 */ ldc1 $f20, 0xf0($sp) -/* 3D3904 E00CEE44 03E00008 */ jr $ra -/* 3D3908 E00CEE48 27BD0120 */ addiu $sp, $sp, 0x120 -/* 3D390C E00CEE4C 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_main.s b/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_main.s deleted file mode 100644 index b5cb610230..0000000000 --- a/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_main.s +++ /dev/null @@ -1,154 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E00CEE50 -.double 0.2 - -dlabel D_E00CEE58 -.double 0.1 - -.section .text - -glabel whirlwind_main -/* 3D2AC0 E00CE000 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 3D2AC4 E00CE004 F7BC0060 */ sdc1 $f28, 0x60($sp) -/* 3D2AC8 E00CE008 4485E000 */ mtc1 $a1, $f28 -/* 3D2ACC E00CE00C AFB20030 */ sw $s2, 0x30($sp) -/* 3D2AD0 E00CE010 0080902D */ daddu $s2, $a0, $zero -/* 3D2AD4 E00CE014 F7BE0068 */ sdc1 $f30, 0x68($sp) -/* 3D2AD8 E00CE018 4486F000 */ mtc1 $a2, $f30 -/* 3D2ADC E00CE01C 27A40010 */ addiu $a0, $sp, 0x10 -/* 3D2AE0 E00CE020 AFB00028 */ sw $s0, 0x28($sp) -/* 3D2AE4 E00CE024 8FB00084 */ lw $s0, 0x84($sp) -/* 3D2AE8 E00CE028 3C02E00D */ lui $v0, %hi(whirlwind_init) -/* 3D2AEC E00CE02C 2442E21C */ addiu $v0, $v0, %lo(whirlwind_init) -/* 3D2AF0 E00CE030 AFA20018 */ sw $v0, 0x18($sp) -/* 3D2AF4 E00CE034 3C02E00D */ lui $v0, %hi(whirlwind_update) -/* 3D2AF8 E00CE038 2442E224 */ addiu $v0, $v0, %lo(whirlwind_update) -/* 3D2AFC E00CE03C AFA2001C */ sw $v0, 0x1c($sp) -/* 3D2B00 E00CE040 3C02E00D */ lui $v0, %hi(whirlwind_render) -/* 3D2B04 E00CE044 2442E428 */ addiu $v0, $v0, %lo(whirlwind_render) -/* 3D2B08 E00CE048 AFA20020 */ sw $v0, 0x20($sp) -/* 3D2B0C E00CE04C 24020067 */ addiu $v0, $zero, 0x67 -/* 3D2B10 E00CE050 AFBF0038 */ sw $ra, 0x38($sp) -/* 3D2B14 E00CE054 AFB30034 */ sw $s3, 0x34($sp) -/* 3D2B18 E00CE058 AFB1002C */ sw $s1, 0x2c($sp) -/* 3D2B1C E00CE05C F7BA0058 */ sdc1 $f26, 0x58($sp) -/* 3D2B20 E00CE060 F7B80050 */ sdc1 $f24, 0x50($sp) -/* 3D2B24 E00CE064 F7B60048 */ sdc1 $f22, 0x48($sp) -/* 3D2B28 E00CE068 F7B40040 */ sdc1 $f20, 0x40($sp) -/* 3D2B2C E00CE06C AFA7007C */ sw $a3, 0x7c($sp) -/* 3D2B30 E00CE070 AFA00010 */ sw $zero, 0x10($sp) -/* 3D2B34 E00CE074 AFA00024 */ sw $zero, 0x24($sp) -/* 3D2B38 E00CE078 0C080124 */ jal shim_create_effect_instance -/* 3D2B3C E00CE07C AFA20014 */ sw $v0, 0x14($sp) -/* 3D2B40 E00CE080 24040144 */ addiu $a0, $zero, 0x144 -/* 3D2B44 E00CE084 24030001 */ addiu $v1, $zero, 1 -/* 3D2B48 E00CE088 0040982D */ daddu $s3, $v0, $zero -/* 3D2B4C E00CE08C 0C08012C */ jal shim_general_heap_malloc -/* 3D2B50 E00CE090 AE630008 */ sw $v1, 8($s3) -/* 3D2B54 E00CE094 0040882D */ daddu $s1, $v0, $zero -/* 3D2B58 E00CE098 16200003 */ bnez $s1, .LE00CE0A8 -/* 3D2B5C E00CE09C AE62000C */ sw $v0, 0xc($s3) -.LE00CE0A0: -/* 3D2B60 E00CE0A0 08033828 */ j .LE00CE0A0 -/* 3D2B64 E00CE0A4 00000000 */ nop -.LE00CE0A8: -/* 3D2B68 E00CE0A8 AE320000 */ sw $s2, ($s1) -/* 3D2B6C E00CE0AC 1E000004 */ bgtz $s0, .LE00CE0C0 -/* 3D2B70 E00CE0B0 AE200014 */ sw $zero, 0x14($s1) -/* 3D2B74 E00CE0B4 240203E8 */ addiu $v0, $zero, 0x3e8 -/* 3D2B78 E00CE0B8 08033831 */ j .LE00CE0C4 -/* 3D2B7C E00CE0BC AE220010 */ sw $v0, 0x10($s1) -.LE00CE0C0: -/* 3D2B80 E00CE0C0 AE300010 */ sw $s0, 0x10($s1) -.LE00CE0C4: -/* 3D2B84 E00CE0C4 3C01E00D */ lui $at, %hi(D_E00CEE50) -/* 3D2B88 E00CE0C8 D43AEE50 */ ldc1 $f26, %lo(D_E00CEE50)($at) -/* 3D2B8C E00CE0CC 3C013FF0 */ lui $at, 0x3ff0 -/* 3D2B90 E00CE0D0 4481C800 */ mtc1 $at, $f25 -/* 3D2B94 E00CE0D4 4480C000 */ mtc1 $zero, $f24 -/* 3D2B98 E00CE0D8 3C01E00D */ lui $at, %hi(D_E00CEE58) -/* 3D2B9C E00CE0DC D434EE58 */ ldc1 $f20, %lo(D_E00CEE58)($at) -/* 3D2BA0 E00CE0E0 3C014000 */ lui $at, 0x4000 -/* 3D2BA4 E00CE0E4 4481B800 */ mtc1 $at, $f23 -/* 3D2BA8 E00CE0E8 4480B000 */ mtc1 $zero, $f22 -/* 3D2BAC E00CE0EC 0000902D */ daddu $s2, $zero, $zero -/* 3D2BB0 E00CE0F0 AE200024 */ sw $zero, 0x24($s1) -/* 3D2BB4 E00CE0F4 E63C0004 */ swc1 $f28, 4($s1) -/* 3D2BB8 E00CE0F8 E63E0008 */ swc1 $f30, 8($s1) -/* 3D2BBC E00CE0FC C7A2007C */ lwc1 $f2, 0x7c($sp) -/* 3D2BC0 E00CE100 0220802D */ daddu $s0, $s1, $zero -/* 3D2BC4 E00CE104 E622000C */ swc1 $f2, 0xc($s1) -/* 3D2BC8 E00CE108 C7A00080 */ lwc1 $f0, 0x80($sp) -/* 3D2BCC E00CE10C 240200FF */ addiu $v0, $zero, 0xff -/* 3D2BD0 E00CE110 AE220018 */ sw $v0, 0x18($s1) -/* 3D2BD4 E00CE114 AE22001C */ sw $v0, 0x1c($s1) -/* 3D2BD8 E00CE118 AE220020 */ sw $v0, 0x20($s1) -/* 3D2BDC E00CE11C AE220028 */ sw $v0, 0x28($s1) -/* 3D2BE0 E00CE120 AE22002C */ sw $v0, 0x2c($s1) -/* 3D2BE4 E00CE124 240200EB */ addiu $v0, $zero, 0xeb -/* 3D2BE8 E00CE128 AE220030 */ sw $v0, 0x30($s1) -/* 3D2BEC E00CE12C E6200034 */ swc1 $f0, 0x34($s1) -.LE00CE130: -/* 3D2BF0 E00CE130 44920000 */ mtc1 $s2, $f0 -/* 3D2BF4 E00CE134 00000000 */ nop -/* 3D2BF8 E00CE138 46800021 */ cvt.d.w $f0, $f0 -/* 3D2BFC E00CE13C 463A0002 */ mul.d $f0, $f0, $f26 -/* 3D2C00 E00CE140 00000000 */ nop -/* 3D2C04 E00CE144 E61C0038 */ swc1 $f28, 0x38($s0) -/* 3D2C08 E00CE148 E61E0058 */ swc1 $f30, 0x58($s0) -/* 3D2C0C E00CE14C C7A2007C */ lwc1 $f2, 0x7c($sp) -/* 3D2C10 E00CE150 46380000 */ add.d $f0, $f0, $f24 -/* 3D2C14 E00CE154 24040168 */ addiu $a0, $zero, 0x168 -/* 3D2C18 E00CE158 E6020078 */ swc1 $f2, 0x78($s0) -/* 3D2C1C E00CE15C 46200020 */ cvt.s.d $f0, $f0 -/* 3D2C20 E00CE160 0C080138 */ jal shim_rand_int -/* 3D2C24 E00CE164 E6000098 */ swc1 $f0, 0x98($s0) -/* 3D2C28 E00CE168 24040064 */ addiu $a0, $zero, 0x64 -/* 3D2C2C E00CE16C 44820000 */ mtc1 $v0, $f0 -/* 3D2C30 E00CE170 00000000 */ nop -/* 3D2C34 E00CE174 46800020 */ cvt.s.w $f0, $f0 -/* 3D2C38 E00CE178 0C080138 */ jal shim_rand_int -/* 3D2C3C E00CE17C E60000B8 */ swc1 $f0, 0xb8($s0) -/* 3D2C40 E00CE180 44820000 */ mtc1 $v0, $f0 -/* 3D2C44 E00CE184 00000000 */ nop -/* 3D2C48 E00CE188 46800021 */ cvt.d.w $f0, $f0 -/* 3D2C4C E00CE18C 46340002 */ mul.d $f0, $f0, $f20 -/* 3D2C50 E00CE190 00000000 */ nop -/* 3D2C54 E00CE194 46360000 */ add.d $f0, $f0, $f22 -/* 3D2C58 E00CE198 2404001E */ addiu $a0, $zero, 0x1e -/* 3D2C5C E00CE19C 46200020 */ cvt.s.d $f0, $f0 -/* 3D2C60 E00CE1A0 0C080138 */ jal shim_rand_int -/* 3D2C64 E00CE1A4 E60000D8 */ swc1 $f0, 0xd8($s0) -/* 3D2C68 E00CE1A8 44820000 */ mtc1 $v0, $f0 -/* 3D2C6C E00CE1AC 00000000 */ nop -/* 3D2C70 E00CE1B0 46800021 */ cvt.d.w $f0, $f0 -/* 3D2C74 E00CE1B4 46340002 */ mul.d $f0, $f0, $f20 -/* 3D2C78 E00CE1B8 00000000 */ nop -/* 3D2C7C E00CE1BC 26520001 */ addiu $s2, $s2, 1 -/* 3D2C80 E00CE1C0 2A420008 */ slti $v0, $s2, 8 -/* 3D2C84 E00CE1C4 AE000118 */ sw $zero, 0x118($s0) -/* 3D2C88 E00CE1C8 46200020 */ cvt.s.d $f0, $f0 -/* 3D2C8C E00CE1CC E60000F8 */ swc1 $f0, 0xf8($s0) -/* 3D2C90 E00CE1D0 1440FFD7 */ bnez $v0, .LE00CE130 -/* 3D2C94 E00CE1D4 26100004 */ addiu $s0, $s0, 4 -/* 3D2C98 E00CE1D8 0260102D */ daddu $v0, $s3, $zero -/* 3D2C9C E00CE1DC AE200138 */ sw $zero, 0x138($s1) -/* 3D2CA0 E00CE1E0 AE20013C */ sw $zero, 0x13c($s1) -/* 3D2CA4 E00CE1E4 AE200140 */ sw $zero, 0x140($s1) -/* 3D2CA8 E00CE1E8 8FBF0038 */ lw $ra, 0x38($sp) -/* 3D2CAC E00CE1EC 8FB30034 */ lw $s3, 0x34($sp) -/* 3D2CB0 E00CE1F0 8FB20030 */ lw $s2, 0x30($sp) -/* 3D2CB4 E00CE1F4 8FB1002C */ lw $s1, 0x2c($sp) -/* 3D2CB8 E00CE1F8 8FB00028 */ lw $s0, 0x28($sp) -/* 3D2CBC E00CE1FC D7BE0068 */ ldc1 $f30, 0x68($sp) -/* 3D2CC0 E00CE200 D7BC0060 */ ldc1 $f28, 0x60($sp) -/* 3D2CC4 E00CE204 D7BA0058 */ ldc1 $f26, 0x58($sp) -/* 3D2CC8 E00CE208 D7B80050 */ ldc1 $f24, 0x50($sp) -/* 3D2CCC E00CE20C D7B60048 */ ldc1 $f22, 0x48($sp) -/* 3D2CD0 E00CE210 D7B40040 */ ldc1 $f20, 0x40($sp) -/* 3D2CD4 E00CE214 03E00008 */ jr $ra -/* 3D2CD8 E00CE218 27BD0070 */ addiu $sp, $sp, 0x70 diff --git a/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_update.s b/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_update.s deleted file mode 100644 index bea7169b2c..0000000000 --- a/ver/us/asm/nonmatchings/effects/whirlwind/whirlwind_update.s +++ /dev/null @@ -1,155 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -dlabel D_E00CEE60 -.double 12.96 - -dlabel D_E00CEE68 -.double 17.28 - -.section .text - -glabel whirlwind_update -/* 3D2CE4 E00CE224 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 3D2CE8 E00CE228 AFBF0010 */ sw $ra, 0x10($sp) -/* 3D2CEC E00CE22C 8C830000 */ lw $v1, ($a0) -/* 3D2CF0 E00CE230 8C85000C */ lw $a1, 0xc($a0) -/* 3D2CF4 E00CE234 30620010 */ andi $v0, $v1, 0x10 -/* 3D2CF8 E00CE238 10400005 */ beqz $v0, .LE00CE250 -/* 3D2CFC E00CE23C 2402FFEF */ addiu $v0, $zero, -0x11 -/* 3D2D00 E00CE240 00621024 */ and $v0, $v1, $v0 -/* 3D2D04 E00CE244 AC820000 */ sw $v0, ($a0) -/* 3D2D08 E00CE248 24020010 */ addiu $v0, $zero, 0x10 -/* 3D2D0C E00CE24C ACA20010 */ sw $v0, 0x10($a1) -.LE00CE250: -/* 3D2D10 E00CE250 8CA30010 */ lw $v1, 0x10($a1) -/* 3D2D14 E00CE254 286203E8 */ slti $v0, $v1, 0x3e8 -/* 3D2D18 E00CE258 10400002 */ beqz $v0, .LE00CE264 -/* 3D2D1C E00CE25C 2462FFFF */ addiu $v0, $v1, -1 -/* 3D2D20 E00CE260 ACA20010 */ sw $v0, 0x10($a1) -.LE00CE264: -/* 3D2D24 E00CE264 8CA20014 */ lw $v0, 0x14($a1) -/* 3D2D28 E00CE268 8CA30010 */ lw $v1, 0x10($a1) -/* 3D2D2C E00CE26C 24460001 */ addiu $a2, $v0, 1 -/* 3D2D30 E00CE270 04610005 */ bgez $v1, .LE00CE288 -/* 3D2D34 E00CE274 ACA60014 */ sw $a2, 0x14($a1) -/* 3D2D38 E00CE278 0C080128 */ jal shim_remove_effect -/* 3D2D3C E00CE27C 00000000 */ nop -/* 3D2D40 E00CE280 08033907 */ j .LE00CE41C -/* 3D2D44 E00CE284 00000000 */ nop -.LE00CE288: -/* 3D2D48 E00CE288 C4AC0034 */ lwc1 $f12, 0x34($a1) -/* 3D2D4C E00CE28C 28620010 */ slti $v0, $v1, 0x10 -/* 3D2D50 E00CE290 10400002 */ beqz $v0, .LE00CE29C -/* 3D2D54 E00CE294 00031100 */ sll $v0, $v1, 4 -/* 3D2D58 E00CE298 ACA20024 */ sw $v0, 0x24($a1) -.LE00CE29C: -/* 3D2D5C E00CE29C 28C20010 */ slti $v0, $a2, 0x10 -/* 3D2D60 E00CE2A0 10400003 */ beqz $v0, .LE00CE2B0 -/* 3D2D64 E00CE2A4 00061100 */ sll $v0, $a2, 4 -/* 3D2D68 E00CE2A8 2442000F */ addiu $v0, $v0, 0xf -/* 3D2D6C E00CE2AC ACA20024 */ sw $v0, 0x24($a1) -.LE00CE2B0: -/* 3D2D70 E00CE2B0 24040007 */ addiu $a0, $zero, 7 -/* 3D2D74 E00CE2B4 24060018 */ addiu $a2, $zero, 0x18 -/* 3D2D78 E00CE2B8 24A3001C */ addiu $v1, $a1, 0x1c -/* 3D2D7C E00CE2BC 3C014080 */ lui $at, 0x4080 -/* 3D2D80 E00CE2C0 44817000 */ mtc1 $at, $f14 -/* 3D2D84 E00CE2C4 3C0142B4 */ lui $at, 0x42b4 -/* 3D2D88 E00CE2C8 44815000 */ mtc1 $at, $f10 -/* 3D2D8C E00CE2CC 3C01C2B4 */ lui $at, 0xc2b4 -/* 3D2D90 E00CE2D0 44814000 */ mtc1 $at, $f8 -/* 3D2D94 E00CE2D4 C4A40004 */ lwc1 $f4, 4($a1) -/* 3D2D98 E00CE2D8 C4A60008 */ lwc1 $f6, 8($a1) -/* 3D2D9C E00CE2DC 3C0140A0 */ lui $at, 0x40a0 -/* 3D2DA0 E00CE2E0 44810000 */ mtc1 $at, $f0 -/* 3D2DA4 E00CE2E4 C4A2000C */ lwc1 $f2, 0xc($a1) -/* 3D2DA8 E00CE2E8 46006302 */ mul.s $f12, $f12, $f0 -/* 3D2DAC E00CE2EC 00000000 */ nop -/* 3D2DB0 E00CE2F0 E4A40038 */ swc1 $f4, 0x38($a1) -/* 3D2DB4 E00CE2F4 E4A60058 */ swc1 $f6, 0x58($a1) -/* 3D2DB8 E00CE2F8 E4A20078 */ swc1 $f2, 0x78($a1) -.LE00CE2FC: -/* 3D2DBC E00CE2FC 00A61021 */ addu $v0, $a1, $a2 -/* 3D2DC0 E00CE300 C4400038 */ lwc1 $f0, 0x38($v0) -/* 3D2DC4 E00CE304 C4620038 */ lwc1 $f2, 0x38($v1) -/* 3D2DC8 E00CE308 46020001 */ sub.s $f0, $f0, $f2 -/* 3D2DCC E00CE30C 460E0002 */ mul.s $f0, $f0, $f14 -/* 3D2DD0 E00CE310 00000000 */ nop -/* 3D2DD4 E00CE314 E4600118 */ swc1 $f0, 0x118($v1) -/* 3D2DD8 E00CE318 C4400038 */ lwc1 $f0, 0x38($v0) -/* 3D2DDC E00CE31C E4600038 */ swc1 $f0, 0x38($v1) -/* 3D2DE0 E00CE320 C4400058 */ lwc1 $f0, 0x58($v0) -/* 3D2DE4 E00CE324 460C0000 */ add.s $f0, $f0, $f12 -/* 3D2DE8 E00CE328 C4620118 */ lwc1 $f2, 0x118($v1) -/* 3D2DEC E00CE32C E4600058 */ swc1 $f0, 0x58($v1) -/* 3D2DF0 E00CE330 C4400078 */ lwc1 $f0, 0x78($v0) -/* 3D2DF4 E00CE334 4602503C */ c.lt.s $f10, $f2 -/* 3D2DF8 E00CE338 00000000 */ nop -/* 3D2DFC E00CE33C 45000003 */ bc1f .LE00CE34C -/* 3D2E00 E00CE340 E4600078 */ swc1 $f0, 0x78($v1) -/* 3D2E04 E00CE344 080338D7 */ j .LE00CE35C -/* 3D2E08 E00CE348 E46A0118 */ swc1 $f10, 0x118($v1) -.LE00CE34C: -/* 3D2E0C E00CE34C 4608103C */ c.lt.s $f2, $f8 -/* 3D2E10 E00CE350 00000000 */ nop -/* 3D2E14 E00CE354 45030001 */ bc1tl .LE00CE35C -/* 3D2E18 E00CE358 E4680118 */ swc1 $f8, 0x118($v1) -.LE00CE35C: -/* 3D2E1C E00CE35C 24C6FFFC */ addiu $a2, $a2, -4 -/* 3D2E20 E00CE360 2484FFFF */ addiu $a0, $a0, -1 -/* 3D2E24 E00CE364 1C80FFE5 */ bgtz $a0, .LE00CE2FC -/* 3D2E28 E00CE368 2463FFFC */ addiu $v1, $v1, -4 -/* 3D2E2C E00CE36C C4A40138 */ lwc1 $f4, 0x138($a1) -/* 3D2E30 E00CE370 3C014120 */ lui $at, 0x4120 -/* 3D2E34 E00CE374 44810000 */ mtc1 $at, $f0 -/* 3D2E38 E00CE378 00000000 */ nop -/* 3D2E3C E00CE37C 46002100 */ add.s $f4, $f4, $f0 -/* 3D2E40 E00CE380 C4A0013C */ lwc1 $f0, 0x13c($a1) -/* 3D2E44 E00CE384 3C01E00D */ lui $at, %hi(D_E00CEE60) -/* 3D2E48 E00CE388 D422EE60 */ ldc1 $f2, %lo(D_E00CEE60)($at) -/* 3D2E4C E00CE38C 46000021 */ cvt.d.s $f0, $f0 -/* 3D2E50 E00CE390 46220000 */ add.d $f0, $f0, $f2 -/* 3D2E54 E00CE394 3C01E00D */ lui $at, %hi(D_E00CEE68) -/* 3D2E58 E00CE398 D422EE68 */ ldc1 $f2, %lo(D_E00CEE68)($at) -/* 3D2E5C E00CE39C E4A40138 */ swc1 $f4, 0x138($a1) -/* 3D2E60 E00CE3A0 46200020 */ cvt.s.d $f0, $f0 -/* 3D2E64 E00CE3A4 E4A0013C */ swc1 $f0, 0x13c($a1) -/* 3D2E68 E00CE3A8 C4A00140 */ lwc1 $f0, 0x140($a1) -/* 3D2E6C E00CE3AC C4A4013C */ lwc1 $f4, 0x13c($a1) -/* 3D2E70 E00CE3B0 46000021 */ cvt.d.s $f0, $f0 -/* 3D2E74 E00CE3B4 46220000 */ add.d $f0, $f0, $f2 -/* 3D2E78 E00CE3B8 3C014280 */ lui $at, 0x4280 -/* 3D2E7C E00CE3BC 44811000 */ mtc1 $at, $f2 -/* 3D2E80 E00CE3C0 00000000 */ nop -/* 3D2E84 E00CE3C4 4604103C */ c.lt.s $f2, $f4 -/* 3D2E88 E00CE3C8 46200020 */ cvt.s.d $f0, $f0 -/* 3D2E8C E00CE3CC 45000003 */ bc1f .LE00CE3DC -/* 3D2E90 E00CE3D0 E4A00140 */ swc1 $f0, 0x140($a1) -/* 3D2E94 E00CE3D4 46022001 */ sub.s $f0, $f4, $f2 -/* 3D2E98 E00CE3D8 E4A0013C */ swc1 $f0, 0x13c($a1) -.LE00CE3DC: -/* 3D2E9C E00CE3DC C4A00140 */ lwc1 $f0, 0x140($a1) -/* 3D2EA0 E00CE3E0 4600103C */ c.lt.s $f2, $f0 -/* 3D2EA4 E00CE3E4 00000000 */ nop -/* 3D2EA8 E00CE3E8 45000003 */ bc1f .LE00CE3F8 -/* 3D2EAC E00CE3EC 0000202D */ daddu $a0, $zero, $zero -/* 3D2EB0 E00CE3F0 46020001 */ sub.s $f0, $f0, $f2 -/* 3D2EB4 E00CE3F4 E4A00140 */ swc1 $f0, 0x140($a1) -.LE00CE3F8: -/* 3D2EB8 E00CE3F8 00A0182D */ daddu $v1, $a1, $zero -.LE00CE3FC: -/* 3D2EBC E00CE3FC C46000B8 */ lwc1 $f0, 0xb8($v1) -/* 3D2EC0 E00CE400 C46200D8 */ lwc1 $f2, 0xd8($v1) -/* 3D2EC4 E00CE404 46020000 */ add.s $f0, $f0, $f2 -/* 3D2EC8 E00CE408 24840001 */ addiu $a0, $a0, 1 -/* 3D2ECC E00CE40C 28820008 */ slti $v0, $a0, 8 -/* 3D2ED0 E00CE410 E46000B8 */ swc1 $f0, 0xb8($v1) -/* 3D2ED4 E00CE414 1440FFF9 */ bnez $v0, .LE00CE3FC -/* 3D2ED8 E00CE418 24630004 */ addiu $v1, $v1, 4 -.LE00CE41C: -/* 3D2EDC E00CE41C 8FBF0010 */ lw $ra, 0x10($sp) -/* 3D2EE0 E00CE420 03E00008 */ jr $ra -/* 3D2EE4 E00CE424 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 852d16f1d3..74e75b7996 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -5444,8 +5444,23 @@ segments: vram: 0xE00CE000 subsegments: - [0x3D2AC0, c, whirlwind] - - [0x3D3910] - - [0x3D3930, bin] # whirlwind gfx + - [0x3D3910, .rodata, whirlwind] + - [0x3D3930] + - name: effect_gfx_whirlwind + dir: effects/gfx + type: code + start: 0x3D3930 + vram: 0x09000000 + symbol_name_format: $VRAM_$ROM + subsegments: + - [0x3D3930, c, whirlwind] + - start: 0x3D3930 + type: .data + name: whirlwind + subsegments: + - [0x3D3930, i4, D_09000000_3D3930, 64, 32] + - [0x3D3D30, gfx, D_09000400_3D3D30] + - [0x3D3E20] - name: effect_red_impact dir: effects type: code