Effect gfx data + some light funcs (#809)

This commit is contained in:
mrshigure 2022-10-08 03:07:10 -07:00 committed by GitHub
parent 41f5781a1d
commit 9a644e30d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 1390 additions and 1674 deletions

View File

@ -782,19 +782,64 @@ typedef struct EndingDecalsFXData {
} EndingDecalsFXData; // size = 0x2C
typedef struct LightRaysFXData {
/* 0x00 */ char todo[0];
} LightRaysFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x04 */ char unk_04[0xC];
/* 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;
/* 0x30 */ char unk_30[4];
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ char unk_44[4];
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ f32 unk_5C;
/* 0x60 */ f32 unk_60;
/* 0x64 */ f32 unk_64;
/* 0x68 */ f32 unk_68;
/* 0x6C */ f32 unk_6C;
/* 0x70 */ f32 unk_70;
/* 0x74 */ f32 unk_74;
/* 0x78 */ f32 unk_78;
/* 0x7C */ s32 unk_7C;
/* 0x80 */ f32 unk_80;
/* 0x84 */ f32 unk_84;
/* 0x88 */ f32 unk_88;
/* 0x8C */ f32 unk_8C;
/* 0x90 */ s32 unk_90;
} LightRaysFXData; // size = 0x94
typedef struct LightningFXData {
/* 0x00 */ char unk_00[0x30];
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ char unk_3C[0x4];
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
/* 0x48 */ s32 unk_48;
} LightningFXData; // size = ?
/* 0x44 */ struct EffectInstance* unk_44;
/* 0x48 */ struct EffectInstance* unk_48;
} LightningFXData; // size = 0x4C
typedef struct FireBreathFXData {
/* 0x00 */ s32 type;
@ -1281,7 +1326,15 @@ typedef struct StatChangeFXData {
typedef struct SnakingStaticFXData {
/* 0x00 */ char unk_00[4];
/* 0x04 */ Vec3f pos;
/* 0x10 */ char unk_10[0x28];
/* 0x10 */ char unk_10[8];
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ char unk_24[4];
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ char unk_34[4];
/* 0x38 */ f32 unk_38;
} SnakingStaticFXData; // size = unknown
@ -1322,17 +1375,33 @@ typedef struct UnderwaterFXData {
} UnderwaterFXData; // size = unknown
typedef struct LightningBoltFXData {
/* 0x00 */ char unk_00[0xC];
/* 0x0C */ f32 unk_0C;
/* 0x10 */ char unk_10[0x20];
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ char unk_3C[0x4];
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
/* 0x48 */ s32 unk_48;
} LightningBoltFXData; // size = ?
/* 0x000 */ s32 unk_00;
/* 0x004 */ f32 unk_04;
/* 0x008 */ f32 unk_08;
/* 0x00C */ f32 unk_0C;
/* 0x010 */ f32 unk_10;
/* 0x014 */ f32 unk_14;
/* 0x018 */ f32 unk_18;
/* 0x01C */ f32 unk_1C;
/* 0x020 */ f32 unk_20;
/* 0x024 */ f32 unk_24;
/* 0x028 */ s32 unk_28;
/* 0x02C */ s32 unk_2C;
/* 0x030 */ s32 unk_30;
/* 0x034 */ s32 unk_34;
/* 0x038 */ s32 unk_38;
/* 0x03C */ s32 unk_3C;
/* 0x040 */ s32 unk_40;
/* 0x044 */ s32 unk_44;
/* 0x048 */ s32 unk_48;
/* 0x04C */ f32 unk_4C;
/* 0x050 */ f32 unk_50[0xC];
/* 0x080 */ f32 unk_80[0xC];
/* 0x0B0 */ f32 unk_B0[0xC];
/* 0x0E0 */ f32 unk_E0[0xC];
/* 0x110 */ s32 unk_110;
/* 0x114 */ f32 unk_114;
} LightningBoltFXData; // size = 0x118
typedef struct WaterSplashFXData {
/* 0x00 */ char todo[0];

View File

@ -84,8 +84,8 @@ EffectInstance* debuff_main(s32, f32, f32, f32);
EffectInstance* green_impact_main(s32, f32, f32, f32, f32);
FX_MAIN(radial_shimmer_main);
void ending_decals_main(s32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(light_rays_main);
FX_MAIN(lightning_main);
void light_rays_main(s32, f32, f32, f32, f32, EffectInstance**);
EffectInstance* lightning_main(s32, f32, f32, f32, f32, f32);
EffectInstance* fire_breath_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, s32);
FX_MAIN(shimmer_burst_main);
void energy_shockwave_main(s32, f32, f32, f32, f32, s32);
@ -118,14 +118,14 @@ FX_MAIN(merlin_house_stars_main);
FX_MAIN(quizmo_audience_main);
EffectInstance* butterflies_main(s32, f32, f32, f32);
EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(snaking_static_main);
EffectInstance* snaking_static_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(thunderbolt_ring_main);
FX_MAIN(squirt_main);
FX_MAIN(water_block_main);
FX_MAIN(waterfall_main);
FX_MAIN(water_fountain_main);
FX_MAIN(underwater_main);
FX_MAIN(lightning_bolt_main);
EffectInstance* lightning_bolt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(water_splash_main);
FX_MAIN(snowman_doll_main);
EffectInstance* fright_jar_main(s32, f32, f32, f32, f32, s32);

View File

@ -4,12 +4,12 @@
ApiStatus N(UnkLightningFXFunc)(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*)script->varTable[15];
effect->data.lightning->unk_30 = 85;
effect->data.lightning->unk_34 = 42;
effect->data.lightning->unk_38 = 255;
effect->data.lightning->unk_40 = 255;
effect->data.lightning->unk_44 = 175;
effect->data.lightning->unk_48 = 239;
effect->data.any[12] = 85;
effect->data.any[13] = 42;
effect->data.any[14] = 255;
effect->data.any[16] = 255;
effect->data.any[17] = 175;
effect->data.any[18] = 239;
return ApiStatus_DONE2;
}

View File

@ -44,9 +44,9 @@ EffectTableEntry gEffectTable[] = {
/* 0x0E */ FX_ENTRY(snowflake, effect_gfx_snowflake),
/* 0x0F */ FX_ENTRY(star, _3326A0),
/* 0x10 */ FX_ENTRY(emote, effect_gfx_emote),
/* 0x11 */ FX_ENTRY(sparkles, _337FC0),
/* 0x11 */ FX_ENTRY(sparkles, effect_gfx_sparkles),
/* 0x12 */ FX_ENTRY(shape_spell, _339F60),
/* 0x13 */ FX_ENTRY(gather_energy_pink, _33BBD0),
/* 0x13 */ FX_ENTRY(gather_energy_pink, effect_gfx_gather_energy_pink),
/* 0x14 */ FX_ENTRY(drop_leaves, effect_gfx_drop_leaves),
/* 0x15 */ FX_ENTRY(dust, effect_gfx_dust),
/* 0x16 */ FX_ENTRY(shattering_stones, _340880),
@ -61,7 +61,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x1F */ FX_ENTRY(purple_ring, _352CE0),
/* 0x20 */ FX_ENTRY(flame, _353BB0),
/* 0x21 */ FX_ENTRY(stars_burst, effect_gfx_damage_stars),
/* 0x22 */ FX_ENTRY(stars_shimmer, _337FC0),
/* 0x22 */ FX_ENTRY(stars_shimmer, effect_gfx_sparkles),
/* 0x23 */ FX_ENTRY(rising_bubble, _356530),
/* 0x24 */ FX_ENTRY(ring_blast, _3573A0),
/* 0x25 */ FX_ENTRY(shockwave, _3593B0),
@ -80,22 +80,22 @@ EffectTableEntry gEffectTable[] = {
/* 0x32 */ FX_ENTRY(green_impact, effect_gfx_green_impact),
/* 0x33 */ FX_ENTRY(radial_shimmer, _366D60),
/* 0x34 */ FX_ENTRY(ending_decals, effect_gfx_ending_decals),
/* 0x35 */ FX_ENTRY(light_rays, _36DF90),
/* 0x36 */ FX_ENTRY(lightning, _36ED60),
/* 0x35 */ FX_ENTRY(light_rays, effect_gfx_light_rays),
/* 0x36 */ FX_ENTRY(lightning, effect_gfx_lightning),
/* 0x37 */ FX_ENTRY(fire_breath, effect_gfx_fire_breath),
/* 0x38 */ FX_ENTRY(shimmer_burst, _337FC0),
/* 0x38 */ FX_ENTRY(shimmer_burst, effect_gfx_sparkles),
/* 0x39 */ FX_ENTRY(energy_shockwave, effect_gfx_energy_shockwave),
/* 0x3A */ FX_ENTRY(shimmer_wave, _337FC0),
/* 0x3A */ FX_ENTRY(shimmer_wave, effect_gfx_sparkles),
/* 0x3B */ FX_ENTRY(aura, effect_gfx_aura),
/* 0x3C */ FX_ENTRY(bulb_glow, _37ADD0),
/* 0x3C */ FX_ENTRY(bulb_glow, effect_gfx_bulb_glow),
/* 0x3D */ FX_ENTRY_NUMBERED(3D, effect_gfx_effect_3D),
/* 0x3E */ FX_ENTRY(blast, _37D9D0),
/* 0x3F */ FX_ENTRY(fire_flower, effect_gfx_fire_flower),
/* 0x40 */ FX_ENTRY(recover, effect_gfx_recover),
/* 0x41 */ FX_ENTRY(disable_x, effect_gfx_disable_x),
/* 0x42 */ FX_ENTRY(bombette_breaking, _37D9D0),
/* 0x43 */ FX_ENTRY(firework, _38A350),
/* 0x44 */ FX_ENTRY(confetti, _38BBA0),
/* 0x43 */ FX_ENTRY(firework, effect_gfx_firework),
/* 0x44 */ FX_ENTRY(confetti, effect_gfx_confetti),
/* 0x45 */ FX_ENTRY(snowfall, _38D070),
/* 0x46 */ FX_ENTRY_NUMBERED(46, effect_gfx_effect_46),
/* 0x47 */ FX_ENTRY(gather_magic, effect_gfx_gather_magic),
@ -104,7 +104,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x4A */ FX_ENTRY(flashing_box_shockwave, effect_gfx_flashing_box_shockwave),
/* 0x4B */ FX_ENTRY(balloon, effect_gfx_balloon),
/* 0x4C */ FX_ENTRY(floating_rock, _3960F0),
/* 0x4D */ FX_ENTRY(chomp_drop, _397040),
/* 0x4D */ FX_ENTRY(chomp_drop, effect_gfx_chomp_drop),
/* 0x4E */ FX_ENTRY(quizmo_stage, _398BC0),
/* 0x4F */ FX_ENTRY(radiating_energy_orb, _3A0D60),
/* 0x50 */ FX_ENTRY(quizmo_answer, _3A2440),
@ -121,14 +121,14 @@ EffectTableEntry gEffectTable[] = {
/* 0x5B */ FX_ENTRY(waterfall, _3B78D0),
/* 0x5C */ FX_ENTRY(water_fountain, _3B8860),
/* 0x5D */ FX_ENTRY(underwater, _3B9A70),
/* 0x5E */ FX_ENTRY(lightning_bolt, _3BAEA0),
/* 0x5E */ FX_ENTRY(lightning_bolt, effect_gfx_lightning_bolt),
/* 0x5F */ FX_ENTRY(water_splash, effect_gfx_water_splash),
/* 0x60 */ FX_ENTRY(snowman_doll, _3BD9A0),
/* 0x61 */ FX_ENTRY(fright_jar, _3C1BA0),
/* 0x62 */ FX_ENTRY(stop_watch, _3CB890),
/* 0x63 */ FX_ENTRY_NUMBERED(63, _3CD6E0),
/* 0x63 */ FX_ENTRY_NUMBERED(63, effect_gfx_effect_63),
/* 0x64 */ FX_ENTRY(throw_spiny, effect_gfx_throw_spiny),
/* 0x65 */ FX_ENTRY_NUMBERED(65, _3D11E0),
/* 0x65 */ FX_ENTRY_NUMBERED(65, effect_gfx_effect_65),
/* 0x66 */ FX_ENTRY(tubba_heart_attack, _3D2580),
/* 0x67 */ FX_ENTRY(whirlwind, _3D3930),
/* 0x68 */ FX_ENTRY(red_impact, _3593B0),
@ -138,15 +138,15 @@ EffectTableEntry gEffectTable[] = {
/* 0x6C */ FX_ENTRY(tattle_window, _3D7040),
/* 0x6D */ FX_ENTRY(shiny_flare, _3D7770),
/* 0x6E */ FX_ENTRY(huff_puff_breath, _3D80C0),
/* 0x6F */ FX_ENTRY(cold_breath, _3D9100),
/* 0x70 */ FX_ENTRY(embers, _3DBF40),
/* 0x6F */ FX_ENTRY(cold_breath, effect_gfx_cold_breath),
/* 0x70 */ FX_ENTRY(embers, effect_gfx_embers),
/* 0x71 */ FX_ENTRY(hieroglyphs, _3DCD50),
/* 0x72 */ FX_ENTRY(misc_particles, _3DEE60),
/* 0x73 */ FX_ENTRY(static_status, _3E12D0),
/* 0x74 */ FX_ENTRY(moving_cloud, _3E1CD0),
/* 0x75 */ FX_ENTRY_NUMBERED(75, effect_gfx_effect_75),
/* 0x76 */ {},
/* 0x77 */ FX_ENTRY(firework_rocket, _3E5350),
/* 0x77 */ FX_ENTRY(firework_rocket, effect_gfx_firework_rocket),
/* 0x78 */ FX_ENTRY(peach_star_beam, effect_gfx_peach_star_beam),
/* 0x79 */ FX_ENTRY(chapter_change, _3EBE60),
/* 0x7A */ FX_ENTRY(ice_shard, _3F8CC0),
@ -159,9 +159,9 @@ EffectTableEntry gEffectTable[] = {
/* 0x81 */ FX_ENTRY(ice_pillar, _40A1C0),
/* 0x82 */ FX_ENTRY(sun, _40BBA0),
/* 0x83 */ FX_ENTRY(star_spirits_energy, _40D290),
/* 0x84 */ FX_ENTRY(pink_sparkles, _337FC0),
/* 0x84 */ FX_ENTRY(pink_sparkles, effect_gfx_sparkles),
/* 0x85 */ FX_ENTRY(star_outline, _413FA0),
/* 0x86 */ FX_ENTRY_NUMBERED(86, _415060),
/* 0x86 */ FX_ENTRY_NUMBERED(86, effect_gfx_effect_86),
};
s32 D_8007FEB8[] = {

View File

@ -9,8 +9,8 @@ extern u8 D_E00DE910[];
extern u8 D_E00DE96C[];
void cold_breath_init(EffectInstance* effect);
void cold_breath_render(EffectInstance* effect);
void cold_breath_update(EffectInstance* effect);
void cold_breath_render(EffectInstance* effect);
void cold_breath_appendGfx(void* effect);
EffectInstance* cold_breath_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {

View File

@ -1,26 +1,27 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09000800[];
extern Gfx D_09000BA8[];
extern Gfx D_09000BC8[];
extern Gfx D_09000BE8[];
extern Gfx D_09000C08[];
extern Gfx D_09000C28[];
extern Gfx D_09000C48[];
extern Gfx D_09000C68[];
extern Gfx D_09000C88[];
extern Gfx D_09000CA8[];
extern Gfx D_09000CC8[];
extern Gfx D_09000CE8[];
extern Gfx D_09000D08[];
extern Gfx D_09000800_415860[];
extern Gfx D_09000BA8_415C08[];
extern Gfx D_09000BC8_415C28[];
extern Gfx D_09000BE8_415C48[];
extern Gfx D_09000C08_415C68[];
extern Gfx D_09000C28_415C88[];
extern Gfx D_09000C48_415CA8[];
extern Gfx D_09000C68_415CC8[];
extern Gfx D_09000C88_415CE8[];
extern Gfx D_09000CA8_415D08[];
extern Gfx D_09000CC8_415D28[];
extern Gfx D_09000CE8_415D48[];
extern Gfx D_09000D08_415D68[];
Gfx* D_E0128480[12] = {
D_09000BA8, D_09000BC8, D_09000BE8, D_09000C08, D_09000C28, D_09000C48, D_09000C68, D_09000C88, D_09000CA8,
D_09000CC8, D_09000CE8, D_09000D08
D_09000BA8_415C08, D_09000BC8_415C28, D_09000BE8_415C48, D_09000C08_415C68,
D_09000C28_415C88, D_09000C48_415CA8, D_09000C68_415CC8, D_09000C88_415CE8,
D_09000CA8_415D08, D_09000CC8_415D28, D_09000CE8_415D48, D_09000D08_415D68
};
Gfx* D_E01284B0[] = { D_09000800 };
Gfx* D_E01284B0[] = { D_09000800_415860 };
void fx_86_init(EffectInstance* effect);
void fx_86_update(EffectInstance* effect);

View File

@ -0,0 +1,9 @@
#include "effects/gfx/D_09000000_37ADD0.png.inc.c"
#include "effects/gfx/D_09000800_37B5D0.png.inc.c"
#include "effects/gfx/D_09000C00_37B9D0.png.inc.c"
#include "effects/gfx/D_09001400_37C1D0.gfx.inc.c"
#include "effects/gfx/D_090014B8_37C288.gfx.inc.c"
#include "effects/gfx/D_09001570_37C340.gfx.inc.c"
#include "effects/gfx/D_09001618_37C3E8.gfx.inc.c"
#include "effects/gfx/D_090016C0_37C490.gfx.inc.c"

View File

@ -0,0 +1,8 @@
#include "effects/gfx/D_09000000_397040.png.inc.c"
#include "effects/gfx/D_09000800_397840.png.inc.c"
#include "effects/gfx/D_09001000_398040.vtx.inc.c"
#include "effects/gfx/D_09001040_398080.gfx.inc.c"
#include "effects/gfx/D_090010E8_398128.gfx.inc.c"
#include "effects/gfx/D_09001190_3981D0.gfx.inc.c"

View File

@ -0,0 +1,17 @@
#include "effects/gfx/D_09000000_3D9100.png.inc.c"
#include "effects/gfx/D_09001000_3DA100.png.inc.c"
#include "effects/gfx/D_09002000_3DB100.gfx.inc.c"
#include "effects/gfx/D_090020C0_3DB1C0.vtx.inc.c"
#include "effects/gfx/D_09002100_3DB200.vtx.inc.c"
#include "effects/gfx/D_09002140_3DB240.vtx.inc.c"
#include "effects/gfx/D_09002180_3DB280.vtx.inc.c"
#include "effects/gfx/D_090021C0_3DB2C0.vtx.inc.c"
#include "effects/gfx/D_09002200_3DB300.gfx.inc.c"
#include "effects/gfx/D_09002220_3DB320.gfx.inc.c"
#include "effects/gfx/D_09002240_3DB340.gfx.inc.c"
#include "effects/gfx/D_09002260_3DB360.gfx.inc.c"
#include "effects/gfx/D_09002280_3DB380.gfx.inc.c"
#include "effects/gfx/D_090022A0_3DB3A0.gfx.inc.c"

View File

@ -0,0 +1,11 @@
#include "effects/gfx/D_09000000_38BBA0.png.inc.c"
#include "effects/gfx/D_09000800_38C3A0.vtx.inc.c"
#include "effects/gfx/D_09000840_38C3E0.vtx.inc.c"
#include "effects/gfx/D_09000880_38C420.vtx.inc.c"
#include "effects/gfx/D_090008C0_38C460.vtx.inc.c"
#include "effects/gfx/D_09000900_38C4A0.vtx.inc.c"
#include "effects/gfx/D_09000940_38C4E0.gfx.inc.c"
#include "effects/gfx/D_090009E8_38C588.gfx.inc.c"
#include "effects/gfx/D_09000A00_38C5A0.gfx.inc.c"

View File

@ -0,0 +1,23 @@
#include "effects/gfx/D_09000000_3CD6E0.png.inc.c"
#include "effects/gfx/D_09000400_3CDAE0.png.inc.c"
#include "effects/gfx/D_09000C00_3CE2E0.png.inc.c"
#include "effects/gfx/D_09001000_3CE6E0.png.inc.c"
#include "effects/gfx/D_09001800_3CEEE0.vtx.inc.c"
#include "effects/gfx/D_09001840_3CEF20.vtx.inc.c"
#include "effects/gfx/D_09001880_3CEF60.vtx.inc.c"
#include "effects/gfx/D_090018C0_3CEFA0.vtx.inc.c"
#include "effects/gfx/D_09001900_3CEFE0.vtx.inc.c"
#include "effects/gfx/D_09001960_3CF040.gfx.inc.c"
#include "effects/gfx/D_09001988_3CF068.gfx.inc.c"
#include "effects/gfx/D_090019A8_3CF088.gfx.inc.c"
#include "effects/gfx/D_090019C8_3CF0A8.gfx.inc.c"
#include "effects/gfx/D_090019E8_3CF0C8.gfx.inc.c"
#include "effects/gfx/D_09001A08_3CF0E8.gfx.inc.c"
#include "effects/gfx/D_09001AF0_3CF1D0.gfx.inc.c"
#include "effects/gfx/D_09001B70_3CF250.gfx.inc.c"
#include "effects/gfx/D_09001C58_3CF338.vtx.inc.c"
#include "effects/gfx/D_09001C98_3CF378.gfx.inc.c"

View File

@ -0,0 +1,2 @@
#include "effects/gfx/D_09000000_3D11E0.png.inc.c"
#include "effects/gfx/D_09000400_3D15E0.gfx.inc.c"

View File

@ -0,0 +1,29 @@
#include "effects/gfx/D_09000000_415060.png.inc.c"
#include "effects/gfx/D_09000800_415860.gfx.inc.c"
#include "effects/gfx/D_090008A8_415908.vtx.inc.c"
#include "effects/gfx/D_090008E8_415948.vtx.inc.c"
#include "effects/gfx/D_09000928_415988.vtx.inc.c"
#include "effects/gfx/D_09000968_4159C8.vtx.inc.c"
#include "effects/gfx/D_090009A8_415A08.vtx.inc.c"
#include "effects/gfx/D_090009E8_415A48.vtx.inc.c"
#include "effects/gfx/D_09000A28_415A88.vtx.inc.c"
#include "effects/gfx/D_09000A68_415AC8.vtx.inc.c"
#include "effects/gfx/D_09000AA8_415B08.vtx.inc.c"
#include "effects/gfx/D_09000AE8_415B48.vtx.inc.c"
#include "effects/gfx/D_09000B28_415B88.vtx.inc.c"
#include "effects/gfx/D_09000B68_415BC8.vtx.inc.c"
#include "effects/gfx/D_09000BA8_415C08.gfx.inc.c"
#include "effects/gfx/D_09000BC8_415C28.gfx.inc.c"
#include "effects/gfx/D_09000BE8_415C48.gfx.inc.c"
#include "effects/gfx/D_09000C08_415C68.gfx.inc.c"
#include "effects/gfx/D_09000C28_415C88.gfx.inc.c"
#include "effects/gfx/D_09000C48_415CA8.gfx.inc.c"
#include "effects/gfx/D_09000C68_415CC8.gfx.inc.c"
#include "effects/gfx/D_09000C88_415CE8.gfx.inc.c"
#include "effects/gfx/D_09000CA8_415D08.gfx.inc.c"
#include "effects/gfx/D_09000CC8_415D28.gfx.inc.c"
#include "effects/gfx/D_09000CE8_415D48.gfx.inc.c"
#include "effects/gfx/D_09000D08_415D68.gfx.inc.c"

8
src/effects/gfx/embers.c Normal file
View File

@ -0,0 +1,8 @@
#include "effects/gfx/D_09000000_3DBF40.png.inc.c"
#include "effects/gfx/D_09000200_3DC140.png.inc.c"
#include "effects/gfx/D_09000280_3DC1C0.gfx.inc.c"
#include "effects/gfx/D_09000370_3DC2B0.vtx.inc.c"
#include "effects/gfx/D_090003B0_3DC2F0.gfx.inc.c"

View File

@ -0,0 +1,14 @@
#include "effects/gfx/D_09000000_38A350.png.inc.c"
#include "effects/gfx/D_09000800_38AB50.vtx.inc.c"
#include "effects/gfx/D_09000840_38AB90.vtx.inc.c"
#include "effects/gfx/D_09000880_38ABD0.vtx.inc.c"
#include "effects/gfx/D_090008C0_38AC10.vtx.inc.c"
#include "effects/gfx/D_09000900_38AC50.vtx.inc.c"
#include "effects/gfx/D_09000940_38AC90.gfx.inc.c"
#include "effects/gfx/D_09000A00_38AD50.gfx.inc.c"
#include "effects/gfx/D_09000A20_38AD70.gfx.inc.c"
#include "effects/gfx/D_09000A40_38AD90.gfx.inc.c"
#include "effects/gfx/D_09000A60_38ADB0.gfx.inc.c"
#include "effects/gfx/D_09000A80_38ADD0.gfx.inc.c"

View File

@ -0,0 +1,5 @@
#include "effects/gfx/D_09000000_3E5350.png.inc.c"
#include "effects/gfx/D_09000080_3E53D0.gfx.inc.c"
#include "effects/gfx/D_09000128_3E5478.vtx.inc.c"
#include "effects/gfx/D_09000158_3E54A8.gfx.inc.c"

View File

@ -0,0 +1,13 @@
#include "effects/gfx/D_09000000_33BBD0.png.inc.c"
#include "effects/gfx/D_09000200_33BDD0.png.inc.c"
#include "effects/gfx/D_09000400_33BFD0.png.inc.c"
#include "effects/gfx/D_09000C00_33C7D0.vtx.inc.c"
#include "effects/gfx/D_09000DA0_33C970.gfx.inc.c"
#include "effects/gfx/D_09000E28_33C9F8.gfx.inc.c"
#include "effects/gfx/D_09000F10_33CAE0.vtx.inc.c"
#include "effects/gfx/D_090010B0_33CC80.gfx.inc.c"
#include "effects/gfx/D_09001138_33CD08.gfx.inc.c"

View File

@ -0,0 +1,9 @@
#include "effects/gfx/D_09000000_36DF90.png.inc.c"
#include "effects/gfx/D_09000080_36E010.vtx.inc.c"
#include "effects/gfx/D_090000B0_36E040.gfx.inc.c"
#include "effects/gfx/D_090000D0_36E060.vtx.inc.c"
#include "effects/gfx/D_09000110_36E0A0.gfx.inc.c"
#include "effects/gfx/D_09000130_36E0C0.gfx.inc.c"
#include "effects/gfx/D_090001D8_36E168.gfx.inc.c"

View File

@ -0,0 +1,41 @@
#include "effects/gfx/D_09000000_36ED60.png.inc.c"
#include "effects/gfx/D_09001000_36FD60.vtx.inc.c"
#include "effects/gfx/D_090011E0_36FF40.vtx.inc.c"
#include "effects/gfx/D_09001320_370080.vtx.inc.c"
#include "effects/gfx/D_09001520_370280.vtx.inc.c"
#include "effects/gfx/D_09001640_3703A0.vtx.inc.c"
#include "effects/gfx/D_09001840_3705A0.vtx.inc.c"
#include "effects/gfx/D_090018C0_370620.vtx.inc.c"
#include "effects/gfx/D_09001940_3706A0.vtx.inc.c"
#include "effects/gfx/D_090019C0_370720.vtx.inc.c"
#include "effects/gfx/D_09001A40_3707A0.vtx.inc.c"
#include "effects/gfx/D_09001AC0_370820.vtx.inc.c"
#include "effects/gfx/D_09001C40_3709A0.vtx.inc.c"
#include "effects/gfx/D_09001DC0_370B20.vtx.inc.c"
#include "effects/gfx/D_09001F40_370CA0.vtx.inc.c"
#include "effects/gfx/D_090020C0_370E20.vtx.inc.c"
#include "effects/gfx/D_09002240_370FA0.vtx.inc.c"
#include "effects/gfx/D_09002440_3711A0.vtx.inc.c"
#include "effects/gfx/D_090024C0_371220.vtx.inc.c"
#include "effects/gfx/D_090024F0_371250.vtx.inc.c"
#include "effects/gfx/D_09002670_3713D0.vtx.inc.c"
#include "effects/gfx/D_09002700_371460.vtx.inc.c"
#include "effects/gfx/D_09002900_371660.vtx.inc.c"
#include "effects/gfx/D_09002980_3716E0.vtx.inc.c"
#include "effects/gfx/D_090029B0_371710.vtx.inc.c"
#include "effects/gfx/D_09002B30_371890.vtx.inc.c"
#include "effects/gfx/D_09002BC0_371920.vtx.inc.c"
#include "effects/gfx/D_09002DC0_371B20.vtx.inc.c"
#include "effects/gfx/D_09002FC0_371D20.vtx.inc.c"
#include "effects/gfx/D_09003040_371DA0.vtx.inc.c"
#include "effects/gfx/D_09003240_371FA0.vtx.inc.c"
#include "effects/gfx/D_09003280_371FE0.gfx.inc.c"
#include "effects/gfx/D_090032F8_372058.gfx.inc.c"
#include "effects/gfx/D_09003378_3720D8.gfx.inc.c"
#include "effects/gfx/D_090033E0_372140.gfx.inc.c"
#include "effects/gfx/D_09003580_3722E0.gfx.inc.c"
#include "effects/gfx/D_09003778_3724D8.gfx.inc.c"
#include "effects/gfx/D_09003888_3725E8.gfx.inc.c"
#include "effects/gfx/D_09003948_3726A8.gfx.inc.c"

View File

@ -0,0 +1,2 @@
#include "effects/gfx/D_09000000_3BAEA0.png.inc.c"
#include "effects/gfx/D_09001000_3BBEA0.gfx.inc.c"

View File

@ -0,0 +1,21 @@
#include "effects/gfx/D_09000000_337FC0.png.inc.c"
#include "effects/gfx/D_09000F20_338EE0.gfx.inc.c"
#include "effects/gfx/D_09000FC8_338F88.vtx.inc.c"
#include "effects/gfx/D_09001008_338FC8.vtx.inc.c"
#include "effects/gfx/D_09001048_339008.vtx.inc.c"
#include "effects/gfx/D_09001088_339048.vtx.inc.c"
#include "effects/gfx/D_090010C8_339088.vtx.inc.c"
#include "effects/gfx/D_09001108_3390C8.vtx.inc.c"
#include "effects/gfx/D_09001148_339108.vtx.inc.c"
#include "effects/gfx/D_09001188_339148.vtx.inc.c"
#include "effects/gfx/D_090011C8_339188.gfx.inc.c"
#include "effects/gfx/D_090011E0_3391A0.gfx.inc.c"
#include "effects/gfx/D_090011F8_3391B8.gfx.inc.c"
#include "effects/gfx/D_09001210_3391D0.gfx.inc.c"
#include "effects/gfx/D_09001228_3391E8.gfx.inc.c"
#include "effects/gfx/D_09001240_339200.gfx.inc.c"
#include "effects/gfx/D_09001258_339218.gfx.inc.c"
#include "effects/gfx/D_09001270_339230.gfx.inc.c"

View File

@ -1,20 +1,231 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E006ADF0[];
extern Gfx* D_E006AE00[];
extern s32 D_E006AE10[];
void light_rays_init(EffectInstance* effect);
void light_rays_update(EffectInstance* effect);
void light_rays_render(EffectInstance* effect);
void light_rays_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/light_rays", func_E006A000);
void func_E006A000(LightRaysFXData* part, s32 arg1) {
s32 temp = arg1 * 3;
INCLUDE_ASM(s32, "effects/light_rays", func_E006A0BC);
INCLUDE_ASM(s32, "effects/light_rays", light_rays_main);
void light_rays_init(void) {
part->unk_70 = func_E0200044(180, temp);
part->unk_74 = func_E0200044(180, temp + 1);
part->unk_78 = func_E0200044(180, temp + 2);
part->unk_24 = 0;
part->unk_2C = 0;
part->unk_58 = part->unk_68;
part->unk_28 = part->unk_7C;
part->unk_8C = part->unk_6C;
part->unk_5C = part->unk_70;
part->unk_60 = part->unk_74;
part->unk_64 = part->unk_78;
}
INCLUDE_ASM(s32, "effects/light_rays", func_E006A464);
void func_E006A0BC(LightRaysFXData* part, s32 arg1) {
s32 idx = (arg1 - 1) * 5;
INCLUDE_ASM(s32, "effects/light_rays", light_rays_update);
part->unk_58 = 0;
part->unk_28 = arg1 * 2 + 30;
part->unk_5C = D_E006AE10[idx++];
part->unk_60 = D_E006AE10[idx++];
part->unk_64 = D_E006AE10[idx++];
part->unk_24 = 0;
part->unk_2C = 0;
part->unk_34 = part->unk_38 = 0.0f;
part->unk_48 = 0.0f;
part->unk_4C = -0.6f;
part->unk_3C = 10.0f;
part->unk_40 = 0.0f;
part->unk_50 = 0.0f;
part->unk_54 = 0.6f;
part->unk_80 = 0.0f;
part->unk_84 = (f32) D_E006AE10[idx++] * 0.0;
part->unk_88 = (f32) D_E006AE10[idx++] * 0.1;
part->unk_90 = 0;
}
void light_rays_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
EffectInstance** outEffect
) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
LightRaysFXData* part;
s32 numParts;
s32 temp2;
s32 temp1;
s32 i;
if (arg0 < 2) {
numParts = 9;
} else {
numParts = 17;
}
bpPtr->init = light_rays_init;
bpPtr->update = light_rays_update;
bpPtr->renderWorld = light_rays_render;
bpPtr->unk_00 = 0;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_LIGHT_RAYS;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.lightRays = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.lightRays != NULL);
part->unk_00 = arg0;
part->unk_28 = 100;
part->unk_2C = 0;
part->unk_10 = arg1;
part->unk_14 = arg2;
part->unk_18 = arg3;
part->unk_20 = arg4;
part->unk_1C = arg4;
switch (arg0) {
case 0:
case 1:
part++;
for (i = 1; i < effect->numParts; i++, part++) {
temp1 = (i - 1) * 30 / (numParts - 1);
temp2 = (i - 1) * 20 / (numParts - 1);
part->unk_68 = temp1 - 10;
part->unk_7C = 50 - temp2;
part->unk_6C = 25.0f / part->unk_7C + 2.5;
func_E006A000(part, i);
}
break;
default:
part++;
for (i = 1; i < effect->numParts; i++, part++) {
func_E006A0BC(part, i);
}
}
*outEffect = effect;
}
void light_rays_init(EffectInstance* effect) {
}
void func_E006A464(LightRaysFXData* part) {
part->unk_34 += part->unk_48;
if (part->unk_34 > 256.0f) {
part->unk_34 -= 256.0f;
}
if (part->unk_34 < 0.0f) {
part->unk_34 += 256.0f;
}
part->unk_3C += part->unk_50;
if (part->unk_3C > 256.0f) {
part->unk_3C -= 256.0f;
}
if (part->unk_3C < 0.0f) {
part->unk_3C += 256.0f;
}
part->unk_38 += part->unk_4C;
if (part->unk_38 > 256.0f) {
part->unk_38 -= 256.0f;
}
if (part->unk_38 < 0.0f) {
part->unk_38 += 256.0f;
}
part->unk_40 += part->unk_54;
if (part->unk_40 > 256.0f) {
part->unk_40 -= 256.0f;
}
if (part->unk_40 < 0.0f) {
part->unk_40 += 256.0f;
}
}
void light_rays_update(EffectInstance* effect) {
LightRaysFXData* part = effect->data.lightRays;
s32 unk_00 = part->unk_00;
s32 unk_28;
s32 unk_2C;
s32 i;
if (part->unk_28 < 11) {
part->unk_28--;
}
part->unk_2C++;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
part->unk_28 = 10;
}
if (part->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
unk_28 = part->unk_28;
unk_2C = part->unk_2C;
switch (unk_00) {
case 0:
case 1:
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_28--;
part->unk_2C++;
if (part->unk_2C < 10) {
part->unk_24 = part->unk_2C * 12;
}
if (part->unk_28 < 5) {
part->unk_24 = part->unk_28 * 25;
}
part->unk_58 += part->unk_8C;
if (part->unk_28 <= 0) {
func_E006A000(part, unk_2C * 10 + 1);
}
}
break;
default:
part++;
for (i = 1; i < effect->numParts; i++, part++) {
func_E006A464(part);
part->unk_28--;
part->unk_2C++;
if (part->unk_2C < 5) {
part->unk_24 = part->unk_2C * 50;
}
if (part->unk_28 < 5) {
part->unk_24 = part->unk_28 * 50;
}
if (unk_28 < 10) {
part->unk_24 = (part->unk_24 * unk_28) / 10;
}
if (part->unk_28 <= 0) {
func_E006A0BC(part, i);
}
if (part->unk_90 <= 0 || --part->unk_90 <= 0) {
part->unk_5C += part->unk_80;
part->unk_60 += part->unk_84;
part->unk_64 += part->unk_88;
}
}
}
}
void light_rays_render(EffectInstance* effect) {
RenderTask renderTask;
@ -29,6 +240,101 @@ void light_rays_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/light_rays", func_E006A85C);
void func_E006A85C(LightRaysFXData* part) {
s32 uls = part->unk_34 * 4.0f;
s32 ult = part->unk_38 * 4.0f;
s32 uls2 = part->unk_3C * 4.0f;
s32 ult2 = part->unk_40 * 4.0f;
INCLUDE_ASM(s32, "effects/light_rays", light_rays_appendGfx);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, uls, ult, uls + 512, ult + 256);
gDPSetTileSize(gMasterGfxPos++, 1, uls2, ult2, uls2 + 512, ult2 + 256);
}
void light_rays_appendGfx(void* effect) {
LightRaysFXData* part = ((EffectInstance*)effect)->data.lightRays;
s32 unk_00 = part->unk_00;
Gfx* dlist = D_E006ADF0[unk_00];
Gfx* dlist2 = D_E006AE00[unk_00];
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, dlist2);
shim_guTranslateF(sp98, part->unk_10, part->unk_14, part->unk_18);
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
f32 temp = part->unk_24 / 255.0f;
f32 rotateA;
f32 scaleX;
f32 scaleY;
f32 scaleZ;
f32 unk_64;
if (unk_00 >= 2) {
func_E006A85C(part);
}
shim_guRotateF(sp58, part->unk_5C, 1.0f, 0.0f, 0.0f);
shim_guMtxCatF(sp58, sp98, sp18);
if (unk_00 >= 2) {
unk_64 = part->unk_64;
if (unk_00 == 3) {
rotateA = unk_64 + 45.0f;
} else {
rotateA = unk_64 + 0.0f;
}
shim_guRotateF(sp58, rotateA, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, part->unk_60, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guTranslateF(sp58, part->unk_58, 0.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
scaleX = scaleZ = (temp + 3.0f) * 0.25;
switch (i & 3) {
case 0:
scaleY = temp * 0.3;
break;
case 1:
scaleY = temp * 0.5;
break;
case 2:
scaleY = temp * 0.9;
break;
case 3:
default:
scaleY = temp;
break;
}
shim_guScaleF(sp58, scaleX, scaleY, scaleZ);
shim_guMtxCatF(sp58, sp18, sp18);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 255, 255, 240, part->unk_24);
} else {
shim_guRotateF(sp58, part->unk_60, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, part->unk_64, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guTranslateF(sp58, part->unk_58, 0.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 255, 255, 181, part->unk_24);
}
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, dlist);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,14 +1,187 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E006CB60[];
extern Gfx* D_E006CB78[];
void lightning_init(EffectInstance* effect);
void lightning_update(EffectInstance* effect);
void lightning_render(EffectInstance* effect);
void lightning_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/lightning", lightning_main);
EffectInstance* lightning_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
f32 arg5
) {
EffectBlueprint bp;
EffectInstance* effect;
LightningFXData* data;
s32 numParts = 1;
void lightning_init(void) {
bp.init = lightning_init;
bp.update = lightning_update;
bp.renderWorld = lightning_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_LIGHTNING;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.lightning = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.lightning != NULL);
data->unk_00 = arg0;
data->unk_18 = 0;
if (arg0 >= 3) {
data->unk_14 = 30;
} else {
data->unk_14 = 100;
}
data->unk_10 = 255;
data->unk_3C = 4;
data->unk_40 = 2;
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->unk_48 = NULL;
data->unk_44 = NULL;
data->unk_1C = data->unk_20 = 0.0f;
data->unk_2C = 48.0f;
data->unk_30 = 32.0f;
data->unk_24 = data->unk_28 = 0.0f;
data->unk_34 = 8.0f;
data->unk_38 = 32.0f;
if (arg0 == 1 || arg0 == 2) {
if (arg0 == 1) {
shim_load_effect(EFFECT_GATHER_MAGIC);
data->unk_44 = gather_magic_main(0, -118.0f, 184.0f, 79.0f, 1.0f, -1);
shim_load_effect(EFFECT_BULB_GLOW);
bulb_glow_main(0, -120.0f, 189.0f, 77.0f, 1.0f, &data->unk_48);
} else {
shim_load_effect(EFFECT_SNAKING_STATIC);
data->unk_48 = snaking_static_main(0, -120.0f, 189.0f, 72.0f, 1.0f, 0);
data->unk_48->data.snakingStatic->unk_28 = 255;
data->unk_48->data.snakingStatic->unk_2C = 255;
data->unk_48->data.snakingStatic->unk_30 = 255;
data->unk_48->data.snakingStatic->unk_18 = 255;
data->unk_48->data.snakingStatic->unk_1C = 0;
data->unk_48->data.snakingStatic->unk_20 = 255;
}
}
if (arg0 >= 3) {
s32 effectArg0;
shim_load_effect(EFFECT_FLASHING_BOX_SHOCKWAVE);
if (gGameStatusPtr->isBattle == TRUE) {
effectArg0 = 3;
} else {
effectArg0 = 1;
}
flashing_box_shockwave_main(effectArg0, arg1, arg2, arg3, arg4, arg5);
}
return effect;
}
INCLUDE_ASM(s32, "effects/lightning", lightning_update);
void lightning_init(EffectInstance* effect) {
}
void lightning_update(EffectInstance* effect) {
LightningFXData* data = effect->data.lightning;
s32 unk_00;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_14 = 0;
}
unk_00 = data->unk_00;
if (data->unk_14 < 100) {
data->unk_14--;
}
data->unk_18++;
if (data->unk_14 < 0) {
shim_remove_effect(effect);
if (data->unk_48 != NULL) {
shim_remove_effect(data->unk_48);
data->unk_48 = NULL;
}
if (data->unk_44 != NULL) {
shim_remove_effect(data->unk_44);
data->unk_44 = NULL;
}
} else {
s32 unk_14 = data->unk_14;
s32 unk_18 = data->unk_18;
if (data->unk_44 != NULL && unk_18 >= 18) {
shim_remove_effect(data->unk_44);
data->unk_44 = NULL;
}
if (unk_00 < 3 || unk_18 < 7) {
data->unk_1C += data->unk_2C;
if (data->unk_1C < 0.0f) {
data->unk_1C += 256.0f;
} else if (data->unk_1C > 256.0f) {
data->unk_1C -= 256.0f;
}
if (unk_18 % data->unk_3C == 0) {
data->unk_20 += data->unk_30;
if (data->unk_20 < 0.0f) {
data->unk_20 += 64.0f;
} else if (data->unk_20 > 64.0f) {
data->unk_20 -= 64.0f;
}
}
if (unk_18 % data->unk_40 == 0) {
data->unk_24 += data->unk_34;
if (data->unk_24 < 0.0f) {
data->unk_24 += 256.0f;
} else if (data->unk_24 > 256.0f) {
data->unk_24 -= 256.0f;
}
}
data->unk_28 += data->unk_38;
if (data->unk_28 < 0.0f) {
data->unk_28 += 64.0f;
}
else if (data->unk_28 > 64.0f) {
data->unk_28 -= 64.0f;
}
}
if (unk_00 >= 3) {
if (unk_18 >= 7) {
data->unk_10 -= 13;
if (data->unk_10 < 0) {
data->unk_10 = 0;
}
}
} else if (unk_14 < 10) {
data->unk_10 -= 25;
if (data->unk_10 < 0) {
data->unk_10 = 0;
}
}
}
}
void lightning_render(EffectInstance* effect) {
RenderTask renderTask;
@ -23,4 +196,76 @@ void lightning_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
// There's a single instruction out of order
#if NON_MATCHING
void lightning_appendGfx(void* effect) {
LightningFXData* data = ((EffectInstance*)effect)->data.lightning;
s32 unk_00 = data->unk_00;
s32 unk_18 = data->unk_18;
Gfx* dlist = D_E006CB60[unk_00];
Gfx* dlist2 = D_E006CB78[unk_00];
Camera* camera = &gCameras[gCurrentCameraID];
Matrix4f sp20;
Matrix4f sp60;
u16 perspNorm;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
if (unk_00 != 1 || unk_18 >= 18) {
s32 ult2;
s32 uls2;
s32 uls;
s32 ult;
gSPDisplayList(gMasterGfxPos++, dlist2);
uls = data->unk_1C * 4.0f;
ult = data->unk_20 * 4.0f;
uls2 = data->unk_24 * 4.0f;
ult2 = data->unk_28 * 4.0f;
switch (unk_00) {
case 0:
case 1:
case 2:
shim_guPerspectiveF(sp20, &perspNorm, 30.0f, (f32) camera->viewportW / (f32) camera->viewportH, 4.0f, 16384.0f, 1.0f);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
shim_guTranslateF(sp20, data->unk_04, data->unk_08, -500.0f);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 255, 47, 198, 255);
break;
default:
shim_guTranslateF(sp20, data->unk_04, data->unk_08, data->unk_0C);
shim_guRotateF(sp60, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guTranslateF(sp60, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 255, 255, 0, data->unk_10);
break;
}
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, uls, ult, uls + 1020, ult + 124);
gDPSetTileSize(gMasterGfxPos++, 1, uls2, ult2, uls2 + 1020, ult2 + 124);
gSPDisplayList(gMasterGfxPos++, dlist);
gDPPipeSync(gMasterGfxPos++);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
if (unk_00 < 3) {
gSPMatrix(gMasterGfxPos++, &gDisplayContext->camPerspMatrix[gCurrentCameraID], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
}
gDPPipeSync(gMasterGfxPos++);
}
}
#else
INCLUDE_ASM(s32, "effects/lightning", lightning_appendGfx);
#endif

View File

@ -7,18 +7,114 @@ s32 D_E00BCD38[] = { 0x19191905, 0x19051919, 0x05191919, 0x04030201, 0x00000000,
s32 D_E00BCE40[] = { D_E00BCC30, D_E00BCD38, 0x00000000, 0x00000000 };
void lightning_bolt_init(EffectInstance* effect);
void lightning_bolt_update(EffectInstance* effect);
void lightning_bolt_render(EffectInstance* effect);
void lightning_bolt_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/lightning_bolt", lightning_bolt_main);
EffectInstance* lightning_bolt_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
f32 arg5,
f32 arg6,
f32 arg7,
s32 arg8)
{
EffectBlueprint bp;
EffectInstance* effect;
LightningBoltFXData* data;
s32 numParts = 1;
f32 temp;
void lightning_bolt_init(void) {
bp.init = lightning_bolt_init;
bp.update = lightning_bolt_update;
bp.renderWorld = lightning_bolt_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_LIGHTNING_BOLT;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.lightningBolt = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.lightningBolt != NULL);
data->unk_00 = arg0;
data->unk_2C = 0;
if (arg8 <= 0) {
data->unk_28 = 1000;
} else {
data->unk_28 = arg8;
}
data->unk_3C = 255;
data->unk_10 = arg1;
data->unk_14 = arg2;
data->unk_18 = arg3;
data->unk_1C = arg4;
data->unk_20 = arg5;
data->unk_24 = arg6;
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->unk_4C = arg7;
temp = SQ(arg1 - arg4) + SQ(arg2 - arg5) + SQ(arg3 - arg6);
if (temp != 0.0f) {
data->unk_114 = shim_sqrtf(temp) * 0.005;
data->unk_30 = 255;
data->unk_34 = 220;
data->unk_38 = 20;
data->unk_40 = 255;
data->unk_44 = 255;
data->unk_48 = 255;
data->unk_110 = shim_rand_int(359);
return effect;
} else {
return NULL;
}
}
void lightning_bolt_init(EffectInstance* effect) {
}
f32 func_E00BC1D8(f32 arg0) {
return (f32)shim_rand_int((s32)arg0) - arg0 * 0.5;
return (f32)shim_rand_int(arg0) - arg0 * 0.5;
}
INCLUDE_ASM(s32, "effects/lightning_bolt", lightning_bolt_update);
void lightning_bolt_update(EffectInstance* effect) {
LightningBoltFXData* data = effect->data.lightningBolt;
s32 unk_00 = data->unk_00;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_28 = 16;
}
if (data->unk_28 < 1000) {
data->unk_28--;
}
data->unk_2C++;
if (data->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
if (unk_00 == 2) {
if (data->unk_2C >= 40) {
data->unk_3C *= 0.5;
}
} else {
if (data->unk_2C >= 11) {
data->unk_3C *= 0.5;
}
}
}
void lightning_bolt_render(EffectInstance *effect) {
LightningBoltFXData* effect94 = effect->data.lightningBolt;

View File

@ -1762,12 +1762,12 @@ ApiStatus N(func_8024030C_CDC9AC)(Evt* script, s32 isInitialCall) {
ApiStatus N(func_80240340_CDC9E0)(Evt* script, s32 isInitialCall) {
EffectInstance* effect = (EffectInstance*) script->varTable[15];
effect->data.lightning->unk_30 = 69;
effect->data.lightning->unk_34 = 255;
effect->data.lightning->unk_38 = 217;
effect->data.lightning->unk_40 = 176;
effect->data.lightning->unk_44 = 254;
effect->data.lightning->unk_48 = 124;
effect->data.any[12] = 69;
effect->data.any[13] = 255;
effect->data.any[14] = 217;
effect->data.any[16] = 176;
effect->data.any[17] = 254;
effect->data.any[18] = 124;
return ApiStatus_DONE2;
}

View File

@ -10,9 +10,9 @@ ApiStatus func_80240910_B03190(Evt* script, s32 isInitialCall) {
s32 var2 = evt_get_variable(script, *args++);
s32 var3 = evt_get_variable(script, *args++);
effect->data.lightning->unk_30 = var1;
effect->data.lightning->unk_34 = var2;
effect->data.lightning->unk_38 = var3;
effect->data.any[12] = var1;
effect->data.any[13] = var2;
effect->data.any[14] = var3;
return ApiStatus_DONE2;
}

View File

@ -1,51 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E006A000
/* 36D020 E006A000 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 36D024 E006A004 AFB00010 */ sw $s0, 0x10($sp)
/* 36D028 E006A008 0080802D */ daddu $s0, $a0, $zero
/* 36D02C E006A00C 240400B4 */ addiu $a0, $zero, 0xb4
/* 36D030 E006A010 AFB10014 */ sw $s1, 0x14($sp)
/* 36D034 E006A014 00058840 */ sll $s1, $a1, 1
/* 36D038 E006A018 02258821 */ addu $s1, $s1, $a1
/* 36D03C E006A01C AFBF0018 */ sw $ra, 0x18($sp)
/* 36D040 E006A020 0C080011 */ jal func_E0200044
/* 36D044 E006A024 0220282D */ daddu $a1, $s1, $zero
/* 36D048 E006A028 240400B4 */ addiu $a0, $zero, 0xb4
/* 36D04C E006A02C 26250001 */ addiu $a1, $s1, 1
/* 36D050 E006A030 44820000 */ mtc1 $v0, $f0
/* 36D054 E006A034 00000000 */ nop
/* 36D058 E006A038 46800020 */ cvt.s.w $f0, $f0
/* 36D05C E006A03C 0C080011 */ jal func_E0200044
/* 36D060 E006A040 E6000070 */ swc1 $f0, 0x70($s0)
/* 36D064 E006A044 240400B4 */ addiu $a0, $zero, 0xb4
/* 36D068 E006A048 26250002 */ addiu $a1, $s1, 2
/* 36D06C E006A04C 44820000 */ mtc1 $v0, $f0
/* 36D070 E006A050 00000000 */ nop
/* 36D074 E006A054 46800020 */ cvt.s.w $f0, $f0
/* 36D078 E006A058 0C080011 */ jal func_E0200044
/* 36D07C E006A05C E6000074 */ swc1 $f0, 0x74($s0)
/* 36D080 E006A060 44820000 */ mtc1 $v0, $f0
/* 36D084 E006A064 00000000 */ nop
/* 36D088 E006A068 46800020 */ cvt.s.w $f0, $f0
/* 36D08C E006A06C E6000078 */ swc1 $f0, 0x78($s0)
/* 36D090 E006A070 C6000068 */ lwc1 $f0, 0x68($s0)
/* 36D094 E006A074 8E02007C */ lw $v0, 0x7c($s0)
/* 36D098 E006A078 C602006C */ lwc1 $f2, 0x6c($s0)
/* 36D09C E006A07C C6040070 */ lwc1 $f4, 0x70($s0)
/* 36D0A0 E006A080 C6060074 */ lwc1 $f6, 0x74($s0)
/* 36D0A4 E006A084 C6080078 */ lwc1 $f8, 0x78($s0)
/* 36D0A8 E006A088 AE000024 */ sw $zero, 0x24($s0)
/* 36D0AC E006A08C AE00002C */ sw $zero, 0x2c($s0)
/* 36D0B0 E006A090 E6000058 */ swc1 $f0, 0x58($s0)
/* 36D0B4 E006A094 AE020028 */ sw $v0, 0x28($s0)
/* 36D0B8 E006A098 E602008C */ swc1 $f2, 0x8c($s0)
/* 36D0BC E006A09C E604005C */ swc1 $f4, 0x5c($s0)
/* 36D0C0 E006A0A0 E6060060 */ swc1 $f6, 0x60($s0)
/* 36D0C4 E006A0A4 E6080064 */ swc1 $f8, 0x64($s0)
/* 36D0C8 E006A0A8 8FBF0018 */ lw $ra, 0x18($sp)
/* 36D0CC E006A0AC 8FB10014 */ lw $s1, 0x14($sp)
/* 36D0D0 E006A0B0 8FB00010 */ lw $s0, 0x10($sp)
/* 36D0D4 E006A0B4 03E00008 */ jr $ra
/* 36D0D8 E006A0B8 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,86 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E006AF50
.double 0.1
.section .text
glabel func_E006A0BC
/* 36D0DC E006A0BC 24A2FFFF */ addiu $v0, $a1, -1
/* 36D0E0 E006A0C0 00021880 */ sll $v1, $v0, 2
/* 36D0E4 E006A0C4 00621821 */ addu $v1, $v1, $v0
/* 36D0E8 E006A0C8 00031080 */ sll $v0, $v1, 2
/* 36D0EC E006A0CC 24630001 */ addiu $v1, $v1, 1
/* 36D0F0 E006A0D0 00033080 */ sll $a2, $v1, 2
/* 36D0F4 E006A0D4 24630001 */ addiu $v1, $v1, 1
/* 36D0F8 E006A0D8 00033880 */ sll $a3, $v1, 2
/* 36D0FC E006A0DC 24630001 */ addiu $v1, $v1, 1
/* 36D100 E006A0E0 00052840 */ sll $a1, $a1, 1
/* 36D104 E006A0E4 24A5001E */ addiu $a1, $a1, 0x1e
/* 36D108 E006A0E8 AC800058 */ sw $zero, 0x58($a0)
/* 36D10C E006A0EC AC850028 */ sw $a1, 0x28($a0)
/* 36D110 E006A0F0 3C01E007 */ lui $at, %hi(D_E006AE10)
/* 36D114 E006A0F4 00220821 */ addu $at, $at, $v0
/* 36D118 E006A0F8 C420AE10 */ lwc1 $f0, %lo(D_E006AE10)($at)
/* 36D11C E006A0FC 46800020 */ cvt.s.w $f0, $f0
/* 36D120 E006A100 E480005C */ swc1 $f0, 0x5c($a0)
/* 36D124 E006A104 3C01E007 */ lui $at, %hi(D_E006AE10)
/* 36D128 E006A108 00260821 */ addu $at, $at, $a2
/* 36D12C E006A10C C420AE10 */ lwc1 $f0, %lo(D_E006AE10)($at)
/* 36D130 E006A110 46800020 */ cvt.s.w $f0, $f0
/* 36D134 E006A114 E4800060 */ swc1 $f0, 0x60($a0)
/* 36D138 E006A118 3C01E007 */ lui $at, %hi(D_E006AE10)
/* 36D13C E006A11C 00270821 */ addu $at, $at, $a3
/* 36D140 E006A120 C420AE10 */ lwc1 $f0, %lo(D_E006AE10)($at)
/* 36D144 E006A124 46800020 */ cvt.s.w $f0, $f0
/* 36D148 E006A128 44801000 */ mtc1 $zero, $f2
/* 36D14C E006A12C 3C01BF19 */ lui $at, 0xbf19
/* 36D150 E006A130 3421999A */ ori $at, $at, 0x999a
/* 36D154 E006A134 44812000 */ mtc1 $at, $f4
/* 36D158 E006A138 3C014120 */ lui $at, 0x4120
/* 36D15C E006A13C 44813000 */ mtc1 $at, $f6
/* 36D160 E006A140 3C013F19 */ lui $at, 0x3f19
/* 36D164 E006A144 3421999A */ ori $at, $at, 0x999a
/* 36D168 E006A148 44814000 */ mtc1 $at, $f8
/* 36D16C E006A14C 00031080 */ sll $v0, $v1, 2
/* 36D170 E006A150 E4800064 */ swc1 $f0, 0x64($a0)
/* 36D174 E006A154 AC800024 */ sw $zero, 0x24($a0)
/* 36D178 E006A158 AC80002C */ sw $zero, 0x2c($a0)
/* 36D17C E006A15C E4820038 */ swc1 $f2, 0x38($a0)
/* 36D180 E006A160 E4820034 */ swc1 $f2, 0x34($a0)
/* 36D184 E006A164 E4820048 */ swc1 $f2, 0x48($a0)
/* 36D188 E006A168 E484004C */ swc1 $f4, 0x4c($a0)
/* 36D18C E006A16C E486003C */ swc1 $f6, 0x3c($a0)
/* 36D190 E006A170 E4820040 */ swc1 $f2, 0x40($a0)
/* 36D194 E006A174 E4820050 */ swc1 $f2, 0x50($a0)
/* 36D198 E006A178 E4880054 */ swc1 $f8, 0x54($a0)
/* 36D19C E006A17C E4820080 */ swc1 $f2, 0x80($a0)
/* 36D1A0 E006A180 3C01E007 */ lui $at, %hi(D_E006AE10)
/* 36D1A4 E006A184 00220821 */ addu $at, $at, $v0
/* 36D1A8 E006A188 C420AE10 */ lwc1 $f0, %lo(D_E006AE10)($at)
/* 36D1AC E006A18C 46800020 */ cvt.s.w $f0, $f0
/* 36D1B0 E006A190 44801000 */ mtc1 $zero, $f2
/* 36D1B4 E006A194 44801800 */ mtc1 $zero, $f3
/* 36D1B8 E006A198 46000021 */ cvt.d.s $f0, $f0
/* 36D1BC E006A19C 46220002 */ mul.d $f0, $f0, $f2
/* 36D1C0 E006A1A0 00000000 */ nop
/* 36D1C4 E006A1A4 24630001 */ addiu $v1, $v1, 1
/* 36D1C8 E006A1A8 00031880 */ sll $v1, $v1, 2
/* 36D1CC E006A1AC 3C01E007 */ lui $at, %hi(D_E006AF50)
/* 36D1D0 E006A1B0 D422AF50 */ ldc1 $f2, %lo(D_E006AF50)($at)
/* 36D1D4 E006A1B4 46200020 */ cvt.s.d $f0, $f0
/* 36D1D8 E006A1B8 E4800084 */ swc1 $f0, 0x84($a0)
/* 36D1DC E006A1BC 3C01E007 */ lui $at, %hi(D_E006AE10)
/* 36D1E0 E006A1C0 00230821 */ addu $at, $at, $v1
/* 36D1E4 E006A1C4 C420AE10 */ lwc1 $f0, %lo(D_E006AE10)($at)
/* 36D1E8 E006A1C8 46800020 */ cvt.s.w $f0, $f0
/* 36D1EC E006A1CC 46000021 */ cvt.d.s $f0, $f0
/* 36D1F0 E006A1D0 46220002 */ mul.d $f0, $f0, $f2
/* 36D1F4 E006A1D4 00000000 */ nop
/* 36D1F8 E006A1D8 AC800090 */ sw $zero, 0x90($a0)
/* 36D1FC E006A1DC 46200020 */ cvt.s.d $f0, $f0
/* 36D200 E006A1E0 03E00008 */ jr $ra
/* 36D204 E006A1E4 E4800088 */ swc1 $f0, 0x88($a0)

View File

@ -1,83 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E006A464
/* 36D484 E006A464 C4820034 */ lwc1 $f2, 0x34($a0)
/* 36D488 E006A468 C4800048 */ lwc1 $f0, 0x48($a0)
/* 36D48C E006A46C 46001000 */ add.s $f0, $f2, $f0
/* 36D490 E006A470 3C014380 */ lui $at, 0x4380
/* 36D494 E006A474 44812000 */ mtc1 $at, $f4
/* 36D498 E006A478 00000000 */ nop
/* 36D49C E006A47C 4600203C */ c.lt.s $f4, $f0
/* 36D4A0 E006A480 00000000 */ nop
/* 36D4A4 E006A484 45000003 */ bc1f .LE006A494
/* 36D4A8 E006A488 E4800034 */ swc1 $f0, 0x34($a0)
/* 36D4AC E006A48C 46040001 */ sub.s $f0, $f0, $f4
/* 36D4B0 E006A490 E4800034 */ swc1 $f0, 0x34($a0)
.LE006A494:
/* 36D4B4 E006A494 C4800034 */ lwc1 $f0, 0x34($a0)
/* 36D4B8 E006A498 44803000 */ mtc1 $zero, $f6
/* 36D4BC E006A49C 00000000 */ nop
/* 36D4C0 E006A4A0 4606003C */ c.lt.s $f0, $f6
/* 36D4C4 E006A4A4 00000000 */ nop
/* 36D4C8 E006A4A8 45000003 */ bc1f .LE006A4B8
/* 36D4CC E006A4AC 00000000 */ nop
/* 36D4D0 E006A4B0 46040000 */ add.s $f0, $f0, $f4
/* 36D4D4 E006A4B4 E4800034 */ swc1 $f0, 0x34($a0)
.LE006A4B8:
/* 36D4D8 E006A4B8 C482003C */ lwc1 $f2, 0x3c($a0)
/* 36D4DC E006A4BC C4800050 */ lwc1 $f0, 0x50($a0)
/* 36D4E0 E006A4C0 46001000 */ add.s $f0, $f2, $f0
/* 36D4E4 E006A4C4 4600203C */ c.lt.s $f4, $f0
/* 36D4E8 E006A4C8 00000000 */ nop
/* 36D4EC E006A4CC 45000003 */ bc1f .LE006A4DC
/* 36D4F0 E006A4D0 E480003C */ swc1 $f0, 0x3c($a0)
/* 36D4F4 E006A4D4 46040001 */ sub.s $f0, $f0, $f4
/* 36D4F8 E006A4D8 E480003C */ swc1 $f0, 0x3c($a0)
.LE006A4DC:
/* 36D4FC E006A4DC C480003C */ lwc1 $f0, 0x3c($a0)
/* 36D500 E006A4E0 4606003C */ c.lt.s $f0, $f6
/* 36D504 E006A4E4 00000000 */ nop
/* 36D508 E006A4E8 45000003 */ bc1f .LE006A4F8
/* 36D50C E006A4EC 00000000 */ nop
/* 36D510 E006A4F0 46040000 */ add.s $f0, $f0, $f4
/* 36D514 E006A4F4 E480003C */ swc1 $f0, 0x3c($a0)
.LE006A4F8:
/* 36D518 E006A4F8 C4820038 */ lwc1 $f2, 0x38($a0)
/* 36D51C E006A4FC C480004C */ lwc1 $f0, 0x4c($a0)
/* 36D520 E006A500 46001000 */ add.s $f0, $f2, $f0
/* 36D524 E006A504 4600203C */ c.lt.s $f4, $f0
/* 36D528 E006A508 00000000 */ nop
/* 36D52C E006A50C 45000003 */ bc1f .LE006A51C
/* 36D530 E006A510 E4800038 */ swc1 $f0, 0x38($a0)
/* 36D534 E006A514 46040001 */ sub.s $f0, $f0, $f4
/* 36D538 E006A518 E4800038 */ swc1 $f0, 0x38($a0)
.LE006A51C:
/* 36D53C E006A51C C4800038 */ lwc1 $f0, 0x38($a0)
/* 36D540 E006A520 4606003C */ c.lt.s $f0, $f6
/* 36D544 E006A524 00000000 */ nop
/* 36D548 E006A528 45000003 */ bc1f .LE006A538
/* 36D54C E006A52C 00000000 */ nop
/* 36D550 E006A530 46040000 */ add.s $f0, $f0, $f4
/* 36D554 E006A534 E4800038 */ swc1 $f0, 0x38($a0)
.LE006A538:
/* 36D558 E006A538 C4820040 */ lwc1 $f2, 0x40($a0)
/* 36D55C E006A53C C4800054 */ lwc1 $f0, 0x54($a0)
/* 36D560 E006A540 46001000 */ add.s $f0, $f2, $f0
/* 36D564 E006A544 4600203C */ c.lt.s $f4, $f0
/* 36D568 E006A548 00000000 */ nop
/* 36D56C E006A54C 45000003 */ bc1f .LE006A55C
/* 36D570 E006A550 E4800040 */ swc1 $f0, 0x40($a0)
/* 36D574 E006A554 46040001 */ sub.s $f0, $f0, $f4
/* 36D578 E006A558 E4800040 */ swc1 $f0, 0x40($a0)
.LE006A55C:
/* 36D57C E006A55C C4800040 */ lwc1 $f0, 0x40($a0)
/* 36D580 E006A560 4606003C */ c.lt.s $f0, $f6
/* 36D584 E006A564 00000000 */ nop
/* 36D588 E006A568 45000003 */ bc1f .LE006A578
/* 36D58C E006A56C 00000000 */ nop
/* 36D590 E006A570 46040000 */ add.s $f0, $f0, $f4
/* 36D594 E006A574 E4800040 */ swc1 $f0, 0x40($a0)
.LE006A578:
/* 36D598 E006A578 03E00008 */ jr $ra
/* 36D59C E006A57C 00000000 */ nop

View File

@ -1,64 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E006A85C
/* 36D87C E006A85C 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 36D880 E006A860 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 36D884 E006A864 C4820034 */ lwc1 $f2, 0x34($a0)
/* 36D888 E006A868 3C014080 */ lui $at, 0x4080
/* 36D88C E006A86C 44812000 */ mtc1 $at, $f4
/* 36D890 E006A870 3C08F200 */ lui $t0, 0xf200
/* 36D894 E006A874 46041082 */ mul.s $f2, $f2, $f4
/* 36D898 E006A878 00000000 */ nop
/* 36D89C E006A87C 8C670000 */ lw $a3, ($v1)
/* 36D8A0 E006A880 C4800038 */ lwc1 $f0, 0x38($a0)
/* 36D8A4 E006A884 00E0482D */ daddu $t1, $a3, $zero
/* 36D8A8 E006A888 24E70008 */ addiu $a3, $a3, 8
/* 36D8AC E006A88C 46040002 */ mul.s $f0, $f0, $f4
/* 36D8B0 E006A890 00000000 */ nop
/* 36D8B4 E006A894 24E20008 */ addiu $v0, $a3, 8
/* 36D8B8 E006A898 AC670000 */ sw $a3, ($v1)
/* 36D8BC E006A89C AC620000 */ sw $v0, ($v1)
/* 36D8C0 E006A8A0 4600118D */ trunc.w.s $f6, $f2
/* 36D8C4 E006A8A4 44023000 */ mfc1 $v0, $f6
/* 36D8C8 E006A8A8 4600018D */ trunc.w.s $f6, $f0
/* 36D8CC E006A8AC 44063000 */ mfc1 $a2, $f6
/* 36D8D0 E006A8B0 30450FFF */ andi $a1, $v0, 0xfff
/* 36D8D4 E006A8B4 00052B00 */ sll $a1, $a1, 0xc
/* 36D8D8 E006A8B8 30C30FFF */ andi $v1, $a2, 0xfff
/* 36D8DC E006A8BC 00681825 */ or $v1, $v1, $t0
/* 36D8E0 E006A8C0 00A32825 */ or $a1, $a1, $v1
/* 36D8E4 E006A8C4 24420200 */ addiu $v0, $v0, 0x200
/* 36D8E8 E006A8C8 C480003C */ lwc1 $f0, 0x3c($a0)
/* 36D8EC E006A8CC 30420FFF */ andi $v0, $v0, 0xfff
/* 36D8F0 E006A8D0 46040002 */ mul.s $f0, $f0, $f4
/* 36D8F4 E006A8D4 00000000 */ nop
/* 36D8F8 E006A8D8 00021300 */ sll $v0, $v0, 0xc
/* 36D8FC E006A8DC 24C60100 */ addiu $a2, $a2, 0x100
/* 36D900 E006A8E0 C4820040 */ lwc1 $f2, 0x40($a0)
/* 36D904 E006A8E4 30C60FFF */ andi $a2, $a2, 0xfff
/* 36D908 E006A8E8 46041082 */ mul.s $f2, $f2, $f4
/* 36D90C E006A8EC 00000000 */ nop
/* 36D910 E006A8F0 00461025 */ or $v0, $v0, $a2
/* 36D914 E006A8F4 AD250000 */ sw $a1, ($t1)
/* 36D918 E006A8F8 AD220004 */ sw $v0, 4($t1)
/* 36D91C E006A8FC 4600018D */ trunc.w.s $f6, $f0
/* 36D920 E006A900 44043000 */ mfc1 $a0, $f6
/* 36D924 E006A904 4600118D */ trunc.w.s $f6, $f2
/* 36D928 E006A908 44053000 */ mfc1 $a1, $f6
/* 36D92C E006A90C 30830FFF */ andi $v1, $a0, 0xfff
/* 36D930 E006A910 00031B00 */ sll $v1, $v1, 0xc
/* 36D934 E006A914 30A20FFF */ andi $v0, $a1, 0xfff
/* 36D938 E006A918 00481025 */ or $v0, $v0, $t0
/* 36D93C E006A91C 00621825 */ or $v1, $v1, $v0
/* 36D940 E006A920 24840200 */ addiu $a0, $a0, 0x200
/* 36D944 E006A924 30840FFF */ andi $a0, $a0, 0xfff
/* 36D948 E006A928 00042300 */ sll $a0, $a0, 0xc
/* 36D94C E006A92C 24A50100 */ addiu $a1, $a1, 0x100
/* 36D950 E006A930 30A50FFF */ andi $a1, $a1, 0xfff
/* 36D954 E006A934 3C020100 */ lui $v0, 0x100
/* 36D958 E006A938 00A22825 */ or $a1, $a1, $v0
/* 36D95C E006A93C 00852025 */ or $a0, $a0, $a1
/* 36D960 E006A940 ACE30000 */ sw $v1, ($a3)
/* 36D964 E006A944 03E00008 */ jr $ra
/* 36D968 E006A948 ACE40004 */ sw $a0, 4($a3)

View File

@ -1,323 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E006AF58
.double 0.3
dlabel D_E006AF60
.double 0.9, 0.0
.section .text
glabel light_rays_appendGfx
/* 36D96C E006A94C 27BDFEE0 */ addiu $sp, $sp, -0x120
/* 36D970 E006A950 AFA40120 */ sw $a0, 0x120($sp)
/* 36D974 E006A954 8FA80120 */ lw $t0, 0x120($sp)
/* 36D978 E006A958 3C07DB06 */ lui $a3, 0xdb06
/* 36D97C E006A95C AFB100E4 */ sw $s1, 0xe4($sp)
/* 36D980 E006A960 3C11800A */ lui $s1, %hi(gMasterGfxPos)
/* 36D984 E006A964 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
/* 36D988 E006A968 AFBF0104 */ sw $ra, 0x104($sp)
/* 36D98C E006A96C AFBE0100 */ sw $fp, 0x100($sp)
/* 36D990 E006A970 AFB700FC */ sw $s7, 0xfc($sp)
/* 36D994 E006A974 AFB600F8 */ sw $s6, 0xf8($sp)
/* 36D998 E006A978 AFB500F4 */ sw $s5, 0xf4($sp)
/* 36D99C E006A97C AFB400F0 */ sw $s4, 0xf0($sp)
/* 36D9A0 E006A980 AFB300EC */ sw $s3, 0xec($sp)
/* 36D9A4 E006A984 AFB200E8 */ sw $s2, 0xe8($sp)
/* 36D9A8 E006A988 AFB000E0 */ sw $s0, 0xe0($sp)
/* 36D9AC E006A98C F7B80118 */ sdc1 $f24, 0x118($sp)
/* 36D9B0 E006A990 F7B60110 */ sdc1 $f22, 0x110($sp)
/* 36D9B4 E006A994 F7B40108 */ sdc1 $f20, 0x108($sp)
/* 36D9B8 E006A998 8E230000 */ lw $v1, ($s1)
/* 36D9BC E006A99C 8D12000C */ lw $s2, 0xc($t0)
/* 36D9C0 E006A9A0 0060282D */ daddu $a1, $v1, $zero
/* 36D9C4 E006A9A4 8E570000 */ lw $s7, ($s2)
/* 36D9C8 E006A9A8 24630008 */ addiu $v1, $v1, 8
/* 36D9CC E006A9AC AE230000 */ sw $v1, ($s1)
/* 36D9D0 E006A9B0 00171080 */ sll $v0, $s7, 2
/* 36D9D4 E006A9B4 3C08E007 */ lui $t0, %hi(D_E006ADF0)
/* 36D9D8 E006A9B8 01024021 */ addu $t0, $t0, $v0
/* 36D9DC E006A9BC 8D08ADF0 */ lw $t0, %lo(D_E006ADF0)($t0)
/* 36D9E0 E006A9C0 34E70024 */ ori $a3, $a3, 0x24
/* 36D9E4 E006A9C4 AFA800D8 */ sw $t0, 0xd8($sp)
/* 36D9E8 E006A9C8 3C06E007 */ lui $a2, %hi(D_E006AE00)
/* 36D9EC E006A9CC 00C23021 */ addu $a2, $a2, $v0
/* 36D9F0 E006A9D0 8CC6AE00 */ lw $a2, %lo(D_E006AE00)($a2)
/* 36D9F4 E006A9D4 3C02E700 */ lui $v0, 0xe700
/* 36D9F8 E006A9D8 ACA20000 */ sw $v0, ($a1)
/* 36D9FC E006A9DC ACA00004 */ sw $zero, 4($a1)
/* 36DA00 E006A9E0 AC670000 */ sw $a3, ($v1)
/* 36DA04 E006A9E4 8FA80120 */ lw $t0, 0x120($sp)
/* 36DA08 E006A9E8 27A40098 */ addiu $a0, $sp, 0x98
/* 36DA0C E006A9EC 8D050010 */ lw $a1, 0x10($t0)
/* 36DA10 E006A9F0 24620008 */ addiu $v0, $v1, 8
/* 36DA14 E006A9F4 AE220000 */ sw $v0, ($s1)
/* 36DA18 E006A9F8 8CA5001C */ lw $a1, 0x1c($a1)
/* 36DA1C E006A9FC 3C02DE00 */ lui $v0, 0xde00
/* 36DA20 E006AA00 AC620008 */ sw $v0, 8($v1)
/* 36DA24 E006AA04 3C028000 */ lui $v0, 0x8000
/* 36DA28 E006AA08 AC66000C */ sw $a2, 0xc($v1)
/* 36DA2C E006AA0C 00A22821 */ addu $a1, $a1, $v0
/* 36DA30 E006AA10 AC650004 */ sw $a1, 4($v1)
/* 36DA34 E006AA14 8E450010 */ lw $a1, 0x10($s2)
/* 36DA38 E006AA18 8E460014 */ lw $a2, 0x14($s2)
/* 36DA3C E006AA1C 8E470018 */ lw $a3, 0x18($s2)
/* 36DA40 E006AA20 24630010 */ addiu $v1, $v1, 0x10
/* 36DA44 E006AA24 0C080108 */ jal shim_guTranslateF
/* 36DA48 E006AA28 AE230000 */ sw $v1, ($s1)
/* 36DA4C E006AA2C 8FA80120 */ lw $t0, 0x120($sp)
/* 36DA50 E006AA30 24140001 */ addiu $s4, $zero, 1
/* 36DA54 E006AA34 8D020008 */ lw $v0, 8($t0)
/* 36DA58 E006AA38 0282102A */ slt $v0, $s4, $v0
/* 36DA5C E006AA3C 104000D2 */ beqz $v0, .LE006AD88
/* 36DA60 E006AA40 26520094 */ addiu $s2, $s2, 0x94
/* 36DA64 E006AA44 2AF60002 */ slti $s6, $s7, 2
/* 36DA68 E006AA48 27B00058 */ addiu $s0, $sp, 0x58
/* 36DA6C E006AA4C 0220982D */ daddu $s3, $s1, $zero
/* 36DA70 E006AA50 3C1E8007 */ lui $fp, %hi(gMatrixListPos)
/* 36DA74 E006AA54 27DE41F0 */ addiu $fp, $fp, %lo(gMatrixListPos)
/* 36DA78 E006AA58 3C150001 */ lui $s5, 1
/* 36DA7C E006AA5C 36B51630 */ ori $s5, $s5, 0x1630
/* 36DA80 E006AA60 26510024 */ addiu $s1, $s2, 0x24
/* 36DA84 E006AA64 3C013F80 */ lui $at, 0x3f80
/* 36DA88 E006AA68 4481C000 */ mtc1 $at, $f24
/* 36DA8C E006AA6C 4480B000 */ mtc1 $zero, $f22
.LE006AA70:
/* 36DA90 E006AA70 3C01437F */ lui $at, 0x437f
/* 36DA94 E006AA74 44811000 */ mtc1 $at, $f2
/* 36DA98 E006AA78 C6200000 */ lwc1 $f0, ($s1)
/* 36DA9C E006AA7C 46800020 */ cvt.s.w $f0, $f0
/* 36DAA0 E006AA80 16C00003 */ bnez $s6, .LE006AA90
/* 36DAA4 E006AA84 46020503 */ div.s $f20, $f0, $f2
/* 36DAA8 E006AA88 0C01AA17 */ jal func_E006A85C
/* 36DAAC E006AA8C 0240202D */ daddu $a0, $s2, $zero
.LE006AA90:
/* 36DAB0 E006AA90 E7B60010 */ swc1 $f22, 0x10($sp)
/* 36DAB4 E006AA94 8E250038 */ lw $a1, 0x38($s1)
/* 36DAB8 E006AA98 4406C000 */ mfc1 $a2, $f24
/* 36DABC E006AA9C 4407B000 */ mfc1 $a3, $f22
/* 36DAC0 E006AAA0 0C080104 */ jal shim_guRotateF
/* 36DAC4 E006AAA4 0200202D */ daddu $a0, $s0, $zero
/* 36DAC8 E006AAA8 0200202D */ daddu $a0, $s0, $zero
/* 36DACC E006AAAC 27A50098 */ addiu $a1, $sp, 0x98
/* 36DAD0 E006AAB0 0C080114 */ jal shim_guMtxCatF
/* 36DAD4 E006AAB4 27A60018 */ addiu $a2, $sp, 0x18
/* 36DAD8 E006AAB8 56C00060 */ bnel $s6, $zero, .LE006AC3C
/* 36DADC E006AABC E7B60010 */ swc1 $f22, 0x10($sp)
/* 36DAE0 E006AAC0 C6220040 */ lwc1 $f2, 0x40($s1)
/* 36DAE4 E006AAC4 24020003 */ addiu $v0, $zero, 3
/* 36DAE8 E006AAC8 56E20005 */ bnel $s7, $v0, .LE006AAE0
/* 36DAEC E006AACC 46161000 */ add.s $f0, $f2, $f22
/* 36DAF0 E006AAD0 3C014234 */ lui $at, 0x4234
/* 36DAF4 E006AAD4 44810000 */ mtc1 $at, $f0
/* 36DAF8 E006AAD8 00000000 */ nop
/* 36DAFC E006AADC 46001000 */ add.s $f0, $f2, $f0
.LE006AAE0:
/* 36DB00 E006AAE0 44050000 */ mfc1 $a1, $f0
/* 36DB04 E006AAE4 4406B000 */ mfc1 $a2, $f22
/* 36DB08 E006AAE8 4407B000 */ mfc1 $a3, $f22
/* 36DB0C E006AAEC 0200202D */ daddu $a0, $s0, $zero
/* 36DB10 E006AAF0 0C080104 */ jal shim_guRotateF
/* 36DB14 E006AAF4 E7B80010 */ swc1 $f24, 0x10($sp)
/* 36DB18 E006AAF8 0200202D */ daddu $a0, $s0, $zero
/* 36DB1C E006AAFC 27A50018 */ addiu $a1, $sp, 0x18
/* 36DB20 E006AB00 0C080114 */ jal shim_guMtxCatF
/* 36DB24 E006AB04 00A0302D */ daddu $a2, $a1, $zero
/* 36DB28 E006AB08 E7B60010 */ swc1 $f22, 0x10($sp)
/* 36DB2C E006AB0C 8E25003C */ lw $a1, 0x3c($s1)
/* 36DB30 E006AB10 4406B000 */ mfc1 $a2, $f22
/* 36DB34 E006AB14 4407C000 */ mfc1 $a3, $f24
/* 36DB38 E006AB18 0C080104 */ jal shim_guRotateF
/* 36DB3C E006AB1C 0200202D */ daddu $a0, $s0, $zero
/* 36DB40 E006AB20 0200202D */ daddu $a0, $s0, $zero
/* 36DB44 E006AB24 27A50018 */ addiu $a1, $sp, 0x18
/* 36DB48 E006AB28 0C080114 */ jal shim_guMtxCatF
/* 36DB4C E006AB2C 00A0302D */ daddu $a2, $a1, $zero
/* 36DB50 E006AB30 8E250034 */ lw $a1, 0x34($s1)
/* 36DB54 E006AB34 4406B000 */ mfc1 $a2, $f22
/* 36DB58 E006AB38 4407B000 */ mfc1 $a3, $f22
/* 36DB5C E006AB3C 0C080108 */ jal shim_guTranslateF
/* 36DB60 E006AB40 0200202D */ daddu $a0, $s0, $zero
/* 36DB64 E006AB44 0200202D */ daddu $a0, $s0, $zero
/* 36DB68 E006AB48 27A50018 */ addiu $a1, $sp, 0x18
/* 36DB6C E006AB4C 0C080114 */ jal shim_guMtxCatF
/* 36DB70 E006AB50 00A0302D */ daddu $a2, $a1, $zero
/* 36DB74 E006AB54 3C014040 */ lui $at, 0x4040
/* 36DB78 E006AB58 44810000 */ mtc1 $at, $f0
/* 36DB7C E006AB5C 00000000 */ nop
/* 36DB80 E006AB60 4600A000 */ add.s $f0, $f20, $f0
/* 36DB84 E006AB64 3C013FD0 */ lui $at, 0x3fd0
/* 36DB88 E006AB68 44811800 */ mtc1 $at, $f3
/* 36DB8C E006AB6C 44801000 */ mtc1 $zero, $f2
/* 36DB90 E006AB70 46000021 */ cvt.d.s $f0, $f0
/* 36DB94 E006AB74 46220002 */ mul.d $f0, $f0, $f2
/* 36DB98 E006AB78 00000000 */ nop
/* 36DB9C E006AB7C 32830003 */ andi $v1, $s4, 3
/* 36DBA0 E006AB80 24020001 */ addiu $v0, $zero, 1
/* 36DBA4 E006AB84 46200120 */ cvt.s.d $f4, $f0
/* 36DBA8 E006AB88 10620010 */ beq $v1, $v0, .LE006ABCC
/* 36DBAC E006AB8C 46002186 */ mov.s $f6, $f4
/* 36DBB0 E006AB90 28620002 */ slti $v0, $v1, 2
/* 36DBB4 E006AB94 10400005 */ beqz $v0, .LE006ABAC
/* 36DBB8 E006AB98 24020002 */ addiu $v0, $zero, 2
/* 36DBBC E006AB9C 10600007 */ beqz $v1, .LE006ABBC
/* 36DBC0 E006ABA0 00000000 */ nop
/* 36DBC4 E006ABA4 0801AAFD */ j .LE006ABF4
/* 36DBC8 E006ABA8 4600A006 */ mov.s $f0, $f20
.LE006ABAC:
/* 36DBCC E006ABAC 5062000C */ beql $v1, $v0, .LE006ABE0
/* 36DBD0 E006ABB0 4600A021 */ cvt.d.s $f0, $f20
/* 36DBD4 E006ABB4 0801AAFD */ j .LE006ABF4
/* 36DBD8 E006ABB8 4600A006 */ mov.s $f0, $f20
.LE006ABBC:
/* 36DBDC E006ABBC 3C01E007 */ lui $at, %hi(D_E006AF58)
/* 36DBE0 E006ABC0 D422AF58 */ ldc1 $f2, %lo(D_E006AF58)($at)
/* 36DBE4 E006ABC4 0801AAFA */ j .LE006ABE8
/* 36DBE8 E006ABC8 4600A021 */ cvt.d.s $f0, $f20
.LE006ABCC:
/* 36DBEC E006ABCC 3C013FE0 */ lui $at, 0x3fe0
/* 36DBF0 E006ABD0 44811800 */ mtc1 $at, $f3
/* 36DBF4 E006ABD4 44801000 */ mtc1 $zero, $f2
/* 36DBF8 E006ABD8 0801AAFA */ j .LE006ABE8
/* 36DBFC E006ABDC 4600A021 */ cvt.d.s $f0, $f20
.LE006ABE0:
/* 36DC00 E006ABE0 3C01E007 */ lui $at, %hi(D_E006AF60)
/* 36DC04 E006ABE4 D422AF60 */ ldc1 $f2, %lo(D_E006AF60)($at)
.LE006ABE8:
/* 36DC08 E006ABE8 46220002 */ mul.d $f0, $f0, $f2
/* 36DC0C E006ABEC 00000000 */ nop
/* 36DC10 E006ABF0 46200020 */ cvt.s.d $f0, $f0
.LE006ABF4:
/* 36DC14 E006ABF4 44053000 */ mfc1 $a1, $f6
/* 36DC18 E006ABF8 44060000 */ mfc1 $a2, $f0
/* 36DC1C E006ABFC 44072000 */ mfc1 $a3, $f4
/* 36DC20 E006AC00 0C080110 */ jal shim_guScaleF
/* 36DC24 E006AC04 0200202D */ daddu $a0, $s0, $zero
/* 36DC28 E006AC08 0200202D */ daddu $a0, $s0, $zero
/* 36DC2C E006AC0C 27A50018 */ addiu $a1, $sp, 0x18
/* 36DC30 E006AC10 0C080114 */ jal shim_guMtxCatF
/* 36DC34 E006AC14 00A0302D */ daddu $a2, $a1, $zero
/* 36DC38 E006AC18 8E620000 */ lw $v0, ($s3)
/* 36DC3C E006AC1C 0040202D */ daddu $a0, $v0, $zero
/* 36DC40 E006AC20 24420008 */ addiu $v0, $v0, 8
/* 36DC44 E006AC24 AE620000 */ sw $v0, ($s3)
/* 36DC48 E006AC28 3C02FA00 */ lui $v0, 0xfa00
/* 36DC4C E006AC2C AC820000 */ sw $v0, ($a0)
/* 36DC50 E006AC30 92220003 */ lbu $v0, 3($s1)
/* 36DC54 E006AC34 0801AB33 */ j .LE006ACCC
/* 36DC58 E006AC38 2403F000 */ addiu $v1, $zero, -0x1000
.LE006AC3C:
/* 36DC5C E006AC3C 8E25003C */ lw $a1, 0x3c($s1)
/* 36DC60 E006AC40 4406B000 */ mfc1 $a2, $f22
/* 36DC64 E006AC44 4407C000 */ mfc1 $a3, $f24
/* 36DC68 E006AC48 0C080104 */ jal shim_guRotateF
/* 36DC6C E006AC4C 0200202D */ daddu $a0, $s0, $zero
/* 36DC70 E006AC50 0200202D */ daddu $a0, $s0, $zero
/* 36DC74 E006AC54 27A50018 */ addiu $a1, $sp, 0x18
/* 36DC78 E006AC58 0C080114 */ jal shim_guMtxCatF
/* 36DC7C E006AC5C 00A0302D */ daddu $a2, $a1, $zero
/* 36DC80 E006AC60 E7B80010 */ swc1 $f24, 0x10($sp)
/* 36DC84 E006AC64 8E250040 */ lw $a1, 0x40($s1)
/* 36DC88 E006AC68 4406B000 */ mfc1 $a2, $f22
/* 36DC8C E006AC6C 4407B000 */ mfc1 $a3, $f22
/* 36DC90 E006AC70 0C080104 */ jal shim_guRotateF
/* 36DC94 E006AC74 0200202D */ daddu $a0, $s0, $zero
/* 36DC98 E006AC78 0200202D */ daddu $a0, $s0, $zero
/* 36DC9C E006AC7C 27A50018 */ addiu $a1, $sp, 0x18
/* 36DCA0 E006AC80 0C080114 */ jal shim_guMtxCatF
/* 36DCA4 E006AC84 00A0302D */ daddu $a2, $a1, $zero
/* 36DCA8 E006AC88 8E250034 */ lw $a1, 0x34($s1)
/* 36DCAC E006AC8C 4406B000 */ mfc1 $a2, $f22
/* 36DCB0 E006AC90 4407B000 */ mfc1 $a3, $f22
/* 36DCB4 E006AC94 0C080108 */ jal shim_guTranslateF
/* 36DCB8 E006AC98 0200202D */ daddu $a0, $s0, $zero
/* 36DCBC E006AC9C 0200202D */ daddu $a0, $s0, $zero
/* 36DCC0 E006ACA0 27A50018 */ addiu $a1, $sp, 0x18
/* 36DCC4 E006ACA4 0C080114 */ jal shim_guMtxCatF
/* 36DCC8 E006ACA8 00A0302D */ daddu $a2, $a1, $zero
/* 36DCCC E006ACAC 8E620000 */ lw $v0, ($s3)
/* 36DCD0 E006ACB0 0040202D */ daddu $a0, $v0, $zero
/* 36DCD4 E006ACB4 24420008 */ addiu $v0, $v0, 8
/* 36DCD8 E006ACB8 AE620000 */ sw $v0, ($s3)
/* 36DCDC E006ACBC 3C02FA00 */ lui $v0, 0xfa00
/* 36DCE0 E006ACC0 AC820000 */ sw $v0, ($a0)
/* 36DCE4 E006ACC4 92220003 */ lbu $v0, 3($s1)
/* 36DCE8 E006ACC8 2403B500 */ addiu $v1, $zero, -0x4b00
.LE006ACCC:
/* 36DCEC E006ACCC 00431025 */ or $v0, $v0, $v1
/* 36DCF0 E006ACD0 AC820004 */ sw $v0, 4($a0)
/* 36DCF4 E006ACD4 27A40018 */ addiu $a0, $sp, 0x18
/* 36DCF8 E006ACD8 26940001 */ addiu $s4, $s4, 1
/* 36DCFC E006ACDC 26310094 */ addiu $s1, $s1, 0x94
/* 36DD00 E006ACE0 97C50000 */ lhu $a1, ($fp)
/* 36DD04 E006ACE4 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 36DD08 E006ACE8 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 36DD0C E006ACEC 00052980 */ sll $a1, $a1, 6
/* 36DD10 E006ACF0 00B52821 */ addu $a1, $a1, $s5
/* 36DD14 E006ACF4 0C080118 */ jal shim_guMtxF2L
/* 36DD18 E006ACF8 00452821 */ addu $a1, $v0, $a1
/* 36DD1C E006ACFC 3C02DA38 */ lui $v0, 0xda38
/* 36DD20 E006AD00 34420002 */ ori $v0, $v0, 2
/* 36DD24 E006AD04 3C06D838 */ lui $a2, 0xd838
/* 36DD28 E006AD08 34C60002 */ ori $a2, $a2, 2
/* 36DD2C E006AD0C 8E640000 */ lw $a0, ($s3)
/* 36DD30 E006AD10 97C30000 */ lhu $v1, ($fp)
/* 36DD34 E006AD14 0080282D */ daddu $a1, $a0, $zero
/* 36DD38 E006AD18 24840008 */ addiu $a0, $a0, 8
/* 36DD3C E006AD1C AE640000 */ sw $a0, ($s3)
/* 36DD40 E006AD20 ACA20000 */ sw $v0, ($a1)
/* 36DD44 E006AD24 24620001 */ addiu $v0, $v1, 1
/* 36DD48 E006AD28 3063FFFF */ andi $v1, $v1, 0xffff
/* 36DD4C E006AD2C 00031980 */ sll $v1, $v1, 6
/* 36DD50 E006AD30 A7C20000 */ sh $v0, ($fp)
/* 36DD54 E006AD34 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 36DD58 E006AD38 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 36DD5C E006AD3C 00751821 */ addu $v1, $v1, $s5
/* 36DD60 E006AD40 00431021 */ addu $v0, $v0, $v1
/* 36DD64 E006AD44 ACA20004 */ sw $v0, 4($a1)
/* 36DD68 E006AD48 24820008 */ addiu $v0, $a0, 8
/* 36DD6C E006AD4C AE620000 */ sw $v0, ($s3)
/* 36DD70 E006AD50 3C02DE00 */ lui $v0, 0xde00
/* 36DD74 E006AD54 AC820000 */ sw $v0, ($a0)
/* 36DD78 E006AD58 8FA800D8 */ lw $t0, 0xd8($sp)
/* 36DD7C E006AD5C 24020040 */ addiu $v0, $zero, 0x40
/* 36DD80 E006AD60 AC860008 */ sw $a2, 8($a0)
/* 36DD84 E006AD64 AC82000C */ sw $v0, 0xc($a0)
/* 36DD88 E006AD68 AC880004 */ sw $t0, 4($a0)
/* 36DD8C E006AD6C 8FA80120 */ lw $t0, 0x120($sp)
/* 36DD90 E006AD70 26520094 */ addiu $s2, $s2, 0x94
/* 36DD94 E006AD74 8D020008 */ lw $v0, 8($t0)
/* 36DD98 E006AD78 24840010 */ addiu $a0, $a0, 0x10
/* 36DD9C E006AD7C 0282102A */ slt $v0, $s4, $v0
/* 36DDA0 E006AD80 1440FF3B */ bnez $v0, .LE006AA70
/* 36DDA4 E006AD84 AE640000 */ sw $a0, ($s3)
.LE006AD88:
/* 36DDA8 E006AD88 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 36DDAC E006AD8C 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 36DDB0 E006AD90 8C620000 */ lw $v0, ($v1)
/* 36DDB4 E006AD94 0040202D */ daddu $a0, $v0, $zero
/* 36DDB8 E006AD98 24420008 */ addiu $v0, $v0, 8
/* 36DDBC E006AD9C AC620000 */ sw $v0, ($v1)
/* 36DDC0 E006ADA0 3C02E700 */ lui $v0, 0xe700
/* 36DDC4 E006ADA4 AC820000 */ sw $v0, ($a0)
/* 36DDC8 E006ADA8 AC800004 */ sw $zero, 4($a0)
/* 36DDCC E006ADAC 8FBF0104 */ lw $ra, 0x104($sp)
/* 36DDD0 E006ADB0 8FBE0100 */ lw $fp, 0x100($sp)
/* 36DDD4 E006ADB4 8FB700FC */ lw $s7, 0xfc($sp)
/* 36DDD8 E006ADB8 8FB600F8 */ lw $s6, 0xf8($sp)
/* 36DDDC E006ADBC 8FB500F4 */ lw $s5, 0xf4($sp)
/* 36DDE0 E006ADC0 8FB400F0 */ lw $s4, 0xf0($sp)
/* 36DDE4 E006ADC4 8FB300EC */ lw $s3, 0xec($sp)
/* 36DDE8 E006ADC8 8FB200E8 */ lw $s2, 0xe8($sp)
/* 36DDEC E006ADCC 8FB100E4 */ lw $s1, 0xe4($sp)
/* 36DDF0 E006ADD0 8FB000E0 */ lw $s0, 0xe0($sp)
/* 36DDF4 E006ADD4 D7B80118 */ ldc1 $f24, 0x118($sp)
/* 36DDF8 E006ADD8 D7B60110 */ ldc1 $f22, 0x110($sp)
/* 36DDFC E006ADDC D7B40108 */ ldc1 $f20, 0x108($sp)
/* 36DE00 E006ADE0 03E00008 */ jr $ra
/* 36DE04 E006ADE4 27BD0120 */ addiu $sp, $sp, 0x120
/* 36DE08 E006ADE8 00000000 */ nop
/* 36DE0C E006ADEC 00000000 */ nop

View File

@ -1,172 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel light_rays_main
/* 36D208 E006A1E8 27BDFF90 */ addiu $sp, $sp, -0x70
/* 36D20C E006A1EC F7B60058 */ sdc1 $f22, 0x58($sp)
/* 36D210 E006A1F0 4485B000 */ mtc1 $a1, $f22
/* 36D214 E006A1F4 F7B80060 */ sdc1 $f24, 0x60($sp)
/* 36D218 E006A1F8 4486C000 */ mtc1 $a2, $f24
/* 36D21C E006A1FC AFB00028 */ sw $s0, 0x28($sp)
/* 36D220 E006A200 0080802D */ daddu $s0, $a0, $zero
/* 36D224 E006A204 AFB20030 */ sw $s2, 0x30($sp)
/* 36D228 E006A208 24120011 */ addiu $s2, $zero, 0x11
/* 36D22C E006A20C F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 36D230 E006A210 4487D000 */ mtc1 $a3, $f26
/* 36D234 E006A214 27A40010 */ addiu $a0, $sp, 0x10
/* 36D238 E006A218 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 36D23C E006A21C C7B40080 */ lwc1 $f20, 0x80($sp)
/* 36D240 E006A220 2A020002 */ slti $v0, $s0, 2
/* 36D244 E006A224 AFBF0048 */ sw $ra, 0x48($sp)
/* 36D248 E006A228 AFB70044 */ sw $s7, 0x44($sp)
/* 36D24C E006A22C AFB60040 */ sw $s6, 0x40($sp)
/* 36D250 E006A230 AFB5003C */ sw $s5, 0x3c($sp)
/* 36D254 E006A234 AFB40038 */ sw $s4, 0x38($sp)
/* 36D258 E006A238 AFB30034 */ sw $s3, 0x34($sp)
/* 36D25C E006A23C 10400002 */ beqz $v0, .LE006A248
/* 36D260 E006A240 AFB1002C */ sw $s1, 0x2c($sp)
/* 36D264 E006A244 24120009 */ addiu $s2, $zero, 9
.LE006A248:
/* 36D268 E006A248 3C02E007 */ lui $v0, %hi(light_rays_init)
/* 36D26C E006A24C 2442A45C */ addiu $v0, $v0, %lo(light_rays_init)
/* 36D270 E006A250 AFA20018 */ sw $v0, 0x18($sp)
/* 36D274 E006A254 3C02E007 */ lui $v0, %hi(light_rays_update)
/* 36D278 E006A258 2442A580 */ addiu $v0, $v0, %lo(light_rays_update)
/* 36D27C E006A25C AFA2001C */ sw $v0, 0x1c($sp)
/* 36D280 E006A260 3C02E007 */ lui $v0, %hi(light_rays_render)
/* 36D284 E006A264 2442A814 */ addiu $v0, $v0, %lo(light_rays_render)
/* 36D288 E006A268 AFA20020 */ sw $v0, 0x20($sp)
/* 36D28C E006A26C 24020035 */ addiu $v0, $zero, 0x35
/* 36D290 E006A270 AFA00010 */ sw $zero, 0x10($sp)
/* 36D294 E006A274 AFA00024 */ sw $zero, 0x24($sp)
/* 36D298 E006A278 0C080124 */ jal shim_create_effect_instance
/* 36D29C E006A27C AFA20014 */ sw $v0, 0x14($sp)
/* 36D2A0 E006A280 001220C0 */ sll $a0, $s2, 3
/* 36D2A4 E006A284 00922021 */ addu $a0, $a0, $s2
/* 36D2A8 E006A288 00042080 */ sll $a0, $a0, 2
/* 36D2AC E006A28C 00922021 */ addu $a0, $a0, $s2
/* 36D2B0 E006A290 00042080 */ sll $a0, $a0, 2
/* 36D2B4 E006A294 0040B02D */ daddu $s6, $v0, $zero
/* 36D2B8 E006A298 0C08012C */ jal shim_general_heap_malloc
/* 36D2BC E006A29C AED20008 */ sw $s2, 8($s6)
/* 36D2C0 E006A2A0 0040882D */ daddu $s1, $v0, $zero
/* 36D2C4 E006A2A4 16200003 */ bnez $s1, .LE006A2B4
/* 36D2C8 E006A2A8 AED1000C */ sw $s1, 0xc($s6)
.LE006A2AC:
/* 36D2CC E006A2AC 0801A8AB */ j .LE006A2AC
/* 36D2D0 E006A2B0 00000000 */ nop
.LE006A2B4:
/* 36D2D4 E006A2B4 24020064 */ addiu $v0, $zero, 0x64
/* 36D2D8 E006A2B8 AE220028 */ sw $v0, 0x28($s1)
/* 36D2DC E006A2BC 2A020002 */ slti $v0, $s0, 2
/* 36D2E0 E006A2C0 AE300000 */ sw $s0, ($s1)
/* 36D2E4 E006A2C4 AE20002C */ sw $zero, 0x2c($s1)
/* 36D2E8 E006A2C8 E6360010 */ swc1 $f22, 0x10($s1)
/* 36D2EC E006A2CC E6380014 */ swc1 $f24, 0x14($s1)
/* 36D2F0 E006A2D0 E63A0018 */ swc1 $f26, 0x18($s1)
/* 36D2F4 E006A2D4 E6340020 */ swc1 $f20, 0x20($s1)
/* 36D2F8 E006A2D8 10400042 */ beqz $v0, .LE006A3E4
/* 36D2FC E006A2DC E634001C */ swc1 $f20, 0x1c($s1)
/* 36D300 E006A2E0 06000040 */ bltz $s0, .LE006A3E4
/* 36D304 E006A2E4 24100001 */ addiu $s0, $zero, 1
/* 36D308 E006A2E8 8EC20008 */ lw $v0, 8($s6)
/* 36D30C E006A2EC 0202102A */ slt $v0, $s0, $v0
/* 36D310 E006A2F0 10400049 */ beqz $v0, .LE006A418
/* 36D314 E006A2F4 26310094 */ addiu $s1, $s1, 0x94
/* 36D318 E006A2F8 2655FFFF */ addiu $s5, $s2, -1
/* 36D31C E006A2FC 24170032 */ addiu $s7, $zero, 0x32
/* 36D320 E006A300 2632006C */ addiu $s2, $s1, 0x6c
/* 36D324 E006A304 0000A02D */ daddu $s4, $zero, $zero
/* 36D328 E006A308 0280982D */ daddu $s3, $s4, $zero
/* 36D32C E006A30C 3C0141C8 */ lui $at, 0x41c8
/* 36D330 E006A310 4481B000 */ mtc1 $at, $f22
/* 36D334 E006A314 3C014004 */ lui $at, 0x4004
/* 36D338 E006A318 4481A800 */ mtc1 $at, $f21
/* 36D33C E006A31C 4480A000 */ mtc1 $zero, $f20
.LE006A320:
/* 36D340 E006A320 16A00002 */ bnez $s5, .LE006A32C
/* 36D344 E006A324 0275001A */ div $zero, $s3, $s5
/* 36D348 E006A328 0007000D */ break 7
.LE006A32C:
/* 36D34C E006A32C 2401FFFF */ addiu $at, $zero, -1
/* 36D350 E006A330 16A10004 */ bne $s5, $at, .LE006A344
/* 36D354 E006A334 3C018000 */ lui $at, 0x8000
/* 36D358 E006A338 16610002 */ bne $s3, $at, .LE006A344
/* 36D35C E006A33C 00000000 */ nop
/* 36D360 E006A340 0006000D */ break 6
.LE006A344:
/* 36D364 E006A344 00001812 */ mflo $v1
/* 36D368 E006A348 00000000 */ nop
/* 36D36C E006A34C 16A00002 */ bnez $s5, .LE006A358
/* 36D370 E006A350 0295001A */ div $zero, $s4, $s5
/* 36D374 E006A354 0007000D */ break 7
.LE006A358:
/* 36D378 E006A358 2401FFFF */ addiu $at, $zero, -1
/* 36D37C E006A35C 16A10004 */ bne $s5, $at, .LE006A370
/* 36D380 E006A360 3C018000 */ lui $at, 0x8000
/* 36D384 E006A364 16810002 */ bne $s4, $at, .LE006A370
/* 36D388 E006A368 00000000 */ nop
/* 36D38C E006A36C 0006000D */ break 6
.LE006A370:
/* 36D390 E006A370 00003012 */ mflo $a2
/* 36D394 E006A374 0220202D */ daddu $a0, $s1, $zero
/* 36D398 E006A378 0200282D */ daddu $a1, $s0, $zero
/* 36D39C E006A37C 26940014 */ addiu $s4, $s4, 0x14
/* 36D3A0 E006A380 2673001E */ addiu $s3, $s3, 0x1e
/* 36D3A4 E006A384 26100001 */ addiu $s0, $s0, 1
/* 36D3A8 E006A388 26310094 */ addiu $s1, $s1, 0x94
/* 36D3AC E006A38C 2463FFF6 */ addiu $v1, $v1, -0xa
/* 36D3B0 E006A390 44831000 */ mtc1 $v1, $f2
/* 36D3B4 E006A394 00000000 */ nop
/* 36D3B8 E006A398 468010A0 */ cvt.s.w $f2, $f2
/* 36D3BC E006A39C 02E63023 */ subu $a2, $s7, $a2
/* 36D3C0 E006A3A0 44860000 */ mtc1 $a2, $f0
/* 36D3C4 E006A3A4 00000000 */ nop
/* 36D3C8 E006A3A8 46800020 */ cvt.s.w $f0, $f0
/* 36D3CC E006A3AC 4600B003 */ div.s $f0, $f22, $f0
/* 36D3D0 E006A3B0 46000021 */ cvt.d.s $f0, $f0
/* 36D3D4 E006A3B4 46340000 */ add.d $f0, $f0, $f20
/* 36D3D8 E006A3B8 E642FFFC */ swc1 $f2, -4($s2)
/* 36D3DC E006A3BC AE460010 */ sw $a2, 0x10($s2)
/* 36D3E0 E006A3C0 46200020 */ cvt.s.d $f0, $f0
/* 36D3E4 E006A3C4 0C01A800 */ jal func_E006A000
/* 36D3E8 E006A3C8 E6400000 */ swc1 $f0, ($s2)
/* 36D3EC E006A3CC 8EC20008 */ lw $v0, 8($s6)
/* 36D3F0 E006A3D0 0202102A */ slt $v0, $s0, $v0
/* 36D3F4 E006A3D4 1440FFD2 */ bnez $v0, .LE006A320
/* 36D3F8 E006A3D8 26520094 */ addiu $s2, $s2, 0x94
/* 36D3FC E006A3DC 0801A906 */ j .LE006A418
/* 36D400 E006A3E0 00000000 */ nop
.LE006A3E4:
/* 36D404 E006A3E4 8EC20008 */ lw $v0, 8($s6)
/* 36D408 E006A3E8 24100001 */ addiu $s0, $zero, 1
/* 36D40C E006A3EC 0202102A */ slt $v0, $s0, $v0
/* 36D410 E006A3F0 10400009 */ beqz $v0, .LE006A418
/* 36D414 E006A3F4 26310094 */ addiu $s1, $s1, 0x94
.LE006A3F8:
/* 36D418 E006A3F8 0220202D */ daddu $a0, $s1, $zero
/* 36D41C E006A3FC 0C01A82F */ jal func_E006A0BC
/* 36D420 E006A400 0200282D */ daddu $a1, $s0, $zero
/* 36D424 E006A404 26100001 */ addiu $s0, $s0, 1
/* 36D428 E006A408 8EC20008 */ lw $v0, 8($s6)
/* 36D42C E006A40C 0202102A */ slt $v0, $s0, $v0
/* 36D430 E006A410 1440FFF9 */ bnez $v0, .LE006A3F8
/* 36D434 E006A414 26310094 */ addiu $s1, $s1, 0x94
.LE006A418:
/* 36D438 E006A418 8FA20084 */ lw $v0, 0x84($sp)
/* 36D43C E006A41C AC560000 */ sw $s6, ($v0)
/* 36D440 E006A420 8FBF0048 */ lw $ra, 0x48($sp)
/* 36D444 E006A424 8FB70044 */ lw $s7, 0x44($sp)
/* 36D448 E006A428 8FB60040 */ lw $s6, 0x40($sp)
/* 36D44C E006A42C 8FB5003C */ lw $s5, 0x3c($sp)
/* 36D450 E006A430 8FB40038 */ lw $s4, 0x38($sp)
/* 36D454 E006A434 8FB30034 */ lw $s3, 0x34($sp)
/* 36D458 E006A438 8FB20030 */ lw $s2, 0x30($sp)
/* 36D45C E006A43C 8FB1002C */ lw $s1, 0x2c($sp)
/* 36D460 E006A440 8FB00028 */ lw $s0, 0x28($sp)
/* 36D464 E006A444 D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 36D468 E006A448 D7B80060 */ ldc1 $f24, 0x60($sp)
/* 36D46C E006A44C D7B60058 */ ldc1 $f22, 0x58($sp)
/* 36D470 E006A450 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 36D474 E006A454 03E00008 */ jr $ra
/* 36D478 E006A458 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,185 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel light_rays_update
/* 36D5A0 E006A580 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 36D5A4 E006A584 AFB40020 */ sw $s4, 0x20($sp)
/* 36D5A8 E006A588 0080A02D */ daddu $s4, $a0, $zero
/* 36D5AC E006A58C AFBF0024 */ sw $ra, 0x24($sp)
/* 36D5B0 E006A590 AFB3001C */ sw $s3, 0x1c($sp)
/* 36D5B4 E006A594 AFB20018 */ sw $s2, 0x18($sp)
/* 36D5B8 E006A598 AFB10014 */ sw $s1, 0x14($sp)
/* 36D5BC E006A59C AFB00010 */ sw $s0, 0x10($sp)
/* 36D5C0 E006A5A0 8E91000C */ lw $s1, 0xc($s4)
/* 36D5C4 E006A5A4 8E230028 */ lw $v1, 0x28($s1)
/* 36D5C8 E006A5A8 8E240000 */ lw $a0, ($s1)
/* 36D5CC E006A5AC 2862000B */ slti $v0, $v1, 0xb
/* 36D5D0 E006A5B0 10400002 */ beqz $v0, .LE006A5BC
/* 36D5D4 E006A5B4 2462FFFF */ addiu $v0, $v1, -1
/* 36D5D8 E006A5B8 AE220028 */ sw $v0, 0x28($s1)
.LE006A5BC:
/* 36D5DC E006A5BC 8E22002C */ lw $v0, 0x2c($s1)
/* 36D5E0 E006A5C0 24420001 */ addiu $v0, $v0, 1
/* 36D5E4 E006A5C4 AE22002C */ sw $v0, 0x2c($s1)
/* 36D5E8 E006A5C8 8E830000 */ lw $v1, ($s4)
/* 36D5EC E006A5CC 30620010 */ andi $v0, $v1, 0x10
/* 36D5F0 E006A5D0 10400005 */ beqz $v0, .LE006A5E8
/* 36D5F4 E006A5D4 2402FFEF */ addiu $v0, $zero, -0x11
/* 36D5F8 E006A5D8 00621024 */ and $v0, $v1, $v0
/* 36D5FC E006A5DC AE820000 */ sw $v0, ($s4)
/* 36D600 E006A5E0 2402000A */ addiu $v0, $zero, 0xa
/* 36D604 E006A5E4 AE220028 */ sw $v0, 0x28($s1)
.LE006A5E8:
/* 36D608 E006A5E8 8E220028 */ lw $v0, 0x28($s1)
/* 36D60C E006A5EC 04410005 */ bgez $v0, .LE006A604
/* 36D610 E006A5F0 0040982D */ daddu $s3, $v0, $zero
/* 36D614 E006A5F4 0C080128 */ jal shim_remove_effect
/* 36D618 E006A5F8 0280202D */ daddu $a0, $s4, $zero
/* 36D61C E006A5FC 0801A9FD */ j .LE006A7F4
/* 36D620 E006A600 00000000 */ nop
.LE006A604:
/* 36D624 E006A604 8E23002C */ lw $v1, 0x2c($s1)
/* 36D628 E006A608 28820002 */ slti $v0, $a0, 2
/* 36D62C E006A60C 10400030 */ beqz $v0, .LE006A6D0
/* 36D630 E006A610 00000000 */ nop
/* 36D634 E006A614 0480002E */ bltz $a0, .LE006A6D0
/* 36D638 E006A618 24120001 */ addiu $s2, $zero, 1
/* 36D63C E006A61C 8E820008 */ lw $v0, 8($s4)
/* 36D640 E006A620 0242102A */ slt $v0, $s2, $v0
/* 36D644 E006A624 10400073 */ beqz $v0, .LE006A7F4
/* 36D648 E006A628 26310094 */ addiu $s1, $s1, 0x94
/* 36D64C E006A62C 00031080 */ sll $v0, $v1, 2
/* 36D650 E006A630 00431021 */ addu $v0, $v0, $v1
/* 36D654 E006A634 02429804 */ sllv $s3, $v0, $s2
/* 36D658 E006A638 26300028 */ addiu $s0, $s1, 0x28
.LE006A63C:
/* 36D65C E006A63C 8E020000 */ lw $v0, ($s0)
/* 36D660 E006A640 8E030004 */ lw $v1, 4($s0)
/* 36D664 E006A644 2442FFFF */ addiu $v0, $v0, -1
/* 36D668 E006A648 24630001 */ addiu $v1, $v1, 1
/* 36D66C E006A64C AE020000 */ sw $v0, ($s0)
/* 36D670 E006A650 2862000A */ slti $v0, $v1, 0xa
/* 36D674 E006A654 10400005 */ beqz $v0, .LE006A66C
/* 36D678 E006A658 AE030004 */ sw $v1, 4($s0)
/* 36D67C E006A65C 00031040 */ sll $v0, $v1, 1
/* 36D680 E006A660 00431021 */ addu $v0, $v0, $v1
/* 36D684 E006A664 00021080 */ sll $v0, $v0, 2
/* 36D688 E006A668 AE02FFFC */ sw $v0, -4($s0)
.LE006A66C:
/* 36D68C E006A66C 8E030000 */ lw $v1, ($s0)
/* 36D690 E006A670 28620005 */ slti $v0, $v1, 5
/* 36D694 E006A674 10400005 */ beqz $v0, .LE006A68C
/* 36D698 E006A678 00031040 */ sll $v0, $v1, 1
/* 36D69C E006A67C 00431021 */ addu $v0, $v0, $v1
/* 36D6A0 E006A680 000210C0 */ sll $v0, $v0, 3
/* 36D6A4 E006A684 00431021 */ addu $v0, $v0, $v1
/* 36D6A8 E006A688 AE02FFFC */ sw $v0, -4($s0)
.LE006A68C:
/* 36D6AC E006A68C C6000030 */ lwc1 $f0, 0x30($s0)
/* 36D6B0 E006A690 C6020064 */ lwc1 $f2, 0x64($s0)
/* 36D6B4 E006A694 46020000 */ add.s $f0, $f0, $f2
/* 36D6B8 E006A698 8E020000 */ lw $v0, ($s0)
/* 36D6BC E006A69C 1C400004 */ bgtz $v0, .LE006A6B0
/* 36D6C0 E006A6A0 E6000030 */ swc1 $f0, 0x30($s0)
/* 36D6C4 E006A6A4 0220202D */ daddu $a0, $s1, $zero
/* 36D6C8 E006A6A8 0C01A800 */ jal func_E006A000
/* 36D6CC E006A6AC 26650001 */ addiu $a1, $s3, 1
.LE006A6B0:
/* 36D6D0 E006A6B0 26520001 */ addiu $s2, $s2, 1
/* 36D6D4 E006A6B4 26100094 */ addiu $s0, $s0, 0x94
/* 36D6D8 E006A6B8 8E820008 */ lw $v0, 8($s4)
/* 36D6DC E006A6BC 0242102A */ slt $v0, $s2, $v0
/* 36D6E0 E006A6C0 1440FFDE */ bnez $v0, .LE006A63C
/* 36D6E4 E006A6C4 26310094 */ addiu $s1, $s1, 0x94
/* 36D6E8 E006A6C8 0801A9FD */ j .LE006A7F4
/* 36D6EC E006A6CC 00000000 */ nop
.LE006A6D0:
/* 36D6F0 E006A6D0 8E820008 */ lw $v0, 8($s4)
/* 36D6F4 E006A6D4 24120001 */ addiu $s2, $zero, 1
/* 36D6F8 E006A6D8 0242102A */ slt $v0, $s2, $v0
/* 36D6FC E006A6DC 10400045 */ beqz $v0, .LE006A7F4
/* 36D700 E006A6E0 26310094 */ addiu $s1, $s1, 0x94
/* 36D704 E006A6E4 26300064 */ addiu $s0, $s1, 0x64
.LE006A6E8:
/* 36D708 E006A6E8 0C01A919 */ jal func_E006A464
/* 36D70C E006A6EC 0220202D */ daddu $a0, $s1, $zero
/* 36D710 E006A6F0 8E02FFC4 */ lw $v0, -0x3c($s0)
/* 36D714 E006A6F4 8E03FFC8 */ lw $v1, -0x38($s0)
/* 36D718 E006A6F8 2442FFFF */ addiu $v0, $v0, -1
/* 36D71C E006A6FC 24630001 */ addiu $v1, $v1, 1
/* 36D720 E006A700 AE02FFC4 */ sw $v0, -0x3c($s0)
/* 36D724 E006A704 28620005 */ slti $v0, $v1, 5
/* 36D728 E006A708 10400007 */ beqz $v0, .LE006A728
/* 36D72C E006A70C AE03FFC8 */ sw $v1, -0x38($s0)
/* 36D730 E006A710 00031040 */ sll $v0, $v1, 1
/* 36D734 E006A714 00431021 */ addu $v0, $v0, $v1
/* 36D738 E006A718 000210C0 */ sll $v0, $v0, 3
/* 36D73C E006A71C 00431021 */ addu $v0, $v0, $v1
/* 36D740 E006A720 00021040 */ sll $v0, $v0, 1
/* 36D744 E006A724 AE02FFC0 */ sw $v0, -0x40($s0)
.LE006A728:
/* 36D748 E006A728 8E03FFC4 */ lw $v1, -0x3c($s0)
/* 36D74C E006A72C 28620005 */ slti $v0, $v1, 5
/* 36D750 E006A730 10400006 */ beqz $v0, .LE006A74C
/* 36D754 E006A734 00031040 */ sll $v0, $v1, 1
/* 36D758 E006A738 00431021 */ addu $v0, $v0, $v1
/* 36D75C E006A73C 000210C0 */ sll $v0, $v0, 3
/* 36D760 E006A740 00431021 */ addu $v0, $v0, $v1
/* 36D764 E006A744 00021040 */ sll $v0, $v0, 1
/* 36D768 E006A748 AE02FFC0 */ sw $v0, -0x40($s0)
.LE006A74C:
/* 36D76C E006A74C 2A62000A */ slti $v0, $s3, 0xa
/* 36D770 E006A750 1040000C */ beqz $v0, .LE006A784
/* 36D774 E006A754 3C026666 */ lui $v0, 0x6666
/* 36D778 E006A758 8E03FFC0 */ lw $v1, -0x40($s0)
/* 36D77C E006A75C 00730018 */ mult $v1, $s3
/* 36D780 E006A760 00001812 */ mflo $v1
/* 36D784 E006A764 34426667 */ ori $v0, $v0, 0x6667
/* 36D788 E006A768 00000000 */ nop
/* 36D78C E006A76C 00620018 */ mult $v1, $v0
/* 36D790 E006A770 00031FC3 */ sra $v1, $v1, 0x1f
/* 36D794 E006A774 00001010 */ mfhi $v0
/* 36D798 E006A778 00021083 */ sra $v0, $v0, 2
/* 36D79C E006A77C 00431023 */ subu $v0, $v0, $v1
/* 36D7A0 E006A780 AE02FFC0 */ sw $v0, -0x40($s0)
.LE006A784:
/* 36D7A4 E006A784 8E02FFC4 */ lw $v0, -0x3c($s0)
/* 36D7A8 E006A788 1C400003 */ bgtz $v0, .LE006A798
/* 36D7AC E006A78C 0220202D */ daddu $a0, $s1, $zero
/* 36D7B0 E006A790 0C01A82F */ jal func_E006A0BC
/* 36D7B4 E006A794 0240282D */ daddu $a1, $s2, $zero
.LE006A798:
/* 36D7B8 E006A798 8E02002C */ lw $v0, 0x2c($s0)
/* 36D7BC E006A79C 18400003 */ blez $v0, .LE006A7AC
/* 36D7C0 E006A7A0 2442FFFF */ addiu $v0, $v0, -1
/* 36D7C4 E006A7A4 1C40000D */ bgtz $v0, .LE006A7DC
/* 36D7C8 E006A7A8 AE02002C */ sw $v0, 0x2c($s0)
.LE006A7AC:
/* 36D7CC E006A7AC C606FFF8 */ lwc1 $f6, -8($s0)
/* 36D7D0 E006A7B0 C600001C */ lwc1 $f0, 0x1c($s0)
/* 36D7D4 E006A7B4 C604FFFC */ lwc1 $f4, -4($s0)
/* 36D7D8 E006A7B8 46003180 */ add.s $f6, $f6, $f0
/* 36D7DC E006A7BC C6000020 */ lwc1 $f0, 0x20($s0)
/* 36D7E0 E006A7C0 C6020000 */ lwc1 $f2, ($s0)
/* 36D7E4 E006A7C4 46002100 */ add.s $f4, $f4, $f0
/* 36D7E8 E006A7C8 C6000024 */ lwc1 $f0, 0x24($s0)
/* 36D7EC E006A7CC 46001080 */ add.s $f2, $f2, $f0
/* 36D7F0 E006A7D0 E606FFF8 */ swc1 $f6, -8($s0)
/* 36D7F4 E006A7D4 E604FFFC */ swc1 $f4, -4($s0)
/* 36D7F8 E006A7D8 E6020000 */ swc1 $f2, ($s0)
.LE006A7DC:
/* 36D7FC E006A7DC 26520001 */ addiu $s2, $s2, 1
/* 36D800 E006A7E0 26100094 */ addiu $s0, $s0, 0x94
/* 36D804 E006A7E4 8E820008 */ lw $v0, 8($s4)
/* 36D808 E006A7E8 0242102A */ slt $v0, $s2, $v0
/* 36D80C E006A7EC 1440FFBE */ bnez $v0, .LE006A6E8
/* 36D810 E006A7F0 26310094 */ addiu $s1, $s1, 0x94
.LE006A7F4:
/* 36D814 E006A7F4 8FBF0024 */ lw $ra, 0x24($sp)
/* 36D818 E006A7F8 8FB40020 */ lw $s4, 0x20($sp)
/* 36D81C E006A7FC 8FB3001C */ lw $s3, 0x1c($sp)
/* 36D820 E006A800 8FB20018 */ lw $s2, 0x18($sp)
/* 36D824 E006A804 8FB10014 */ lw $s1, 0x14($sp)
/* 36D828 E006A808 8FB00010 */ lw $s0, 0x10($sp)
/* 36D82C E006A80C 03E00008 */ jr $ra
/* 36D830 E006A810 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,179 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel lightning_main
/* 36E1D0 E006C000 27BDFF98 */ addiu $sp, $sp, -0x68
/* 36E1D4 E006C004 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 36E1D8 E006C008 4485B000 */ mtc1 $a1, $f22
/* 36E1DC E006C00C AFB40040 */ sw $s4, 0x40($sp)
/* 36E1E0 E006C010 0080A02D */ daddu $s4, $a0, $zero
/* 36E1E4 E006C014 F7B80058 */ sdc1 $f24, 0x58($sp)
/* 36E1E8 E006C018 4486C000 */ mtc1 $a2, $f24
/* 36E1EC E006C01C 27A40018 */ addiu $a0, $sp, 0x18
/* 36E1F0 E006C020 F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 36E1F4 E006C024 4487D000 */ mtc1 $a3, $f26
/* 36E1F8 E006C028 3C02E007 */ lui $v0, %hi(lightning_init)
/* 36E1FC E006C02C 2442C298 */ addiu $v0, $v0, %lo(lightning_init)
/* 36E200 E006C030 AFA20020 */ sw $v0, 0x20($sp)
/* 36E204 E006C034 3C02E007 */ lui $v0, %hi(lightning_update)
/* 36E208 E006C038 2442C2A0 */ addiu $v0, $v0, %lo(lightning_update)
/* 36E20C E006C03C AFA20024 */ sw $v0, 0x24($sp)
/* 36E210 E006C040 3C02E007 */ lui $v0, %hi(lightning_render)
/* 36E214 E006C044 2442C5A0 */ addiu $v0, $v0, %lo(lightning_render)
/* 36E218 E006C048 AFA20028 */ sw $v0, 0x28($sp)
/* 36E21C E006C04C 24020036 */ addiu $v0, $zero, 0x36
/* 36E220 E006C050 AFBF0044 */ sw $ra, 0x44($sp)
/* 36E224 E006C054 AFB3003C */ sw $s3, 0x3c($sp)
/* 36E228 E006C058 AFB20038 */ sw $s2, 0x38($sp)
/* 36E22C E006C05C AFB10034 */ sw $s1, 0x34($sp)
/* 36E230 E006C060 AFB00030 */ sw $s0, 0x30($sp)
/* 36E234 E006C064 F7B40048 */ sdc1 $f20, 0x48($sp)
/* 36E238 E006C068 AFA00018 */ sw $zero, 0x18($sp)
/* 36E23C E006C06C AFA0002C */ sw $zero, 0x2c($sp)
/* 36E240 E006C070 0C080124 */ jal shim_create_effect_instance
/* 36E244 E006C074 AFA2001C */ sw $v0, 0x1c($sp)
/* 36E248 E006C078 2404004C */ addiu $a0, $zero, 0x4c
/* 36E24C E006C07C 24030001 */ addiu $v1, $zero, 1
/* 36E250 E006C080 0040982D */ daddu $s3, $v0, $zero
/* 36E254 E006C084 0C08012C */ jal shim_general_heap_malloc
/* 36E258 E006C088 AE630008 */ sw $v1, 8($s3)
/* 36E25C E006C08C 0040802D */ daddu $s0, $v0, $zero
/* 36E260 E006C090 16000003 */ bnez $s0, .LE006C0A0
/* 36E264 E006C094 AE62000C */ sw $v0, 0xc($s3)
.LE006C098:
/* 36E268 E006C098 0801B026 */ j .LE006C098
/* 36E26C E006C09C 00000000 */ nop
.LE006C0A0:
/* 36E270 E006C0A0 2A820003 */ slti $v0, $s4, 3
/* 36E274 E006C0A4 AE140000 */ sw $s4, ($s0)
/* 36E278 E006C0A8 14400003 */ bnez $v0, .LE006C0B8
/* 36E27C E006C0AC AE000018 */ sw $zero, 0x18($s0)
/* 36E280 E006C0B0 0801B02F */ j .LE006C0BC
/* 36E284 E006C0B4 2402001E */ addiu $v0, $zero, 0x1e
.LE006C0B8:
/* 36E288 E006C0B8 24020064 */ addiu $v0, $zero, 0x64
.LE006C0BC:
/* 36E28C E006C0BC AE020014 */ sw $v0, 0x14($s0)
/* 36E290 E006C0C0 241100FF */ addiu $s1, $zero, 0xff
/* 36E294 E006C0C4 24020004 */ addiu $v0, $zero, 4
/* 36E298 E006C0C8 AE02003C */ sw $v0, 0x3c($s0)
/* 36E29C E006C0CC 24020002 */ addiu $v0, $zero, 2
/* 36E2A0 E006C0D0 26120048 */ addiu $s2, $s0, 0x48
/* 36E2A4 E006C0D4 AE020040 */ sw $v0, 0x40($s0)
/* 36E2A8 E006C0D8 2682FFFF */ addiu $v0, $s4, -1
/* 36E2AC E006C0DC 44800000 */ mtc1 $zero, $f0
/* 36E2B0 E006C0E0 3C014240 */ lui $at, 0x4240
/* 36E2B4 E006C0E4 44812000 */ mtc1 $at, $f4
/* 36E2B8 E006C0E8 3C014200 */ lui $at, 0x4200
/* 36E2BC E006C0EC 44811000 */ mtc1 $at, $f2
/* 36E2C0 E006C0F0 3C014100 */ lui $at, 0x4100
/* 36E2C4 E006C0F4 44813000 */ mtc1 $at, $f6
/* 36E2C8 E006C0F8 2C420002 */ sltiu $v0, $v0, 2
/* 36E2CC E006C0FC AE110010 */ sw $s1, 0x10($s0)
/* 36E2D0 E006C100 E6160004 */ swc1 $f22, 4($s0)
/* 36E2D4 E006C104 E6180008 */ swc1 $f24, 8($s0)
/* 36E2D8 E006C108 E61A000C */ swc1 $f26, 0xc($s0)
/* 36E2DC E006C10C AE000048 */ sw $zero, 0x48($s0)
/* 36E2E0 E006C110 AE000044 */ sw $zero, 0x44($s0)
/* 36E2E4 E006C114 E6000020 */ swc1 $f0, 0x20($s0)
/* 36E2E8 E006C118 E600001C */ swc1 $f0, 0x1c($s0)
/* 36E2EC E006C11C E604002C */ swc1 $f4, 0x2c($s0)
/* 36E2F0 E006C120 E6020030 */ swc1 $f2, 0x30($s0)
/* 36E2F4 E006C124 E6000028 */ swc1 $f0, 0x28($s0)
/* 36E2F8 E006C128 E6000024 */ swc1 $f0, 0x24($s0)
/* 36E2FC E006C12C E6060034 */ swc1 $f6, 0x34($s0)
/* 36E300 E006C130 10400039 */ beqz $v0, .LE006C218
/* 36E304 E006C134 E6020038 */ swc1 $f2, 0x38($s0)
/* 36E308 E006C138 24020001 */ addiu $v0, $zero, 1
/* 36E30C E006C13C 16820019 */ bne $s4, $v0, .LE006C1A4
/* 36E310 E006C140 00000000 */ nop
/* 36E314 E006C144 0C080150 */ jal shim_load_effect
/* 36E318 E006C148 24040047 */ addiu $a0, $zero, 0x47
/* 36E31C E006C14C 0000202D */ daddu $a0, $zero, $zero
/* 36E320 E006C150 3C05C2EC */ lui $a1, 0xc2ec
/* 36E324 E006C154 3C064338 */ lui $a2, 0x4338
/* 36E328 E006C158 3C07429E */ lui $a3, 0x429e
/* 36E32C E006C15C 3C013F80 */ lui $at, 0x3f80
/* 36E330 E006C160 4481A000 */ mtc1 $at, $f20
/* 36E334 E006C164 2402FFFF */ addiu $v0, $zero, -1
/* 36E338 E006C168 AFA20014 */ sw $v0, 0x14($sp)
/* 36E33C E006C16C 0C023800 */ jal gather_magic_main
/* 36E340 E006C170 E7B40010 */ swc1 $f20, 0x10($sp)
/* 36E344 E006C174 2404003C */ addiu $a0, $zero, 0x3c
/* 36E348 E006C178 0C080150 */ jal shim_load_effect
/* 36E34C E006C17C AE020044 */ sw $v0, 0x44($s0)
/* 36E350 E006C180 3C05C2F0 */ lui $a1, 0xc2f0
/* 36E354 E006C184 3C06433D */ lui $a2, 0x433d
/* 36E358 E006C188 3C07429A */ lui $a3, 0x429a
/* 36E35C E006C18C 0000202D */ daddu $a0, $zero, $zero
/* 36E360 E006C190 E7B40010 */ swc1 $f20, 0x10($sp)
/* 36E364 E006C194 0C01E000 */ jal bulb_glow_main
/* 36E368 E006C198 AFB20014 */ sw $s2, 0x14($sp)
/* 36E36C E006C19C 0801B087 */ j .LE006C21C
/* 36E370 E006C1A0 2A820003 */ slti $v0, $s4, 3
.LE006C1A4:
/* 36E374 E006C1A4 0C080150 */ jal shim_load_effect
/* 36E378 E006C1A8 24040057 */ addiu $a0, $zero, 0x57
/* 36E37C E006C1AC 3C05C2F0 */ lui $a1, 0xc2f0
/* 36E380 E006C1B0 3C06433D */ lui $a2, 0x433d
/* 36E384 E006C1B4 3C074290 */ lui $a3, 0x4290
/* 36E388 E006C1B8 3C013F80 */ lui $at, 0x3f80
/* 36E38C E006C1BC 44810000 */ mtc1 $at, $f0
/* 36E390 E006C1C0 0000202D */ daddu $a0, $zero, $zero
/* 36E394 E006C1C4 AFA00014 */ sw $zero, 0x14($sp)
/* 36E398 E006C1C8 0C02B800 */ jal snaking_static_main
/* 36E39C E006C1CC E7A00010 */ swc1 $f0, 0x10($sp)
/* 36E3A0 E006C1D0 AE020048 */ sw $v0, 0x48($s0)
/* 36E3A4 E006C1D4 8C42000C */ lw $v0, 0xc($v0)
/* 36E3A8 E006C1D8 AC510028 */ sw $s1, 0x28($v0)
/* 36E3AC E006C1DC 8E020048 */ lw $v0, 0x48($s0)
/* 36E3B0 E006C1E0 8C42000C */ lw $v0, 0xc($v0)
/* 36E3B4 E006C1E4 AC51002C */ sw $s1, 0x2c($v0)
/* 36E3B8 E006C1E8 8E020048 */ lw $v0, 0x48($s0)
/* 36E3BC E006C1EC 8C42000C */ lw $v0, 0xc($v0)
/* 36E3C0 E006C1F0 AC510030 */ sw $s1, 0x30($v0)
/* 36E3C4 E006C1F4 8E020048 */ lw $v0, 0x48($s0)
/* 36E3C8 E006C1F8 8C42000C */ lw $v0, 0xc($v0)
/* 36E3CC E006C1FC AC510018 */ sw $s1, 0x18($v0)
/* 36E3D0 E006C200 8E020048 */ lw $v0, 0x48($s0)
/* 36E3D4 E006C204 8C42000C */ lw $v0, 0xc($v0)
/* 36E3D8 E006C208 AC40001C */ sw $zero, 0x1c($v0)
/* 36E3DC E006C20C 8E020048 */ lw $v0, 0x48($s0)
/* 36E3E0 E006C210 8C42000C */ lw $v0, 0xc($v0)
/* 36E3E4 E006C214 AC510020 */ sw $s1, 0x20($v0)
.LE006C218:
/* 36E3E8 E006C218 2A820003 */ slti $v0, $s4, 3
.LE006C21C:
/* 36E3EC E006C21C 14400012 */ bnez $v0, .LE006C268
/* 36E3F0 E006C220 0260102D */ daddu $v0, $s3, $zero
/* 36E3F4 E006C224 0C080150 */ jal shim_load_effect
/* 36E3F8 E006C228 2404004A */ addiu $a0, $zero, 0x4a
/* 36E3FC E006C22C 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 36E400 E006C230 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 36E404 E006C234 80420070 */ lb $v0, 0x70($v0)
/* 36E408 E006C238 24040001 */ addiu $a0, $zero, 1
/* 36E40C E006C23C 50440001 */ beql $v0, $a0, .LE006C244
/* 36E410 E006C240 24040003 */ addiu $a0, $zero, 3
.LE006C244:
/* 36E414 E006C244 C7A00078 */ lwc1 $f0, 0x78($sp)
/* 36E418 E006C248 4405B000 */ mfc1 $a1, $f22
/* 36E41C E006C24C 4406C000 */ mfc1 $a2, $f24
/* 36E420 E006C250 4407D000 */ mfc1 $a3, $f26
/* 36E424 E006C254 E7A00010 */ swc1 $f0, 0x10($sp)
/* 36E428 E006C258 C7A0007C */ lwc1 $f0, 0x7c($sp)
/* 36E42C E006C25C 0C025000 */ jal flashing_box_shockwave_main
/* 36E430 E006C260 E7A00014 */ swc1 $f0, 0x14($sp)
/* 36E434 E006C264 0260102D */ daddu $v0, $s3, $zero
.LE006C268:
/* 36E438 E006C268 8FBF0044 */ lw $ra, 0x44($sp)
/* 36E43C E006C26C 8FB40040 */ lw $s4, 0x40($sp)
/* 36E440 E006C270 8FB3003C */ lw $s3, 0x3c($sp)
/* 36E444 E006C274 8FB20038 */ lw $s2, 0x38($sp)
/* 36E448 E006C278 8FB10034 */ lw $s1, 0x34($sp)
/* 36E44C E006C27C 8FB00030 */ lw $s0, 0x30($sp)
/* 36E450 E006C280 D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 36E454 E006C284 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 36E458 E006C288 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 36E45C E006C28C D7B40048 */ ldc1 $f20, 0x48($sp)
/* 36E460 E006C290 03E00008 */ jr $ra
/* 36E464 E006C294 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,222 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel lightning_update
/* 36E470 E006C2A0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 36E474 E006C2A4 AFBF0020 */ sw $ra, 0x20($sp)
/* 36E478 E006C2A8 AFB3001C */ sw $s3, 0x1c($sp)
/* 36E47C E006C2AC AFB20018 */ sw $s2, 0x18($sp)
/* 36E480 E006C2B0 AFB10014 */ sw $s1, 0x14($sp)
/* 36E484 E006C2B4 AFB00010 */ sw $s0, 0x10($sp)
/* 36E488 E006C2B8 8C830000 */ lw $v1, ($a0)
/* 36E48C E006C2BC 8C90000C */ lw $s0, 0xc($a0)
/* 36E490 E006C2C0 30620010 */ andi $v0, $v1, 0x10
/* 36E494 E006C2C4 10400004 */ beqz $v0, .LE006C2D8
/* 36E498 E006C2C8 2402FFEF */ addiu $v0, $zero, -0x11
/* 36E49C E006C2CC 00621024 */ and $v0, $v1, $v0
/* 36E4A0 E006C2D0 AC820000 */ sw $v0, ($a0)
/* 36E4A4 E006C2D4 AE000014 */ sw $zero, 0x14($s0)
.LE006C2D8:
/* 36E4A8 E006C2D8 8E030014 */ lw $v1, 0x14($s0)
/* 36E4AC E006C2DC 8E120000 */ lw $s2, ($s0)
/* 36E4B0 E006C2E0 28620064 */ slti $v0, $v1, 0x64
/* 36E4B4 E006C2E4 10400002 */ beqz $v0, .LE006C2F0
/* 36E4B8 E006C2E8 2462FFFF */ addiu $v0, $v1, -1
/* 36E4BC E006C2EC AE020014 */ sw $v0, 0x14($s0)
.LE006C2F0:
/* 36E4C0 E006C2F0 8E020018 */ lw $v0, 0x18($s0)
/* 36E4C4 E006C2F4 8E050014 */ lw $a1, 0x14($s0)
/* 36E4C8 E006C2F8 24420001 */ addiu $v0, $v0, 1
/* 36E4CC E006C2FC 04A10010 */ bgez $a1, .LE006C340
/* 36E4D0 E006C300 AE020018 */ sw $v0, 0x18($s0)
/* 36E4D4 E006C304 0C080128 */ jal shim_remove_effect
/* 36E4D8 E006C308 00000000 */ nop
/* 36E4DC E006C30C 8E040048 */ lw $a0, 0x48($s0)
/* 36E4E0 E006C310 10800004 */ beqz $a0, .LE006C324
/* 36E4E4 E006C314 00000000 */ nop
/* 36E4E8 E006C318 0C080128 */ jal shim_remove_effect
/* 36E4EC E006C31C 00000000 */ nop
/* 36E4F0 E006C320 AE000048 */ sw $zero, 0x48($s0)
.LE006C324:
/* 36E4F4 E006C324 8E040044 */ lw $a0, 0x44($s0)
/* 36E4F8 E006C328 10800096 */ beqz $a0, .LE006C584
/* 36E4FC E006C32C 00000000 */ nop
/* 36E500 E006C330 0C080128 */ jal shim_remove_effect
/* 36E504 E006C334 00000000 */ nop
/* 36E508 E006C338 0801B161 */ j .LE006C584
/* 36E50C E006C33C AE000044 */ sw $zero, 0x44($s0)
.LE006C340:
/* 36E510 E006C340 00A0982D */ daddu $s3, $a1, $zero
/* 36E514 E006C344 8E040044 */ lw $a0, 0x44($s0)
/* 36E518 E006C348 10800007 */ beqz $a0, .LE006C368
/* 36E51C E006C34C 0040882D */ daddu $s1, $v0, $zero
/* 36E520 E006C350 2A220012 */ slti $v0, $s1, 0x12
/* 36E524 E006C354 14400005 */ bnez $v0, .LE006C36C
/* 36E528 E006C358 2A420003 */ slti $v0, $s2, 3
/* 36E52C E006C35C 0C080128 */ jal shim_remove_effect
/* 36E530 E006C360 00000000 */ nop
/* 36E534 E006C364 AE000044 */ sw $zero, 0x44($s0)
.LE006C368:
/* 36E538 E006C368 2A420003 */ slti $v0, $s2, 3
.LE006C36C:
/* 36E53C E006C36C 14400003 */ bnez $v0, .LE006C37C
/* 36E540 E006C370 2A220007 */ slti $v0, $s1, 7
/* 36E544 E006C374 10400074 */ beqz $v0, .LE006C548
/* 36E548 E006C378 2A420003 */ slti $v0, $s2, 3
.LE006C37C:
/* 36E54C E006C37C C600001C */ lwc1 $f0, 0x1c($s0)
/* 36E550 E006C380 C602002C */ lwc1 $f2, 0x2c($s0)
/* 36E554 E006C384 46020080 */ add.s $f2, $f0, $f2
/* 36E558 E006C388 44800000 */ mtc1 $zero, $f0
/* 36E55C E006C38C 00000000 */ nop
/* 36E560 E006C390 4600103C */ c.lt.s $f2, $f0
/* 36E564 E006C394 00000000 */ nop
/* 36E568 E006C398 45000005 */ bc1f .LE006C3B0
/* 36E56C E006C39C E602001C */ swc1 $f2, 0x1c($s0)
/* 36E570 E006C3A0 3C014380 */ lui $at, 0x4380
/* 36E574 E006C3A4 44810000 */ mtc1 $at, $f0
/* 36E578 E006C3A8 0801B0F4 */ j .LE006C3D0
/* 36E57C E006C3AC 46001000 */ add.s $f0, $f2, $f0
.LE006C3B0:
/* 36E580 E006C3B0 3C014380 */ lui $at, 0x4380
/* 36E584 E006C3B4 44810000 */ mtc1 $at, $f0
/* 36E588 E006C3B8 00000000 */ nop
/* 36E58C E006C3BC 4602003C */ c.lt.s $f0, $f2
/* 36E590 E006C3C0 00000000 */ nop
/* 36E594 E006C3C4 45000003 */ bc1f .LE006C3D4
/* 36E598 E006C3C8 00000000 */ nop
/* 36E59C E006C3CC 46001001 */ sub.s $f0, $f2, $f0
.LE006C3D0:
/* 36E5A0 E006C3D0 E600001C */ swc1 $f0, 0x1c($s0)
.LE006C3D4:
/* 36E5A4 E006C3D4 8E02003C */ lw $v0, 0x3c($s0)
/* 36E5A8 E006C3D8 14400002 */ bnez $v0, .LE006C3E4
/* 36E5AC E006C3DC 0222001A */ div $zero, $s1, $v0
/* 36E5B0 E006C3E0 0007000D */ break 7
.LE006C3E4:
/* 36E5B4 E006C3E4 2401FFFF */ addiu $at, $zero, -1
/* 36E5B8 E006C3E8 14410004 */ bne $v0, $at, .LE006C3FC
/* 36E5BC E006C3EC 3C018000 */ lui $at, 0x8000
/* 36E5C0 E006C3F0 16210002 */ bne $s1, $at, .LE006C3FC
/* 36E5C4 E006C3F4 00000000 */ nop
/* 36E5C8 E006C3F8 0006000D */ break 6
.LE006C3FC:
/* 36E5CC E006C3FC 00001810 */ mfhi $v1
/* 36E5D0 E006C400 14600017 */ bnez $v1, .LE006C460
/* 36E5D4 E006C404 00000000 */ nop
/* 36E5D8 E006C408 C6000020 */ lwc1 $f0, 0x20($s0)
/* 36E5DC E006C40C C6020030 */ lwc1 $f2, 0x30($s0)
/* 36E5E0 E006C410 46020080 */ add.s $f2, $f0, $f2
/* 36E5E4 E006C414 44800000 */ mtc1 $zero, $f0
/* 36E5E8 E006C418 00000000 */ nop
/* 36E5EC E006C41C 4600103C */ c.lt.s $f2, $f0
/* 36E5F0 E006C420 00000000 */ nop
/* 36E5F4 E006C424 45000005 */ bc1f .LE006C43C
/* 36E5F8 E006C428 E6020020 */ swc1 $f2, 0x20($s0)
/* 36E5FC E006C42C 3C014280 */ lui $at, 0x4280
/* 36E600 E006C430 44810000 */ mtc1 $at, $f0
/* 36E604 E006C434 0801B117 */ j .LE006C45C
/* 36E608 E006C438 46001000 */ add.s $f0, $f2, $f0
.LE006C43C:
/* 36E60C E006C43C 3C014280 */ lui $at, 0x4280
/* 36E610 E006C440 44810000 */ mtc1 $at, $f0
/* 36E614 E006C444 00000000 */ nop
/* 36E618 E006C448 4602003C */ c.lt.s $f0, $f2
/* 36E61C E006C44C 00000000 */ nop
/* 36E620 E006C450 45000003 */ bc1f .LE006C460
/* 36E624 E006C454 00000000 */ nop
/* 36E628 E006C458 46001001 */ sub.s $f0, $f2, $f0
.LE006C45C:
/* 36E62C E006C45C E6000020 */ swc1 $f0, 0x20($s0)
.LE006C460:
/* 36E630 E006C460 8E020040 */ lw $v0, 0x40($s0)
/* 36E634 E006C464 14400002 */ bnez $v0, .LE006C470
/* 36E638 E006C468 0222001A */ div $zero, $s1, $v0
/* 36E63C E006C46C 0007000D */ break 7
.LE006C470:
/* 36E640 E006C470 2401FFFF */ addiu $at, $zero, -1
/* 36E644 E006C474 14410004 */ bne $v0, $at, .LE006C488
/* 36E648 E006C478 3C018000 */ lui $at, 0x8000
/* 36E64C E006C47C 16210002 */ bne $s1, $at, .LE006C488
/* 36E650 E006C480 00000000 */ nop
/* 36E654 E006C484 0006000D */ break 6
.LE006C488:
/* 36E658 E006C488 00001810 */ mfhi $v1
/* 36E65C E006C48C 14600017 */ bnez $v1, .LE006C4EC
/* 36E660 E006C490 00000000 */ nop
/* 36E664 E006C494 C6000024 */ lwc1 $f0, 0x24($s0)
/* 36E668 E006C498 C6020034 */ lwc1 $f2, 0x34($s0)
/* 36E66C E006C49C 46020080 */ add.s $f2, $f0, $f2
/* 36E670 E006C4A0 44800000 */ mtc1 $zero, $f0
/* 36E674 E006C4A4 00000000 */ nop
/* 36E678 E006C4A8 4600103C */ c.lt.s $f2, $f0
/* 36E67C E006C4AC 00000000 */ nop
/* 36E680 E006C4B0 45000005 */ bc1f .LE006C4C8
/* 36E684 E006C4B4 E6020024 */ swc1 $f2, 0x24($s0)
/* 36E688 E006C4B8 3C014380 */ lui $at, 0x4380
/* 36E68C E006C4BC 44810000 */ mtc1 $at, $f0
/* 36E690 E006C4C0 0801B13A */ j .LE006C4E8
/* 36E694 E006C4C4 46001000 */ add.s $f0, $f2, $f0
.LE006C4C8:
/* 36E698 E006C4C8 3C014380 */ lui $at, 0x4380
/* 36E69C E006C4CC 44810000 */ mtc1 $at, $f0
/* 36E6A0 E006C4D0 00000000 */ nop
/* 36E6A4 E006C4D4 4602003C */ c.lt.s $f0, $f2
/* 36E6A8 E006C4D8 00000000 */ nop
/* 36E6AC E006C4DC 45000003 */ bc1f .LE006C4EC
/* 36E6B0 E006C4E0 00000000 */ nop
/* 36E6B4 E006C4E4 46001001 */ sub.s $f0, $f2, $f0
.LE006C4E8:
/* 36E6B8 E006C4E8 E6000024 */ swc1 $f0, 0x24($s0)
.LE006C4EC:
/* 36E6BC E006C4EC C6000028 */ lwc1 $f0, 0x28($s0)
/* 36E6C0 E006C4F0 C6020038 */ lwc1 $f2, 0x38($s0)
/* 36E6C4 E006C4F4 46020080 */ add.s $f2, $f0, $f2
/* 36E6C8 E006C4F8 44800000 */ mtc1 $zero, $f0
/* 36E6CC E006C4FC 00000000 */ nop
/* 36E6D0 E006C500 4600103C */ c.lt.s $f2, $f0
/* 36E6D4 E006C504 00000000 */ nop
/* 36E6D8 E006C508 45000005 */ bc1f .LE006C520
/* 36E6DC E006C50C E6020028 */ swc1 $f2, 0x28($s0)
/* 36E6E0 E006C510 3C014280 */ lui $at, 0x4280
/* 36E6E4 E006C514 44810000 */ mtc1 $at, $f0
/* 36E6E8 E006C518 0801B150 */ j .LE006C540
/* 36E6EC E006C51C 46001000 */ add.s $f0, $f2, $f0
.LE006C520:
/* 36E6F0 E006C520 3C014280 */ lui $at, 0x4280
/* 36E6F4 E006C524 44810000 */ mtc1 $at, $f0
/* 36E6F8 E006C528 00000000 */ nop
/* 36E6FC E006C52C 4602003C */ c.lt.s $f0, $f2
/* 36E700 E006C530 00000000 */ nop
/* 36E704 E006C534 45000004 */ bc1f .LE006C548
/* 36E708 E006C538 2A420003 */ slti $v0, $s2, 3
/* 36E70C E006C53C 46001001 */ sub.s $f0, $f2, $f0
.LE006C540:
/* 36E710 E006C540 E6000028 */ swc1 $f0, 0x28($s0)
/* 36E714 E006C544 2A420003 */ slti $v0, $s2, 3
.LE006C548:
/* 36E718 E006C548 14400007 */ bnez $v0, .LE006C568
/* 36E71C E006C54C 2A62000A */ slti $v0, $s3, 0xa
/* 36E720 E006C550 2A220007 */ slti $v0, $s1, 7
/* 36E724 E006C554 1440000B */ bnez $v0, .LE006C584
/* 36E728 E006C558 00000000 */ nop
/* 36E72C E006C55C 8E020010 */ lw $v0, 0x10($s0)
/* 36E730 E006C560 0801B15E */ j .LE006C578
/* 36E734 E006C564 2442FFF3 */ addiu $v0, $v0, -0xd
.LE006C568:
/* 36E738 E006C568 10400006 */ beqz $v0, .LE006C584
/* 36E73C E006C56C 00000000 */ nop
/* 36E740 E006C570 8E020010 */ lw $v0, 0x10($s0)
/* 36E744 E006C574 2442FFE7 */ addiu $v0, $v0, -0x19
.LE006C578:
/* 36E748 E006C578 04410002 */ bgez $v0, .LE006C584
/* 36E74C E006C57C AE020010 */ sw $v0, 0x10($s0)
/* 36E750 E006C580 AE000010 */ sw $zero, 0x10($s0)
.LE006C584:
/* 36E754 E006C584 8FBF0020 */ lw $ra, 0x20($sp)
/* 36E758 E006C588 8FB3001C */ lw $s3, 0x1c($sp)
/* 36E75C E006C58C 8FB20018 */ lw $s2, 0x18($sp)
/* 36E760 E006C590 8FB10014 */ lw $s1, 0x14($sp)
/* 36E764 E006C594 8FB00010 */ lw $s0, 0x10($sp)
/* 36E768 E006C598 03E00008 */ jr $ra
/* 36E76C E006C59C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,132 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00BCE50
.double 0.005
.section .text
glabel lightning_bolt_main
/* 3BA030 E00BC000 27BDFF90 */ addiu $sp, $sp, -0x70
/* 3BA034 E00BC004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3BA038 E00BC008 4485A000 */ mtc1 $a1, $f20
/* 3BA03C E00BC00C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3BA040 E00BC010 4486B000 */ mtc1 $a2, $f22
/* 3BA044 E00BC014 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3BA048 E00BC018 4487C000 */ mtc1 $a3, $f24
/* 3BA04C E00BC01C F7BA0058 */ sdc1 $f26, 0x58($sp)
/* 3BA050 E00BC020 C7BA0080 */ lwc1 $f26, 0x80($sp)
/* 3BA054 E00BC024 F7BC0060 */ sdc1 $f28, 0x60($sp)
/* 3BA058 E00BC028 C7BC0084 */ lwc1 $f28, 0x84($sp)
/* 3BA05C E00BC02C AFB30034 */ sw $s3, 0x34($sp)
/* 3BA060 E00BC030 0080982D */ daddu $s3, $a0, $zero
/* 3BA064 E00BC034 F7BE0068 */ sdc1 $f30, 0x68($sp)
/* 3BA068 E00BC038 C7BE0088 */ lwc1 $f30, 0x88($sp)
/* 3BA06C E00BC03C 27A40010 */ addiu $a0, $sp, 0x10
/* 3BA070 E00BC040 AFB1002C */ sw $s1, 0x2c($sp)
/* 3BA074 E00BC044 8FB10090 */ lw $s1, 0x90($sp)
/* 3BA078 E00BC048 3C02E00C */ lui $v0, %hi(lightning_bolt_init)
/* 3BA07C E00BC04C 2442C1D0 */ addiu $v0, $v0, %lo(lightning_bolt_init)
/* 3BA080 E00BC050 AFA20018 */ sw $v0, 0x18($sp)
/* 3BA084 E00BC054 3C02E00C */ lui $v0, %hi(lightning_bolt_update)
/* 3BA088 E00BC058 2442C238 */ addiu $v0, $v0, %lo(lightning_bolt_update)
/* 3BA08C E00BC05C AFA2001C */ sw $v0, 0x1c($sp)
/* 3BA090 E00BC060 3C02E00C */ lui $v0, %hi(lightning_bolt_render)
/* 3BA094 E00BC064 2442C2E8 */ addiu $v0, $v0, %lo(lightning_bolt_render)
/* 3BA098 E00BC068 AFA20020 */ sw $v0, 0x20($sp)
/* 3BA09C E00BC06C 2402005E */ addiu $v0, $zero, 0x5e
/* 3BA0A0 E00BC070 AFBF0038 */ sw $ra, 0x38($sp)
/* 3BA0A4 E00BC074 AFB20030 */ sw $s2, 0x30($sp)
/* 3BA0A8 E00BC078 AFB00028 */ sw $s0, 0x28($sp)
/* 3BA0AC E00BC07C AFA00010 */ sw $zero, 0x10($sp)
/* 3BA0B0 E00BC080 AFA00024 */ sw $zero, 0x24($sp)
/* 3BA0B4 E00BC084 0C080124 */ jal shim_create_effect_instance
/* 3BA0B8 E00BC088 AFA20014 */ sw $v0, 0x14($sp)
/* 3BA0BC E00BC08C 24040118 */ addiu $a0, $zero, 0x118
/* 3BA0C0 E00BC090 24030001 */ addiu $v1, $zero, 1
/* 3BA0C4 E00BC094 0040902D */ daddu $s2, $v0, $zero
/* 3BA0C8 E00BC098 0C08012C */ jal shim_general_heap_malloc
/* 3BA0CC E00BC09C AE430008 */ sw $v1, 8($s2)
/* 3BA0D0 E00BC0A0 0040802D */ daddu $s0, $v0, $zero
/* 3BA0D4 E00BC0A4 16000003 */ bnez $s0, .LE00BC0B4
/* 3BA0D8 E00BC0A8 AE42000C */ sw $v0, 0xc($s2)
.LE00BC0AC:
/* 3BA0DC E00BC0AC 0802F02B */ j .LE00BC0AC
/* 3BA0E0 E00BC0B0 00000000 */ nop
.LE00BC0B4:
/* 3BA0E4 E00BC0B4 AE130000 */ sw $s3, ($s0)
/* 3BA0E8 E00BC0B8 1E200004 */ bgtz $s1, .LE00BC0CC
/* 3BA0EC E00BC0BC AE00002C */ sw $zero, 0x2c($s0)
/* 3BA0F0 E00BC0C0 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3BA0F4 E00BC0C4 0802F034 */ j .LE00BC0D0
/* 3BA0F8 E00BC0C8 AE020028 */ sw $v0, 0x28($s0)
.LE00BC0CC:
/* 3BA0FC E00BC0CC AE110028 */ sw $s1, 0x28($s0)
.LE00BC0D0:
/* 3BA100 E00BC0D0 461AA081 */ sub.s $f2, $f20, $f26
/* 3BA104 E00BC0D4 46021082 */ mul.s $f2, $f2, $f2
/* 3BA108 E00BC0D8 00000000 */ nop
/* 3BA10C E00BC0DC 461CB101 */ sub.s $f4, $f22, $f28
/* 3BA110 E00BC0E0 46042102 */ mul.s $f4, $f4, $f4
/* 3BA114 E00BC0E4 00000000 */ nop
/* 3BA118 E00BC0E8 241100FF */ addiu $s1, $zero, 0xff
/* 3BA11C E00BC0EC AE11003C */ sw $s1, 0x3c($s0)
/* 3BA120 E00BC0F0 E6140010 */ swc1 $f20, 0x10($s0)
/* 3BA124 E00BC0F4 E6160014 */ swc1 $f22, 0x14($s0)
/* 3BA128 E00BC0F8 461EC001 */ sub.s $f0, $f24, $f30
/* 3BA12C E00BC0FC E6180018 */ swc1 $f24, 0x18($s0)
/* 3BA130 E00BC100 E61A001C */ swc1 $f26, 0x1c($s0)
/* 3BA134 E00BC104 46000002 */ mul.s $f0, $f0, $f0
/* 3BA138 E00BC108 00000000 */ nop
/* 3BA13C E00BC10C E61C0020 */ swc1 $f28, 0x20($s0)
/* 3BA140 E00BC110 E61E0024 */ swc1 $f30, 0x24($s0)
/* 3BA144 E00BC114 E6140004 */ swc1 $f20, 4($s0)
/* 3BA148 E00BC118 E6160008 */ swc1 $f22, 8($s0)
/* 3BA14C E00BC11C 46041080 */ add.s $f2, $f2, $f4
/* 3BA150 E00BC120 E618000C */ swc1 $f24, 0xc($s0)
/* 3BA154 E00BC124 44802000 */ mtc1 $zero, $f4
/* 3BA158 E00BC128 46001300 */ add.s $f12, $f2, $f0
/* 3BA15C E00BC12C C7A0008C */ lwc1 $f0, 0x8c($sp)
/* 3BA160 E00BC130 46046032 */ c.eq.s $f12, $f4
/* 3BA164 E00BC134 00000000 */ nop
/* 3BA168 E00BC138 45000003 */ bc1f .LE00BC148
/* 3BA16C E00BC13C E600004C */ swc1 $f0, 0x4c($s0)
/* 3BA170 E00BC140 0802F067 */ j .LE00BC19C
/* 3BA174 E00BC144 0000102D */ daddu $v0, $zero, $zero
.LE00BC148:
/* 3BA178 E00BC148 0C080154 */ jal shim_sqrtf
/* 3BA17C E00BC14C 00000000 */ nop
/* 3BA180 E00BC150 24040167 */ addiu $a0, $zero, 0x167
/* 3BA184 E00BC154 46000021 */ cvt.d.s $f0, $f0
/* 3BA188 E00BC158 3C01E00C */ lui $at, %hi(D_E00BCE50)
/* 3BA18C E00BC15C D422CE50 */ ldc1 $f2, %lo(D_E00BCE50)($at)
/* 3BA190 E00BC160 240200DC */ addiu $v0, $zero, 0xdc
/* 3BA194 E00BC164 46220002 */ mul.d $f0, $f0, $f2
/* 3BA198 E00BC168 00000000 */ nop
/* 3BA19C E00BC16C AE020034 */ sw $v0, 0x34($s0)
/* 3BA1A0 E00BC170 24020014 */ addiu $v0, $zero, 0x14
/* 3BA1A4 E00BC174 AE110030 */ sw $s1, 0x30($s0)
/* 3BA1A8 E00BC178 AE020038 */ sw $v0, 0x38($s0)
/* 3BA1AC E00BC17C AE110040 */ sw $s1, 0x40($s0)
/* 3BA1B0 E00BC180 AE110044 */ sw $s1, 0x44($s0)
/* 3BA1B4 E00BC184 AE110048 */ sw $s1, 0x48($s0)
/* 3BA1B8 E00BC188 46200020 */ cvt.s.d $f0, $f0
/* 3BA1BC E00BC18C 0C080138 */ jal shim_rand_int
/* 3BA1C0 E00BC190 E6000114 */ swc1 $f0, 0x114($s0)
/* 3BA1C4 E00BC194 AE020110 */ sw $v0, 0x110($s0)
/* 3BA1C8 E00BC198 0240102D */ daddu $v0, $s2, $zero
.LE00BC19C:
/* 3BA1CC E00BC19C 8FBF0038 */ lw $ra, 0x38($sp)
/* 3BA1D0 E00BC1A0 8FB30034 */ lw $s3, 0x34($sp)
/* 3BA1D4 E00BC1A4 8FB20030 */ lw $s2, 0x30($sp)
/* 3BA1D8 E00BC1A8 8FB1002C */ lw $s1, 0x2c($sp)
/* 3BA1DC E00BC1AC 8FB00028 */ lw $s0, 0x28($sp)
/* 3BA1E0 E00BC1B0 D7BE0068 */ ldc1 $f30, 0x68($sp)
/* 3BA1E4 E00BC1B4 D7BC0060 */ ldc1 $f28, 0x60($sp)
/* 3BA1E8 E00BC1B8 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* 3BA1EC E00BC1BC D7B80050 */ ldc1 $f24, 0x50($sp)
/* 3BA1F0 E00BC1C0 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 3BA1F4 E00BC1C4 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 3BA1F8 E00BC1C8 03E00008 */ jr $ra
/* 3BA1FC E00BC1CC 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,53 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel lightning_bolt_update
/* 3BA268 E00BC238 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3BA26C E00BC23C AFBF0010 */ sw $ra, 0x10($sp)
/* 3BA270 E00BC240 8C830000 */ lw $v1, ($a0)
/* 3BA274 E00BC244 8C86000C */ lw $a2, 0xc($a0)
/* 3BA278 E00BC248 30620010 */ andi $v0, $v1, 0x10
/* 3BA27C E00BC24C 8CC70000 */ lw $a3, ($a2)
/* 3BA280 E00BC250 10400005 */ beqz $v0, .LE00BC268
/* 3BA284 E00BC254 2402FFEF */ addiu $v0, $zero, -0x11
/* 3BA288 E00BC258 00621024 */ and $v0, $v1, $v0
/* 3BA28C E00BC25C AC820000 */ sw $v0, ($a0)
/* 3BA290 E00BC260 24020010 */ addiu $v0, $zero, 0x10
/* 3BA294 E00BC264 ACC20028 */ sw $v0, 0x28($a2)
.LE00BC268:
/* 3BA298 E00BC268 8CC30028 */ lw $v1, 0x28($a2)
/* 3BA29C E00BC26C 286203E8 */ slti $v0, $v1, 0x3e8
/* 3BA2A0 E00BC270 10400002 */ beqz $v0, .LE00BC27C
/* 3BA2A4 E00BC274 2462FFFF */ addiu $v0, $v1, -1
/* 3BA2A8 E00BC278 ACC20028 */ sw $v0, 0x28($a2)
.LE00BC27C:
/* 3BA2AC E00BC27C 8CC2002C */ lw $v0, 0x2c($a2)
/* 3BA2B0 E00BC280 8CC30028 */ lw $v1, 0x28($a2)
/* 3BA2B4 E00BC284 24450001 */ addiu $a1, $v0, 1
/* 3BA2B8 E00BC288 04610005 */ bgez $v1, .LE00BC2A0
/* 3BA2BC E00BC28C ACC5002C */ sw $a1, 0x2c($a2)
/* 3BA2C0 E00BC290 0C080128 */ jal shim_remove_effect
/* 3BA2C4 E00BC294 00000000 */ nop
/* 3BA2C8 E00BC298 0802F0B7 */ j .LE00BC2DC
/* 3BA2CC E00BC29C 00000000 */ nop
.LE00BC2A0:
/* 3BA2D0 E00BC2A0 24020002 */ addiu $v0, $zero, 2
/* 3BA2D4 E00BC2A4 14E20002 */ bne $a3, $v0, .LE00BC2B0
/* 3BA2D8 E00BC2A8 28A2000B */ slti $v0, $a1, 0xb
/* 3BA2DC E00BC2AC 28A20028 */ slti $v0, $a1, 0x28
.LE00BC2B0:
/* 3BA2E0 E00BC2B0 1440000A */ bnez $v0, .LE00BC2DC
/* 3BA2E4 E00BC2B4 00000000 */ nop
/* 3BA2E8 E00BC2B8 3C013FE0 */ lui $at, 0x3fe0
/* 3BA2EC E00BC2BC 44811800 */ mtc1 $at, $f3
/* 3BA2F0 E00BC2C0 44801000 */ mtc1 $zero, $f2
/* 3BA2F4 E00BC2C4 C4C0003C */ lwc1 $f0, 0x3c($a2)
/* 3BA2F8 E00BC2C8 46800021 */ cvt.d.w $f0, $f0
/* 3BA2FC E00BC2CC 46220002 */ mul.d $f0, $f0, $f2
/* 3BA300 E00BC2D0 00000000 */ nop
/* 3BA304 E00BC2D4 4620010D */ trunc.w.d $f4, $f0
/* 3BA308 E00BC2D8 E4C4003C */ swc1 $f4, 0x3c($a2)
.LE00BC2DC:
/* 3BA30C E00BC2DC 8FBF0010 */ lw $ra, 0x10($sp)
/* 3BA310 E00BC2E0 03E00008 */ jr $ra
/* 3BA314 E00BC2E4 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -2869,7 +2869,37 @@ segments:
subsegments:
- [0x337240, c, sparkles]
- [0x337F10, data]
- [0x337FC0, bin] # sparkles, stars_shimmer, shimmer_burst, shimmer_wave, pink_sparkles gfx
- name: effect_gfx_sparkles
dir: effects/gfx
type: code
start: 0x337FC0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x337FC0, c, sparkles]
- start: 0x337FC0
type: .data
name: sparkles
subsegments:
- [0x337FC0, ia8, D_09000000_337FC0, 176, 22]
- [0x338EE0, gfx, D_09000F20_338EE0]
- [0x338F88, vtx, D_09000FC8_338F88]
- [0x338FC8, vtx, D_09001008_338FC8]
- [0x339008, vtx, D_09001048_339008]
- [0x339048, vtx, D_09001088_339048]
- [0x339088, vtx, D_090010C8_339088]
- [0x3390C8, vtx, D_09001108_3390C8]
- [0x339108, vtx, D_09001148_339108]
- [0x339148, vtx, D_09001188_339148]
- [0x339188, gfx, D_090011C8_339188]
- [0x3391A0, gfx, D_090011E0_3391A0]
- [0x3391B8, gfx, D_090011F8_3391B8]
- [0x3391D0, gfx, D_09001210_3391D0]
- [0x3391E8, gfx, D_09001228_3391E8]
- [0x339200, gfx, D_09001240_339200]
- [0x339218, gfx, D_09001258_339218]
- [0x339230, gfx, D_09001270_339230]
- [0x339248]
- name: effect_shape_spell
dir: effects
type: code
@ -2887,7 +2917,28 @@ segments:
subsegments:
- [0x33B180, c, gather_energy_pink]
- [0x33BB70, data]
- [0x33BBD0, bin] # gather_energy_pink gfx
- name: effect_gfx_gather_energy_pink
dir: effects/gfx
type: code
start: 0x33BBD0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x33BBD0, c, gather_energy_pink]
- start: 0x33BBD0
type: .data
name: gather_energy_pink
subsegments:
- [0x33BBD0, i4, D_09000000_33BBD0, 64, 16]
- [0x33BDD0, i4, D_09000200_33BDD0, 64, 16]
- [0x33BFD0, i4, D_09000400_33BFD0, 64, 64]
- [0x33C7D0, vtx, D_09000C00_33C7D0]
- [0x33C970, gfx, D_09000DA0_33C970]
- [0x33C9F8, gfx, D_09000E28_33C9F8]
- [0x33CAE0, vtx, D_09000F10_33CAE0]
- [0x33CC80, gfx, D_090010B0_33CC80]
- [0x33CD08, gfx, D_09001138_33CD08]
- [0x33CDE8]
- name: effect_drop_leaves
dir: effects
type: code
@ -3489,7 +3540,25 @@ segments:
subsegments:
- [0x36D020, c, light_rays]
- [0x36DE10, data]
- [0x36DF90, bin] # light_rays gfx
- name: effect_gfx_light_rays
dir: effects/gfx
type: code
start: 0x36DF90
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x36DF90, c, light_rays]
- start: 0x36DF90
type: .data
name: light_rays
subsegments:
- [0x36DF90, i4, D_09000000_36DF90, 16, 16]
- [0x36E010, vtx, D_09000080_36E010]
- [0x36E040, gfx, D_090000B0_36E040]
- [0x36E060, vtx, D_090000D0_36E060]
- [0x36E0A0, gfx, D_09000110_36E0A0]
- [0x36E0C0, gfx, D_09000130_36E0C0]
- [0x36E168, gfx, D_090001D8_36E168]
- name: effect_lightning
dir: effects
type: code
@ -3498,7 +3567,57 @@ segments:
subsegments:
- [0x36E1D0, c, lightning]
- [0x36ED30, data]
- [0x36ED60, bin] # lightning gfx
- name: effect_gfx_lightning
dir: effects/gfx
type: code
start: 0x36ED60
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x36ED60, c, lightning]
- start: 0x36ED60
type: .data
name: lightning
subsegments:
- [0x36ED60, i8, D_09000000_36ED60, 128, 32]
- [0x36FD60, vtx, D_09001000_36FD60]
- [0x36FF40, vtx, D_090011E0_36FF40]
- [0x370080, vtx, D_09001320_370080]
- [0x370280, vtx, D_09001520_370280]
- [0x3703A0, vtx, D_09001640_3703A0]
- [0x3705A0, vtx, D_09001840_3705A0]
- [0x370620, vtx, D_090018C0_370620]
- [0x3706A0, vtx, D_09001940_3706A0]
- [0x370720, vtx, D_090019C0_370720]
- [0x3707A0, vtx, D_09001A40_3707A0]
- [0x370820, vtx, D_09001AC0_370820]
- [0x3709A0, vtx, D_09001C40_3709A0]
- [0x370B20, vtx, D_09001DC0_370B20]
- [0x370CA0, vtx, D_09001F40_370CA0]
- [0x370E20, vtx, D_090020C0_370E20]
- [0x370FA0, vtx, D_09002240_370FA0]
- [0x3711A0, vtx, D_09002440_3711A0]
- [0x371220, vtx, D_090024C0_371220]
- [0x371250, vtx, D_090024F0_371250]
- [0x3713D0, vtx, D_09002670_3713D0]
- [0x371460, vtx, D_09002700_371460]
- [0x371660, vtx, D_09002900_371660]
- [0x3716E0, vtx, D_09002980_3716E0]
- [0x371710, vtx, D_090029B0_371710]
- [0x371890, vtx, D_09002B30_371890]
- [0x371920, vtx, D_09002BC0_371920]
- [0x371B20, vtx, D_09002DC0_371B20]
- [0x371D20, vtx, D_09002FC0_371D20]
- [0x371DA0, vtx, D_09003040_371DA0]
- [0x371FA0, vtx, D_09003240_371FA0]
- [0x371FE0, gfx, D_09003280_371FE0]
- [0x372058, gfx, D_090032F8_372058]
- [0x3720D8, gfx, D_09003378_3720D8]
- [0x372140, gfx, D_090033E0_372140]
- [0x3722E0, gfx, D_09003580_3722E0]
- [0x3724D8, gfx, D_09003778_3724D8]
- [0x3725E8, gfx, D_09003888_3725E8]
- [0x3726A8, gfx, D_09003948_3726A8]
- name: effect_fire_breath
dir: effects
type: code
@ -3625,7 +3744,27 @@ segments:
subsegments:
- [0x37A3F0, c, bulb_glow]
- [0x37ACF0, data]
- [0x37ADD0, bin] # bulb_glow gfx
- name: effect_gfx_bulb_glow
dir: effects/gfx
type: code
start: 0x37ADD0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x37ADD0, c, bulb_glow]
- start: 0x37ADD0
type: .data
name: bulb_glow
subsegments:
- [0x37ADD0, rgba16, D_09000000_37ADD0, 32, 32]
- [0x37B5D0, i8, D_09000800_37B5D0, 32, 32]
- [0x37B9D0, i4, D_09000C00_37B9D0, 64, 64]
- [0x37C1D0, gfx, D_09001400_37C1D0]
- [0x37C288, gfx, D_090014B8_37C288]
- [0x37C340, gfx, D_09001570_37C340]
- [0x37C3E8, gfx, D_09001618_37C3E8]
- [0x37C490, gfx, D_090016C0_37C490]
- [0x37C538]
- name: effect_effect_3D
dir: effects
type: code
@ -3837,7 +3976,30 @@ segments:
subsegments:
- [0x389850, c, firework]
- [0x38A2F0, data]
- [0x38A350, bin] # firework gfx
- name: effect_gfx_firework
dir: effects/gfx
type: code
start: 0x38A350
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x38A350, c, firework]
- start: 0x38A350
type: .data
name: firework
subsegments:
- [0x38A350, i4, D_09000000_38A350, 32, 128]
- [0x38AB50, vtx, D_09000800_38AB50]
- [0x38AB90, vtx, D_09000840_38AB90]
- [0x38ABD0, vtx, D_09000880_38ABD0]
- [0x38AC10, vtx, D_090008C0_38AC10]
- [0x38AC50, vtx, D_09000900_38AC50]
- [0x38AC90, gfx, D_09000940_38AC90]
- [0x38AD50, gfx, D_09000A00_38AD50]
- [0x38AD70, gfx, D_09000A20_38AD70]
- [0x38AD90, gfx, D_09000A40_38AD90]
- [0x38ADB0, gfx, D_09000A60_38ADB0]
- [0x38ADD0, gfx, D_09000A80_38ADD0]
- name: effect_confetti
dir: effects
type: code
@ -3846,7 +4008,27 @@ segments:
subsegments:
- [0x38ADF0, c, confetti]
- [0x38BAB0, data]
- [0x38BBA0, bin] # confetti gfx
- name: effect_gfx_confetti
dir: effects/gfx
type: code
start: 0x38BBA0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x38BBA0, c, confetti]
- start: 0x38BBA0
type: .data
name: confetti
subsegments:
- [0x38BBA0, ia4, D_09000000_38BBA0, 16, 256]
- [0x38C3A0, vtx, D_09000800_38C3A0]
- [0x38C3E0, vtx, D_09000840_38C3E0]
- [0x38C420, vtx, D_09000880_38C420]
- [0x38C460, vtx, D_090008C0_38C460]
- [0x38C4A0, vtx, D_09000900_38C4A0]
- [0x38C4E0, gfx, D_09000940_38C4E0]
- [0x38C588, gfx, D_090009E8_38C588]
- [0x38C5A0, gfx, D_09000A00_38C5A0]
- name: effect_snowfall
dir: effects
type: code
@ -4045,7 +4227,24 @@ segments:
subsegments:
- [0x3965B0, c, chomp_drop]
- [0x397010]
- [0x397040, bin] # chomp_drop gfx
- name: effect_gfx_chomp_drop
dir: effects/gfx
type: code
start: 0x397040
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x397040, c, chomp_drop]
- start: 0x397040
type: .data
name: chomp_drop
subsegments:
- [0x397040, i4, D_09000000_397040, 64, 64]
- [0x397840, ia4, D_09000800_397840, 64, 64]
- [0x398040, vtx, D_09001000_398040]
- [0x398080, gfx, D_09001040_398080]
- [0x398128, gfx, D_090010E8_398128]
- [0x3981D0, gfx, D_09001190_3981D0]
- name: effect_quizmo_stage
dir: effects
type: code
@ -4268,7 +4467,21 @@ segments:
subsegments:
- [0x3BA030, c, lightning_bolt]
- [0x3BAC60]
- [0x3BAEA0, bin] # lightning_bolt gfx
- name: effect_gfx_lightning_bolt
dir: effects/gfx
type: code
start: 0x3BAEA0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3BAEA0, c, lightning_bolt]
- start: 0x3BAEA0
type: .data
name: lightning_bolt
subsegments:
- [0x3BAEA0, i8, D_09000000_3BAEA0, 128, 32]
- [0x3BBEA0, gfx, D_09001000_3BBEA0]
- [0x3BBF58]
- name: effect_water_splash
dir: effects
type: code
@ -4333,7 +4546,38 @@ segments:
subsegments:
- [0x3CC9E0, c, effect_63]
- [0x3CD670, data]
- [0x3CD6E0, bin] # effect_63 gfx
- name: effect_gfx_effect_63
dir: effects/gfx
type: code
start: 0x3CD6E0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3CD6E0, c, effect_63]
- start: 0x3CD6E0
type: .data
name: effect_63
subsegments:
- [0x3CD6E0, i8, D_09000000_3CD6E0, 32, 32]
- [0x3CDAE0, i4, D_09000400_3CDAE0, 32, 128]
- [0x3CE2E0, i8, D_09000C00_3CE2E0, 32, 32]
- [0x3CE6E0, i8, D_09001000_3CE6E0, 32, 64]
- [0x3CEEE0, vtx, D_09001800_3CEEE0]
- [0x3CEF20, vtx, D_09001840_3CEF20]
- [0x3CEF60, vtx, D_09001880_3CEF60]
- [0x3CEFA0, vtx, D_090018C0_3CEFA0]
- [0x3CEFE0, vtx, D_09001900_3CEFE0]
- [0x3CF040, gfx, D_09001960_3CF040]
- [0x3CF068, gfx, D_09001988_3CF068]
- [0x3CF088, gfx, D_090019A8_3CF088]
- [0x3CF0A8, gfx, D_090019C8_3CF0A8]
- [0x3CF0C8, gfx, D_090019E8_3CF0C8]
- [0x3CF0E8, gfx, D_09001A08_3CF0E8]
- [0x3CF1D0, gfx, D_09001AF0_3CF1D0]
- [0x3CF250, gfx, D_09001B70_3CF250]
- [0x3CF338, vtx, D_09001C58_3CF338]
- [0x3CF378, gfx, D_09001C98_3CF378]
- [0x3CF398]
- name: effect_throw_spiny
dir: effects
type: code
@ -4372,7 +4616,21 @@ segments:
subsegments:
- [0x3D0500, c, effect_65]
- [0x3D11B0, data]
- [0x3D11E0, bin] # effect_65 gfx
- name: effect_gfx_effect_65
dir: effects/gfx
type: code
start: 0x3D11E0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3D11E0, c, effect_65]
- start: 0x3D11E0
type: .data
name: effect_65
subsegments:
- [0x3D11E0, i4, D_09000000_3D11E0, 64, 32]
- [0x3D15E0, gfx, D_09000400_3D15E0]
- [0x3D1688]
- name: effect_tubba_heart_attack
dir: effects
type: code
@ -4514,7 +4772,32 @@ segments:
subsegments:
- [0x3D8720, c, cold_breath]
- [0x3D8F30, data]
- [0x3D9100, bin] # ecold_breath gfx
- name: effect_gfx_cold_breath
dir: effects/gfx
type: code
start: 0x3D9100
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3D9100, c, cold_breath]
- start: 0x3D9100
type: .data
name: cold_breath
subsegments:
- [0x3D9100, i8, D_09000000_3D9100, 32, 128]
- [0x3DA100, i8, D_09001000_3DA100, 32, 128]
- [0x3DB100, gfx, D_09002000_3DB100]
- [0x3DB1C0, vtx, D_090020C0_3DB1C0]
- [0x3DB200, vtx, D_09002100_3DB200]
- [0x3DB240, vtx, D_09002140_3DB240]
- [0x3DB280, vtx, D_09002180_3DB280]
- [0x3DB2C0, vtx, D_090021C0_3DB2C0]
- [0x3DB300, gfx, D_09002200_3DB300]
- [0x3DB320, gfx, D_09002220_3DB320]
- [0x3DB340, gfx, D_09002240_3DB340]
- [0x3DB360, gfx, D_09002260_3DB360]
- [0x3DB380, gfx, D_09002280_3DB380]
- [0x3DB3A0, gfx, D_090022A0_3DB3A0]
- name: effect_embers
dir: effects
type: code
@ -4523,7 +4806,23 @@ segments:
subsegments:
- [0x3DB460, c, embers]
- [0x3DBEA0, data]
- [0x3DBF40, bin] # embers gfx
- name: effect_gfx_embers
dir: effects/gfx
type: code
start: 0x3DBF40
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3DBF40, c, embers]
- start: 0x3DBF40
type: .data
name: embers
subsegments:
- [0x3DBF40, i4, D_09000000_3DBF40, 16, 64]
- [0x3DC140, i4, D_09000200_3DC140, 16, 16]
- [0x3DC1C0, gfx, D_09000280_3DC1C0]
- [0x3DC2B0, vtx, D_09000370_3DC2B0]
- [0x3DC2F0, gfx, D_090003B0_3DC2F0]
- name: effect_hieroglyphs
dir: effects
type: code
@ -4604,7 +4903,22 @@ segments:
subsegments:
- [0x3E43A0, c, firework_rocket]
- [0x3E5060, data]
- [0x3E5350, bin] # firework_rocket gfx
- name: effect_gfx_firework_rocket
dir: effects/gfx
type: code
start: 0x3E5350
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3E5350, c, firework_rocket]
- start: 0x3E5350
type: .data
name: firework_rocket
subsegments:
- [0x3E5350, i4, D_09000000_3E5350, 16, 16]
- [0x3E53D0, gfx, D_09000080_3E53D0]
- [0x3E5478, vtx, D_09000128_3E5478]
- [0x3E54A8, gfx, D_09000158_3E54A8]
- name: effect_peach_star_beam
dir: effects
type: code
@ -5074,7 +5388,45 @@ segments:
subsegments:
- [0x414BA0, c, effect_86]
- [0x415020]
- [0x415060, bin] # effect_86 gfx
- name: effect_gfx_effect_86
dir: effects/gfx
type: code
start: 0x415060
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x415060, c, effect_86]
- start: 0x415060
type: .data
name: effect_86
subsegments:
- [0x415060, i4, D_09000000_415060, 256, 16]
- [0x415860, gfx, D_09000800_415860]
- [0x415908, vtx, D_090008A8_415908]
- [0x415948, vtx, D_090008E8_415948]
- [0x415988, vtx, D_09000928_415988]
- [0x4159C8, vtx, D_09000968_4159C8]
- [0x415A08, vtx, D_090009A8_415A08]
- [0x415A48, vtx, D_090009E8_415A48]
- [0x415A88, vtx, D_09000A28_415A88]
- [0x415AC8, vtx, D_09000A68_415AC8]
- [0x415B08, vtx, D_09000AA8_415B08]
- [0x415B48, vtx, D_09000AE8_415B48]
- [0x415B88, vtx, D_09000B28_415B88]
- [0x415BC8, vtx, D_09000B68_415BC8]
- [0x415C08, gfx, D_09000BA8_415C08]
- [0x415C28, gfx, D_09000BC8_415C28]
- [0x415C48, gfx, D_09000BE8_415C48]
- [0x415C68, gfx, D_09000C08_415C68]
- [0x415C88, gfx, D_09000C28_415C88]
- [0x415CA8, gfx, D_09000C48_415CA8]
- [0x415CC8, gfx, D_09000C68_415CC8]
- [0x415CE8, gfx, D_09000C88_415CE8]
- [0x415D08, gfx, D_09000CA8_415D08]
- [0x415D28, gfx, D_09000CC8_415D28]
- [0x415D48, gfx, D_09000CE8_415D48]
- [0x415D68, gfx, D_09000D08_415D68]
- [0x415D88]
#######################
### Action Commands ###

View File

@ -62,21 +62,6 @@ D_09002020 = 0x09002020;
D_09004040 = 0x09004040;
D_09008BE0 = 0x09008BE0;
// effect_134
D_09000800 = 0x09000800;
D_09000BA8 = 0x09000BA8;
D_09000BC8 = 0x09000BC8;
D_09000BE8 = 0x09000BE8;
D_09000C08 = 0x09000C08;
D_09000C28 = 0x09000C28;
D_09000C48 = 0x09000C48;
D_09000C68 = 0x09000C68;
D_09000C88 = 0x09000C88;
D_09000CA8 = 0x09000CA8;
D_09000CC8 = 0x09000CC8;
D_09000CE8 = 0x09000CE8;
D_09000D08 = 0x09000D08;
// effect_bombette_breaking
D_090018C0 = 0x090018C0;
D_09001D00 = 0x09001D00;