Matched effects main funcs (#806)

* hieroglyphs_main: Initial c

* hieroglyphs_update: Compiled c

* hieroglyphs_main: Matched

* huff_puff_breath_main: Matched

* smoke_burst_main: Matched

* sweat_main: Matched

* PR_806: Updated init signatures

* huff_puff_breath_main: removed unused temp

* smoke_burst_main: Updated fx struct with rgba
This commit is contained in:
Spencer Vaughn 2022-10-07 02:31:45 -05:00 committed by GitHub
parent 59217b8cf8
commit 5afce0b883
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 231 additions and 439 deletions

View File

@ -619,17 +619,21 @@ typedef struct MusicNoteFXData {
} MusicNoteFXData; // size = 0x34
typedef struct SmokeBurstFXData {
/* 0x00 */ char unk_00[0x14];
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x00 */ s16 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ s32 timeLeft;
/* 0x18 */ s32 lifeTime;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ f32 unk_20;
} SmokeBurstFXData; // size = 0x24
/* 0x24 */ Color_RGBA8 rgba;
} SmokeBurstFXData; // size = 0x28
typedef struct SweatFXData {
/* 0x00 */ char unk_00[0x4];
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ char unk_10[0x08];
/* 0x10 */ f32 unk_10;
/* 0x14 */ char unk_14[0x04];
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
@ -1537,7 +1541,8 @@ typedef struct ShinyFlareFXData {
} ShinyFlareFXData; // size = unknown
typedef struct HuffPuffBreathFXData {
/* 0x00 */ char unk_00[0x10];
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ s32 timeLeft;
/* 0x14 */ s32 lifeTime;
/* 0x18 */ s32 unk_18;
@ -1547,12 +1552,14 @@ typedef struct HuffPuffBreathFXData {
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ char unk_34[0x04];
/* 0x34 */ s32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
} HuffPuffBreathFXData; // size = 0x48
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
} HuffPuffBreathFXData; // size = 0x50
typedef struct ColdBreathFXData {
/* 0x00 */ s32 unk_00;
@ -1606,12 +1613,20 @@ typedef struct EmbersFXData {
} EmbersFXData; // size = 0x70
typedef struct HieroglyphsFXData {
/* 0x00 */ char unk_00[0x10];
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ s32 timeLeft;
/* 0x14 */ s32 lifeTime;
/* 0x18 */ char unk_18[0x0C];
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
} HieroglyphsFXData; // size = 0x28
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ f32 unk_38;
} HieroglyphsFXData; // size = 0x3C
typedef struct MiscParticlesFXData {
char unk_00[0x4];

View File

@ -71,8 +71,8 @@ FX_MAIN(rising_bubble_main);
FX_MAIN(ring_blast_main);
FX_MAIN(shockwave_main);
void music_note_main(s32, f32, f32, f32);
FX_MAIN(smoke_burst_main);
FX_MAIN(sweat_main);
void smoke_burst_main(s32, f32, f32, f32, f32, s32);
void sweat_main(s32, f32, f32, f32, f32, f32, s32);
void sleep_bubble_main(s32, f32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(windy_leaves_main);
void falling_leaves_main(s32, f32, f32, f32);
@ -140,10 +140,10 @@ EffectInstance* floating_cloud_puff_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(energy_in_out_main);
EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(shiny_flare_main);
FX_MAIN(huff_puff_breath_main);
EffectInstance* huff_puff_breath_main(s32, f32, f32, f32, f32, f32, f32, s32);
EffectInstance* cold_breath_main(s32, f32, f32, f32, f32, s32);
EffectInstance* embers_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, f32, f32);
FX_MAIN(hieroglyphs_main);
EffectInstance* hieroglyphs_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(misc_particles_main);
FX_MAIN(static_status_main);
FX_MAIN(moving_cloud_main);

View File

@ -1,11 +1,54 @@
#include "common.h"
#include "effects_internal.h"
void hieroglyphs_init(EffectInstance* effect);
void hieroglyphs_update(EffectInstance* effect);
void hieroglyphs_render(EffectInstance* effect);
void hieroglyphs_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/hieroglyphs", hieroglyphs_main);
EffectInstance* hieroglyphs_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 timeLeft) {
EffectBlueprint effectBp;
EffectInstance* effect;
HieroglyphsFXData* data;
s32 numParts = 1;
void hieroglyphs_init(void) {
effectBp.init = hieroglyphs_init;
effectBp.update = hieroglyphs_update;
effectBp.renderWorld = hieroglyphs_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_HIEROGLYPHS;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.hieroglyphs = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->unk_00 = arg0;
data->lifeTime = 0;
if (timeLeft <= 0) {
data->timeLeft = 1000;
} else {
data->timeLeft = timeLeft;
}
data->unk_24 = 0;
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->unk_38 = arg4;
data->unk_18 = 70;
data->unk_1C = 180;
data->unk_20 = 120;
data->unk_28 = 20;
data->unk_2C = 230;
data->unk_30 = 50;
data->unk_34 = 255;
return effect;
}
void hieroglyphs_init(EffectInstance* effect) {
}
void hieroglyphs_update(EffectInstance* effect) {

View File

@ -1,11 +1,66 @@
#include "common.h"
#include "effects_internal.h"
void huff_puff_breath_init(EffectInstance* effect);
void huff_puff_breath_update(EffectInstance* effect);
void huff_puff_breath_render(EffectInstance* effect);
void huff_puff_breath_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/huff_puff_breath", huff_puff_breath_main);
EffectInstance* huff_puff_breath_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, f32 arg5, f32 arg6, s32 timeLeft) {
EffectBlueprint effectBp;
EffectInstance* effect;
HuffPuffBreathFXData* data;
s32 numParts = 1;
void huff_puff_breath_init(void) {
effectBp.init = huff_puff_breath_init;
effectBp.update = huff_puff_breath_update;
effectBp.renderWorld = huff_puff_breath_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_HUFF_PUFF_BREATH;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.huffPuffBreath = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->unk_00 = arg0;
data->lifeTime = 0;
if (timeLeft <= 0) {
data->timeLeft = 1000;
} else {
data->timeLeft = timeLeft;
}
data->unk_24 = 0;
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->unk_4C = arg6;
data->unk_18 = 255;
data->unk_2C = 230;
data->unk_1C = 255;
data->unk_20 = 255;
data->unk_28 = 255;
data->unk_30 = 50;
data->unk_34 = 255;
data->unk_48 = arg4;
data->unk_44 = 0;
data->unk_3C = arg5;
data->unk_38 = shim_rand_int(32);
data->unk_40 = shim_rand_int(16);
data->unk_20 = 150;
data->unk_28 = 215;
data->unk_2C = 210;
data->unk_18 = 255;
data->unk_1C = 255;
data->unk_30 = 10;
return effect;
}
void huff_puff_breath_init(EffectInstance* effect) {
}
void huff_puff_breath_update(EffectInstance* effect) {

View File

@ -1,21 +1,74 @@
#include "common.h"
#include "effects_internal.h"
void smoke_burst_init(EffectInstance* effect);
void smoke_burst_update(EffectInstance* effect);
void smoke_burst_render(EffectInstance* effect);
void smoke_burst_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/smoke_burst", smoke_burst_main);
void smoke_burst_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 timeLeft) {
EffectBlueprint effectBp;
EffectInstance* effect;
SmokeBurstFXData* data;
s32 numParts = 1;
void smoke_burst_init(void) {
effectBp.init = smoke_burst_init;
effectBp.update = smoke_burst_update;
effectBp.renderWorld = smoke_burst_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_SMOKE_BURST;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.smokeBurst = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
shim_mem_clear(data, numParts * sizeof(*data));
data->timeLeft = timeLeft;
data->lifeTime = 0;
data->unk_1C = timeLeft;
data->unk_20 = 0;
data->unk_00 = arg0;
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->unk_10 = arg4;
switch (arg0) {
case 0:
data->rgba.b = 0;
data->rgba.g = 0;
data->rgba.r = 0;
data->rgba.a = 130;
break;
case 1:
data->rgba.r = 255;
data->rgba.b = 0;
data->rgba.g = 0;
data->rgba.a = 130;
break;
default:
data->rgba.r = 225;
data->rgba.g = 215;
data->rgba.b = 255;
data->rgba.a = 180;
break;
}
}
void smoke_burst_init(EffectInstance* effect) {
}
void smoke_burst_update(EffectInstance *effect) {
SmokeBurstFXData* data = effect->data.smokeBurst;
data->unk_20 = (data->unk_18 * 8.0f) / data->unk_1C;
data->unk_18++;
data->unk_14--;
if (data->unk_14 < 0) {
data->unk_20 = (data->lifeTime * 8.0f) / data->unk_1C;
data->lifeTime++;
data->timeLeft--;
if (data->timeLeft < 0) {
shim_remove_effect(effect);
}
}

View File

@ -1,11 +1,47 @@
#include "common.h"
#include "effects_internal.h"
void sweat_init(EffectInstance* effect);
void sweat_update(EffectInstance* effect);
void sweat_render(EffectInstance* effect);
void sweat_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/sweat", sweat_main);
void sweat_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s32 timeLeft) {
EffectBlueprint effectBp;
EffectInstance* effect;
SweatFXData* data;
Matrix4f matrix;
f32 temp_f2;
s32 numParts = 1;
void sweat_init(void) {
effectBp.init = (void*)sweat_init;
effectBp.update = sweat_update;
effectBp.renderWorld = sweat_render;
effectBp.unk_00 = 0;
effectBp.unk_14 = 0;
effectBp.effectID = EFFECT_SWEAT;
effect = shim_create_effect_instance(&effectBp);
effect->numParts = numParts;
data = effect->data.sweat = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(data != NULL);
data->unk_00 = arg0;
shim_guRotateF(matrix, -arg5, shim_sin_deg(gCameras[gCurrentCameraID].currentYaw), 0.0f, -shim_cos_deg(gCameras[gCurrentCameraID].currentYaw));
temp_f2 = arg4 + 16.0f;
data->pos.x = arg1 + (matrix[1][0] * temp_f2);
data->pos.y = arg2 + (matrix[1][1] * temp_f2);
data->pos.z = arg3 + (matrix[1][2] * temp_f2);
data->unk_18 = matrix[1][0];
data->unk_1C = matrix[1][1];
data->unk_20 = matrix[1][2];
data->unk_10 = arg5;
data->timeLeft = timeLeft;
}
void sweat_init(EffectInstance* effect) {
}
void sweat_update(EffectInstance *effect) {

View File

@ -1,83 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel hieroglyphs_main
/* 3DC310 E00E2000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3DC314 E00E2004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3DC318 E00E2008 4485A000 */ mtc1 $a1, $f20
/* 3DC31C E00E200C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3DC320 E00E2010 4486B000 */ mtc1 $a2, $f22
/* 3DC324 E00E2014 AFB20030 */ sw $s2, 0x30($sp)
/* 3DC328 E00E2018 0080902D */ daddu $s2, $a0, $zero
/* 3DC32C E00E201C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3DC330 E00E2020 4487C000 */ mtc1 $a3, $f24
/* 3DC334 E00E2024 27A40010 */ addiu $a0, $sp, 0x10
/* 3DC338 E00E2028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3DC33C E00E202C 8FB10064 */ lw $s1, 0x64($sp)
/* 3DC340 E00E2030 3C02E00E */ lui $v0, %hi(hieroglyphs_init)
/* 3DC344 E00E2034 2442212C */ addiu $v0, $v0, %lo(hieroglyphs_init)
/* 3DC348 E00E2038 AFA20018 */ sw $v0, 0x18($sp)
/* 3DC34C E00E203C 3C02E00E */ lui $v0, %hi(hieroglyphs_update)
/* 3DC350 E00E2040 24422134 */ addiu $v0, $v0, %lo(hieroglyphs_update)
/* 3DC354 E00E2044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3DC358 E00E2048 3C02E00E */ lui $v0, %hi(hieroglyphs_render)
/* 3DC35C E00E204C 244221C8 */ addiu $v0, $v0, %lo(hieroglyphs_render)
/* 3DC360 E00E2050 AFA20020 */ sw $v0, 0x20($sp)
/* 3DC364 E00E2054 24020071 */ addiu $v0, $zero, 0x71
/* 3DC368 E00E2058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3DC36C E00E205C AFB00028 */ sw $s0, 0x28($sp)
/* 3DC370 E00E2060 AFA00010 */ sw $zero, 0x10($sp)
/* 3DC374 E00E2064 AFA00024 */ sw $zero, 0x24($sp)
/* 3DC378 E00E2068 0C080124 */ jal shim_create_effect_instance
/* 3DC37C E00E206C AFA20014 */ sw $v0, 0x14($sp)
/* 3DC380 E00E2070 2404003C */ addiu $a0, $zero, 0x3c
/* 3DC384 E00E2074 24030001 */ addiu $v1, $zero, 1
/* 3DC388 E00E2078 0040802D */ daddu $s0, $v0, $zero
/* 3DC38C E00E207C 0C08012C */ jal shim_general_heap_malloc
/* 3DC390 E00E2080 AE030008 */ sw $v1, 8($s0)
/* 3DC394 E00E2084 0040202D */ daddu $a0, $v0, $zero
/* 3DC398 E00E2088 14800003 */ bnez $a0, .LE00E2098
/* 3DC39C E00E208C AE02000C */ sw $v0, 0xc($s0)
.LE00E2090:
/* 3DC3A0 E00E2090 08038824 */ j .LE00E2090
/* 3DC3A4 E00E2094 00000000 */ nop
.LE00E2098:
/* 3DC3A8 E00E2098 AC920000 */ sw $s2, ($a0)
/* 3DC3AC E00E209C 1E200004 */ bgtz $s1, .LE00E20B0
/* 3DC3B0 E00E20A0 AC800014 */ sw $zero, 0x14($a0)
/* 3DC3B4 E00E20A4 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3DC3B8 E00E20A8 0803882D */ j .LE00E20B4
/* 3DC3BC E00E20AC AC820010 */ sw $v0, 0x10($a0)
.LE00E20B0:
/* 3DC3C0 E00E20B0 AC910010 */ sw $s1, 0x10($a0)
.LE00E20B4:
/* 3DC3C4 E00E20B4 0200102D */ daddu $v0, $s0, $zero
/* 3DC3C8 E00E20B8 AC800024 */ sw $zero, 0x24($a0)
/* 3DC3CC E00E20BC E4940004 */ swc1 $f20, 4($a0)
/* 3DC3D0 E00E20C0 E4960008 */ swc1 $f22, 8($a0)
/* 3DC3D4 E00E20C4 E498000C */ swc1 $f24, 0xc($a0)
/* 3DC3D8 E00E20C8 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3DC3DC E00E20CC 24030046 */ addiu $v1, $zero, 0x46
/* 3DC3E0 E00E20D0 AC830018 */ sw $v1, 0x18($a0)
/* 3DC3E4 E00E20D4 240300B4 */ addiu $v1, $zero, 0xb4
/* 3DC3E8 E00E20D8 AC83001C */ sw $v1, 0x1c($a0)
/* 3DC3EC E00E20DC 24030078 */ addiu $v1, $zero, 0x78
/* 3DC3F0 E00E20E0 AC830020 */ sw $v1, 0x20($a0)
/* 3DC3F4 E00E20E4 24030014 */ addiu $v1, $zero, 0x14
/* 3DC3F8 E00E20E8 AC830028 */ sw $v1, 0x28($a0)
/* 3DC3FC E00E20EC 240300E6 */ addiu $v1, $zero, 0xe6
/* 3DC400 E00E20F0 AC83002C */ sw $v1, 0x2c($a0)
/* 3DC404 E00E20F4 24030032 */ addiu $v1, $zero, 0x32
/* 3DC408 E00E20F8 AC830030 */ sw $v1, 0x30($a0)
/* 3DC40C E00E20FC 240300FF */ addiu $v1, $zero, 0xff
/* 3DC410 E00E2100 AC830034 */ sw $v1, 0x34($a0)
/* 3DC414 E00E2104 E4800038 */ swc1 $f0, 0x38($a0)
/* 3DC418 E00E2108 8FBF0034 */ lw $ra, 0x34($sp)
/* 3DC41C E00E210C 8FB20030 */ lw $s2, 0x30($sp)
/* 3DC420 E00E2110 8FB1002C */ lw $s1, 0x2c($sp)
/* 3DC424 E00E2114 8FB00028 */ lw $s0, 0x28($sp)
/* 3DC428 E00E2118 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3DC42C E00E211C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3DC430 E00E2120 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3DC434 E00E2124 03E00008 */ jr $ra
/* 3DC438 E00E2128 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,108 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel huff_puff_breath_main
/* 3D7A70 E00DC000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3D7A74 E00DC004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3D7A78 E00DC008 4485A000 */ mtc1 $a1, $f20
/* 3D7A7C E00DC00C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3D7A80 E00DC010 4486B000 */ mtc1 $a2, $f22
/* 3D7A84 E00DC014 AFB30034 */ sw $s3, 0x34($sp)
/* 3D7A88 E00DC018 0080982D */ daddu $s3, $a0, $zero
/* 3D7A8C E00DC01C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3D7A90 E00DC020 4487C000 */ mtc1 $a3, $f24
/* 3D7A94 E00DC024 27A40010 */ addiu $a0, $sp, 0x10
/* 3D7A98 E00DC028 AFB00028 */ sw $s0, 0x28($sp)
/* 3D7A9C E00DC02C 8FB00074 */ lw $s0, 0x74($sp)
/* 3D7AA0 E00DC030 3C02E00E */ lui $v0, %hi(huff_puff_breath_init)
/* 3D7AA4 E00DC034 2442C190 */ addiu $v0, $v0, %lo(huff_puff_breath_init)
/* 3D7AA8 E00DC038 AFA20018 */ sw $v0, 0x18($sp)
/* 3D7AAC E00DC03C 3C02E00E */ lui $v0, %hi(huff_puff_breath_update)
/* 3D7AB0 E00DC040 2442C198 */ addiu $v0, $v0, %lo(huff_puff_breath_update)
/* 3D7AB4 E00DC044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3D7AB8 E00DC048 3C02E00E */ lui $v0, %hi(huff_puff_breath_render)
/* 3D7ABC E00DC04C 2442C2C0 */ addiu $v0, $v0, %lo(huff_puff_breath_render)
/* 3D7AC0 E00DC050 AFA20020 */ sw $v0, 0x20($sp)
/* 3D7AC4 E00DC054 2402006E */ addiu $v0, $zero, 0x6e
/* 3D7AC8 E00DC058 AFBF0038 */ sw $ra, 0x38($sp)
/* 3D7ACC E00DC05C AFB20030 */ sw $s2, 0x30($sp)
/* 3D7AD0 E00DC060 AFB1002C */ sw $s1, 0x2c($sp)
/* 3D7AD4 E00DC064 AFA00010 */ sw $zero, 0x10($sp)
/* 3D7AD8 E00DC068 AFA00024 */ sw $zero, 0x24($sp)
/* 3D7ADC E00DC06C 0C080124 */ jal shim_create_effect_instance
/* 3D7AE0 E00DC070 AFA20014 */ sw $v0, 0x14($sp)
/* 3D7AE4 E00DC074 24040050 */ addiu $a0, $zero, 0x50
/* 3D7AE8 E00DC078 24030001 */ addiu $v1, $zero, 1
/* 3D7AEC E00DC07C 0040902D */ daddu $s2, $v0, $zero
/* 3D7AF0 E00DC080 0C08012C */ jal shim_general_heap_malloc
/* 3D7AF4 E00DC084 AE430008 */ sw $v1, 8($s2)
/* 3D7AF8 E00DC088 0040882D */ daddu $s1, $v0, $zero
/* 3D7AFC E00DC08C 16200003 */ bnez $s1, .LE00DC09C
/* 3D7B00 E00DC090 AE42000C */ sw $v0, 0xc($s2)
.LE00DC094:
/* 3D7B04 E00DC094 08037025 */ j .LE00DC094
/* 3D7B08 E00DC098 00000000 */ nop
.LE00DC09C:
/* 3D7B0C E00DC09C AE330000 */ sw $s3, ($s1)
/* 3D7B10 E00DC0A0 1E000004 */ bgtz $s0, .LE00DC0B4
/* 3D7B14 E00DC0A4 AE200014 */ sw $zero, 0x14($s1)
/* 3D7B18 E00DC0A8 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3D7B1C E00DC0AC 0803702E */ j .LE00DC0B8
/* 3D7B20 E00DC0B0 AE220010 */ sw $v0, 0x10($s1)
.LE00DC0B4:
/* 3D7B24 E00DC0B4 AE300010 */ sw $s0, 0x10($s1)
.LE00DC0B8:
/* 3D7B28 E00DC0B8 241000FF */ addiu $s0, $zero, 0xff
/* 3D7B2C E00DC0BC AE200024 */ sw $zero, 0x24($s1)
/* 3D7B30 E00DC0C0 E6340004 */ swc1 $f20, 4($s1)
/* 3D7B34 E00DC0C4 E6360008 */ swc1 $f22, 8($s1)
/* 3D7B38 E00DC0C8 E638000C */ swc1 $f24, 0xc($s1)
/* 3D7B3C E00DC0CC C7A00070 */ lwc1 $f0, 0x70($sp)
/* 3D7B40 E00DC0D0 240200E6 */ addiu $v0, $zero, 0xe6
/* 3D7B44 E00DC0D4 AE22002C */ sw $v0, 0x2c($s1)
/* 3D7B48 E00DC0D8 24020032 */ addiu $v0, $zero, 0x32
/* 3D7B4C E00DC0DC AE300018 */ sw $s0, 0x18($s1)
/* 3D7B50 E00DC0E0 AE30001C */ sw $s0, 0x1c($s1)
/* 3D7B54 E00DC0E4 AE300020 */ sw $s0, 0x20($s1)
/* 3D7B58 E00DC0E8 AE300028 */ sw $s0, 0x28($s1)
/* 3D7B5C E00DC0EC AE220030 */ sw $v0, 0x30($s1)
/* 3D7B60 E00DC0F0 AE300034 */ sw $s0, 0x34($s1)
/* 3D7B64 E00DC0F4 E620004C */ swc1 $f0, 0x4c($s1)
/* 3D7B68 E00DC0F8 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 3D7B6C E00DC0FC AE200044 */ sw $zero, 0x44($s1)
/* 3D7B70 E00DC100 E6200048 */ swc1 $f0, 0x48($s1)
/* 3D7B74 E00DC104 C7A0006C */ lwc1 $f0, 0x6c($sp)
/* 3D7B78 E00DC108 24040020 */ addiu $a0, $zero, 0x20
/* 3D7B7C E00DC10C 0C080138 */ jal shim_rand_int
/* 3D7B80 E00DC110 E620003C */ swc1 $f0, 0x3c($s1)
/* 3D7B84 E00DC114 24040010 */ addiu $a0, $zero, 0x10
/* 3D7B88 E00DC118 44820000 */ mtc1 $v0, $f0
/* 3D7B8C E00DC11C 00000000 */ nop
/* 3D7B90 E00DC120 46800020 */ cvt.s.w $f0, $f0
/* 3D7B94 E00DC124 0C080138 */ jal shim_rand_int
/* 3D7B98 E00DC128 E6200038 */ swc1 $f0, 0x38($s1)
/* 3D7B9C E00DC12C 44820000 */ mtc1 $v0, $f0
/* 3D7BA0 E00DC130 00000000 */ nop
/* 3D7BA4 E00DC134 46800020 */ cvt.s.w $f0, $f0
/* 3D7BA8 E00DC138 0240102D */ daddu $v0, $s2, $zero
/* 3D7BAC E00DC13C 24030096 */ addiu $v1, $zero, 0x96
/* 3D7BB0 E00DC140 AE230020 */ sw $v1, 0x20($s1)
/* 3D7BB4 E00DC144 240300D7 */ addiu $v1, $zero, 0xd7
/* 3D7BB8 E00DC148 AE230028 */ sw $v1, 0x28($s1)
/* 3D7BBC E00DC14C 240300D2 */ addiu $v1, $zero, 0xd2
/* 3D7BC0 E00DC150 AE23002C */ sw $v1, 0x2c($s1)
/* 3D7BC4 E00DC154 2403000A */ addiu $v1, $zero, 0xa
/* 3D7BC8 E00DC158 E6200040 */ swc1 $f0, 0x40($s1)
/* 3D7BCC E00DC15C AE300018 */ sw $s0, 0x18($s1)
/* 3D7BD0 E00DC160 AE30001C */ sw $s0, 0x1c($s1)
/* 3D7BD4 E00DC164 AE230030 */ sw $v1, 0x30($s1)
/* 3D7BD8 E00DC168 8FBF0038 */ lw $ra, 0x38($sp)
/* 3D7BDC E00DC16C 8FB30034 */ lw $s3, 0x34($sp)
/* 3D7BE0 E00DC170 8FB20030 */ lw $s2, 0x30($sp)
/* 3D7BE4 E00DC174 8FB1002C */ lw $s1, 0x2c($sp)
/* 3D7BE8 E00DC178 8FB00028 */ lw $s0, 0x28($sp)
/* 3D7BEC E00DC17C D7B80050 */ ldc1 $f24, 0x50($sp)
/* 3D7BF0 E00DC180 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 3D7BF4 E00DC184 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 3D7BF8 E00DC188 03E00008 */ jr $ra
/* 3D7BFC E00DC18C 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,97 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel smoke_burst_main
/* 35B9D0 E004E000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 35B9D4 E004E004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 35B9D8 E004E008 4485A000 */ mtc1 $a1, $f20
/* 35B9DC E004E00C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 35B9E0 E004E010 4486B000 */ mtc1 $a2, $f22
/* 35B9E4 E004E014 AFB20030 */ sw $s2, 0x30($sp)
/* 35B9E8 E004E018 0080902D */ daddu $s2, $a0, $zero
/* 35B9EC E004E01C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 35B9F0 E004E020 4487C000 */ mtc1 $a3, $f24
/* 35B9F4 E004E024 27A40010 */ addiu $a0, $sp, 0x10
/* 35B9F8 E004E028 AFB30034 */ sw $s3, 0x34($sp)
/* 35B9FC E004E02C 8FB3006C */ lw $s3, 0x6c($sp)
/* 35BA00 E004E030 3C02E005 */ lui $v0, %hi(smoke_burst_init)
/* 35BA04 E004E034 2442E15C */ addiu $v0, $v0, %lo(smoke_burst_init)
/* 35BA08 E004E038 AFA20018 */ sw $v0, 0x18($sp)
/* 35BA0C E004E03C 3C02E005 */ lui $v0, %hi(smoke_burst_update)
/* 35BA10 E004E040 2442E164 */ addiu $v0, $v0, %lo(smoke_burst_update)
/* 35BA14 E004E044 AFA2001C */ sw $v0, 0x1c($sp)
/* 35BA18 E004E048 3C02E005 */ lui $v0, %hi(smoke_burst_render)
/* 35BA1C E004E04C 2442E1D0 */ addiu $v0, $v0, %lo(smoke_burst_render)
/* 35BA20 E004E050 AFA20020 */ sw $v0, 0x20($sp)
/* 35BA24 E004E054 24020027 */ addiu $v0, $zero, 0x27
/* 35BA28 E004E058 AFBF0038 */ sw $ra, 0x38($sp)
/* 35BA2C E004E05C AFB1002C */ sw $s1, 0x2c($sp)
/* 35BA30 E004E060 AFB00028 */ sw $s0, 0x28($sp)
/* 35BA34 E004E064 AFA00010 */ sw $zero, 0x10($sp)
/* 35BA38 E004E068 AFA00024 */ sw $zero, 0x24($sp)
/* 35BA3C E004E06C 0C080124 */ jal shim_create_effect_instance
/* 35BA40 E004E070 AFA20014 */ sw $v0, 0x14($sp)
/* 35BA44 E004E074 24040028 */ addiu $a0, $zero, 0x28
/* 35BA48 E004E078 24110001 */ addiu $s1, $zero, 1
/* 35BA4C E004E07C 0040802D */ daddu $s0, $v0, $zero
/* 35BA50 E004E080 0C08012C */ jal shim_general_heap_malloc
/* 35BA54 E004E084 AE110008 */ sw $s1, 8($s0)
/* 35BA58 E004E088 AE02000C */ sw $v0, 0xc($s0)
/* 35BA5C E004E08C 0040802D */ daddu $s0, $v0, $zero
/* 35BA60 E004E090 16000003 */ bnez $s0, .LE004E0A0
/* 35BA64 E004E094 0200202D */ daddu $a0, $s0, $zero
.LE004E098:
/* 35BA68 E004E098 08013826 */ j .LE004E098
/* 35BA6C E004E09C 00000000 */ nop
.LE004E0A0:
/* 35BA70 E004E0A0 00112880 */ sll $a1, $s1, 2
/* 35BA74 E004E0A4 00B12821 */ addu $a1, $a1, $s1
/* 35BA78 E004E0A8 0C080130 */ jal shim_mem_clear
/* 35BA7C E004E0AC 000528C0 */ sll $a1, $a1, 3
/* 35BA80 E004E0B0 AE130014 */ sw $s3, 0x14($s0)
/* 35BA84 E004E0B4 AE000018 */ sw $zero, 0x18($s0)
/* 35BA88 E004E0B8 AE13001C */ sw $s3, 0x1c($s0)
/* 35BA8C E004E0BC AE000020 */ sw $zero, 0x20($s0)
/* 35BA90 E004E0C0 A6120000 */ sh $s2, ($s0)
/* 35BA94 E004E0C4 E6140004 */ swc1 $f20, 4($s0)
/* 35BA98 E004E0C8 E6160008 */ swc1 $f22, 8($s0)
/* 35BA9C E004E0CC E618000C */ swc1 $f24, 0xc($s0)
/* 35BAA0 E004E0D0 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 35BAA4 E004E0D4 12400006 */ beqz $s2, .LE004E0F0
/* 35BAA8 E004E0D8 E6000010 */ swc1 $f0, 0x10($s0)
/* 35BAAC E004E0DC 24020001 */ addiu $v0, $zero, 1
/* 35BAB0 E004E0E0 12420008 */ beq $s2, $v0, .LE004E104
/* 35BAB4 E004E0E4 240200E1 */ addiu $v0, $zero, 0xe1
/* 35BAB8 E004E0E8 08013847 */ j .LE004E11C
/* 35BABC E004E0EC A2020024 */ sb $v0, 0x24($s0)
.LE004E0F0:
/* 35BAC0 E004E0F0 24020082 */ addiu $v0, $zero, 0x82
/* 35BAC4 E004E0F4 A2000026 */ sb $zero, 0x26($s0)
/* 35BAC8 E004E0F8 A2000025 */ sb $zero, 0x25($s0)
/* 35BACC E004E0FC 0801384C */ j .LE004E130
/* 35BAD0 E004E100 A2000024 */ sb $zero, 0x24($s0)
.LE004E104:
/* 35BAD4 E004E104 240200FF */ addiu $v0, $zero, 0xff
/* 35BAD8 E004E108 A2020024 */ sb $v0, 0x24($s0)
/* 35BADC E004E10C 24020082 */ addiu $v0, $zero, 0x82
/* 35BAE0 E004E110 A2000026 */ sb $zero, 0x26($s0)
/* 35BAE4 E004E114 0801384C */ j .LE004E130
/* 35BAE8 E004E118 A2000025 */ sb $zero, 0x25($s0)
.LE004E11C:
/* 35BAEC E004E11C 240200D7 */ addiu $v0, $zero, 0xd7
/* 35BAF0 E004E120 A2020025 */ sb $v0, 0x25($s0)
/* 35BAF4 E004E124 240200FF */ addiu $v0, $zero, 0xff
/* 35BAF8 E004E128 A2020026 */ sb $v0, 0x26($s0)
/* 35BAFC E004E12C 240200B4 */ addiu $v0, $zero, 0xb4
.LE004E130:
/* 35BB00 E004E130 A2020027 */ sb $v0, 0x27($s0)
/* 35BB04 E004E134 8FBF0038 */ lw $ra, 0x38($sp)
/* 35BB08 E004E138 8FB30034 */ lw $s3, 0x34($sp)
/* 35BB0C E004E13C 8FB20030 */ lw $s2, 0x30($sp)
/* 35BB10 E004E140 8FB1002C */ lw $s1, 0x2c($sp)
/* 35BB14 E004E144 8FB00028 */ lw $s0, 0x28($sp)
/* 35BB18 E004E148 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 35BB1C E004E14C D7B60048 */ ldc1 $f22, 0x48($sp)
/* 35BB20 E004E150 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 35BB24 E004E154 03E00008 */ jr $ra
/* 35BB28 E004E158 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,122 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sweat_main
/* 35BFD0 E0050000 27BDFF58 */ addiu $sp, $sp, -0xa8
/* 35BFD4 E0050004 F7B80090 */ sdc1 $f24, 0x90($sp)
/* 35BFD8 E0050008 4485C000 */ mtc1 $a1, $f24
/* 35BFDC E005000C F7BA0098 */ sdc1 $f26, 0x98($sp)
/* 35BFE0 E0050010 4486D000 */ mtc1 $a2, $f26
/* 35BFE4 E0050014 AFB20078 */ sw $s2, 0x78($sp)
/* 35BFE8 E0050018 0080902D */ daddu $s2, $a0, $zero
/* 35BFEC E005001C F7BC00A0 */ sdc1 $f28, 0xa0($sp)
/* 35BFF0 E0050020 4487E000 */ mtc1 $a3, $f28
/* 35BFF4 E0050024 27A40018 */ addiu $a0, $sp, 0x18
/* 35BFF8 E0050028 F7B60088 */ sdc1 $f22, 0x88($sp)
/* 35BFFC E005002C C7B600BC */ lwc1 $f22, 0xbc($sp)
/* 35C000 E0050030 3C02E005 */ lui $v0, %hi(sweat_init)
/* 35C004 E0050034 244201D0 */ addiu $v0, $v0, %lo(sweat_init)
/* 35C008 E0050038 AFA20020 */ sw $v0, 0x20($sp)
/* 35C00C E005003C 3C02E005 */ lui $v0, %hi(sweat_update)
/* 35C010 E0050040 244201D8 */ addiu $v0, $v0, %lo(sweat_update)
/* 35C014 E0050044 AFA20024 */ sw $v0, 0x24($sp)
/* 35C018 E0050048 3C02E005 */ lui $v0, %hi(sweat_render)
/* 35C01C E005004C 244202C4 */ addiu $v0, $v0, %lo(sweat_render)
/* 35C020 E0050050 AFA20028 */ sw $v0, 0x28($sp)
/* 35C024 E0050054 24020028 */ addiu $v0, $zero, 0x28
/* 35C028 E0050058 AFBF007C */ sw $ra, 0x7c($sp)
/* 35C02C E005005C AFB10074 */ sw $s1, 0x74($sp)
/* 35C030 E0050060 AFB00070 */ sw $s0, 0x70($sp)
/* 35C034 E0050064 F7B40080 */ sdc1 $f20, 0x80($sp)
/* 35C038 E0050068 AFA00018 */ sw $zero, 0x18($sp)
/* 35C03C E005006C AFA0002C */ sw $zero, 0x2c($sp)
/* 35C040 E0050070 0C080124 */ jal shim_create_effect_instance
/* 35C044 E0050074 AFA2001C */ sw $v0, 0x1c($sp)
/* 35C048 E0050078 24040028 */ addiu $a0, $zero, 0x28
/* 35C04C E005007C 24030001 */ addiu $v1, $zero, 1
/* 35C050 E0050080 0040802D */ daddu $s0, $v0, $zero
/* 35C054 E0050084 0C08012C */ jal shim_general_heap_malloc
/* 35C058 E0050088 AE030008 */ sw $v1, 8($s0)
/* 35C05C E005008C 0040882D */ daddu $s1, $v0, $zero
/* 35C060 E0050090 16200003 */ bnez $s1, .LE00500A0
/* 35C064 E0050094 AE02000C */ sw $v0, 0xc($s0)
.LE0050098:
/* 35C068 E0050098 08014026 */ j .LE0050098
/* 35C06C E005009C 00000000 */ nop
.LE00500A0:
/* 35C070 E00500A0 3C108007 */ lui $s0, %hi(gCurrentCameraID)
/* 35C074 E00500A4 26107410 */ addiu $s0, $s0, %lo(gCurrentCameraID)
/* 35C078 E00500A8 8E030000 */ lw $v1, ($s0)
/* 35C07C E00500AC AE320000 */ sw $s2, ($s1)
/* 35C080 E00500B0 00031080 */ sll $v0, $v1, 2
/* 35C084 E00500B4 00431021 */ addu $v0, $v0, $v1
/* 35C088 E00500B8 00021080 */ sll $v0, $v0, 2
/* 35C08C E00500BC 00431023 */ subu $v0, $v0, $v1
/* 35C090 E00500C0 000218C0 */ sll $v1, $v0, 3
/* 35C094 E00500C4 00431021 */ addu $v0, $v0, $v1
/* 35C098 E00500C8 000210C0 */ sll $v0, $v0, 3
/* 35C09C E00500CC 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 35C0A0 E00500D0 00220821 */ addu $at, $at, $v0
/* 35C0A4 E00500D4 C42C1DEC */ lwc1 $f12, %lo(gCameras+0x6C)($at)
/* 35C0A8 E00500D8 0C080140 */ jal shim_sin_deg
/* 35C0AC E00500DC 00000000 */ nop
/* 35C0B0 E00500E0 8E030000 */ lw $v1, ($s0)
/* 35C0B4 E00500E4 00031080 */ sll $v0, $v1, 2
/* 35C0B8 E00500E8 00431021 */ addu $v0, $v0, $v1
/* 35C0BC E00500EC 00021080 */ sll $v0, $v0, 2
/* 35C0C0 E00500F0 00431023 */ subu $v0, $v0, $v1
/* 35C0C4 E00500F4 000218C0 */ sll $v1, $v0, 3
/* 35C0C8 E00500F8 00431021 */ addu $v0, $v0, $v1
/* 35C0CC E00500FC 000210C0 */ sll $v0, $v0, 3
/* 35C0D0 E0050100 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 35C0D4 E0050104 00220821 */ addu $at, $at, $v0
/* 35C0D8 E0050108 C42C1DEC */ lwc1 $f12, %lo(gCameras+0x6C)($at)
/* 35C0DC E005010C 0C080144 */ jal shim_cos_deg
/* 35C0E0 E0050110 46000506 */ mov.s $f20, $f0
/* 35C0E4 E0050114 27A40030 */ addiu $a0, $sp, 0x30
/* 35C0E8 E0050118 0000382D */ daddu $a3, $zero, $zero
/* 35C0EC E005011C 4600B107 */ neg.s $f4, $f22
/* 35C0F0 E0050120 4406A000 */ mfc1 $a2, $f20
/* 35C0F4 E0050124 44052000 */ mfc1 $a1, $f4
/* 35C0F8 E0050128 46000007 */ neg.s $f0, $f0
/* 35C0FC E005012C 0C080104 */ jal shim_guRotateF
/* 35C100 E0050130 E7A00010 */ swc1 $f0, 0x10($sp)
/* 35C104 E0050134 3C014180 */ lui $at, 0x4180
/* 35C108 E0050138 44810000 */ mtc1 $at, $f0
/* 35C10C E005013C C7A200B8 */ lwc1 $f2, 0xb8($sp)
/* 35C110 E0050140 46001080 */ add.s $f2, $f2, $f0
/* 35C114 E0050144 C7A00040 */ lwc1 $f0, 0x40($sp)
/* 35C118 E0050148 46020002 */ mul.s $f0, $f0, $f2
/* 35C11C E005014C 00000000 */ nop
/* 35C120 E0050150 4600C000 */ add.s $f0, $f24, $f0
/* 35C124 E0050154 E6200004 */ swc1 $f0, 4($s1)
/* 35C128 E0050158 C7A00044 */ lwc1 $f0, 0x44($sp)
/* 35C12C E005015C 46020002 */ mul.s $f0, $f0, $f2
/* 35C130 E0050160 00000000 */ nop
/* 35C134 E0050164 4600D000 */ add.s $f0, $f26, $f0
/* 35C138 E0050168 E6200008 */ swc1 $f0, 8($s1)
/* 35C13C E005016C C7A00048 */ lwc1 $f0, 0x48($sp)
/* 35C140 E0050170 46020002 */ mul.s $f0, $f0, $f2
/* 35C144 E0050174 00000000 */ nop
/* 35C148 E0050178 4600E000 */ add.s $f0, $f28, $f0
/* 35C14C E005017C E620000C */ swc1 $f0, 0xc($s1)
/* 35C150 E0050180 C7A00040 */ lwc1 $f0, 0x40($sp)
/* 35C154 E0050184 E6200018 */ swc1 $f0, 0x18($s1)
/* 35C158 E0050188 C7A00044 */ lwc1 $f0, 0x44($sp)
/* 35C15C E005018C E620001C */ swc1 $f0, 0x1c($s1)
/* 35C160 E0050190 C7A00048 */ lwc1 $f0, 0x48($sp)
/* 35C164 E0050194 E6360010 */ swc1 $f22, 0x10($s1)
/* 35C168 E0050198 8FA200C0 */ lw $v0, 0xc0($sp)
/* 35C16C E005019C AE220024 */ sw $v0, 0x24($s1)
/* 35C170 E00501A0 E6200020 */ swc1 $f0, 0x20($s1)
/* 35C174 E00501A4 8FBF007C */ lw $ra, 0x7c($sp)
/* 35C178 E00501A8 8FB20078 */ lw $s2, 0x78($sp)
/* 35C17C E00501AC 8FB10074 */ lw $s1, 0x74($sp)
/* 35C180 E00501B0 8FB00070 */ lw $s0, 0x70($sp)
/* 35C184 E00501B4 D7BC00A0 */ ldc1 $f28, 0xa0($sp)
/* 35C188 E00501B8 D7BA0098 */ ldc1 $f26, 0x98($sp)
/* 35C18C E00501BC D7B80090 */ ldc1 $f24, 0x90($sp)
/* 35C190 E00501C0 D7B60088 */ ldc1 $f22, 0x88($sp)
/* 35C194 E00501C4 D7B40080 */ ldc1 $f20, 0x80($sp)
/* 35C198 E00501C8 03E00008 */ jr $ra
/* 35C19C E00501CC 27BD00A8 */ addiu $sp, $sp, 0xa8