Matched a couple of effects functions (#764)

* Matched a couple of effects functions

* Deleted asm files

* Addressed PR comments
This commit is contained in:
mrshigure 2022-09-08 02:46:35 -07:00 committed by GitHub
parent a580f19ab8
commit 2d68776591
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 265 additions and 1348 deletions

View File

@ -451,8 +451,19 @@ typedef struct SmokeRingFXData {
} SmokeRingFXData; // size = unknown
typedef struct DamageStarsFXData {
/* 0x00 */ char todo[0];
} DamageStarsFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x14 */ f32 unk_04;
/* 0x18 */ f32 unk_08;
/* 0x1C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
} DamageStarsFXData; // size = 0x30
typedef struct ExplosionFXData {
/* 0x00 */ char todo[0];
@ -822,8 +833,20 @@ typedef struct FireworkFXData {
} FireworkFXData; // size = unknown
typedef struct ConfettiFXData {
/* 0x00 */ char todo[0];
} ConfettiFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
} ConfettiFXData; // size = 0x34
typedef struct SnowfallFXData {
/* 0x00 */ char todo[0];

View File

@ -171,48 +171,25 @@ void func_E0090428(EffectInstance* effect) {
func_E0090444(effect);
}
// gSPTextureRectangle needs a lot of work
#ifdef NON_EQUIVALENT
void func_E0090444(EffectInstance* effect) {
AttackResultTextFXData* data = effect->data.attackResultText;
s32 unk_00 = data->unk_00;
s32 unk_1C = data->unk_1C;
Matrix4f sp18;
Matrix4f sp58;
AttackResultTextFXData* data;
s32 unk_00;
s32 unk_1C;
s32 temp_a2;
s8* temp_a0_3;
s32 z;
f32 scale;
// f32 temp_f2;
// s32 temp_f4;
// s32 temp_f4_2;
// s32 temp_f4_3;
// s32 temp_f4_4;
// s32 temp_f4_5;
// s32 temp_v0_3;
// s32 temp_v1_4;
// u32 phi_v1;
// u32 phi_a0;
// u32 phi_v1_2;
// u32 phi_v0;
// u32 phi_v0_2;
// s32 phi_a0_2;
// s32 phi_v1_3;
// s32 phi_v0_3;
data = effect->data;
unk_00 = data->unk_00;
unk_1C = data->unk_1C;
if (data->unk_24 != 0) {
scale = data->unk_28;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effect->graphics->data));
gDPSetDepthSource(gMasterGfxPos++, G_ZS_PRIM);
temp_a2 = 200 - unk_1C;
if (temp_a2 < 0) {
temp_a2 = 0;
z = 200 - unk_1C;
if (z < 0) {
z = 0;
}
gDPSetPrimDepth(gMasterGfxPos++, temp_a2, 0);
gDPSetPrimDepth(gMasterGfxPos++, z, 0);
if (unk_00 < 5) {
shim_guTranslateF(sp18, data->unk_08, data->unk_0C, data->unk_10);
@ -223,74 +200,27 @@ void func_E0090444(EffectInstance* effect) {
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, data->unk_14);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 255, 255, 255, data->unk_14);
gSPDisplayList(gMasterGfxPos++, D_090015A8);
gSPDisplayList(gMasterGfxPos++, D_E0090A40[data->unk_04]);
gSPDisplayList(gMasterGfxPos++, D_E0090A54[data->unk_04]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
} else {
unk_00 -= 5;
temp_a0_3 = D_E0090A78[unk_00];
gDPSetPrimColor(gMasterGfxPos++, 0, 0, temp_a0_3[0], temp_a0_3[1], temp_a0_3[2], data->unk_14);
gDPSetEnvColor(gMasterGfxPos++, temp_a0_3[3], temp_a0_3[4], temp_a0_3[5], 0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, D_E0090A78[unk_00][0], D_E0090A78[unk_00][1], D_E0090A78[unk_00][2], data->unk_14);
gDPSetEnvColor(gMasterGfxPos++, D_E0090A78[unk_00][3], D_E0090A78[unk_00][4], D_E0090A78[unk_00][5], 0);
gSPDisplayList(gMasterGfxPos++, D_09001500);
gSPDisplayList(gMasterGfxPos++, D_E0090A40[data->unk_04]);
// temp_f4 = (s32) ((data->unk_08 + 128.0f) * 4.0f);
// if ((s32) (s16) temp_f4 > 0) {
// phi_v0 = (((s16) temp_f4 & 0xFFF) << 0xC) | 0xE4000000;
// } else {
// phi_v0 = 0xE4000000U;
// }
// temp_f4_2 = (s32) ((data->unk_0C + 64.0f) * 4.0f);
// phi_v1 = phi_v0;
// if ((s32) (s16) temp_f4_2 > 0) {
// phi_v1 = phi_v0 | ((s16) temp_f4_2 & 0xFFF);
// }
// temp_f4_3 = (s32) (data->unk_08 * 4.0f);
// if ((s32) (s16) temp_f4_3 > 0) {
// phi_v0_2 = ((s16) temp_f4_3 & 0xFFF) << 0xC;
// } else {
// phi_v0_2 = 0U;
// }
// temp_f4_4 = (s32) (data->unk_0C * 4.0f);
// phi_a0 = phi_v0_2;
// if ((s32) (s16) temp_f4_4 > 0) {
// phi_a0 = phi_v0_2 | ((s16) temp_f4_4 & 0xFFF);
// }
// temp_f4_5 = (s32) (data->unk_08 * 4.0f);
// if ((s32) (s16) temp_f4_5 < 0) {
// temp_v0_3 = (s16) temp_f4_5 * 4;
// phi_v0_3 = temp_v0_3;
// if (temp_v0_3 > 0) {
// phi_v0_3 = 0;
// }
// phi_a0_2 = phi_v0_3 * -0x10000;
// } else {
// phi_a0_2 = 0;
// }
// temp_f2 = data->unk_0C * 4.0f;
// phi_v1_2 = phi_a0_2 | 0x400;
// if (temp_f2 < 0.0f) {
// temp_v1_4 = (s32) -(s32) ((s32) ((s32) temp_f2 << 0x10) >> 7) >> 7;
// phi_v1_3 = temp_v1_4;
// if (temp_v1_4 < 0) {
// phi_v1_3 = 0;
// }
// phi_v1_2 = phi_a0_2 | ((0x400 - phi_v1_3) & 0xFFFF);
// }
// temp_v1_2->words.w0 = E400000000000000 // data->unk_08, data->unk_0C
// temp_v1_3->words.w0 = E100000012341234 // phi_v1_2
// temp_v1_5->words.w0 = F10000000200FE00
gSPTextureRectangle(gMasterGfxPos++, 0, 0, 0, 0, G_TX_RENDERTILE, data->unk_08, data->unk_0C, 0x0200, -0x0200);
gSPScisTextureRectangle(gMasterGfxPos++,
data->unk_08 * 4.0f,
data->unk_0C * 4.0f,
(data->unk_08 + 128.0f) * 4.0f,
(data->unk_0C + 64.0f) * 4.0f,
G_TX_RENDERTILE, 0, 1024, 512, 65024);
}
gDPPipeSync(gMasterGfxPos++);
gDPSetDepthSource(gMasterGfxPos++, G_ZS_PIXEL);
gDPPipeSync(gMasterGfxPos++);
}
}
#else
INCLUDE_ASM(s32, "effects/attack_result_text", func_E0090444);
#endif

View File

@ -1,15 +1,60 @@
#include "common.h"
#include "effects_internal.h"
typedef struct {
/* 0x00 */ Gfx* displayList;
/* 0x04 */ s16 x;
/* 0x06 */ s16 y;
/* 0x08 */ s16 width;
/* 0x0A */ s16 height;
} UnkStruct; // size: 0xC
extern s32 D_E010E750[];
extern UnkStruct D_E010E79C[];
extern UnkStruct D_E010E7D8[];
extern UnkStruct D_E010E7FC[];
extern UnkStruct D_E010E838[];
extern UnkStruct D_E010E868[];
void chapter_change_init(EffectInstance* effect);
void chapter_change_update(EffectInstance* effect);
void chapter_change_render(EffectInstance* effect);
void chapter_change_appendGfx(void* effect);
void shim_draw_msg(s32, s32, s32, s32, s32, s32);
s32 shim_get_msg_width(s32, u16);
INCLUDE_ASM(s32, "effects/chapter_change", func_E010E000);
void func_E010E000(ChapterChangeFXData* data, s32 arg1, UnkStruct* arg2) {
s32 unk_1C = data->unk_1C;
UnkStruct* it;
f32 var0;
f32 var1;
s32 temp;
if (arg1 == 0) {
var0 = data->unk_04;
var1 = data->unk_08;
} else {
var0 = data->unk_10;
var1 = data->unk_14;
}
if (arg2 != NULL) {
for (it = arg2; it->displayList != NULL; it++) {
gSPDisplayList(gMasterGfxPos++, it->displayList);
temp = it->x - 384;
gDPSetTileSize(gMasterGfxPos++, 1, (unk_1C * 4 - temp) * 4, 0, (unk_1C * 4 - it->x + 511) * 4, 0);
gSPScisTextureRectangle(gMasterGfxPos++,
(var0 + it->x) * 4,
(var1 + it->y) * 4,
(var0 + it->x + it->width) * 4,
(var1 + it->y + it->height) * 4,
G_TX_RENDERTILE, 0, 0, 1024, 1024);
}
gDPPipeSync(gMasterGfxPos++);
}
}
EffectInstance* chapter_change_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
@ -100,4 +145,60 @@ void chapter_change_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/chapter_change", chapter_change_appendGfx);
void chapter_change_appendGfx(void* effect) {
ChapterChangeFXData* data = ((EffectInstance*)effect)->data.chapterChange;
s32 unk_2C = data->unk_2C;
u32 unk_00 = data->unk_00;
UnkStruct* ptr0;
UnkStruct* ptr1;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
switch (unk_00) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
ptr0 = D_E010E7FC;
ptr1 = &D_E010E868[(unk_00 - 1) * 2];
break;
case 9:
ptr0 = D_E010E7D8;
ptr1 = NULL;
break;
case 0:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
ptr0 = D_E010E79C;
ptr1 = D_E010E838;
break;
default:
ptr1 = NULL;
ptr0 = NULL;
break;
}
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_20, data->unk_24, data->unk_28, unk_2C);
gDPSetEnvColor(gMasterGfxPos++, data->unk_30, data->unk_34, data->unk_38, data->unk_3C);
func_E010E000(data, 0, ptr0);
func_E010E000(data, 1, ptr1);
if (data->unk_54 >= 0) {
shim_draw_msg(data->unk_54, data->unk_40 - data->unk_48, data->unk_44, 255, 21, 0);
}
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,7 +1,7 @@
#include "common.h"
#include "effects_internal.h"
extern s32 D_E00DE810[];
extern Gfx* D_E00DE810[][5];
extern s32 D_E00DE84C[];
extern s8 D_E00DE858[];
extern u8 D_E00DE8B4[];
@ -165,7 +165,7 @@ void cold_breath_appendGfx(void* effect) {
gDPSetTileSize(gMasterGfxPos++, 1, 0, 0, 31 << 2, 127 << 2);
}
gDPSetEnvColor(gMasterGfxPos++, data->unk_28, data->unk_2C, data->unk_30, envAlpha);
gSPDisplayList(gMasterGfxPos++, D_E00DE810[unk00 * 5 + temp_s32]);
gSPDisplayList(gMasterGfxPos++, D_E00DE810[unk00][temp_s32]);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);

View File

@ -3,14 +3,77 @@
void confetti_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/confetti", func_E0088000);
void func_E0088000(ConfettiFXData* part) {
part->unk_04 = shim_rand_int(700) * 0.1f - 35.0f;
part->unk_08 = 0;
part->unk_0C = shim_rand_int(300) * 0.1f - 15.0f;
part->unk_10 = (part->unk_04 + shim_rand_int(100) * 0.1f - 5.0f) * 0.03;
part->unk_14 = -1.7 - shim_rand_int(800) * 0.1f * 0.01;
part->unk_18 = (shim_rand_int(200) * 0.1f - 10.0f) * 0.05;
part->unk_20 = 120;
}
INCLUDE_ASM(s32, "effects/confetti", confetti_main);
void confetti_init(void) {
}
INCLUDE_ASM(s32, "effects/confetti", confetti_update);
void confetti_update(EffectInstance* effect) {
ConfettiFXData* part = effect->data.confetti;
s32 unk_00;
s32 unk_24;
s32 unk_2C;
s32 i;
part->unk_20--;
if (part->unk_20 < 0) {
shim_remove_effect(effect);
return;
}
part->unk_24++;
if (part->unk_24 > 324000) {
part->unk_24 = 10;
}
unk_24 = part->unk_24;
unk_00 = part->unk_00;
unk_2C = part->unk_2C;
if (part->unk_20 < 10) {
part->unk_28 = part->unk_20 * 25;
}
part++;
for (i = 0; i < unk_2C; i++, part++) {
if (unk_00 == 3) {
if (part->unk_30 <= 0 || --part->unk_30 <= 0) {
part->unk_20--;
if (part->unk_20 < 0) {
func_E0088000(part);
part->unk_20--;
}
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
part->unk_0C += part->unk_18;
}
} else {
if (part->unk_30 <= 0 || --part->unk_30 <= 0) {
if (unk_00 >= 4) {
part->unk_10 *= 0.98;
part->unk_14 *= 0.98;
part->unk_18 *= 0.98;
if (unk_24 >= 6 && part->unk_14 > -0.5) {
part->unk_14 += part->unk_1C;
}
}
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
part->unk_0C += part->unk_18;
}
}
}
}
void confetti_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -8,7 +8,57 @@ INCLUDE_ASM(s32, "effects/damage_stars", damage_stars_main);
void damage_stars_init(void) {
}
INCLUDE_ASM(s32, "effects/damage_stars", damage_stars_update);
void damage_stars_update(EffectInstance* effect) {
DamageStarsFXData* part = effect->data.damageStars;
s32 unk_28;
s32 unk_2C;
s32 i;
part->unk_28--;
part->unk_2C++;
if (part->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
unk_28 = part->unk_28;
unk_2C = part->unk_2C;
for (i = 0; i < effect->numParts; i++, part++) {
if (part->unk_00 == 2) {
part->unk_14 = shim_cos_deg(unk_2C * 6) * 4.0f;
part->unk_10 *= 0.94;
part->unk_18 *= 0.94;
if (part->unk_14 < 0.0f) {
part->unk_20 *= 0.8;
part->unk_24 *= 0.6;
}
} else {
if (unk_28 >= 6) {
part->unk_10 *= 0.8;
part->unk_14 *= 0.8;
part->unk_18 *= 0.8;
}
if (unk_28 - 6 < 0xEU) {
if (part->unk_00 == 0) {
part->unk_20 += 1.0f;
}
} else if (unk_28 < 5) {
part->unk_20 *= 0.8;
part->unk_24 *= 0.6;
part->unk_10 *= 0.7;
part->unk_14 *= 0.7;
part->unk_18 *= 0.7;
}
}
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
part->unk_0C += part->unk_18;
part->unk_1C += part->unk_20;
}
}
void damage_stars_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,402 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0090444
/* 38FD44 E0090444 27BDFF40 */ addiu $sp, $sp, -0xc0
/* 38FD48 E0090448 0080482D */ daddu $t1, $a0, $zero
/* 38FD4C E009044C AFBF00AC */ sw $ra, 0xac($sp)
/* 38FD50 E0090450 AFB400A8 */ sw $s4, 0xa8($sp)
/* 38FD54 E0090454 AFB300A4 */ sw $s3, 0xa4($sp)
/* 38FD58 E0090458 AFB200A0 */ sw $s2, 0xa0($sp)
/* 38FD5C E009045C AFB1009C */ sw $s1, 0x9c($sp)
/* 38FD60 E0090460 AFB00098 */ sw $s0, 0x98($sp)
/* 38FD64 E0090464 F7B600B8 */ sdc1 $f22, 0xb8($sp)
/* 38FD68 E0090468 F7B400B0 */ sdc1 $f20, 0xb0($sp)
/* 38FD6C E009046C 8D33000C */ lw $s3, 0xc($t1)
/* 38FD70 E0090470 8E670000 */ lw $a3, ($s3)
/* 38FD74 E0090474 8E620024 */ lw $v0, 0x24($s3)
/* 38FD78 E0090478 8E63001C */ lw $v1, 0x1c($s3)
/* 38FD7C E009047C 10400163 */ beqz $v0, .LE0090A0C
/* 38FD80 E0090480 3C04DB06 */ lui $a0, 0xdb06
/* 38FD84 E0090484 34840024 */ ori $a0, $a0, 0x24
/* 38FD88 E0090488 3C05E200 */ lui $a1, 0xe200
/* 38FD8C E009048C 34A51D00 */ ori $a1, $a1, 0x1d00
/* 38FD90 E0090490 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 38FD94 E0090494 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 38FD98 E0090498 240200C8 */ addiu $v0, $zero, 0xc8
/* 38FD9C E009049C 8E880000 */ lw $t0, ($s4)
/* 38FDA0 E00904A0 00433023 */ subu $a2, $v0, $v1
/* 38FDA4 E00904A4 0100182D */ daddu $v1, $t0, $zero
/* 38FDA8 E00904A8 25080008 */ addiu $t0, $t0, 8
/* 38FDAC E00904AC AE880000 */ sw $t0, ($s4)
/* 38FDB0 E00904B0 C6760028 */ lwc1 $f22, 0x28($s3)
/* 38FDB4 E00904B4 3C02E700 */ lui $v0, 0xe700
/* 38FDB8 E00904B8 AC620000 */ sw $v0, ($v1)
/* 38FDBC E00904BC AC600004 */ sw $zero, 4($v1)
/* 38FDC0 E00904C0 AD040000 */ sw $a0, ($t0)
/* 38FDC4 E00904C4 8D230010 */ lw $v1, 0x10($t1)
/* 38FDC8 E00904C8 25020008 */ addiu $v0, $t0, 8
/* 38FDCC E00904CC AE820000 */ sw $v0, ($s4)
/* 38FDD0 E00904D0 8C63001C */ lw $v1, 0x1c($v1)
/* 38FDD4 E00904D4 25020010 */ addiu $v0, $t0, 0x10
/* 38FDD8 E00904D8 AE820000 */ sw $v0, ($s4)
/* 38FDDC E00904DC 24020004 */ addiu $v0, $zero, 4
/* 38FDE0 E00904E0 AD02000C */ sw $v0, 0xc($t0)
/* 38FDE4 E00904E4 3C028000 */ lui $v0, 0x8000
/* 38FDE8 E00904E8 AD050008 */ sw $a1, 8($t0)
/* 38FDEC E00904EC 00621821 */ addu $v1, $v1, $v0
/* 38FDF0 E00904F0 04C10002 */ bgez $a2, .LE00904FC
/* 38FDF4 E00904F4 AD030004 */ sw $v1, 4($t0)
/* 38FDF8 E00904F8 0000302D */ daddu $a2, $zero, $zero
.LE00904FC:
/* 38FDFC E00904FC 25020018 */ addiu $v0, $t0, 0x18
/* 38FE00 E0090500 AE820000 */ sw $v0, ($s4)
/* 38FE04 E0090504 3C02EE00 */ lui $v0, 0xee00
/* 38FE08 E0090508 AD020010 */ sw $v0, 0x10($t0)
/* 38FE0C E009050C 00061400 */ sll $v0, $a2, 0x10
/* 38FE10 E0090510 AD020014 */ sw $v0, 0x14($t0)
/* 38FE14 E0090514 28E20005 */ slti $v0, $a3, 5
/* 38FE18 E0090518 1040006F */ beqz $v0, .LE00906D8
/* 38FE1C E009051C 3C120001 */ lui $s2, 1
/* 38FE20 E0090520 27A40018 */ addiu $a0, $sp, 0x18
/* 38FE24 E0090524 8E650008 */ lw $a1, 8($s3)
/* 38FE28 E0090528 8E66000C */ lw $a2, 0xc($s3)
/* 38FE2C E009052C 8E670010 */ lw $a3, 0x10($s3)
/* 38FE30 E0090530 0C080108 */ jal shim_guTranslateF
/* 38FE34 E0090534 36521630 */ ori $s2, $s2, 0x1630
/* 38FE38 E0090538 27B00058 */ addiu $s0, $sp, 0x58
/* 38FE3C E009053C 3C013F80 */ lui $at, 0x3f80
/* 38FE40 E0090540 4481A000 */ mtc1 $at, $f20
/* 38FE44 E0090544 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 38FE48 E0090548 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 38FE4C E009054C 44800000 */ mtc1 $zero, $f0
/* 38FE50 E0090550 00031080 */ sll $v0, $v1, 2
/* 38FE54 E0090554 00431021 */ addu $v0, $v0, $v1
/* 38FE58 E0090558 00021080 */ sll $v0, $v0, 2
/* 38FE5C E009055C 00431023 */ subu $v0, $v0, $v1
/* 38FE60 E0090560 000218C0 */ sll $v1, $v0, 3
/* 38FE64 E0090564 00431021 */ addu $v0, $v0, $v1
/* 38FE68 E0090568 000210C0 */ sll $v0, $v0, 3
/* 38FE6C E009056C 44060000 */ mfc1 $a2, $f0
/* 38FE70 E0090570 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 38FE74 E0090574 00220821 */ addu $at, $at, $v0
/* 38FE78 E0090578 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 38FE7C E009057C 4407A000 */ mfc1 $a3, $f20
/* 38FE80 E0090580 46000007 */ neg.s $f0, $f0
/* 38FE84 E0090584 44050000 */ mfc1 $a1, $f0
/* 38FE88 E0090588 0200202D */ daddu $a0, $s0, $zero
/* 38FE8C E009058C 0C080104 */ jal shim_guRotateF
/* 38FE90 E0090590 AFA60010 */ sw $a2, 0x10($sp)
/* 38FE94 E0090594 0200202D */ daddu $a0, $s0, $zero
/* 38FE98 E0090598 27A50018 */ addiu $a1, $sp, 0x18
/* 38FE9C E009059C 0C080114 */ jal shim_guMtxCatF
/* 38FEA0 E00905A0 00A0302D */ daddu $a2, $a1, $zero
/* 38FEA4 E00905A4 0200202D */ daddu $a0, $s0, $zero
/* 38FEA8 E00905A8 4405B000 */ mfc1 $a1, $f22
/* 38FEAC E00905AC 4407A000 */ mfc1 $a3, $f20
/* 38FEB0 E00905B0 0C080110 */ jal shim_guScaleF
/* 38FEB4 E00905B4 00A0302D */ daddu $a2, $a1, $zero
/* 38FEB8 E00905B8 0200202D */ daddu $a0, $s0, $zero
/* 38FEBC E00905BC 27A50018 */ addiu $a1, $sp, 0x18
/* 38FEC0 E00905C0 0C080114 */ jal shim_guMtxCatF
/* 38FEC4 E00905C4 00A0302D */ daddu $a2, $a1, $zero
/* 38FEC8 E00905C8 27A40018 */ addiu $a0, $sp, 0x18
/* 38FECC E00905CC 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 38FED0 E00905D0 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 38FED4 E00905D4 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 38FED8 E00905D8 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 38FEDC E00905DC 96050000 */ lhu $a1, ($s0)
/* 38FEE0 E00905E0 8E220000 */ lw $v0, ($s1)
/* 38FEE4 E00905E4 00052980 */ sll $a1, $a1, 6
/* 38FEE8 E00905E8 00B22821 */ addu $a1, $a1, $s2
/* 38FEEC E00905EC 0C080118 */ jal shim_guMtxF2L
/* 38FEF0 E00905F0 00452821 */ addu $a1, $v0, $a1
/* 38FEF4 E00905F4 3C03DA38 */ lui $v1, 0xda38
/* 38FEF8 E00905F8 34630002 */ ori $v1, $v1, 2
/* 38FEFC E00905FC 3C06D838 */ lui $a2, 0xd838
/* 38FF00 E0090600 34C60002 */ ori $a2, $a2, 2
/* 38FF04 E0090604 8E840000 */ lw $a0, ($s4)
/* 38FF08 E0090608 96020000 */ lhu $v0, ($s0)
/* 38FF0C E009060C 0080282D */ daddu $a1, $a0, $zero
/* 38FF10 E0090610 24840008 */ addiu $a0, $a0, 8
/* 38FF14 E0090614 AE840000 */ sw $a0, ($s4)
/* 38FF18 E0090618 ACA30000 */ sw $v1, ($a1)
/* 38FF1C E009061C 24430001 */ addiu $v1, $v0, 1
/* 38FF20 E0090620 3042FFFF */ andi $v0, $v0, 0xffff
/* 38FF24 E0090624 00021180 */ sll $v0, $v0, 6
/* 38FF28 E0090628 A6030000 */ sh $v1, ($s0)
/* 38FF2C E009062C 8E230000 */ lw $v1, ($s1)
/* 38FF30 E0090630 00521021 */ addu $v0, $v0, $s2
/* 38FF34 E0090634 00621821 */ addu $v1, $v1, $v0
/* 38FF38 E0090638 24820008 */ addiu $v0, $a0, 8
/* 38FF3C E009063C ACA30004 */ sw $v1, 4($a1)
/* 38FF40 E0090640 AE820000 */ sw $v0, ($s4)
/* 38FF44 E0090644 3C02FA00 */ lui $v0, 0xfa00
/* 38FF48 E0090648 3C05DE00 */ lui $a1, 0xde00
/* 38FF4C E009064C AC820000 */ sw $v0, ($a0)
/* 38FF50 E0090650 92630017 */ lbu $v1, 0x17($s3)
/* 38FF54 E0090654 3C020900 */ lui $v0, 0x900
/* 38FF58 E0090658 244215A8 */ addiu $v0, $v0, 0x15a8
/* 38FF5C E009065C AC82000C */ sw $v0, 0xc($a0)
/* 38FF60 E0090660 2402FF00 */ addiu $v0, $zero, -0x100
/* 38FF64 E0090664 AC850008 */ sw $a1, 8($a0)
/* 38FF68 E0090668 AC850010 */ sw $a1, 0x10($a0)
/* 38FF6C E009066C 00621825 */ or $v1, $v1, $v0
/* 38FF70 E0090670 AC830004 */ sw $v1, 4($a0)
/* 38FF74 E0090674 8E620004 */ lw $v0, 4($s3)
/* 38FF78 E0090678 24830010 */ addiu $v1, $a0, 0x10
/* 38FF7C E009067C AE830000 */ sw $v1, ($s4)
/* 38FF80 E0090680 00021080 */ sll $v0, $v0, 2
/* 38FF84 E0090684 3C03E009 */ lui $v1, %hi(D_E0090A40)
/* 38FF88 E0090688 00621821 */ addu $v1, $v1, $v0
/* 38FF8C E009068C 8C630A40 */ lw $v1, %lo(D_E0090A40)($v1)
/* 38FF90 E0090690 24820018 */ addiu $v0, $a0, 0x18
/* 38FF94 E0090694 AE820000 */ sw $v0, ($s4)
/* 38FF98 E0090698 AC850018 */ sw $a1, 0x18($a0)
/* 38FF9C E009069C AC830014 */ sw $v1, 0x14($a0)
/* 38FFA0 E00906A0 8E620004 */ lw $v0, 4($s3)
/* 38FFA4 E00906A4 24830020 */ addiu $v1, $a0, 0x20
/* 38FFA8 E00906A8 AE830000 */ sw $v1, ($s4)
/* 38FFAC E00906AC 00021080 */ sll $v0, $v0, 2
/* 38FFB0 E00906B0 3C03E009 */ lui $v1, %hi(D_E0090A54)
/* 38FFB4 E00906B4 00621821 */ addu $v1, $v1, $v0
/* 38FFB8 E00906B8 8C630A54 */ lw $v1, %lo(D_E0090A54)($v1)
/* 38FFBC E00906BC 24820028 */ addiu $v0, $a0, 0x28
/* 38FFC0 E00906C0 AE820000 */ sw $v0, ($s4)
/* 38FFC4 E00906C4 24020040 */ addiu $v0, $zero, 0x40
/* 38FFC8 E00906C8 AC860020 */ sw $a2, 0x20($a0)
/* 38FFCC E00906CC AC820024 */ sw $v0, 0x24($a0)
/* 38FFD0 E00906D0 08024270 */ j .LE00909C0
/* 38FFD4 E00906D4 AC83001C */ sw $v1, 0x1c($a0)
.LE00906D8:
/* 38FFD8 E00906D8 24E7FFFB */ addiu $a3, $a3, -5
/* 38FFDC E00906DC 25020020 */ addiu $v0, $t0, 0x20
/* 38FFE0 E00906E0 AE820000 */ sw $v0, ($s4)
/* 38FFE4 E00906E4 3C02FA00 */ lui $v0, 0xfa00
/* 38FFE8 E00906E8 AD020018 */ sw $v0, 0x18($t0)
/* 38FFEC E00906EC 3C02E009 */ lui $v0, %hi(D_E0090A78)
/* 38FFF0 E00906F0 24420A78 */ addiu $v0, $v0, %lo(D_E0090A78)
/* 38FFF4 E00906F4 00072040 */ sll $a0, $a3, 1
/* 38FFF8 E00906F8 00872021 */ addu $a0, $a0, $a3
/* 38FFFC E00906FC 00042040 */ sll $a0, $a0, 1
/* 390000 E0090700 00822021 */ addu $a0, $a0, $v0
/* 390004 E0090704 90820000 */ lbu $v0, ($a0)
/* 390008 E0090708 90850001 */ lbu $a1, 1($a0)
/* 39000C E009070C 90860002 */ lbu $a2, 2($a0)
/* 390010 E0090710 92670017 */ lbu $a3, 0x17($s3)
/* 390014 E0090714 25030028 */ addiu $v1, $t0, 0x28
/* 390018 E0090718 AE830000 */ sw $v1, ($s4)
/* 39001C E009071C 3C03FB00 */ lui $v1, 0xfb00
/* 390020 E0090720 AD030020 */ sw $v1, 0x20($t0)
/* 390024 E0090724 00021600 */ sll $v0, $v0, 0x18
/* 390028 E0090728 00052C00 */ sll $a1, $a1, 0x10
/* 39002C E009072C 00451025 */ or $v0, $v0, $a1
/* 390030 E0090730 00063200 */ sll $a2, $a2, 8
/* 390034 E0090734 00461025 */ or $v0, $v0, $a2
/* 390038 E0090738 00471025 */ or $v0, $v0, $a3
/* 39003C E009073C 3C06DE00 */ lui $a2, 0xde00
/* 390040 E0090740 AD02001C */ sw $v0, 0x1c($t0)
/* 390044 E0090744 90830003 */ lbu $v1, 3($a0)
/* 390048 E0090748 90850004 */ lbu $a1, 4($a0)
/* 39004C E009074C 90840005 */ lbu $a0, 5($a0)
/* 390050 E0090750 3C020900 */ lui $v0, 0x900
/* 390054 E0090754 24421500 */ addiu $v0, $v0, 0x1500
/* 390058 E0090758 AD060028 */ sw $a2, 0x28($t0)
/* 39005C E009075C AD02002C */ sw $v0, 0x2c($t0)
/* 390060 E0090760 AD060030 */ sw $a2, 0x30($t0)
/* 390064 E0090764 00031E00 */ sll $v1, $v1, 0x18
/* 390068 E0090768 00052C00 */ sll $a1, $a1, 0x10
/* 39006C E009076C 00651825 */ or $v1, $v1, $a1
/* 390070 E0090770 00042200 */ sll $a0, $a0, 8
/* 390074 E0090774 00641825 */ or $v1, $v1, $a0
/* 390078 E0090778 AD030024 */ sw $v1, 0x24($t0)
/* 39007C E009077C 8E620004 */ lw $v0, 4($s3)
/* 390080 E0090780 3C014300 */ lui $at, 0x4300
/* 390084 E0090784 44811000 */ mtc1 $at, $f2
/* 390088 E0090788 00021080 */ sll $v0, $v0, 2
/* 39008C E009078C 3C01E009 */ lui $at, %hi(D_E0090A40)
/* 390090 E0090790 00220821 */ addu $at, $at, $v0
/* 390094 E0090794 8C220A40 */ lw $v0, %lo(D_E0090A40)($at)
/* 390098 E0090798 25030038 */ addiu $v1, $t0, 0x38
/* 39009C E009079C AD020034 */ sw $v0, 0x34($t0)
/* 3900A0 E00907A0 C6600008 */ lwc1 $f0, 8($s3)
/* 3900A4 E00907A4 46020000 */ add.s $f0, $f0, $f2
/* 3900A8 E00907A8 3C014080 */ lui $at, 0x4080
/* 3900AC E00907AC 44811000 */ mtc1 $at, $f2
/* 3900B0 E00907B0 25020030 */ addiu $v0, $t0, 0x30
/* 3900B4 E00907B4 46020002 */ mul.s $f0, $f0, $f2
/* 3900B8 E00907B8 00000000 */ nop
/* 3900BC E00907BC AE820000 */ sw $v0, ($s4)
/* 3900C0 E00907C0 25020040 */ addiu $v0, $t0, 0x40
/* 3900C4 E00907C4 AE830000 */ sw $v1, ($s4)
/* 3900C8 E00907C8 AE820000 */ sw $v0, ($s4)
/* 3900CC E00907CC 4600010D */ trunc.w.s $f4, $f0
/* 3900D0 E00907D0 44022000 */ mfc1 $v0, $f4
/* 3900D4 E00907D4 00000000 */ nop
/* 3900D8 E00907D8 00021400 */ sll $v0, $v0, 0x10
/* 3900DC E00907DC 00021403 */ sra $v0, $v0, 0x10
/* 3900E0 E00907E0 18400006 */ blez $v0, .LE00907FC
/* 3900E4 E00907E4 0060202D */ daddu $a0, $v1, $zero
/* 3900E8 E00907E8 30420FFF */ andi $v0, $v0, 0xfff
/* 3900EC E00907EC 00021300 */ sll $v0, $v0, 0xc
/* 3900F0 E00907F0 3C03E400 */ lui $v1, 0xe400
/* 3900F4 E00907F4 08024200 */ j .LE0090800
/* 3900F8 E00907F8 00431025 */ or $v0, $v0, $v1
.LE00907FC:
/* 3900FC E00907FC 3C02E400 */ lui $v0, 0xe400
.LE0090800:
/* 390100 E0090800 C660000C */ lwc1 $f0, 0xc($s3)
/* 390104 E0090804 3C014280 */ lui $at, 0x4280
/* 390108 E0090808 44811000 */ mtc1 $at, $f2
/* 39010C E009080C 00000000 */ nop
/* 390110 E0090810 46020000 */ add.s $f0, $f0, $f2
/* 390114 E0090814 3C014080 */ lui $at, 0x4080
/* 390118 E0090818 44811000 */ mtc1 $at, $f2
/* 39011C E009081C 00000000 */ nop
/* 390120 E0090820 46020002 */ mul.s $f0, $f0, $f2
/* 390124 E0090824 00000000 */ nop
/* 390128 E0090828 0040182D */ daddu $v1, $v0, $zero
/* 39012C E009082C 4600010D */ trunc.w.s $f4, $f0
/* 390130 E0090830 44022000 */ mfc1 $v0, $f4
/* 390134 E0090834 00000000 */ nop
/* 390138 E0090838 00021400 */ sll $v0, $v0, 0x10
/* 39013C E009083C 00021403 */ sra $v0, $v0, 0x10
/* 390140 E0090840 18400002 */ blez $v0, .LE009084C
/* 390144 E0090844 30420FFF */ andi $v0, $v0, 0xfff
/* 390148 E0090848 00621825 */ or $v1, $v1, $v0
.LE009084C:
/* 39014C E009084C AC830000 */ sw $v1, ($a0)
/* 390150 E0090850 C6600008 */ lwc1 $f0, 8($s3)
/* 390154 E0090854 46020002 */ mul.s $f0, $f0, $f2
/* 390158 E0090858 00000000 */ nop
/* 39015C E009085C 4600010D */ trunc.w.s $f4, $f0
/* 390160 E0090860 44022000 */ mfc1 $v0, $f4
/* 390164 E0090864 00000000 */ nop
/* 390168 E0090868 00021400 */ sll $v0, $v0, 0x10
/* 39016C E009086C 00021403 */ sra $v0, $v0, 0x10
/* 390170 E0090870 18400004 */ blez $v0, .LE0090884
/* 390174 E0090874 24860004 */ addiu $a2, $a0, 4
/* 390178 E0090878 30420FFF */ andi $v0, $v0, 0xfff
/* 39017C E009087C 08024222 */ j .LE0090888
/* 390180 E0090880 00021300 */ sll $v0, $v0, 0xc
.LE0090884:
/* 390184 E0090884 0000102D */ daddu $v0, $zero, $zero
.LE0090888:
/* 390188 E0090888 C660000C */ lwc1 $f0, 0xc($s3)
/* 39018C E009088C 3C014080 */ lui $at, 0x4080
/* 390190 E0090890 44811000 */ mtc1 $at, $f2
/* 390194 E0090894 00000000 */ nop
/* 390198 E0090898 46020002 */ mul.s $f0, $f0, $f2
/* 39019C E009089C 00000000 */ nop
/* 3901A0 E00908A0 0040202D */ daddu $a0, $v0, $zero
/* 3901A4 E00908A4 4600010D */ trunc.w.s $f4, $f0
/* 3901A8 E00908A8 44022000 */ mfc1 $v0, $f4
/* 3901AC E00908AC 00000000 */ nop
/* 3901B0 E00908B0 00021400 */ sll $v0, $v0, 0x10
/* 3901B4 E00908B4 00021403 */ sra $v0, $v0, 0x10
/* 3901B8 E00908B8 18400002 */ blez $v0, .LE00908C4
/* 3901BC E00908BC 30420FFF */ andi $v0, $v0, 0xfff
/* 3901C0 E00908C0 00822025 */ or $a0, $a0, $v0
.LE00908C4:
/* 3901C4 E00908C4 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 3901C8 E00908C8 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 3901CC E00908CC 8CA30000 */ lw $v1, ($a1)
/* 3901D0 E00908D0 3C02E100 */ lui $v0, 0xe100
/* 3901D4 E00908D4 ACC40000 */ sw $a0, ($a2)
/* 3901D8 E00908D8 0060202D */ daddu $a0, $v1, $zero
/* 3901DC E00908DC AC820000 */ sw $v0, ($a0)
/* 3901E0 E00908E0 C6600008 */ lwc1 $f0, 8($s3)
/* 3901E4 E00908E4 46020002 */ mul.s $f0, $f0, $f2
/* 3901E8 E00908E8 00000000 */ nop
/* 3901EC E00908EC 24630008 */ addiu $v1, $v1, 8
/* 3901F0 E00908F0 24860004 */ addiu $a2, $a0, 4
/* 3901F4 E00908F4 4600010D */ trunc.w.s $f4, $f0
/* 3901F8 E00908F8 44022000 */ mfc1 $v0, $f4
/* 3901FC E00908FC 00000000 */ nop
/* 390200 E0090900 00021400 */ sll $v0, $v0, 0x10
/* 390204 E0090904 00021403 */ sra $v0, $v0, 0x10
/* 390208 E0090908 04410007 */ bgez $v0, .LE0090928
/* 39020C E009090C ACA30000 */ sw $v1, ($a1)
/* 390210 E0090910 00021080 */ sll $v0, $v0, 2
/* 390214 E0090914 5C400001 */ bgtzl $v0, .LE009091C
/* 390218 E0090918 0000102D */ daddu $v0, $zero, $zero
.LE009091C:
/* 39021C E009091C 00021023 */ negu $v0, $v0
/* 390220 E0090920 0802424B */ j .LE009092C
/* 390224 E0090924 00022400 */ sll $a0, $v0, 0x10
.LE0090928:
/* 390228 E0090928 0000202D */ daddu $a0, $zero, $zero
.LE009092C:
/* 39022C E009092C C660000C */ lwc1 $f0, 0xc($s3)
/* 390230 E0090930 3C014080 */ lui $at, 0x4080
/* 390234 E0090934 44811000 */ mtc1 $at, $f2
/* 390238 E0090938 00000000 */ nop
/* 39023C E009093C 46020082 */ mul.s $f2, $f0, $f2
/* 390240 E0090940 00000000 */ nop
/* 390244 E0090944 44800000 */ mtc1 $zero, $f0
/* 390248 E0090948 00000000 */ nop
/* 39024C E009094C 4600103C */ c.lt.s $f2, $f0
/* 390250 E0090950 00000000 */ nop
/* 390254 E0090954 4500000E */ bc1f .LE0090990
/* 390258 E0090958 34830400 */ ori $v1, $a0, 0x400
/* 39025C E009095C 4600110D */ trunc.w.s $f4, $f2
/* 390260 E0090960 44022000 */ mfc1 $v0, $f4
/* 390264 E0090964 00000000 */ nop
/* 390268 E0090968 00021400 */ sll $v0, $v0, 0x10
/* 39026C E009096C 000211C3 */ sra $v0, $v0, 7
/* 390270 E0090970 00021023 */ negu $v0, $v0
/* 390274 E0090974 000219C3 */ sra $v1, $v0, 7
/* 390278 E0090978 04620001 */ bltzl $v1, .LE0090980
/* 39027C E009097C 0000182D */ daddu $v1, $zero, $zero
.LE0090980:
/* 390280 E0090980 24020400 */ addiu $v0, $zero, 0x400
/* 390284 E0090984 00431023 */ subu $v0, $v0, $v1
/* 390288 E0090988 3042FFFF */ andi $v0, $v0, 0xffff
/* 39028C E009098C 00821825 */ or $v1, $a0, $v0
.LE0090990:
/* 390290 E0090990 3C050200 */ lui $a1, 0x200
/* 390294 E0090994 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 390298 E0090998 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 39029C E009099C 8C820000 */ lw $v0, ($a0)
/* 3902A0 E00909A0 34A5FE00 */ ori $a1, $a1, 0xfe00
/* 3902A4 E00909A4 ACC30000 */ sw $v1, ($a2)
/* 3902A8 E00909A8 0040182D */ daddu $v1, $v0, $zero
/* 3902AC E00909AC 24420008 */ addiu $v0, $v0, 8
/* 3902B0 E00909B0 AC820000 */ sw $v0, ($a0)
/* 3902B4 E00909B4 3C02F100 */ lui $v0, 0xf100
/* 3902B8 E00909B8 AC620000 */ sw $v0, ($v1)
/* 3902BC E00909BC AC650004 */ sw $a1, 4($v1)
.LE00909C0:
/* 3902C0 E00909C0 3C06E200 */ lui $a2, 0xe200
/* 3902C4 E00909C4 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 3902C8 E00909C8 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 3902CC E00909CC 34C61D00 */ ori $a2, $a2, 0x1d00
/* 3902D0 E00909D0 8C820000 */ lw $v0, ($a0)
/* 3902D4 E00909D4 3C05E700 */ lui $a1, 0xe700
/* 3902D8 E00909D8 0040182D */ daddu $v1, $v0, $zero
/* 3902DC E00909DC 24420008 */ addiu $v0, $v0, 8
/* 3902E0 E00909E0 AC820000 */ sw $v0, ($a0)
/* 3902E4 E00909E4 AC650000 */ sw $a1, ($v1)
/* 3902E8 E00909E8 AC600004 */ sw $zero, 4($v1)
/* 3902EC E00909EC 24430008 */ addiu $v1, $v0, 8
/* 3902F0 E00909F0 AC830000 */ sw $v1, ($a0)
/* 3902F4 E00909F4 24430010 */ addiu $v1, $v0, 0x10
/* 3902F8 E00909F8 AC460000 */ sw $a2, ($v0)
/* 3902FC E00909FC AC400004 */ sw $zero, 4($v0)
/* 390300 E0090A00 AC830000 */ sw $v1, ($a0)
/* 390304 E0090A04 AC450008 */ sw $a1, 8($v0)
/* 390308 E0090A08 AC40000C */ sw $zero, 0xc($v0)
.LE0090A0C:
/* 39030C E0090A0C 8FBF00AC */ lw $ra, 0xac($sp)
/* 390310 E0090A10 8FB400A8 */ lw $s4, 0xa8($sp)
/* 390314 E0090A14 8FB300A4 */ lw $s3, 0xa4($sp)
/* 390318 E0090A18 8FB200A0 */ lw $s2, 0xa0($sp)
/* 39031C E0090A1C 8FB1009C */ lw $s1, 0x9c($sp)
/* 390320 E0090A20 8FB00098 */ lw $s0, 0x98($sp)
/* 390324 E0090A24 D7B600B8 */ ldc1 $f22, 0xb8($sp)
/* 390328 E0090A28 D7B400B0 */ ldc1 $f20, 0xb0($sp)
/* 39032C E0090A2C 03E00008 */ jr $ra
/* 390330 E0090A30 27BD00C0 */ addiu $sp, $sp, 0xc0
/* 390334 E0090A34 00000000 */ nop
/* 390338 E0090A38 00000000 */ nop
/* 39033C E0090A3C 00000000 */ nop

View File

@ -1,144 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_E010E930
.word LE010E61C_3EBAFC, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E5E4_3EBAC4, LE010E60C_3EBAEC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, LE010E61C_3EBAFC, 0
.section .text
glabel chapter_change_appendGfx
/* 3EBA38 E010E558 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3EBA3C E010E55C 3C07DB06 */ lui $a3, 0xdb06
/* 3EBA40 E010E560 3C06800A */ lui $a2, %hi(gMasterGfxPos)
/* 3EBA44 E010E564 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
/* 3EBA48 E010E568 34E70024 */ ori $a3, $a3, 0x24
/* 3EBA4C E010E56C AFBF0024 */ sw $ra, 0x24($sp)
/* 3EBA50 E010E570 AFB20020 */ sw $s2, 0x20($sp)
/* 3EBA54 E010E574 AFB1001C */ sw $s1, 0x1c($sp)
/* 3EBA58 E010E578 AFB00018 */ sw $s0, 0x18($sp)
/* 3EBA5C E010E57C 8CC50000 */ lw $a1, ($a2)
/* 3EBA60 E010E580 8C90000C */ lw $s0, 0xc($a0)
/* 3EBA64 E010E584 00A0182D */ daddu $v1, $a1, $zero
/* 3EBA68 E010E588 24A50008 */ addiu $a1, $a1, 8
/* 3EBA6C E010E58C ACC50000 */ sw $a1, ($a2)
/* 3EBA70 E010E590 8E0B002C */ lw $t3, 0x2c($s0)
/* 3EBA74 E010E594 8E080000 */ lw $t0, ($s0)
/* 3EBA78 E010E598 3C02E700 */ lui $v0, 0xe700
/* 3EBA7C E010E59C AC620000 */ sw $v0, ($v1)
/* 3EBA80 E010E5A0 AC600004 */ sw $zero, 4($v1)
/* 3EBA84 E010E5A4 ACA70000 */ sw $a3, ($a1)
/* 3EBA88 E010E5A8 8C830010 */ lw $v1, 0x10($a0)
/* 3EBA8C E010E5AC 24A20008 */ addiu $v0, $a1, 8
/* 3EBA90 E010E5B0 ACC20000 */ sw $v0, ($a2)
/* 3EBA94 E010E5B4 8C62001C */ lw $v0, 0x1c($v1)
/* 3EBA98 E010E5B8 3C038000 */ lui $v1, 0x8000
/* 3EBA9C E010E5BC 00431021 */ addu $v0, $v0, $v1
/* 3EBAA0 E010E5C0 ACA20004 */ sw $v0, 4($a1)
/* 3EBAA4 E010E5C4 2D020013 */ sltiu $v0, $t0, 0x13
/* 3EBAA8 E010E5C8 1040001A */ beqz $v0, .LE010E634
/* 3EBAAC E010E5CC 00081080 */ sll $v0, $t0, 2
/* 3EBAB0 E010E5D0 3C01E011 */ lui $at, %hi(jtbl_E010E930)
/* 3EBAB4 E010E5D4 00220821 */ addu $at, $at, $v0
/* 3EBAB8 E010E5D8 8C22E930 */ lw $v0, %lo(jtbl_E010E930)($at)
/* 3EBABC E010E5DC 00400008 */ jr $v0
/* 3EBAC0 E010E5E0 00000000 */ nop
dlabel LE010E5E4_3EBAC4
/* 3EBAC4 E010E5E4 3C06E011 */ lui $a2, %hi(D_E010E7FC)
/* 3EBAC8 E010E5E8 24C6E7FC */ addiu $a2, $a2, %lo(D_E010E7FC)
/* 3EBACC E010E5EC 3C04E011 */ lui $a0, %hi(D_E010E868)
/* 3EBAD0 E010E5F0 2484E868 */ addiu $a0, $a0, %lo(D_E010E868)
/* 3EBAD4 E010E5F4 2503FFFF */ addiu $v1, $t0, -1
/* 3EBAD8 E010E5F8 00031040 */ sll $v0, $v1, 1
/* 3EBADC E010E5FC 00431021 */ addu $v0, $v0, $v1
/* 3EBAE0 E010E600 000210C0 */ sll $v0, $v0, 3
/* 3EBAE4 E010E604 0804398F */ j .LE010E63C
/* 3EBAE8 E010E608 00448821 */ addu $s1, $v0, $a0
dlabel LE010E60C_3EBAEC
/* 3EBAEC E010E60C 3C06E011 */ lui $a2, %hi(D_E010E7D8)
/* 3EBAF0 E010E610 24C6E7D8 */ addiu $a2, $a2, %lo(D_E010E7D8)
/* 3EBAF4 E010E614 0804398F */ j .LE010E63C
/* 3EBAF8 E010E618 0000882D */ daddu $s1, $zero, $zero
dlabel LE010E61C_3EBAFC
/* 3EBAFC E010E61C 3C06E011 */ lui $a2, %hi(D_E010E79C)
/* 3EBB00 E010E620 24C6E79C */ addiu $a2, $a2, %lo(D_E010E79C)
/* 3EBB04 E010E624 3C11E011 */ lui $s1, %hi(D_E010E838)
/* 3EBB08 E010E628 2631E838 */ addiu $s1, $s1, %lo(D_E010E838)
/* 3EBB0C E010E62C 08043990 */ j .LE010E640
/* 3EBB10 E010E630 0200202D */ daddu $a0, $s0, $zero
.LE010E634:
/* 3EBB14 E010E634 0000882D */ daddu $s1, $zero, $zero
/* 3EBB18 E010E638 0220302D */ daddu $a2, $s1, $zero
.LE010E63C:
/* 3EBB1C E010E63C 0200202D */ daddu $a0, $s0, $zero
.LE010E640:
/* 3EBB20 E010E640 0000282D */ daddu $a1, $zero, $zero
/* 3EBB24 E010E644 3C12800A */ lui $s2, %hi(gMasterGfxPos)
/* 3EBB28 E010E648 2652A66C */ addiu $s2, $s2, %lo(gMasterGfxPos)
/* 3EBB2C E010E64C 8E490000 */ lw $t1, ($s2)
/* 3EBB30 E010E650 3C02FA00 */ lui $v0, 0xfa00
/* 3EBB34 E010E654 0120502D */ daddu $t2, $t1, $zero
/* 3EBB38 E010E658 25290008 */ addiu $t1, $t1, 8
/* 3EBB3C E010E65C AE490000 */ sw $t1, ($s2)
/* 3EBB40 E010E660 AD420000 */ sw $v0, ($t2)
/* 3EBB44 E010E664 92020023 */ lbu $v0, 0x23($s0)
/* 3EBB48 E010E668 92070027 */ lbu $a3, 0x27($s0)
/* 3EBB4C E010E66C 9208002B */ lbu $t0, 0x2b($s0)
/* 3EBB50 E010E670 25230008 */ addiu $v1, $t1, 8
/* 3EBB54 E010E674 AE430000 */ sw $v1, ($s2)
/* 3EBB58 E010E678 316300FF */ andi $v1, $t3, 0xff
/* 3EBB5C E010E67C 00021600 */ sll $v0, $v0, 0x18
/* 3EBB60 E010E680 00073C00 */ sll $a3, $a3, 0x10
/* 3EBB64 E010E684 00471025 */ or $v0, $v0, $a3
/* 3EBB68 E010E688 00084200 */ sll $t0, $t0, 8
/* 3EBB6C E010E68C 00481025 */ or $v0, $v0, $t0
/* 3EBB70 E010E690 00431025 */ or $v0, $v0, $v1
/* 3EBB74 E010E694 AD420004 */ sw $v0, 4($t2)
/* 3EBB78 E010E698 3C02FB00 */ lui $v0, 0xfb00
/* 3EBB7C E010E69C AD220000 */ sw $v0, ($t1)
/* 3EBB80 E010E6A0 92020033 */ lbu $v0, 0x33($s0)
/* 3EBB84 E010E6A4 92030037 */ lbu $v1, 0x37($s0)
/* 3EBB88 E010E6A8 9207003B */ lbu $a3, 0x3b($s0)
/* 3EBB8C E010E6AC 00021600 */ sll $v0, $v0, 0x18
/* 3EBB90 E010E6B0 00031C00 */ sll $v1, $v1, 0x10
/* 3EBB94 E010E6B4 00431025 */ or $v0, $v0, $v1
/* 3EBB98 E010E6B8 00073A00 */ sll $a3, $a3, 8
/* 3EBB9C E010E6BC 9203003F */ lbu $v1, 0x3f($s0)
/* 3EBBA0 E010E6C0 00471025 */ or $v0, $v0, $a3
/* 3EBBA4 E010E6C4 00431025 */ or $v0, $v0, $v1
/* 3EBBA8 E010E6C8 0C043800 */ jal func_E010E000
/* 3EBBAC E010E6CC AD220004 */ sw $v0, 4($t1)
/* 3EBBB0 E010E6D0 0200202D */ daddu $a0, $s0, $zero
/* 3EBBB4 E010E6D4 24050001 */ addiu $a1, $zero, 1
/* 3EBBB8 E010E6D8 0C043800 */ jal func_E010E000
/* 3EBBBC E010E6DC 0220302D */ daddu $a2, $s1, $zero
/* 3EBBC0 E010E6E0 8E020054 */ lw $v0, 0x54($s0)
/* 3EBBC4 E010E6E4 0440000A */ bltz $v0, .LE010E710
/* 3EBBC8 E010E6E8 24020015 */ addiu $v0, $zero, 0x15
/* 3EBBCC E010E6EC 8E030040 */ lw $v1, 0x40($s0)
/* 3EBBD0 E010E6F0 8E050048 */ lw $a1, 0x48($s0)
/* 3EBBD4 E010E6F4 240700FF */ addiu $a3, $zero, 0xff
/* 3EBBD8 E010E6F8 AFA20010 */ sw $v0, 0x10($sp)
/* 3EBBDC E010E6FC AFA00014 */ sw $zero, 0x14($sp)
/* 3EBBE0 E010E700 8E040054 */ lw $a0, 0x54($s0)
/* 3EBBE4 E010E704 8E060044 */ lw $a2, 0x44($s0)
/* 3EBBE8 E010E708 0C080194 */ jal shim_draw_msg
/* 3EBBEC E010E70C 00652823 */ subu $a1, $v1, $a1
.LE010E710:
/* 3EBBF0 E010E710 8E420000 */ lw $v0, ($s2)
/* 3EBBF4 E010E714 0040182D */ daddu $v1, $v0, $zero
/* 3EBBF8 E010E718 24420008 */ addiu $v0, $v0, 8
/* 3EBBFC E010E71C AE420000 */ sw $v0, ($s2)
/* 3EBC00 E010E720 3C02E700 */ lui $v0, 0xe700
/* 3EBC04 E010E724 AC620000 */ sw $v0, ($v1)
/* 3EBC08 E010E728 AC600004 */ sw $zero, 4($v1)
/* 3EBC0C E010E72C 8FBF0024 */ lw $ra, 0x24($sp)
/* 3EBC10 E010E730 8FB20020 */ lw $s2, 0x20($sp)
/* 3EBC14 E010E734 8FB1001C */ lw $s1, 0x1c($sp)
/* 3EBC18 E010E738 8FB00018 */ lw $s0, 0x18($sp)
/* 3EBC1C E010E73C 03E00008 */ jr $ra
/* 3EBC20 E010E740 27BD0028 */ addiu $sp, $sp, 0x28
/* 3EBC24 E010E744 00000000 */ nop
/* 3EBC28 E010E748 00000000 */ nop
/* 3EBC2C E010E74C 00000000 */ nop

View File

@ -1,223 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E010E000
/* 3EB4E0 E010E000 14A00004 */ bnez $a1, .LE010E014
/* 3EB4E4 E010E004 8C83001C */ lw $v1, 0x1c($a0)
/* 3EB4E8 E010E008 C4860004 */ lwc1 $f6, 4($a0)
/* 3EB4EC E010E00C 08043807 */ j .LE010E01C
/* 3EB4F0 E010E010 C4840008 */ lwc1 $f4, 8($a0)
.LE010E014:
/* 3EB4F4 E010E014 C4860010 */ lwc1 $f6, 0x10($a0)
/* 3EB4F8 E010E018 C4840014 */ lwc1 $f4, 0x14($a0)
.LE010E01C:
/* 3EB4FC E010E01C 10C000C1 */ beqz $a2, .LE010E324
/* 3EB500 E010E020 00000000 */ nop
/* 3EB504 E010E024 8CC20000 */ lw $v0, ($a2)
/* 3EB508 E010E028 104000B5 */ beqz $v0, .LE010E300
/* 3EB50C E010E02C 00035080 */ sll $t2, $v1, 2
/* 3EB510 E010E030 3C08800A */ lui $t0, %hi(gMasterGfxPos)
/* 3EB514 E010E034 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos)
/* 3EB518 E010E038 3C014080 */ lui $at, 0x4080
/* 3EB51C E010E03C 44814000 */ mtc1 $at, $f8
/* 3EB520 E010E040 24C70006 */ addiu $a3, $a2, 6
.LE010E044:
/* 3EB524 E010E044 8D040000 */ lw $a0, ($t0)
/* 3EB528 E010E048 3C02DE00 */ lui $v0, 0xde00
/* 3EB52C E010E04C 0080182D */ daddu $v1, $a0, $zero
/* 3EB530 E010E050 AC620000 */ sw $v0, ($v1)
/* 3EB534 E010E054 8CC20000 */ lw $v0, ($a2)
/* 3EB538 E010E058 24840008 */ addiu $a0, $a0, 8
/* 3EB53C E010E05C AC620004 */ sw $v0, 4($v1)
/* 3EB540 E010E060 84E2FFFE */ lh $v0, -2($a3)
/* 3EB544 E010E064 3C03F200 */ lui $v1, 0xf200
/* 3EB548 E010E068 2442FE80 */ addiu $v0, $v0, -0x180
/* 3EB54C E010E06C 01421023 */ subu $v0, $t2, $v0
/* 3EB550 E010E070 00021080 */ sll $v0, $v0, 2
/* 3EB554 E010E074 30420FFF */ andi $v0, $v0, 0xfff
/* 3EB558 E010E078 00021300 */ sll $v0, $v0, 0xc
/* 3EB55C E010E07C 00431025 */ or $v0, $v0, $v1
/* 3EB560 E010E080 AC820000 */ sw $v0, ($a0)
/* 3EB564 E010E084 84E2FFFE */ lh $v0, -2($a3)
/* 3EB568 E010E088 3C030100 */ lui $v1, 0x100
/* 3EB56C E010E08C 01421023 */ subu $v0, $t2, $v0
/* 3EB570 E010E090 244201FF */ addiu $v0, $v0, 0x1ff
/* 3EB574 E010E094 00021080 */ sll $v0, $v0, 2
/* 3EB578 E010E098 30420FFF */ andi $v0, $v0, 0xfff
/* 3EB57C E010E09C 00021300 */ sll $v0, $v0, 0xc
/* 3EB580 E010E0A0 00431025 */ or $v0, $v0, $v1
/* 3EB584 E010E0A4 AC820004 */ sw $v0, 4($a0)
/* 3EB588 E010E0A8 84E2FFFE */ lh $v0, -2($a3)
/* 3EB58C E010E0AC 44821000 */ mtc1 $v0, $f2
/* 3EB590 E010E0B0 00000000 */ nop
/* 3EB594 E010E0B4 468010A0 */ cvt.s.w $f2, $f2
/* 3EB598 E010E0B8 46023080 */ add.s $f2, $f6, $f2
/* 3EB59C E010E0BC 84E20002 */ lh $v0, 2($a3)
/* 3EB5A0 E010E0C0 44820000 */ mtc1 $v0, $f0
/* 3EB5A4 E010E0C4 00000000 */ nop
/* 3EB5A8 E010E0C8 46800020 */ cvt.s.w $f0, $f0
/* 3EB5AC E010E0CC 46001080 */ add.s $f2, $f2, $f0
/* 3EB5B0 E010E0D0 AD040000 */ sw $a0, ($t0)
/* 3EB5B4 E010E0D4 24820008 */ addiu $v0, $a0, 8
/* 3EB5B8 E010E0D8 46081082 */ mul.s $f2, $f2, $f8
/* 3EB5BC E010E0DC 00000000 */ nop
/* 3EB5C0 E010E0E0 24840010 */ addiu $a0, $a0, 0x10
/* 3EB5C4 E010E0E4 AD020000 */ sw $v0, ($t0)
/* 3EB5C8 E010E0E8 AD040000 */ sw $a0, ($t0)
/* 3EB5CC E010E0EC 0040202D */ daddu $a0, $v0, $zero
/* 3EB5D0 E010E0F0 4600128D */ trunc.w.s $f10, $f2
/* 3EB5D4 E010E0F4 44025000 */ mfc1 $v0, $f10
/* 3EB5D8 E010E0F8 00000000 */ nop
/* 3EB5DC E010E0FC 00021400 */ sll $v0, $v0, 0x10
/* 3EB5E0 E010E100 00021403 */ sra $v0, $v0, 0x10
/* 3EB5E4 E010E104 18400005 */ blez $v0, .LE010E11C
/* 3EB5E8 E010E108 30420FFF */ andi $v0, $v0, 0xfff
/* 3EB5EC E010E10C 00021300 */ sll $v0, $v0, 0xc
/* 3EB5F0 E010E110 3C03E400 */ lui $v1, 0xe400
/* 3EB5F4 E010E114 08043848 */ j .LE010E120
/* 3EB5F8 E010E118 00431825 */ or $v1, $v0, $v1
.LE010E11C:
/* 3EB5FC E010E11C 3C03E400 */ lui $v1, 0xe400
.LE010E120:
/* 3EB600 E010E120 84E20000 */ lh $v0, ($a3)
/* 3EB604 E010E124 44820000 */ mtc1 $v0, $f0
/* 3EB608 E010E128 00000000 */ nop
/* 3EB60C E010E12C 46800020 */ cvt.s.w $f0, $f0
/* 3EB610 E010E130 84E20004 */ lh $v0, 4($a3)
/* 3EB614 E010E134 46002000 */ add.s $f0, $f4, $f0
/* 3EB618 E010E138 44821000 */ mtc1 $v0, $f2
/* 3EB61C E010E13C 00000000 */ nop
/* 3EB620 E010E140 468010A0 */ cvt.s.w $f2, $f2
/* 3EB624 E010E144 46020000 */ add.s $f0, $f0, $f2
/* 3EB628 E010E148 46080002 */ mul.s $f0, $f0, $f8
/* 3EB62C E010E14C 00000000 */ nop
/* 3EB630 E010E150 4600028D */ trunc.w.s $f10, $f0
/* 3EB634 E010E154 44025000 */ mfc1 $v0, $f10
/* 3EB638 E010E158 00000000 */ nop
/* 3EB63C E010E15C 00021400 */ sll $v0, $v0, 0x10
/* 3EB640 E010E160 00021403 */ sra $v0, $v0, 0x10
/* 3EB644 E010E164 18400002 */ blez $v0, .LE010E170
/* 3EB648 E010E168 30420FFF */ andi $v0, $v0, 0xfff
/* 3EB64C E010E16C 00621825 */ or $v1, $v1, $v0
.LE010E170:
/* 3EB650 E010E170 AC830000 */ sw $v1, ($a0)
/* 3EB654 E010E174 84E2FFFE */ lh $v0, -2($a3)
/* 3EB658 E010E178 44820000 */ mtc1 $v0, $f0
/* 3EB65C E010E17C 00000000 */ nop
/* 3EB660 E010E180 46800020 */ cvt.s.w $f0, $f0
/* 3EB664 E010E184 46003000 */ add.s $f0, $f6, $f0
/* 3EB668 E010E188 46080002 */ mul.s $f0, $f0, $f8
/* 3EB66C E010E18C 00000000 */ nop
/* 3EB670 E010E190 4600028D */ trunc.w.s $f10, $f0
/* 3EB674 E010E194 44025000 */ mfc1 $v0, $f10
/* 3EB678 E010E198 00000000 */ nop
/* 3EB67C E010E19C 00021400 */ sll $v0, $v0, 0x10
/* 3EB680 E010E1A0 00021403 */ sra $v0, $v0, 0x10
/* 3EB684 E010E1A4 18400004 */ blez $v0, .LE010E1B8
/* 3EB688 E010E1A8 24850004 */ addiu $a1, $a0, 4
/* 3EB68C E010E1AC 30420FFF */ andi $v0, $v0, 0xfff
/* 3EB690 E010E1B0 0804386F */ j .LE010E1BC
/* 3EB694 E010E1B4 00021B00 */ sll $v1, $v0, 0xc
.LE010E1B8:
/* 3EB698 E010E1B8 0000182D */ daddu $v1, $zero, $zero
.LE010E1BC:
/* 3EB69C E010E1BC 84E20000 */ lh $v0, ($a3)
/* 3EB6A0 E010E1C0 44820000 */ mtc1 $v0, $f0
/* 3EB6A4 E010E1C4 00000000 */ nop
/* 3EB6A8 E010E1C8 46800020 */ cvt.s.w $f0, $f0
/* 3EB6AC E010E1CC 46002000 */ add.s $f0, $f4, $f0
/* 3EB6B0 E010E1D0 46080002 */ mul.s $f0, $f0, $f8
/* 3EB6B4 E010E1D4 00000000 */ nop
/* 3EB6B8 E010E1D8 4600028D */ trunc.w.s $f10, $f0
/* 3EB6BC E010E1DC 44025000 */ mfc1 $v0, $f10
/* 3EB6C0 E010E1E0 00000000 */ nop
/* 3EB6C4 E010E1E4 00021400 */ sll $v0, $v0, 0x10
/* 3EB6C8 E010E1E8 00021403 */ sra $v0, $v0, 0x10
/* 3EB6CC E010E1EC 18400003 */ blez $v0, .LE010E1FC
/* 3EB6D0 E010E1F0 0060202D */ daddu $a0, $v1, $zero
/* 3EB6D4 E010E1F4 30420FFF */ andi $v0, $v0, 0xfff
/* 3EB6D8 E010E1F8 00822025 */ or $a0, $a0, $v0
.LE010E1FC:
/* 3EB6DC E010E1FC 8D030000 */ lw $v1, ($t0)
/* 3EB6E0 E010E200 3C02E100 */ lui $v0, 0xe100
/* 3EB6E4 E010E204 ACA40000 */ sw $a0, ($a1)
/* 3EB6E8 E010E208 0060202D */ daddu $a0, $v1, $zero
/* 3EB6EC E010E20C AC820000 */ sw $v0, ($a0)
/* 3EB6F0 E010E210 84E2FFFE */ lh $v0, -2($a3)
/* 3EB6F4 E010E214 44820000 */ mtc1 $v0, $f0
/* 3EB6F8 E010E218 00000000 */ nop
/* 3EB6FC E010E21C 46800020 */ cvt.s.w $f0, $f0
/* 3EB700 E010E220 46003000 */ add.s $f0, $f6, $f0
/* 3EB704 E010E224 46080002 */ mul.s $f0, $f0, $f8
/* 3EB708 E010E228 00000000 */ nop
/* 3EB70C E010E22C 24630008 */ addiu $v1, $v1, 8
/* 3EB710 E010E230 24890004 */ addiu $t1, $a0, 4
/* 3EB714 E010E234 4600028D */ trunc.w.s $f10, $f0
/* 3EB718 E010E238 44025000 */ mfc1 $v0, $f10
/* 3EB71C E010E23C 00000000 */ nop
/* 3EB720 E010E240 00021400 */ sll $v0, $v0, 0x10
/* 3EB724 E010E244 00021403 */ sra $v0, $v0, 0x10
/* 3EB728 E010E248 04410007 */ bgez $v0, .LE010E268
/* 3EB72C E010E24C AD030000 */ sw $v1, ($t0)
/* 3EB730 E010E250 000210C0 */ sll $v0, $v0, 3
/* 3EB734 E010E254 5C400001 */ bgtzl $v0, .LE010E25C
/* 3EB738 E010E258 0000102D */ daddu $v0, $zero, $zero
.LE010E25C:
/* 3EB73C E010E25C 00021023 */ negu $v0, $v0
/* 3EB740 E010E260 0804389B */ j .LE010E26C
/* 3EB744 E010E264 00021C00 */ sll $v1, $v0, 0x10
.LE010E268:
/* 3EB748 E010E268 0000182D */ daddu $v1, $zero, $zero
.LE010E26C:
/* 3EB74C E010E26C 84E20000 */ lh $v0, ($a3)
/* 3EB750 E010E270 44820000 */ mtc1 $v0, $f0
/* 3EB754 E010E274 00000000 */ nop
/* 3EB758 E010E278 46800020 */ cvt.s.w $f0, $f0
/* 3EB75C E010E27C 46002000 */ add.s $f0, $f4, $f0
/* 3EB760 E010E280 46080082 */ mul.s $f2, $f0, $f8
/* 3EB764 E010E284 00000000 */ nop
/* 3EB768 E010E288 44800000 */ mtc1 $zero, $f0
/* 3EB76C E010E28C 00000000 */ nop
/* 3EB770 E010E290 4600103C */ c.lt.s $f2, $f0
/* 3EB774 E010E294 00000000 */ nop
/* 3EB778 E010E298 4500000C */ bc1f .LE010E2CC
/* 3EB77C E010E29C 3C050400 */ lui $a1, 0x400
/* 3EB780 E010E2A0 4600128D */ trunc.w.s $f10, $f2
/* 3EB784 E010E2A4 44025000 */ mfc1 $v0, $f10
/* 3EB788 E010E2A8 00000000 */ nop
/* 3EB78C E010E2AC 00021400 */ sll $v0, $v0, 0x10
/* 3EB790 E010E2B0 00021343 */ sra $v0, $v0, 0xd
/* 3EB794 E010E2B4 5C400001 */ bgtzl $v0, .LE010E2BC
/* 3EB798 E010E2B8 0000102D */ daddu $v0, $zero, $zero
.LE010E2BC:
/* 3EB79C E010E2BC 00021023 */ negu $v0, $v0
/* 3EB7A0 E010E2C0 3042FFFF */ andi $v0, $v0, 0xffff
/* 3EB7A4 E010E2C4 00621825 */ or $v1, $v1, $v0
/* 3EB7A8 E010E2C8 3C050400 */ lui $a1, 0x400
.LE010E2CC:
/* 3EB7AC E010E2CC 34A50400 */ ori $a1, $a1, 0x400
/* 3EB7B0 E010E2D0 24E7000C */ addiu $a3, $a3, 0xc
/* 3EB7B4 E010E2D4 24C6000C */ addiu $a2, $a2, 0xc
/* 3EB7B8 E010E2D8 8D040000 */ lw $a0, ($t0)
/* 3EB7BC E010E2DC 3C02F100 */ lui $v0, 0xf100
/* 3EB7C0 E010E2E0 AD230000 */ sw $v1, ($t1)
/* 3EB7C4 E010E2E4 0080182D */ daddu $v1, $a0, $zero
/* 3EB7C8 E010E2E8 AC620000 */ sw $v0, ($v1)
/* 3EB7CC E010E2EC AC650004 */ sw $a1, 4($v1)
/* 3EB7D0 E010E2F0 8CC20000 */ lw $v0, ($a2)
/* 3EB7D4 E010E2F4 24840008 */ addiu $a0, $a0, 8
/* 3EB7D8 E010E2F8 1440FF52 */ bnez $v0, .LE010E044
/* 3EB7DC E010E2FC AD040000 */ sw $a0, ($t0)
.LE010E300:
/* 3EB7E0 E010E300 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 3EB7E4 E010E304 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 3EB7E8 E010E308 8C620000 */ lw $v0, ($v1)
/* 3EB7EC E010E30C 0040202D */ daddu $a0, $v0, $zero
/* 3EB7F0 E010E310 24420008 */ addiu $v0, $v0, 8
/* 3EB7F4 E010E314 AC620000 */ sw $v0, ($v1)
/* 3EB7F8 E010E318 3C02E700 */ lui $v0, 0xe700
/* 3EB7FC E010E31C AC820000 */ sw $v0, ($a0)
/* 3EB800 E010E320 AC800004 */ sw $zero, 4($a0)
.LE010E324:
/* 3EB804 E010E324 03E00008 */ jr $ra
/* 3EB808 E010E328 00000000 */ nop

View File

@ -1,149 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0088DA0
.double 0.98, 0.0
.section .text
glabel confetti_update
/* 38B398 E00885A8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 38B39C E00885AC AFBF0028 */ sw $ra, 0x28($sp)
/* 38B3A0 E00885B0 AFB50024 */ sw $s5, 0x24($sp)
/* 38B3A4 E00885B4 AFB40020 */ sw $s4, 0x20($sp)
/* 38B3A8 E00885B8 AFB3001C */ sw $s3, 0x1c($sp)
/* 38B3AC E00885BC AFB20018 */ sw $s2, 0x18($sp)
/* 38B3B0 E00885C0 AFB10014 */ sw $s1, 0x14($sp)
/* 38B3B4 E00885C4 AFB00010 */ sw $s0, 0x10($sp)
/* 38B3B8 E00885C8 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 38B3BC E00885CC 8C91000C */ lw $s1, 0xc($a0)
/* 38B3C0 E00885D0 8E220020 */ lw $v0, 0x20($s1)
/* 38B3C4 E00885D4 2442FFFF */ addiu $v0, $v0, -1
/* 38B3C8 E00885D8 04410005 */ bgez $v0, .LE00885F0
/* 38B3CC E00885DC AE220020 */ sw $v0, 0x20($s1)
/* 38B3D0 E00885E0 0C080128 */ jal shim_remove_effect
/* 38B3D4 E00885E4 00000000 */ nop
/* 38B3D8 E00885E8 080221E0 */ j .LE0088780
/* 38B3DC E00885EC 00000000 */ nop
.LE00885F0:
/* 38B3E0 E00885F0 3C030004 */ lui $v1, 4
/* 38B3E4 E00885F4 8E220024 */ lw $v0, 0x24($s1)
/* 38B3E8 E00885F8 3463F1A0 */ ori $v1, $v1, 0xf1a0
/* 38B3EC E00885FC 24420001 */ addiu $v0, $v0, 1
/* 38B3F0 E0088600 0062182A */ slt $v1, $v1, $v0
/* 38B3F4 E0088604 10600003 */ beqz $v1, .LE0088614
/* 38B3F8 E0088608 AE220024 */ sw $v0, 0x24($s1)
/* 38B3FC E008860C 2402000A */ addiu $v0, $zero, 0xa
/* 38B400 E0088610 AE220024 */ sw $v0, 0x24($s1)
.LE0088614:
/* 38B404 E0088614 8E230020 */ lw $v1, 0x20($s1)
/* 38B408 E0088618 8E350024 */ lw $s5, 0x24($s1)
/* 38B40C E008861C 8E330000 */ lw $s3, ($s1)
/* 38B410 E0088620 8E34002C */ lw $s4, 0x2c($s1)
/* 38B414 E0088624 2862000A */ slti $v0, $v1, 0xa
/* 38B418 E0088628 10400005 */ beqz $v0, .LE0088640
/* 38B41C E008862C 00031040 */ sll $v0, $v1, 1
/* 38B420 E0088630 00431021 */ addu $v0, $v0, $v1
/* 38B424 E0088634 000210C0 */ sll $v0, $v0, 3
/* 38B428 E0088638 00431021 */ addu $v0, $v0, $v1
/* 38B42C E008863C AE220028 */ sw $v0, 0x28($s1)
.LE0088640:
/* 38B430 E0088640 26310034 */ addiu $s1, $s1, 0x34
/* 38B434 E0088644 1A80004E */ blez $s4, .LE0088780
/* 38B438 E0088648 0000902D */ daddu $s2, $zero, $zero
/* 38B43C E008864C 3C01E009 */ lui $at, %hi(D_E0088DA0)
/* 38B440 E0088650 D4348DA0 */ ldc1 $f20, %lo(D_E0088DA0)($at)
/* 38B444 E0088654 2630000C */ addiu $s0, $s1, 0xc
.LE0088658:
/* 38B448 E0088658 24020003 */ addiu $v0, $zero, 3
/* 38B44C E008865C 16620010 */ bne $s3, $v0, .LE00886A0
/* 38B450 E0088660 00000000 */ nop
/* 38B454 E0088664 8E020024 */ lw $v0, 0x24($s0)
/* 38B458 E0088668 18400003 */ blez $v0, .LE0088678
/* 38B45C E008866C 2442FFFF */ addiu $v0, $v0, -1
/* 38B460 E0088670 1C40003E */ bgtz $v0, .LE008876C
/* 38B464 E0088674 AE020024 */ sw $v0, 0x24($s0)
.LE0088678:
/* 38B468 E0088678 8E020014 */ lw $v0, 0x14($s0)
/* 38B46C E008867C 2442FFFF */ addiu $v0, $v0, -1
/* 38B470 E0088680 0441002E */ bgez $v0, .LE008873C
/* 38B474 E0088684 AE020014 */ sw $v0, 0x14($s0)
/* 38B478 E0088688 0C022000 */ jal func_E0088000
/* 38B47C E008868C 0220202D */ daddu $a0, $s1, $zero
/* 38B480 E0088690 8E020014 */ lw $v0, 0x14($s0)
/* 38B484 E0088694 2442FFFF */ addiu $v0, $v0, -1
/* 38B488 E0088698 080221CF */ j .LE008873C
/* 38B48C E008869C AE020014 */ sw $v0, 0x14($s0)
.LE00886A0:
/* 38B490 E00886A0 8E020024 */ lw $v0, 0x24($s0)
/* 38B494 E00886A4 18400003 */ blez $v0, .LE00886B4
/* 38B498 E00886A8 2442FFFF */ addiu $v0, $v0, -1
/* 38B49C E00886AC 1C40002F */ bgtz $v0, .LE008876C
/* 38B4A0 E00886B0 AE020024 */ sw $v0, 0x24($s0)
.LE00886B4:
/* 38B4A4 E00886B4 2A620004 */ slti $v0, $s3, 4
/* 38B4A8 E00886B8 14400020 */ bnez $v0, .LE008873C
/* 38B4AC E00886BC 2AA20006 */ slti $v0, $s5, 6
/* 38B4B0 E00886C0 C6040004 */ lwc1 $f4, 4($s0)
/* 38B4B4 E00886C4 46002121 */ cvt.d.s $f4, $f4
/* 38B4B8 E00886C8 46342102 */ mul.d $f4, $f4, $f20
/* 38B4BC E00886CC 00000000 */ nop
/* 38B4C0 E00886D0 C6020008 */ lwc1 $f2, 8($s0)
/* 38B4C4 E00886D4 460010A1 */ cvt.d.s $f2, $f2
/* 38B4C8 E00886D8 46341082 */ mul.d $f2, $f2, $f20
/* 38B4CC E00886DC 00000000 */ nop
/* 38B4D0 E00886E0 C600000C */ lwc1 $f0, 0xc($s0)
/* 38B4D4 E00886E4 46000021 */ cvt.d.s $f0, $f0
/* 38B4D8 E00886E8 46340002 */ mul.d $f0, $f0, $f20
/* 38B4DC E00886EC 00000000 */ nop
/* 38B4E0 E00886F0 46202120 */ cvt.s.d $f4, $f4
/* 38B4E4 E00886F4 462010A0 */ cvt.s.d $f2, $f2
/* 38B4E8 E00886F8 46200020 */ cvt.s.d $f0, $f0
/* 38B4EC E00886FC E6040004 */ swc1 $f4, 4($s0)
/* 38B4F0 E0088700 E6020008 */ swc1 $f2, 8($s0)
/* 38B4F4 E0088704 1440000D */ bnez $v0, .LE008873C
/* 38B4F8 E0088708 E600000C */ swc1 $f0, 0xc($s0)
/* 38B4FC E008870C 46001106 */ mov.s $f4, $f2
/* 38B500 E0088710 3C01BFE0 */ lui $at, 0xbfe0
/* 38B504 E0088714 44811800 */ mtc1 $at, $f3
/* 38B508 E0088718 44801000 */ mtc1 $zero, $f2
/* 38B50C E008871C 46002021 */ cvt.d.s $f0, $f4
/* 38B510 E0088720 4620103C */ c.lt.d $f2, $f0
/* 38B514 E0088724 00000000 */ nop
/* 38B518 E0088728 45000004 */ bc1f .LE008873C
/* 38B51C E008872C 00000000 */ nop
/* 38B520 E0088730 C6000010 */ lwc1 $f0, 0x10($s0)
/* 38B524 E0088734 46002000 */ add.s $f0, $f4, $f0
/* 38B528 E0088738 E6000008 */ swc1 $f0, 8($s0)
.LE008873C:
/* 38B52C E008873C C606FFF8 */ lwc1 $f6, -8($s0)
/* 38B530 E0088740 C6000004 */ lwc1 $f0, 4($s0)
/* 38B534 E0088744 C604FFFC */ lwc1 $f4, -4($s0)
/* 38B538 E0088748 46003180 */ add.s $f6, $f6, $f0
/* 38B53C E008874C C6000008 */ lwc1 $f0, 8($s0)
/* 38B540 E0088750 C6020000 */ lwc1 $f2, ($s0)
/* 38B544 E0088754 46002100 */ add.s $f4, $f4, $f0
/* 38B548 E0088758 C600000C */ lwc1 $f0, 0xc($s0)
/* 38B54C E008875C 46001080 */ add.s $f2, $f2, $f0
/* 38B550 E0088760 E606FFF8 */ swc1 $f6, -8($s0)
/* 38B554 E0088764 E604FFFC */ swc1 $f4, -4($s0)
/* 38B558 E0088768 E6020000 */ swc1 $f2, ($s0)
.LE008876C:
/* 38B55C E008876C 26520001 */ addiu $s2, $s2, 1
/* 38B560 E0088770 26100034 */ addiu $s0, $s0, 0x34
/* 38B564 E0088774 0254102A */ slt $v0, $s2, $s4
/* 38B568 E0088778 1440FFB7 */ bnez $v0, .LE0088658
/* 38B56C E008877C 26310034 */ addiu $s1, $s1, 0x34
.LE0088780:
/* 38B570 E0088780 8FBF0028 */ lw $ra, 0x28($sp)
/* 38B574 E0088784 8FB50024 */ lw $s5, 0x24($sp)
/* 38B578 E0088788 8FB40020 */ lw $s4, 0x20($sp)
/* 38B57C E008878C 8FB3001C */ lw $s3, 0x1c($sp)
/* 38B580 E0088790 8FB20018 */ lw $s2, 0x18($sp)
/* 38B584 E0088794 8FB10014 */ lw $s1, 0x14($sp)
/* 38B588 E0088798 8FB00010 */ lw $s0, 0x10($sp)
/* 38B58C E008879C D7B40030 */ ldc1 $f20, 0x30($sp)
/* 38B590 E00887A0 03E00008 */ jr $ra
/* 38B594 E00887A4 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,115 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0088D10
.double 0.03
dlabel D_E0088D18
.double 0.01
dlabel D_E0088D20
.double -1.7
dlabel D_E0088D28
.double 0.05
.section .text
glabel func_E0088000
/* 38ADF0 E0088000 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 38ADF4 E0088004 AFB00010 */ sw $s0, 0x10($sp)
/* 38ADF8 E0088008 0080802D */ daddu $s0, $a0, $zero
/* 38ADFC E008800C AFBF0014 */ sw $ra, 0x14($sp)
/* 38AE00 E0088010 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 38AE04 E0088014 0C080138 */ jal shim_rand_int
/* 38AE08 E0088018 240402BC */ addiu $a0, $zero, 0x2bc
/* 38AE0C E008801C 3C013DCC */ lui $at, 0x3dcc
/* 38AE10 E0088020 3421CCCD */ ori $at, $at, 0xcccd
/* 38AE14 E0088024 4481A000 */ mtc1 $at, $f20
/* 38AE18 E0088028 44820000 */ mtc1 $v0, $f0
/* 38AE1C E008802C 00000000 */ nop
/* 38AE20 E0088030 46800020 */ cvt.s.w $f0, $f0
/* 38AE24 E0088034 46140002 */ mul.s $f0, $f0, $f20
/* 38AE28 E0088038 00000000 */ nop
/* 38AE2C E008803C 3C01420C */ lui $at, 0x420c
/* 38AE30 E0088040 44811000 */ mtc1 $at, $f2
/* 38AE34 E0088044 00000000 */ nop
/* 38AE38 E0088048 46020001 */ sub.s $f0, $f0, $f2
/* 38AE3C E008804C 2404012C */ addiu $a0, $zero, 0x12c
/* 38AE40 E0088050 AE000008 */ sw $zero, 8($s0)
/* 38AE44 E0088054 0C080138 */ jal shim_rand_int
/* 38AE48 E0088058 E6000004 */ swc1 $f0, 4($s0)
/* 38AE4C E008805C 44820000 */ mtc1 $v0, $f0
/* 38AE50 E0088060 00000000 */ nop
/* 38AE54 E0088064 46800020 */ cvt.s.w $f0, $f0
/* 38AE58 E0088068 46140002 */ mul.s $f0, $f0, $f20
/* 38AE5C E008806C 00000000 */ nop
/* 38AE60 E0088070 3C014170 */ lui $at, 0x4170
/* 38AE64 E0088074 44811000 */ mtc1 $at, $f2
/* 38AE68 E0088078 00000000 */ nop
/* 38AE6C E008807C 46020001 */ sub.s $f0, $f0, $f2
/* 38AE70 E0088080 24040064 */ addiu $a0, $zero, 0x64
/* 38AE74 E0088084 0C080138 */ jal shim_rand_int
/* 38AE78 E0088088 E600000C */ swc1 $f0, 0xc($s0)
/* 38AE7C E008808C 44821000 */ mtc1 $v0, $f2
/* 38AE80 E0088090 00000000 */ nop
/* 38AE84 E0088094 468010A0 */ cvt.s.w $f2, $f2
/* 38AE88 E0088098 46141082 */ mul.s $f2, $f2, $f20
/* 38AE8C E008809C 00000000 */ nop
/* 38AE90 E00880A0 C6000004 */ lwc1 $f0, 4($s0)
/* 38AE94 E00880A4 46020000 */ add.s $f0, $f0, $f2
/* 38AE98 E00880A8 3C0140A0 */ lui $at, 0x40a0
/* 38AE9C E00880AC 44811000 */ mtc1 $at, $f2
/* 38AEA0 E00880B0 00000000 */ nop
/* 38AEA4 E00880B4 46020001 */ sub.s $f0, $f0, $f2
/* 38AEA8 E00880B8 3C01E009 */ lui $at, %hi(D_E0088D10)
/* 38AEAC E00880BC D4228D10 */ ldc1 $f2, %lo(D_E0088D10)($at)
/* 38AEB0 E00880C0 46000021 */ cvt.d.s $f0, $f0
/* 38AEB4 E00880C4 46220002 */ mul.d $f0, $f0, $f2
/* 38AEB8 E00880C8 00000000 */ nop
/* 38AEBC E00880CC 24040320 */ addiu $a0, $zero, 0x320
/* 38AEC0 E00880D0 46200020 */ cvt.s.d $f0, $f0
/* 38AEC4 E00880D4 0C080138 */ jal shim_rand_int
/* 38AEC8 E00880D8 E6000010 */ swc1 $f0, 0x10($s0)
/* 38AECC E00880DC 44820000 */ mtc1 $v0, $f0
/* 38AED0 E00880E0 00000000 */ nop
/* 38AED4 E00880E4 46800020 */ cvt.s.w $f0, $f0
/* 38AED8 E00880E8 46140002 */ mul.s $f0, $f0, $f20
/* 38AEDC E00880EC 00000000 */ nop
/* 38AEE0 E00880F0 3C01E009 */ lui $at, %hi(D_E0088D18)
/* 38AEE4 E00880F4 D4228D18 */ ldc1 $f2, %lo(D_E0088D18)($at)
/* 38AEE8 E00880F8 46000021 */ cvt.d.s $f0, $f0
/* 38AEEC E00880FC 46220002 */ mul.d $f0, $f0, $f2
/* 38AEF0 E0088100 00000000 */ nop
/* 38AEF4 E0088104 3C01E009 */ lui $at, %hi(D_E0088D20)
/* 38AEF8 E0088108 D4228D20 */ ldc1 $f2, %lo(D_E0088D20)($at)
/* 38AEFC E008810C 46201081 */ sub.d $f2, $f2, $f0
/* 38AF00 E0088110 240400C8 */ addiu $a0, $zero, 0xc8
/* 38AF04 E0088114 462010A0 */ cvt.s.d $f2, $f2
/* 38AF08 E0088118 0C080138 */ jal shim_rand_int
/* 38AF0C E008811C E6020014 */ swc1 $f2, 0x14($s0)
/* 38AF10 E0088120 44820000 */ mtc1 $v0, $f0
/* 38AF14 E0088124 00000000 */ nop
/* 38AF18 E0088128 46800020 */ cvt.s.w $f0, $f0
/* 38AF1C E008812C 46140002 */ mul.s $f0, $f0, $f20
/* 38AF20 E0088130 00000000 */ nop
/* 38AF24 E0088134 3C014120 */ lui $at, 0x4120
/* 38AF28 E0088138 44811000 */ mtc1 $at, $f2
/* 38AF2C E008813C 00000000 */ nop
/* 38AF30 E0088140 46020001 */ sub.s $f0, $f0, $f2
/* 38AF34 E0088144 3C01E009 */ lui $at, %hi(D_E0088D28)
/* 38AF38 E0088148 D4228D28 */ ldc1 $f2, %lo(D_E0088D28)($at)
/* 38AF3C E008814C 46000021 */ cvt.d.s $f0, $f0
/* 38AF40 E0088150 46220002 */ mul.d $f0, $f0, $f2
/* 38AF44 E0088154 00000000 */ nop
/* 38AF48 E0088158 24020078 */ addiu $v0, $zero, 0x78
/* 38AF4C E008815C AE020020 */ sw $v0, 0x20($s0)
/* 38AF50 E0088160 46200020 */ cvt.s.d $f0, $f0
/* 38AF54 E0088164 E6000018 */ swc1 $f0, 0x18($s0)
/* 38AF58 E0088168 8FBF0014 */ lw $ra, 0x14($sp)
/* 38AF5C E008816C 8FB00010 */ lw $s0, 0x10($sp)
/* 38AF60 E0088170 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 38AF64 E0088174 03E00008 */ jr $ra
/* 38AF68 E0088178 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,217 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0030ED8
.double 0.94
dlabel D_E0030EE0
.double 0.8
dlabel D_E0030EE8
.double 0.6
dlabel D_E0030EF0
.double 0.7, 0.0
.section .text
glabel damage_stars_update
/* 342870 E0030730 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 342874 E0030734 AFB40020 */ sw $s4, 0x20($sp)
/* 342878 E0030738 0080A02D */ daddu $s4, $a0, $zero
/* 34287C E003073C AFBF002C */ sw $ra, 0x2c($sp)
/* 342880 E0030740 AFB60028 */ sw $s6, 0x28($sp)
/* 342884 E0030744 AFB50024 */ sw $s5, 0x24($sp)
/* 342888 E0030748 AFB3001C */ sw $s3, 0x1c($sp)
/* 34288C E003074C AFB20018 */ sw $s2, 0x18($sp)
/* 342890 E0030750 AFB10014 */ sw $s1, 0x14($sp)
/* 342894 E0030754 AFB00010 */ sw $s0, 0x10($sp)
/* 342898 E0030758 F7BA0048 */ sdc1 $f26, 0x48($sp)
/* 34289C E003075C F7B80040 */ sdc1 $f24, 0x40($sp)
/* 3428A0 E0030760 F7B60038 */ sdc1 $f22, 0x38($sp)
/* 3428A4 E0030764 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 3428A8 E0030768 8E91000C */ lw $s1, 0xc($s4)
/* 3428AC E003076C 8E220028 */ lw $v0, 0x28($s1)
/* 3428B0 E0030770 2442FFFF */ addiu $v0, $v0, -1
/* 3428B4 E0030774 AE220028 */ sw $v0, 0x28($s1)
/* 3428B8 E0030778 8E22002C */ lw $v0, 0x2c($s1)
/* 3428BC E003077C 8E240028 */ lw $a0, 0x28($s1)
/* 3428C0 E0030780 24430001 */ addiu $v1, $v0, 1
/* 3428C4 E0030784 04810005 */ bgez $a0, .LE003079C
/* 3428C8 E0030788 AE23002C */ sw $v1, 0x2c($s1)
/* 3428CC E003078C 0C080128 */ jal shim_remove_effect
/* 3428D0 E0030790 0280202D */ daddu $a0, $s4, $zero
/* 3428D4 E0030794 0800C27B */ j .LE00309EC
/* 3428D8 E0030798 00000000 */ nop
.LE003079C:
/* 3428DC E003079C 0000902D */ daddu $s2, $zero, $zero
/* 3428E0 E00307A0 8E820008 */ lw $v0, 8($s4)
/* 3428E4 E00307A4 18400091 */ blez $v0, .LE00309EC
/* 3428E8 E00307A8 0080982D */ daddu $s3, $a0, $zero
/* 3428EC E00307AC 00031040 */ sll $v0, $v1, 1
/* 3428F0 E00307B0 00431021 */ addu $v0, $v0, $v1
/* 3428F4 E00307B4 0002B040 */ sll $s6, $v0, 1
/* 3428F8 E00307B8 2662FFFA */ addiu $v0, $s3, -6
/* 3428FC E00307BC 2C55000E */ sltiu $s5, $v0, 0xe
/* 342900 E00307C0 2630001C */ addiu $s0, $s1, 0x1c
/* 342904 E00307C4 3C01E003 */ lui $at, %hi(D_E0030ED8)
/* 342908 E00307C8 D43A0ED8 */ ldc1 $f26, %lo(D_E0030ED8)($at)
/* 34290C E00307CC 3C01E003 */ lui $at, %hi(D_E0030EE0)
/* 342910 E00307D0 D4340EE0 */ ldc1 $f20, %lo(D_E0030EE0)($at)
/* 342914 E00307D4 3C01E003 */ lui $at, %hi(D_E0030EE8)
/* 342918 E00307D8 D4380EE8 */ ldc1 $f24, %lo(D_E0030EE8)($at)
/* 34291C E00307DC 3C01E003 */ lui $at, %hi(D_E0030EF0)
/* 342920 E00307E0 D4360EF0 */ ldc1 $f22, %lo(D_E0030EF0)($at)
.LE00307E4:
/* 342924 E00307E4 8E230000 */ lw $v1, ($s1)
/* 342928 E00307E8 24020002 */ addiu $v0, $zero, 2
/* 34292C E00307EC 14620029 */ bne $v1, $v0, .LE0030894
/* 342930 E00307F0 2A620006 */ slti $v0, $s3, 6
/* 342934 E00307F4 44966000 */ mtc1 $s6, $f12
/* 342938 E00307F8 00000000 */ nop
/* 34293C E00307FC 0C080144 */ jal shim_cos_deg
/* 342940 E0030800 46806320 */ cvt.s.w $f12, $f12
/* 342944 E0030804 C604FFF4 */ lwc1 $f4, -0xc($s0)
/* 342948 E0030808 46002121 */ cvt.d.s $f4, $f4
/* 34294C E003080C 463A2102 */ mul.d $f4, $f4, $f26
/* 342950 E0030810 00000000 */ nop
/* 342954 E0030814 3C014080 */ lui $at, 0x4080
/* 342958 E0030818 44811000 */ mtc1 $at, $f2
/* 34295C E003081C 00000000 */ nop
/* 342960 E0030820 46020002 */ mul.s $f0, $f0, $f2
/* 342964 E0030824 00000000 */ nop
/* 342968 E0030828 C602FFFC */ lwc1 $f2, -4($s0)
/* 34296C E003082C 460010A1 */ cvt.d.s $f2, $f2
/* 342970 E0030830 463A1082 */ mul.d $f2, $f2, $f26
/* 342974 E0030834 00000000 */ nop
/* 342978 E0030838 E600FFF8 */ swc1 $f0, -8($s0)
/* 34297C E003083C 46202120 */ cvt.s.d $f4, $f4
/* 342980 E0030840 E604FFF4 */ swc1 $f4, -0xc($s0)
/* 342984 E0030844 46000106 */ mov.s $f4, $f0
/* 342988 E0030848 44800000 */ mtc1 $zero, $f0
/* 34298C E003084C 462010A0 */ cvt.s.d $f2, $f2
/* 342990 E0030850 4600203C */ c.lt.s $f4, $f0
/* 342994 E0030854 00000000 */ nop
/* 342998 E0030858 4500004E */ bc1f .LE0030994
/* 34299C E003085C E602FFFC */ swc1 $f2, -4($s0)
/* 3429A0 E0030860 C6020008 */ lwc1 $f2, 8($s0)
/* 3429A4 E0030864 468010A1 */ cvt.d.w $f2, $f2
/* 3429A8 E0030868 46381082 */ mul.d $f2, $f2, $f24
/* 3429AC E003086C 00000000 */ nop
/* 3429B0 E0030870 C6000004 */ lwc1 $f0, 4($s0)
/* 3429B4 E0030874 46000021 */ cvt.d.s $f0, $f0
/* 3429B8 E0030878 46340002 */ mul.d $f0, $f0, $f20
/* 3429BC E003087C 00000000 */ nop
/* 3429C0 E0030880 4620128D */ trunc.w.d $f10, $f2
/* 3429C4 E0030884 E60A0008 */ swc1 $f10, 8($s0)
/* 3429C8 E0030888 46200020 */ cvt.s.d $f0, $f0
/* 3429CC E003088C 0800C265 */ j .LE0030994
/* 3429D0 E0030890 E6000004 */ swc1 $f0, 4($s0)
.LE0030894:
/* 3429D4 E0030894 14400013 */ bnez $v0, .LE00308E4
/* 3429D8 E0030898 00000000 */ nop
/* 3429DC E003089C C604FFF4 */ lwc1 $f4, -0xc($s0)
/* 3429E0 E00308A0 46002121 */ cvt.d.s $f4, $f4
/* 3429E4 E00308A4 46342102 */ mul.d $f4, $f4, $f20
/* 3429E8 E00308A8 00000000 */ nop
/* 3429EC E00308AC C602FFF8 */ lwc1 $f2, -8($s0)
/* 3429F0 E00308B0 460010A1 */ cvt.d.s $f2, $f2
/* 3429F4 E00308B4 46341082 */ mul.d $f2, $f2, $f20
/* 3429F8 E00308B8 00000000 */ nop
/* 3429FC E00308BC C600FFFC */ lwc1 $f0, -4($s0)
/* 342A00 E00308C0 46000021 */ cvt.d.s $f0, $f0
/* 342A04 E00308C4 46340002 */ mul.d $f0, $f0, $f20
/* 342A08 E00308C8 00000000 */ nop
/* 342A0C E00308CC 46202120 */ cvt.s.d $f4, $f4
/* 342A10 E00308D0 462010A0 */ cvt.s.d $f2, $f2
/* 342A14 E00308D4 46200020 */ cvt.s.d $f0, $f0
/* 342A18 E00308D8 E604FFF4 */ swc1 $f4, -0xc($s0)
/* 342A1C E00308DC E602FFF8 */ swc1 $f2, -8($s0)
/* 342A20 E00308E0 E600FFFC */ swc1 $f0, -4($s0)
.LE00308E4:
/* 342A24 E00308E4 12A0000B */ beqz $s5, .LE0030914
/* 342A28 E00308E8 2A620005 */ slti $v0, $s3, 5
/* 342A2C E00308EC 8E220000 */ lw $v0, ($s1)
/* 342A30 E00308F0 54400029 */ bnel $v0, $zero, .LE0030998
/* 342A34 E00308F4 26520001 */ addiu $s2, $s2, 1
/* 342A38 E00308F8 C6000004 */ lwc1 $f0, 4($s0)
/* 342A3C E00308FC 3C013F80 */ lui $at, 0x3f80
/* 342A40 E0030900 44811000 */ mtc1 $at, $f2
/* 342A44 E0030904 00000000 */ nop
/* 342A48 E0030908 46020000 */ add.s $f0, $f0, $f2
/* 342A4C E003090C 0800C265 */ j .LE0030994
/* 342A50 E0030910 E6000004 */ swc1 $f0, 4($s0)
.LE0030914:
/* 342A54 E0030914 50400020 */ beql $v0, $zero, .LE0030998
/* 342A58 E0030918 26520001 */ addiu $s2, $s2, 1
/* 342A5C E003091C C6080008 */ lwc1 $f8, 8($s0)
/* 342A60 E0030920 46804221 */ cvt.d.w $f8, $f8
/* 342A64 E0030924 46384202 */ mul.d $f8, $f8, $f24
/* 342A68 E0030928 00000000 */ nop
/* 342A6C E003092C C6060004 */ lwc1 $f6, 4($s0)
/* 342A70 E0030930 460031A1 */ cvt.d.s $f6, $f6
/* 342A74 E0030934 46343182 */ mul.d $f6, $f6, $f20
/* 342A78 E0030938 00000000 */ nop
/* 342A7C E003093C C604FFF4 */ lwc1 $f4, -0xc($s0)
/* 342A80 E0030940 46002121 */ cvt.d.s $f4, $f4
/* 342A84 E0030944 46362102 */ mul.d $f4, $f4, $f22
/* 342A88 E0030948 00000000 */ nop
/* 342A8C E003094C C602FFF8 */ lwc1 $f2, -8($s0)
/* 342A90 E0030950 460010A1 */ cvt.d.s $f2, $f2
/* 342A94 E0030954 46361082 */ mul.d $f2, $f2, $f22
/* 342A98 E0030958 00000000 */ nop
/* 342A9C E003095C C600FFFC */ lwc1 $f0, -4($s0)
/* 342AA0 E0030960 46000021 */ cvt.d.s $f0, $f0
/* 342AA4 E0030964 46360002 */ mul.d $f0, $f0, $f22
/* 342AA8 E0030968 00000000 */ nop
/* 342AAC E003096C 4620428D */ trunc.w.d $f10, $f8
/* 342AB0 E0030970 E60A0008 */ swc1 $f10, 8($s0)
/* 342AB4 E0030974 462031A0 */ cvt.s.d $f6, $f6
/* 342AB8 E0030978 46202120 */ cvt.s.d $f4, $f4
/* 342ABC E003097C 462010A0 */ cvt.s.d $f2, $f2
/* 342AC0 E0030980 46200020 */ cvt.s.d $f0, $f0
/* 342AC4 E0030984 E6060004 */ swc1 $f6, 4($s0)
/* 342AC8 E0030988 E604FFF4 */ swc1 $f4, -0xc($s0)
/* 342ACC E003098C E602FFF8 */ swc1 $f2, -8($s0)
/* 342AD0 E0030990 E600FFFC */ swc1 $f0, -4($s0)
.LE0030994:
/* 342AD4 E0030994 26520001 */ addiu $s2, $s2, 1
.LE0030998:
/* 342AD8 E0030998 C608FFE8 */ lwc1 $f8, -0x18($s0)
/* 342ADC E003099C C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 342AE0 E00309A0 C606FFEC */ lwc1 $f6, -0x14($s0)
/* 342AE4 E00309A4 46004200 */ add.s $f8, $f8, $f0
/* 342AE8 E00309A8 C600FFF8 */ lwc1 $f0, -8($s0)
/* 342AEC E00309AC C604FFF0 */ lwc1 $f4, -0x10($s0)
/* 342AF0 E00309B0 46003180 */ add.s $f6, $f6, $f0
/* 342AF4 E00309B4 C600FFFC */ lwc1 $f0, -4($s0)
/* 342AF8 E00309B8 C6020004 */ lwc1 $f2, 4($s0)
/* 342AFC E00309BC 46002100 */ add.s $f4, $f4, $f0
/* 342B00 E00309C0 C6000000 */ lwc1 $f0, ($s0)
/* 342B04 E00309C4 26310030 */ addiu $s1, $s1, 0x30
/* 342B08 E00309C8 E608FFE8 */ swc1 $f8, -0x18($s0)
/* 342B0C E00309CC 46020000 */ add.s $f0, $f0, $f2
/* 342B10 E00309D0 E606FFEC */ swc1 $f6, -0x14($s0)
/* 342B14 E00309D4 E604FFF0 */ swc1 $f4, -0x10($s0)
/* 342B18 E00309D8 E6000000 */ swc1 $f0, ($s0)
/* 342B1C E00309DC 8E820008 */ lw $v0, 8($s4)
/* 342B20 E00309E0 0242102A */ slt $v0, $s2, $v0
/* 342B24 E00309E4 1440FF7F */ bnez $v0, .LE00307E4
/* 342B28 E00309E8 26100030 */ addiu $s0, $s0, 0x30
.LE00309EC:
/* 342B2C E00309EC 8FBF002C */ lw $ra, 0x2c($sp)
/* 342B30 E00309F0 8FB60028 */ lw $s6, 0x28($sp)
/* 342B34 E00309F4 8FB50024 */ lw $s5, 0x24($sp)
/* 342B38 E00309F8 8FB40020 */ lw $s4, 0x20($sp)
/* 342B3C E00309FC 8FB3001C */ lw $s3, 0x1c($sp)
/* 342B40 E0030A00 8FB20018 */ lw $s2, 0x18($sp)
/* 342B44 E0030A04 8FB10014 */ lw $s1, 0x14($sp)
/* 342B48 E0030A08 8FB00010 */ lw $s0, 0x10($sp)
/* 342B4C E0030A0C D7BA0048 */ ldc1 $f26, 0x48($sp)
/* 342B50 E0030A10 D7B80040 */ ldc1 $f24, 0x40($sp)
/* 342B54 E0030A14 D7B60038 */ ldc1 $f22, 0x38($sp)
/* 342B58 E0030A18 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 342B5C E0030A1C 03E00008 */ jr $ra
/* 342B60 E0030A20 27BD0050 */ addiu $sp, $sp, 0x50